2010-04-01: 00:00:08 oklopol: you're doomed. DOOMED! 00:00:28 :---------------------------------------------------------------------------------O 00:00:51 as would anyone with that kind of nose, mind you 00:13:19 -!- oerjan has quit (Quit: leaving). 00:15:14 oklopol: ok heres the challenge 00:16:10 i will design a trivial little universe, with very simple physics, and a small finite number of universe configurations 00:19:09 ill provide you with causal graphs of these configurations and its your job to come up with a description of the physics governing this little universe 00:19:18 hows that sound? 00:21:31 sounds fun. 00:25:18 -!- augur has quit (Ping timeout: 260 seconds). 00:30:55 * Sgeo still doesn't see why he shouldn't switch to Haskell for all his needs 00:31:44 Because you should. 00:32:04 because python is better 00:32:18 forM_ somelist $ \item -> do 00:32:21 Has its own charm 00:32:46 if by charm you mean it looks ugly! 00:33:10 oklopol 00:33:17 It's not some magic syntax thing 00:33:41 Unlike for/foreach in just about every other language 00:33:42 Sgeo, if/then/else *is* magic syntax, but it shouldn't be 00:33:49 Sgeo: forM_ is quite a bit more general, also. 00:36:48 You know what I don't like? The emphasis that seems to need to be placed on efficiency 00:37:17 The trivial quicksort that everyone talks about is apparently the wrong way to do it do to efficiency concerns, or something 00:37:29 Sgeo -- quicksort sucks 00:37:44 who needs to sort lists ? 00:37:51 seriously it's just a waste fo time 00:37:56 -!- charlls has quit (Quit: Saliendo). 00:38:16 who even needs lists 00:38:33 Can you say that about every algorithm where the trivial implementation is inefficient? 00:38:43 i bet i could live for a year without a list of any kind 00:39:06 -!- oerjan has joined. 00:40:00 Sgeo most everything in haskell is inefficent 00:40:26 haskell sucks 00:40:38 i hate haskell 00:40:43 :D 00:40:47 OOP is the way 00:41:35 exactly 00:41:43 :[ 00:42:18 * Sgeo wonders how you'd write a NetHack-like game in Haskell 00:42:20 faxes are outdated. 00:42:24 haskell is for dorks who think they're nerds 00:42:24 -!- Asztal has quit (Ping timeout: 248 seconds). 00:42:35 Sgeo easy way to find out is to do it! 00:45:12 There's no nice way to use two different types of STRefs in a single ST monad ins.. whatever it's called, is there? 00:45:27 -!- Slereah has quit (Ping timeout: 260 seconds). 00:46:01 um what do you mean by two different types of STRefs? 00:46:27 An STRef that holds an Int and an STRef that holds a String, for instance 00:46:50 of course you can. excuse me while i look it up... 00:50:06 -!- Slereah has joined. 00:51:50 !haskell import Control.Monad.ST; import Data.STref; main = runST $ do sr <- newSTRef "1"; nr <- newSTRef 2; writeSTRef sr "n is "; writeSTRef nr 3; s <- readSTRef sr; n <- readSTRef nr; return (s ++ show n) 00:52:21 !haskell import Control.Monad.ST; import Data.STRef; main = runST $ do sr <- newSTRef "1"; nr <- newSTRef 2; writeSTRef sr "n is "; writeSTRef nr 3; s <- readSTRef sr; n <- readSTRef nr; return (s ++ show n) 00:53:07 !haskell import Control.Monad.ST; import Data.STRef; main = runST $ do sr <- newSTRef "1"; nr <- newSTRef 2; writeSTRef sr "n is "; writeSTRef nr 3; s <- readSTRef sr; n <- readSTRef nr; return (putStrLn $ s ++ show n) 00:53:10 n is 3 00:53:28 yay just three attempts needed 00:54:40 !haskell "n is 3" 00:54:41 "n is 3" 00:55:08 * oerjan suddenly recalls that it was not necessarily safe to use $ with runST 00:55:14 runST? 00:55:37 Everything is inefficient in languages other than bits. 00:55:43 the function to run a command in the ST monad 00:55:47 coppro: runST :: St a -> a 00:55:53 pikhq: no! 00:55:55 Erm. ST a -> a. 00:56:05 Oh, wait. 00:56:07 It's ST. 00:56:08 it uses type magic 00:56:33 and that type magic means it has varied whether you could use it with $ 00:56:33 oh 00:56:45 runST :: (forall s. ST s a) -> a 00:56:57 Argh. Right. 00:57:02 -!- Slereah has quit (Ping timeout: 260 seconds). 00:57:06 ST s a 00:57:09 It's unusual. 00:57:22 I'm still confused about the forall. I know why it's there, but not what it oes 00:57:23 *does 00:58:51 i suppose it ensures that two different invocations of runST can never know that they have the same s, and so are type incompatible and not confused 00:59:17 That doesn't teach me what forall. is supposed to mean 00:59:33 oerjan: No, forall is not uniqueness typing. 00:59:45 pikhq: i didn't say that 00:59:54 s is a type, not a value 00:59:57 There is Lady Gaga behind this window 01:00:32 Sgeo: the thing passed to runST must be a value that is polymorphic for _all_ possible s 01:00:55 Mmkay. 01:02:46 -!- Slereah has joined. 01:03:03 Oh, I get it. 01:03:16 yay 01:03:54 The "s" must inherently come from runST, and cannot come from anywhere else, because of that forall. So, runST is pure. 01:04:07 Instead of being unsafePerformIO. 01:05:59 Sgeo: afaict the ability to use different types for your STRef's in an ST invocation is precisely how ST _differs_ from State. if you had only one type you would be able to use State with a map or something instead to simulate your refs. but ST with several types cannot be implemented in pure haskell. 01:06:42 * Sgeo still doesn't grok how State is implemented in pure Haskell 01:07:01 well at least you can read the definition 01:07:20 Sgeo: The State monad simply keeps track of a single value called a "state" and threads that around. 01:07:43 newtype State s a = State { runState :: s -> (a, s) } 01:07:44 How does get get a hold of that thread, if it's type is State a? 01:08:10 State s a. 01:08:22 You pass runState the initial state. 01:08:48 And "modification" of the state is actually replacing the state with an entirely different one. 01:09:03 (note: compiler may freely replace it with actual modification at will) 01:09:19 And how is get defined, exactly? 01:09:39 instance MonadState s (State s) where get = State $ \s -> (s, s) put s = State $ \_ -> ((), s) 01:09:53 (line breaks got elided) 01:10:09 instance MonadState s (State s) where get = State $ \s -> (s, s); put s = State $ \_ -> ((), s) 01:11:02 * Sgeo needs a tutorial 01:11:28 so get is a State s s value that takes the threaded state and uses it _both_ for the returned value and the next threaded state 01:11:33 oerjan: are those supposed to be uncurried? 01:11:50 get takes no arguments 01:12:16 (unless you unwrap the type first) 01:12:22 What does the State function do? 01:12:30 it's a constructor 01:12:36 I know that mich 01:12:37 *much 01:12:43 ... That's what it does. 01:12:49 It constructs a new value. 01:13:26 it builds an action in the State monad from a function describing how the threads the state and produces a result 01:13:42 So get is something that would have >>= before it? 01:13:49 As opposed to the more usual >>? 01:14:02 Wait, no 01:14:04 apart from type, an action in the State monad _is_ just such a function 01:14:21 nope, get has no function arguments as an action 01:14:30 put, on the other hand, does 01:15:04 So get just gives the monad a function to execute? 01:15:07 put s is an action that ignores the old state and uses s as the new one 01:15:33 Sgeo: _every_ State monad action is just a function wrapped in a State constructor 01:16:18 get, put s, etc. 01:17:30 and runState does nothing other than unwrap that constructor again. it's there for type purposes only. 01:19:23 -!- oklopol has quit (Read error: Connection reset by peer). 01:34:31 -!- wareya has quit (Remote host closed the connection). 01:47:25 I keep seeing OCaml being suggested as a stepping stone to Haskell. 01:47:34 Does that mean for me, OCaml would be a step backwardsa? 01:47:37 *backwards? 01:49:03 well ocaml does have some interesting features not in haskell 01:49:58 like an object system but still with type inference, and an ML-like module system with functors. and better records (haskell's are generally admitted to be awful) 01:51:41 so it might be good to take a look at it still 01:52:21 * Sgeo shouldn't be looking at anything but C# right now 01:52:27 of course for me ocaml _was_ a stepping stone to haskell, so i haven't used it for years 01:52:47 you might look at F# which i hear is descended from ocaml 01:53:16 but i also think it lacks some of those interesting features 01:53:30 while being .NET compatible 01:55:01 Sgeo ugh no way 01:55:22 fax, project, with a deadline tomorrow 01:55:30 Haven't done a single line of code for it today 01:55:33 @00:47 < Sgeo> Does that mean for me, OCaml would be a step backwardsa? 01:58:02 You know, I tell my dad that there are people online much smarter than me, and he doesn't believe me 02:09:13 -!- mibygl has joined. 02:19:01 -!- Halph has joined. 02:19:51 -!- coppro has quit (Disconnected by services). 02:19:57 -!- Halph has changed nick to coppro. 02:21:09 -!- cheater2 has quit (Read error: Connection reset by peer). 02:21:41 -!- cheater2 has joined. 02:40:03 -!- cal153 has joined. 02:47:26 -!- jcp has joined. 03:01:40 In Haskell, there always seems to be the Haskell way, and the fast way 03:01:56 right 03:02:15 i hear there also an intersection, known as fusion :) 03:02:19 It's really starting to get on my nerves, tbh 03:02:22 *+is 03:02:40 * Sgeo should be thinking in C# right now 03:10:58 -!- clog has joined. 03:10:58 -!- clog has joined. 03:18:24 -!- augur has joined. 03:18:45 heydo. 03:19:26 Wayat? Wayat? Wayat? Wayat? 03:19:34 Daygo! Daygo! Daygo! Daygo! 03:43:14 -!- mibygl has quit (Ping timeout: 252 seconds). 03:58:14 -!- zzo38 has joined. 03:59:17 -!- Asztal has joined. 03:59:37 -!- zzo38 has quit (Remote host closed the connection). 03:59:56 * Sgeo has had an incredibly unproductive day today 04:13:48 -!- oerjan has quit (Quit: Good night). 04:14:38 * fax too 04:22:27 mibygl = uorygl? 04:25:58 Jes. 04:26:14 (I don't know how to say yes in Lojban, so I said it in Esperanto) 04:32:29 * pikhq suggests you learn Japanese 04:34:19 My computer professor seems to think I know a lot of programming languages 04:34:28 * Sgeo really only knows most on a superficial level 04:40:19 Sgeo every time I have to hand in computer work I get strange compliments about how advanced it is .. even when I try not to bed 04:40:22 be* 04:40:42 Why would you bother trying not to be advanced? 04:42:14 because I don\t like it when they tell me that :< 04:44:25 * Sgeo loves being way ahead of everyone else 04:44:50 * Sgeo doesn't love the fact that there's a deadline TOMORROW, it's almost midnight, and I haven't done a single worthwhile thing today.l 04:45:10 what's the assignment? 04:45:25 coppro, project that I've been talking about for the past few months 04:45:31 oh 04:45:40 assume I'm stupid 04:45:43 and haven't paid attention 04:46:04 coppro, game that I'm making with a few other people [only one other programmer] 04:46:16 It's on the AW platform, so it's not as much work as it sounds, but still 04:46:42 The um.. financer, I guess, is giving us some stuff, but wants to see results 04:46:44 is the deadline the due date, or a partway-through thing 04:46:54 partway-through 04:46:58 ah 04:47:03 and I presume you aren't there yet? 04:47:29 Fairly close, but if the person's expecting 100%, it's not happening 04:48:08 Anyways, I'm going to restart the computer, and hopefully that will leave a clean slate to let me focus 04:49:49 let me give you a piece of advice 04:49:55 -!- Sgeo_ has joined. 04:50:05 do not turn on IRC when you reboot, unless its necessary for your work 04:50:10 if it is, join only the necessary channesl 04:50:12 *channels 04:50:55 -!- Sgeo_ has quit (Read error: Connection reset by peer). 04:52:47 -!- Sgeo has quit (Ping timeout: 260 seconds). 04:58:29 -!- Sgeo has joined. 04:59:04 -!- fax has quit (Quit: Lost terminal). 05:03:13 -!- Asztal has quit (Ping timeout: 265 seconds). 05:21:25 so, who wants to play with universes? :) 05:22:38 I think I tend to seek 12 different tutorials for things 05:23:21 Also, I've noticed something: I can accept learning a language because I have to. Such languages [C#, LSL] are treated as tools 05:23:54 Other languages [Python, Ruby, Haskell, Scheme], it feels like they're all competing for my affection. It's as though I'll only allow myself to truly love one language. 05:32:48 -!- pikhq has set topic: This topic was correct once | Last topic change: 0 Anno Domini | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 05:37:38 If Haskell can't do state, then surely it isn't Turing Complete? 05:38:21 sgeo, it can simulate state! 05:38:29 like the lambda calculus can! 05:38:43 What does Calculus have to do with anything? 05:39:00 Sgeo: It can do more than simulate state. 05:39:13 ST is entirely imperative. It is also entirely pure. 05:39:14 /ctcp pikhq time 05:39:15 oops 05:39:26 Sgeo: uh, please tell me that you haven't been hanging out in here for months while never once hearing of lambda calculus 05:39:30 I thought Haskell can't do imperative 05:39:30 No joke. 05:39:38 lambda calculus 05:39:40 *Ah*. Right. 05:39:44 * pikhq skips forward 05:39:53 not calculus as in newton/leibniz 05:39:55 a "calculus" is a means of calculating something. 05:40:00 Sgeo: Well, you see, it only pretends to. With this "monad" bullshit. 05:40:09 Named after Monad Leibniz. 05:40:40 -!- wareya has joined. 05:41:24 So, this Monad fellow.. he invented math and computers? 05:41:28 Used as follows: let Monad M = new template> M(this); M.bind.return.imperative( // What follows is C++ code. 05:41:49 The syntax was chosen, of course, to be compatible with C++'s most brilliant design principles. 05:42:07 is SGEO being full of shit? XD 05:42:12 Oh, also. What follows after "//" is not a comment. 05:42:20 augur: The day is most certainly not 4-01. 05:42:31 And such a day has in no way any significance. 05:43:01 oh i see yes 05:43:03 well! one never knows 05:43:18 i dont know Sgeo much 05:43:33 i also dont participate in april fools, so it never crosses my mind 05:44:14 In all seriousness, there should be an esolang based on pikhq's "code" 05:44:31 [In all full seriousness, I always say that there should be an esolang] 05:44:37 I tried five fucking different floppy drives 05:44:41 and not a single one worked 05:45:02 * Sgeo misread that as "fucking five". For some reason, AFD is making my mind act drunk 05:45:02 Hmm. The SCP foundation has had a breech. It would seem that today is a good day to die. 05:55:52 btw, coppro, I've been here for years 05:56:05 At the latest, since late 2007, when I got started on PSOX 06:01:39 -!- Oranjer has left (?). 06:03:43 -!- wareya has quit (Ping timeout: 240 seconds). 06:10:49 xkcd.com 06:10:54 Not working for me in Chrome, but still 06:11:06 -!- wareya has joined. 06:13:26 haha 06:16:19 Doesn't work in Firefox. 06:16:45 works for me 06:16:57 -!- MizardX has quit (Ping timeout: 276 seconds). 06:27:06 * Sgeo is doing April Fool's stuff instead of trying to get this stuff done :( 06:28:01 Sgeo: /quit, close your browser, reopen your browser, open exactly those pages which are required for your work 06:28:12 Not going to /quit 06:28:31 I need people to talk to 06:29:02 then /part out of every channel except the ones related to your work 06:29:09 you do not need people to converse with casually 06:29:11 you need to work 06:31:10 Not necessarily. 06:31:45 Can I talk to you while I work? 06:32:07 I just had a semi-revelation: I don't need to actually have the bot do anything for this part 06:32:11 It's pure in-AW code 06:32:23 Except for persisting it, but that could be a separate part of the bot 06:43:16 * Sgeo feels like he's cutting corners by doing this 06:43:37 Also, I did kind of take pikhq's statement as permission to talk casually in here 06:45:45 * pikhq shruggeth 06:53:55 For all I know, I have nothing to do, and the guy will be satisfied as-is 06:54:06 -!- metaphlex has joined. 07:03:50 -!- tombom has joined. 07:04:04 I should at least add the mechanism for the bot to "click" items 07:05:10 -!- metaphlex has quit (Quit: Leaving). 07:06:04 -!- rapido has joined. 07:07:26 -!- rapido has left (?). 07:15:03 * Sgeo decides that he'll just write a report on the state of the bot, then go to sleep 07:39:21 -!- kar8nga has joined. 07:49:24 -!- tombom has quit (Quit: Leaving). 07:50:03 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:09:30 -!- kar8nga has quit (Remote host closed the connection). 08:18:37 Hah! This small drop of code worked perfectly the first time! 08:26:16 * coppro wonders if that sale was real or if I'm going to get an April Fools' package 08:33:47 * Sgeo writes a "State of the Bot Address" 08:34:16 * Sgeo hopes that this is enough to convince the person funding this that enough was done so far 08:35:45 youtube wins the day 08:35:47 http://www.youtube.com/watch?v=WccS6q8Mo-U&feature=channel&textp=fool 08:37:12 flip=1 no longer works? 08:37:14 :( 08:37:45 flip=1? 08:38:09 Or, what was the thing to flip it? 08:38:16 Last year or something 08:39:25 google.com 08:40:36 They're reviving Virgle 08:42:09 the are? 08:42:10 I don't see it 08:42:36 "And Project Virgle, our co-venture with Richard Branson and Virgin to launch the first permanent human colony on Mars, will henceforth be known as Project Vireka." 08:43:12 http://googleblog.blogspot.com/2010/04/different-kind-of-company-name.html 08:44:33 Is the death of star ratings on YouTube for real or Apr1st? 08:45:21 unknown 08:45:44 signs point to permanent 08:45:55 though one can never tell with Google 08:46:32 Google tends to be more "nope, it wasn't April 1st joke after all" 08:46:39 Then again, that's coming from one data point 08:47:34 exactly 08:47:41 I also like the units of measure on the search page 08:48:17 Maybe someone was using that information for something important! And now they just screw it up? 08:48:40 "Whatever the outcome, the conclusion was clear: we aren't in Google anymore." 08:49:04 lol; I think I missed that 08:52:14 it was in the blog post I just linked 08:54:28 coppro, I know, I read it before, and failed to notice that line 08:54:56 Also, this "wear blue for autism on April 2nd" stuff is backed by racing4autism, which links to Autism Speaks and Generation Rescue 08:57:32 -!- lereah_ has joined. 09:28:53 dude 09:28:56 haha 09:29:11 the youtube stuff is awesome 09:30:06 i like the cosmonauty textp XD 09:32:36 -!- coppro has quit (Ping timeout: 276 seconds). 09:34:14 the ascii youtube video thing has actually been around a while 09:34:20 it was some other site that would do it 09:34:29 i like that youtube brought it in 09:36:23 For the DIY folks, it's pretty much always been possible to just plug a youtube get_video URL into mplayer, and use either the aalib or libcaca text-based video-out drivers. 09:36:24 -!- myndzi\ has joined. 09:39:14 Also for some reason on this work-workstation there's no TEXTp mode visible. Aw. 09:39:46 -!- myndzi has quit (Ping timeout: 264 seconds). 10:31:15 mynzλ 10:31:19 Erm 10:31:22 myndzλ 10:48:32 Does libcaca support 256-color mode? :-) 10:50:00 -!- Tritonio_GR has joined. 10:50:39 Ilari: I have a feeling it does, but I'm not completely certain. 10:51:30 Ilari: The web page just says "2048 available colours (some devices can only handle 16)". (I'm not sure where they have 2k colours... maybe using the "direct" X11 output, I think it had one too.) 10:51:50 -!- Tritonio_GR has quit (Client Quit). 10:52:08 Yes, there's ncurses, slang, x11 and gl drivers in it. 10:56:15 lawl@libcaca over gl 10:58:01 All kinds of "insane transports" and "insane platforms" are fun to do as an joke... 10:59:45 I haven't done any really crazy combos... I think the craziest was SSH inside SSH... 11:00:32 I remember running X11 over aalib once, don't recall what the middle layer that made that possible was though. 11:00:49 -!- Tritonio_GR has joined. 11:01:39 I once got Quake II using aalib by mistake... 11:02:10 -!- Tritonio_GR has quit (Client Quit). 11:03:42 Tritonio doesn't like that. 11:05:20 (SDL autofallbacks video drivers...) 11:05:23 Ascii-Quake never was much fun, but we spent a while playing networked 0verkill -- http://artax.karlin.mff.cuni.cz/~brain/0verkill/ -- which was pretty fun for a while. 11:15:44 -!- cal153 has quit. 11:16:29 -!- Tritonio_GR has joined. 12:11:15 -!- Tritonio_GR has quit (Read error: Connection reset by peer). 12:19:59 -!- Tritonio_GR has joined. 12:24:25 -!- oerjan has joined. 12:25:07 dammit and here i thought the topic would be correct today :( 12:25:39 come to think of it, this might not be the day to expect such a thing 12:40:26 -!- rodgort has quit (Quit: Coyote finally caught me). 12:42:06 -!- oklopol has joined. 14:05:08 -!- oerjan has quit (Quit: leaving). 14:26:33 -!- Deewiant has quit (Remote host closed the connection). 14:26:56 -!- Deewiant has joined. 15:03:54 -!- oklofok has joined. 15:04:38 -!- oklopol has quit (Ping timeout: 240 seconds). 15:28:56 -!- MizardX has joined. 15:36:31 -!- FireFly has joined. 15:47:56 -!- BeholdMyGlory has joined. 15:53:31 -!- MigoMipo has joined. 15:55:23 -!- charlls has joined. 15:58:52 -!- lereah_ has quit (Remote host closed the connection). 16:12:23 -!- Asztal has joined. 16:26:25 -!- oklofok has quit (Ping timeout: 248 seconds). 16:39:59 -!- oklopol has joined. 16:45:57 -!- oklofok has joined. 16:47:25 -!- oklopol has quit (Ping timeout: 246 seconds). 16:55:08 -!- KingOfKarlsruhe has joined. 16:55:21 -!- cheater2 has quit (Ping timeout: 258 seconds). 16:57:49 hm xkcd did a very nice thing for today 16:57:53 needs javascript though 17:00:51 -!- cheater2 has joined. 17:01:17 -!- cheater2 has quit (Read error: Connection reset by peer). 17:01:35 -!- cheater2 has joined. 17:04:24 -!- jcp has joined. 17:12:39 -!- tombom has joined. 17:44:13 -!- augur has quit (Ping timeout: 264 seconds). 17:50:29 hah at the units in google's search result 17:50:55 Results 1 - 10 of about 1,810,000,000 for google. (0.14e+43 Planck times) 17:58:02 -!- cal153 has joined. 17:58:37 -!- zzo38 has joined. 17:59:54 -!- kar8nga has joined. 18:00:16 Not here 18:00:23 Must be a google US exclusive prank 18:00:26 Slereah, only on google.com 18:00:28 not on google.se 18:00:35 or .fr 18:00:36 Slereah, but I use google.com normally 18:00:42 easy to switch though 18:00:51 I do too, but it switches automatically to .fr 18:00:52 just a link near the bottom of the front page 18:00:57 Some people made the "Check for brainwave activity" code as short as 10 bytes in shell scripts, I cannot quite figure it out but I did reduce it to 12 bytes. After 10 days I can figure out what it is 18:01:01 oh and did you see xkcd 18:01:01 I hate it when softwares try to second guess me 18:01:04 xkcd's shell 18:01:06 yes 18:01:08 quite nice 18:01:09 Also 4chan 18:01:13 guest@xkcd:/$ date 18:01:13 March 32nd 18:01:13 POST TO FACEBOOK 18:01:22 I hate april fool 18:01:27 It's always so stupid 18:01:31 Slereah, ? 18:01:34 what about 4chan 18:02:02 There's a "post to facebook" option on the post window for april fool 18:02:16 Slereah, oh and maps.google.com.au gives directions in AU slang 18:02:17 like: 18:02:32 "Turn a smidge left when you get to South Western Mwy 18:02:33 Ya might have to cough up some cash along here" 18:02:39 Crikey! 18:02:45 Slereah, :D 18:02:58 Slereah, still waiting for the RFC 18:04:22 RFC? 18:04:28 Will there be a fool RFC this year? 18:04:47 Roman Fatholic church? 18:04:48 Will INTERCAL be released this year? 18:05:07 Isn't it already? 18:05:13 Also what is RFC 18:05:36 RFC is short for "Request For Comment" 18:06:01 It is usually a specification for some internet protocol or something like that. But it can sometimes describe other stuff, too 18:07:32 and there is usually joke ones on 1 April 18:07:43 Slereah, are you serious about never having heard about RFCs? 18:07:57 like the IRC RFC, 14xx (forgot the last two digits) 18:08:48 Slereah, IP, TCP, HTTP and pretty much every other common non-vendor-specific protocol is specified in one (or more) RFC(s) 18:11:13 * Sgeo pulled a fax earlier, maybe Slereah's doing the same? 18:13:58 hello everyone, this morning i woke up to find i had turned into seven monkeys 18:14:25 and only three of those monkeys were virgins 18:19:36 congrats, you're 4/7 less of a virgin than before 18:20:16 Hello, this moring I woke up to find out that my bed was on the ceiling 18:20:27 And I had eight eyes, just like my D&D character does 18:20:36 But then I realized I was still sleeping 18:20:58 lament: i can't do the math do you mean i was a virgin before or that i wasn't or what? 18:21:03 * Sgeo pulled a fax earlier, maybe Slereah's doing the same? 18:21:06 what do you mean? 18:21:09 i'm seven monkeys you see 18:21:21 oklofok, how many were using typewriters? 18:21:25 AnMaster, I convinced at least two people that I was more of an idiot than I am 18:21:30 he's referring to the time fax said she didn't like haskell 18:21:37 oklofok, this is of uttermost importance! 18:21:38 err 18:21:44 the time she said she doesn't know haskell 18:22:06 Sgeo, wow. That would be like at absolute zero then? 18:22:13 * Sgeo growls 18:22:14 (sorry, couldn't resist) 18:22:18 oh, today is 1st of april, which means we can all lie to each other 18:22:32 lament, why should I trust that? 18:22:39 but i'm really monkeys 18:22:45 lament, also it is March 32 18:22:48 but today is really the 1st of april 18:22:48 not 1 April 18:23:03 lament, go to xkcd and type date into the javascript shell on that page 18:23:06 -!- augur has joined. 18:23:07 see, it must be correct 18:23:20 using xkcd in an argument instantly disqualifies you 18:23:22 from life 18:23:44 Match 32? My calendar says it's Arch 42 and a half. 18:24:11 lament, har. But I quite liked his unix like shell that he remade the front page into today 18:24:26 It has an IRC client 18:24:30 Sgeo, what does? 18:24:35 unixkcd 18:24:40 oh didn't notice 18:24:45 Sgeo, what network does it go to? 18:24:48 Foonetic 18:24:58 Type irc AnMaster or something 18:25:11 i think xkcd should stick with this theme forever. 18:25:13 i rather like it 18:25:15 Also, `find kitten` is fun 18:25:19 I just tried the xkcd shell. I typed "pwd" and it responded with "You are in a maze of twisty passages, all alike." 18:25:50 sudo apt-get upgrade 18:27:07 Sgeo, saw that 18:27:32 just tells you everything is fine or something (forgot exact message) 18:28:00 -!- cheater2 has quit (Ping timeout: 245 seconds). 18:28:55 -!- cheater2 has joined. 18:29:13 AnMaster, not if you're using Firefox < 3, or IE 18:30:04 AnMaster, look 18:32:01 Sgeo, I'm using firefox 3.6 18:32:13 Sgeo, and I doubt my other installed browsers could check it 18:32:30 (because they are text only and don't support javascript) 18:32:35 Sgeo, as for "look" yes I saw that 18:32:52 trivial to solve that once you realised that you were already carrying the lamp 18:33:52 -!- augur has quit (Ping timeout: 258 seconds). 18:35:30 -!- cheater2 has quit (Ping timeout: 245 seconds). 18:39:41 -!- cheater2 has joined. 18:43:42 -!- coppro has joined. 18:47:49 -!- augur has joined. 19:04:27 -!- augur has quit (Ping timeout: 260 seconds). 19:06:11 -!- Tritonio_GR has quit (Ping timeout: 276 seconds). 19:09:01 -!- oklofok has quit (Ping timeout: 252 seconds). 19:10:11 -!- adam_d has joined. 19:18:46 -!- cheater2 has quit (Ping timeout: 264 seconds). 19:22:45 -!- Tritonio_GR has joined. 19:24:15 -!- cheater2 has joined. 19:36:51 When I write a Linux distribution I will have to do some things like, "wg" is like "wget -O -", "e" is "echo", "en" is like "echo" but each parameter is output to a separate line, and so on 19:43:58 I should also do it so that if the window manager's key is pushed and released by itself, it will show/hide mouse pointer (moving the mouse also shows the pointer) 19:45:36 So essentially, you think Linux would be better if it was cryptically difficult to use. 19:45:59 Those are of great confusion. 19:46:08 Well, this is how I would make it, anyways. There would be more two letter commands and one letter commands, for one thing. 19:46:12 And I note that I only recently started using a window manager that reparents. 19:46:31 reparent? 19:46:40 -!- oklopol has joined. 19:46:46 I would probably write a new shell, too, with some new features and some removed, and so on 19:46:52 coppro: Most window managers reparent windows so they can draw title bars. 19:47:00 And window borders. 19:48:19 Ratpoison leaves the parent as root, because who needs graphics? 19:48:26 That's not why you're running X, is it, silly? 19:49:06 ah 19:49:23 And I also have to make it be: All window manager's functions are accessed with the window manager's key and combination with keyboard and/or mouse, except for clicking the title bar and task bar, which can be done without. Which key is the window manager's key could be configured, and can be indicated "wm-" in emacs notation 19:49:40 go ahead 19:49:57 For example, wm-t could show/hide taskbar and wm-tab could switch next window, and so on, like that. 19:50:12 It should hide the title-bar for maximized windows, so therefore I will make it to do tha. 19:50:36 zzo38: That sort of thing is fairly common. I assume you'd go a bit further in that you would make *all* functionality keyboard-accessible, which few WMs use, but... Yeah. 19:50:50 Could quite reasonably just do a few minor patches against Fluxbox for that. 19:51:43 Yes, ake *all* functionality keyboard-accessible. Although, a few things would work with the mouse also because some things might work better with it, for example if you want to size/move a window or select window or stuff graphically (there is three mouse buttons, and also modifier keys, so there is many combinations) 19:52:59 -!- kar8nga has quit (Ping timeout: 276 seconds). 19:52:59 As I said, fairly reasonable, and it would probably not take much work to add to Fluxbox. 19:53:07 So, ALT+mouse won't drag a window unless ALT is the window manager's key. And even if it is, you have to use the middle mouse button. 19:53:23 Because wm key + left mouse button would be used to resize windows instead. 19:54:11 -!- sshc has quit (Quit: leaving). 19:55:57 We don't need any fancy gradient title-bars and 3-D dialog boxes and stuff like that. We don't need any icons or buttons on the title-bar either, the mouse already has three buttons! 19:57:10 * Sgeo is putting his project away for the rest of today, and all of tomorrow 19:57:11 :D 20:01:39 -!- hiato has joined. 20:01:59 Many two-letter and one-letter command names are not used yet in UNIX, and some things I don't agree how they work (such as wget sending output to the file instead of to stdout, all programs should receive their input from stdin and send their output to stdout, and then you can use < > to redirect to files or | to pipes to other programs) 20:03:12 zzo38: rant? :P 20:12:39 And if "pm" is the package manager, you could install an external package with "wg http://example.org/pm/web-browser | pm" or something like that. 20:13:59 Or, probably more like: wg http://example.org/pm/web-browser | s pm -I 20:15:16 -!- adam_d_ has joined. 20:18:08 -!- adam_d has quit (Ping timeout: 265 seconds). 20:20:05 When using a package manager, the path to the install files should be send to stdout and the status information to stderr 20:20:31 Y'know what would be nice? A soundfont for strings that didn't suck UTTERLY. 20:21:21 those exist 20:21:25 somewhere over the rainbow 20:21:48 Lies. 20:21:51 Filthy, disgusting lies. 20:22:09 q: 20:23:19 -!- hiato has quit (Quit: You've been a wonderful audience). 20:23:32 -!- ehirdiphone has joined. 20:23:39 Lo. 20:23:47 Actually, what would be really wonderful is a string quartet that would play what I wanted them to for no money :P 20:24:45 So hey, I've been discharged from the unit. After Wednesday's meeting they decided they could find no problem and that my admission was an error. 20:24:50 :))))))) 20:25:10 ...APRIL FOOLS HAHAHAHA :| 20:25:13 Hi ehirdiphone. I wish I was certain that that wasn't.. yeah 20:26:23 -!- KingOfKarlsruhe has quit (Remote host closed the connection). 20:27:09 -!- dougx has joined. 20:27:36 * Sgeo wonders if xkcd.com works on the iphone 20:27:43 I'm too tired to even go on the computer. Tomorrow. 20:28:19 You can't check xkcd.com on the iPhone? 20:28:32 So you'll have three days of me. 20:28:42 Sgeo: Do http:// and maybe 20:28:51 http://xkcd.com 20:29:01 I hate xkcd, though 20:29:26 Not talking about the comic 20:29:31 Anyway, everything works on the iPhone. Except Flash. 20:30:55 I'm just on GSM. It does not load. 20:31:11 Fast enough for IRC, though. 20:31:30 * Sgeo is a Reddit admin! 20:31:45 In some dubreddit 20:31:51 Subreddit 20:31:57 No, globally [mods are what's by subreddit, btw] 20:32:12 Huh, since when? 20:32:18 Everybody is, since today 20:32:31 And are they as numerous as WP admins? 20:33:33 Wait, why can't I upvote to infinity anymore? 20:33:43 Oh, I don't have the admin thing active 20:34:10 I should have known: I wondered why I never saw his posts or comments, if he is so prominent. 20:34:19 Bloomin' Fools. 20:35:01 Daiyen fooles. 20:35:17 fooels* 20:35:28 YouTube has a new TEXTp mode 20:35:38 Unavailable for me 20:35:56 TEXTp? 20:36:00 http://youtube-global.blogspot.com/2010/03/textp-saves-youtube-bandwidth-money.html 20:37:10 Wow, Epigram 2 was released! 20:37:32 Epigram programming language? 20:41:19 The next feature they need to add is the one to automatically print out transcripts of videos, without requiring Flash 20:41:44 If they had that feature I would use it. 20:43:26 Sgeo: Yes; and proof assistant. The development of its second version is going at a leisurely pace. 20:47:26 The iPhone needs TeX. 20:47:32 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info). 20:47:53 -!- ehirdiphone has joined. 20:48:18 -!- rodgort has joined. 20:48:21 With some sort of drawing support, so I can write stuff and have it unicodified. 20:49:22 the iphone needs to be softer and more porous 20:49:47 for a more comfortable tactile experience and better retention of fecal matter 20:50:04 Saw some article about "Youngest iPhone developer?" Apparently the person's 14 20:50:15 Somehow, I don't think that sort of thing impresses ehirdiphone 20:50:43 HE CODES FOR THE IPHOME??????22221 20:50:50 Ifoam 20:51:27 Inductive setoid : * := over : Pi (A:*). Pi (R:BinaryRelation A). setoid 20:51:30 after extensive experimentation, i have to say i still find regular 2-ply paper preferrable to any version of the iPhone 20:53:02 Inductive setoidV : * -> * -> * := mask : Pi (A:*). Pi (R:BinaryRelation A). A -> setoidV A R 20:54:38 Function setoidT : Pi (S:setoid). * := match S with over A R => setoidV A R end. 20:55:15 + implicit argument jiggery: 20:56:21 Type rational : * := setoidT (over (natural x natural) (too lazy)) 20:56:23 ehirdiphone: Coincidentally, the N900 repository has texlive. 20:56:33 Heh. 20:56:48 I can't imagine it being very friendly to use. 20:57:08 I need a whiteboard :) 20:57:14 ...and friends :( 20:57:20 laaaaaaaawl 20:57:51 setoid would be better as 20:58:25 Inductive setoid : * := over : Pi (A:*). BinaryRelation A -> setoid. 20:59:10 My cardinality stuff was awesome 21:00:14 Except you need to add that A -> B has cardinality \aleph_0 iff B has. I think. 21:00:21 Yeah. 21:00:46 Or otherwise... Hmm, more than the cardinality of B. 21:01:05 |A| * |B|, I think. 21:01:17 As an axio 21:01:19 m 21:02:03 Can't prove it, requires a bijection from A->B to naturals or finite set (naturals mod some N) 21:03:50 Hmm. Does INF -> FIN really have infinite cardinality? 21:03:57 Naw. Finite. 21:09:46 -!- zzo38 has quit (Remote host closed the connection). 21:10:12 Or wait. 21:10:29 Of course it is infinite. 21:10:46 0:0, 1:0, 2:0, ... 21:11:00 0:1, 1:0, 2:0, ... 21:11:18 0:1, 1:1, 2:0, ... 21:11:20 etc 21:11:57 Type theory has really boring cardinalities 21:12:21 0 <= card <= \aleph_0 21:13:08 yawn 21:13:45 -!- adam_d_ has changed nick to adam_d. 21:19:39 It does mean that the biggest thing can be constructed trivially, though — Inductive N : * := z : N; s : N -> N. 21:20:13 Hmm, what of Set and its ilk? 21:20:29 red oval, green oval, blue oval 21:20:39 I guess there are only countably infinite types. 21:20:48 let's number them! 21:20:52 i'm type 842 21:21:06 You could easily add: 21:21:49 bijections between functions/types tofro naturals 21:22:20 8723 :: 23 -> 974 21:22:51 For functions, metajustification: if you can analyse functions' in/out pairs on countably infinite sets it can never exceed their cards 21:23:12 For sets, too lazy to come up with a real justification 21:23:43 Actual implementation for functions could be serialise ast. It doesn't matter. 21:27:59 -!- sshc has joined. 21:37:36 -!- augur has joined. 21:40:02 -!- oerjan has joined. 21:40:50 Hi oerjan. 21:41:17 hi ehirdiphone 21:41:50 ehirdiphone, can you read email on that thing? 21:42:12 pow S := sum T, forall x:T, x in T -> x in S 21:42:35 So "in" is risky. 21:42:46 or rather 21:42:50 The axiom 21:43:07 (S:*) -> pow S 21:43:11 is risky 21:43:16 Sgeo: Yes 21:43:47 If you want, read the email I sent to agora BUS: Re: In Honor of B 21:43:56 Or just http://pastie.org/private/vv0eusi1ahas50htd7w 21:44:56 Heh 21:45:11 No wait pow is subset 21:46:17 pow S := sum T, forall U, (forall x, x in U -> x in S) -> U in T 21:48:56 in : forall T, T -> * -> Prop 21:49:45 in T x U := T === U 21:49:53 for a more comfortable tactile experience and better retention of fecal matter 21:49:56 ...right 21:50:07 But that doesn't allow for subsets. 21:50:27 -!- dougx has quit (Ping timeout: 265 seconds). 21:54:31 13:11:57 Type theory has really boring cardinalities 21:54:32 13:12:21 0 <= card <= \aleph_0 21:54:46 um i thought cantor's proof was constructively valid 21:54:53 Darn, netcat doesn't seem to support IPv6... :-/ 21:55:05 Inductive apart (T:*) : T -> T -> Prop := lfer : forall T, forall x:T, forall y:T, (exists P, P x /\ ~P y) -> apart x y 21:55:20 oerjan: Yeah but you cannot construct the reals 21:55:25 Ilari: There's a netcat6 21:55:30 Only the computable reals 21:55:42 And they're just functions on rationals 21:55:57 ehirdiphone: but (Integer -> Bool) can have no bijection with Integer, or whatever 21:56:09 Why not? 21:56:12 A 21:56:35 And all that means is that the comp reals have no cardinality as such 21:56:39 (terminating (Integer -> Bool), of course) 21:56:52 Why not? 21:57:17 assume you have a bijection b : Integer -> (Integer -> Bool) 21:57:18 It's just an infinite list of books 21:57:22 Bools 21:57:57 then \n -> not (b n n) gives a contradiction 21:58:09 I think fax said something about this it is only metatheoretivally valid 21:58:16 Theoretically 21:58:33 oerjan: hmm why? 21:58:50 well if (s)he means it in the sense that there _are_ countable models, then that is true of ZFC as well 21:58:59 she 21:59:05 but there can be no bijection _internal_ to the model 21:59:19 or surjection, for that matter 21:59:36 anyway why is that a contradiction? Of course you have no idea what b does 22:00:09 Mind I am really tired 22:00:21 well for b to be a surjection _means_ : forall f : Integer -> Bool, exists n : Integer such that b n == f 22:00:34 Ofc 22:00:39 And? 22:00:52 well let f = \n -> not (b n n) 22:01:04 Ah 22:01:15 Then? 22:01:35 (f n) where b n = f? 22:01:46 yes 22:01:57 Then it is _|_. I see. 22:02:10 So the functions are strictly bigger. 22:02:24 yep 22:02:49 So do we just have |R| or more? 22:03:18 well in ZFC they are of course equal, but here i don't know 22:03:30 I guess R -> R must be bigger. 22:03:36 But. Wait. 22:03:49 oerjan: It cannot be |R| surely 22:03:58 as we cannot constrict the reals 22:04:02 Nstrict 22:04:04 Construct 22:04:16 i assumed you meant something called the reals in your system 22:04:32 I meant beth-one 22:04:38 -!- augur has quit (Read error: Connection reset by peer). 22:04:43 it is afaik _meaningless_ to compare cardinalities from ZFC with cardinalities in your system 22:05:00 Probably. 22:05:01 they're not in the same fundamental theory model 22:05:10 -!- augur has joined. 22:05:15 I wonder what the infinite cardinalities are? 22:05:38 and outside a model, everything can be considered countable if the axioms are (and they must be if things are finite strings) 22:06:03 well cantor's theorem can be iterated of course, to get a sequence of larger sets 22:06:21 Yes. But it needs the reals. 22:06:38 The computable reals are definitely smaller than the reals 22:06:42 um i'm talking about something more fundamental than the reals 22:06:51 because almost all reals are uncomputsnle 22:07:06 oerjan: I'm not paying much attention :) 22:07:06 basically, A^B is _always_ larger than B if A has at least 2 elements 22:07:19 B -> A yeah 22:07:38 bool -> () 22:07:41 only one 22:07:54 \b.tt 22:08:09 Or A->B? 22:08:26 oh wait 22:08:28 B -> A 22:08:32 A needs two elements 22:08:46 \().true, \().false 22:08:49 not bigger 22:09:25 of course not. for infinite cardinalities in ZFC, A^2 always has the _same_ size as A 22:09:40 "at least" two 22:09:46 Not more :P 22:10:09 |unit -> A| = |A|, surely. 22:10:10 erm i thought you were still confused about A -> B vs. B -> A 22:10:31 Just use arrow notation to restate it :p 22:10:34 A^B is a notation for (B -> A) 22:10:47 I'm confused though. 22:11:03 Oh larger than B 22:11:06 ic ic 22:11:16 Cool. 22:11:26 it's intuitive based on cardinalities, |B -> A| = |A|^|B| in ZFC 22:11:53 So maybe type theory "cardsets" — canonical types of a certain card are 22:12:29 -!- augur has quit (Read error: Connection reset by peer). 22:12:42 N mod m (Fin m), N, N -> Bool, (N -> Bool) -> Bool 22:12:46 -!- augur has joined. 22:12:55 Except what would the last look like... 22:13:23 it presumably could only look at finitely many N for each function 22:13:36 Induction? 22:13:48 oh maybe 22:14:13 Admittedly that's propositions, not booleans, but... 22:14:23 Easy enough to do afaict 22:14:37 Just set P := (=== True) 22:14:55 But you can't have Prop -> Bool 22:15:01 So no not induction 22:15:36 oh 22:17:15 it just feels, intuitively, like if your (N -> Bool) -> Bool function does not recognize its argument somehow (and wouldn't something like the halting problem prevent it from doing so in general) then it cannot really do anything better than testing specific N values 22:17:40 (P z \/ ~P z) -> (forall n, (P n -> P (s n)) /\ (~P n -> ~P (s n))) -> (forall n, P n) \/ (forall n, ~P n) 22:17:48 Excluded middle lol 22:18:11 oerjan: Yeah 22:18:57 that induction would work 22:19:21 say B x := if x then Unit else Bottom 22:19:24 then 22:19:41 food -> 22:21:11 (B (f z) \/ ~B (f z)) -> (forall n, (B (f n) -> B (f (s n))) /\ (~B (f n) -> ~B (f (s n)))) -> Bool 22:21:24 oerjan: So we can do induction 22:22:48 Inductive B : Bool -> Prop := yep : B true 22:23:48 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info). 22:28:01 -!- augur has quit (Ping timeout: 248 seconds). 22:31:55 This is the Epigram language? 22:32:41 -!- augur has joined. 22:36:21 -!- adam_d_ has joined. 22:40:14 -!- adam_d has quit (Ping timeout: 265 seconds). 22:40:58 -!- Sgeo_ has joined. 22:44:06 -!- Sgeo has quit (Ping timeout: 265 seconds). 22:49:23 -!- augur has quit (Read error: Connection reset by peer). 22:49:52 -!- augur has joined. 22:54:24 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 23:02:18 http://tools.ietf.org/html/rfc5841 23:02:53 sorry, you're two minutes too late. i cannot _possibly_ read this now. 23:02:58 (1 april RFC this year it seems) 23:03:06 oerjan, two minutes two late? 23:03:07 what? 23:03:12 oerjan, also hi 23:03:45 "Packets do not have birthdays, so packets can be marked as surprised when they encounter unexpected error conditions." 23:04:05 AnMaster: it's April 2 now 23:04:23 oerjan, well sure, but RFC are published in US timezones 23:04:29 oerjan, also it isn't April 2 in UTC 23:04:47 in UTC you have two hours - 5 minutes left 23:04:50 get going 23:05:16 that would be _cheating_ 23:08:29 -!- FireFly has quit (Quit: Leaving). 23:09:12 -!- FireFly has joined. 23:12:53 -!- charlls has quit (Ping timeout: 258 seconds). 23:18:59 -!- oerjan has quit (Quit: leaving). 23:19:56 no it wouldn't 23:19:58 meh 23:22:31 -!- EgoBot has quit (Ping timeout: 258 seconds). 23:22:50 -!- tombom has quit (Quit: Leaving). 23:24:03 -!- HackEgo has quit (Ping timeout: 258 seconds). 23:24:53 * Sgeo_ sends AnMaster a few packets with the user mood >:) 23:25:49 Hahahah, Wikipedia's being clever by using misleading wording instead of outright lies :P 23:26:27 "A Japanese multinational conglomerate (headquarters pictured) investigates how some of its customers were accidentally sent back in time to the year 1999." 23:26:36 (Sony investigating the PS3 date bug) 23:26:51 Gregor, Wikipedia always does that 23:27:01 Never looked before :P 23:27:22 Hulu has a 3d button 23:27:56 http://www.hulu.com/internal/confidential/the-initiative-chapter-1 23:40:59 -!- MigoMipo has quit (Remote host closed the connection). 23:47:40 -!- Oranjer has joined. 23:48:35 -!- BeholdMyGlory has quit (Remote host closed the connection). 2010-04-02: 00:00:05 -!- oerjan has joined. 00:02:00 -!- Gregor has set topic: History | News: 0 events tunes.org private sector in the beginning of Christ Foundation | http: / / / ~ 2 per year - and through Torah mandelstam. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 00:06:08 -!- FireFly has quit (Quit: Leaving). 00:13:39 :) 00:14:01 -!- mibygl has joined. 00:14:19 * mibygl generates a text file containing ten web sites' Terms of Service. 00:14:44 * mibygl delimits them with "bork bork bork bork bork" 00:15:23 Mmm, BSV files. 00:20:41 -!- augur_ has joined. 00:21:18 -!- augur has quit (Read error: Connection reset by peer). 00:21:24 Now I'd like to generate a three-word Markov chain out of this. 00:23:36 I guess three words is too much to ask, so I'm generating a seven-character one instead. 00:24:04 Since the average word contains one and a third characters. 00:26:03 t a wo c o an a t ch. 00:27:13 ancient inca god of markov chains 00:32:22 -!- adam_d_ has quit (Ping timeout: 265 seconds). 00:37:19 "B. Types of Service is not changes upon the Ass, and all lawsuits brough the injury, the account integer. If a Products or goods the number of your period, The Roster" 00:45:50 -!- augur_ has quit (Ping timeout: 246 seconds). 00:49:34 TO AGREE TO THESE TERMS, DO NOT CLICK "AGREE," AND DO NOT USE THE SERVICE IN ANY MANNER WHICH CREATES THE IMPRESSION THAT SUCH ITEMS BELONG TO OR ARE ASSOCIATED WITH YOU OR, EXCEPT AS OTHERWISE PROVIDED HEREIN, ARE USED WITH BLP’S CONSENT, AND YOU ACKNOWLEDGE THAT YOU HAVE NO OWNERSHIP RIGHTS IN AND TO ANY OF SUCH ITEMS. 00:58:55 (Sony investigating the PS3 date bug) <-- link? 00:59:01 oh 00:59:02 front page? 00:59:08 * AnMaster looks there 00:59:16 that's some nice timing 01:03:59 oerjan, ? 01:04:46 AnMaster: try reloading now 01:04:56 * oerjan whistles innocently 01:05:25 oerjan, I got the old version still 01:05:28 in another tab 01:05:35 good :D 01:23:34 Wow, it's surprisingly difficult to create a user from the command line in OS C. 01:23:55 I can't believe that in the 90 versions they've released since OS X, they still haven't fixed that. 01:26:05 Wow, it's surprisingly difficult to create a user from the command line in OS C. <-- yeah, I heard it is all a chimera that OS . 01:26:25 try OS X instead :P 01:36:17 -!- Asztal has quit (Ping timeout: 248 seconds). 01:42:01 -!- augur has joined. 02:14:21 -!- augur has quit (Ping timeout: 265 seconds). 02:27:26 -!- augur has joined. 02:32:43 -!- augur has quit (Ping timeout: 265 seconds). 02:34:46 -!- adu has joined. 03:05:00 -!- mibygl has quit (Ping timeout: 252 seconds). 03:11:51 -!- augur has joined. 03:19:27 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 03:40:36 -!- jcp has joined. 03:51:21 -!- augur_ has joined. 03:51:42 -!- augur has quit (Read error: Connection reset by peer). 04:01:30 -!- Oranjer has left (?). 04:04:33 -!- augur_ has quit (Ping timeout: 265 seconds). 04:07:57 -!- oerjan has quit (Quit: Good night). 04:42:00 Got a wireless mouse! 04:51:37 It's working 04:51:42 Feels a bit fast though 04:52:01 And randomly nonworky 05:10:37 -!- charlls has joined. 05:33:04 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 05:52:56 -!- jcp has joined. 05:57:04 -!- augur has joined. 06:40:14 -!- kar8nga has joined. 06:57:24 No one minds if I mutter to myself in the channel, right? 06:57:33 Not generally. 06:58:27 Ok. Going to try to work out a sane way to think about AW action scripts to see if it might be TC [given an assumption that TC means you can add more "memory" as needed] 06:59:12 So, objects have names, and can, in response to existing, in response to user input, and in response to receiving a signal, send a signal to a name 06:59:23 Names do not have to be unique 07:00:46 The receiver of a signal can have a timer such that, its "signal done" event occurs some time later. Other objects can interrupt such events and stop them from occuring 07:01:22 However, if an object receives a signal, by itself it can't decide "if this I'll do this, otherwise I'll do that" 07:01:38 However, names can be changed, and not just by sending and receiving signals 07:01:54 I have too much of a headache to think about all of this. I should really just sleep. 07:10:42 Night all 07:23:00 -!- MizardX has quit (Ping timeout: 276 seconds). 07:38:22 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 07:54:32 -!- kar8nga has quit (Remote host closed the connection). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:07:08 -!- lament has quit (Ping timeout: 240 seconds). 08:10:02 -!- lament has joined. 08:21:35 -!- adam_d has joined. 08:48:20 -!- augur has quit (Remote host closed the connection). 08:54:45 -!- adu has quit (Quit: adu). 09:02:36 -!- augur has joined. 09:37:21 -!- lereah_ has joined. 09:51:46 -!- FireFly has joined. 10:02:25 -!- Asztal has joined. 10:12:27 -!- alise has joined. 10:14:07 14:31:55 This is the Epigram language? 10:14:09 no it's just me 10:14:26 15:04:05 AnMaster: it's April 2 now 10:14:34 Then you are very late: 12 am is the end of the fools. 10:16:26 Mart 10:16:47 A dark delimitation. 10:21:36 so hey, |Sigma x:T, P| = sum x:T, P 10:21:52 this is i think one of my favourite isomorphisms ... |x op y| = |x| op |y| 10:22:09 what does it mean? 10:22:13 |.| 10:30:55 cardinality 10:30:56 although since we're talking type theory and have no |.| :: Type -> Cardinality 10:30:56 it's actually more involved 10:30:56 like |a+b|=|a|+|b| is actually 10:30:56 hc(a,n) -> hc(b,m) -> hc(a+b, n+m) 10:30:56 where hc = "has cardinality" 10:30:57 for instance the statement about sigma would require some sort of function 10:31:11 ((y:T) -> hc(P[x := y], something)) 10:31:22 where x[y:=z] is variable substitution 10:31:30 as an assumption 10:34:36 oklopol: but err you know the type theory notation in general right? 10:34:42 like a+b is Either a b 10:34:47 no not really 10:34:49 ah okay 10:34:51 yeah i know that 10:34:57 a*b is -- cartesian product here -- a pair of a and b (cardinality |a|*|b|) 10:35:26 (non-dependent) a -> b has cardinality |b|^|a|, but using b^a for that like in set theory is ugly 10:35:32 because, you know, we like our functions 10:35:40 and having it all in hugely nested superscripts would be silly 10:36:25 sure 10:36:26 i wonder what the cardinality of Pi (x:T). S is... 10:36:57 where T and S are types? 10:36:57 product (x:T), |S|? if so that would be so perfect 10:37:00 yeah 10:37:07 well let's see 10:37:11 say cardinality of 3 -> 3 10:37:17 (a, b, c : 3) 10:37:26 |3| = 3, obviously 10:37:33 so it's 3 * 3 * 3 10:37:35 = 3^3 10:37:38 yay 10:37:39 it's right 10:38:07 Pi (x:T). S is basically a definition of TxS where i live 10:38:19 normal math that is 10:38:21 :P 10:39:03 no wait 10:39:34 oklopol: yeah but S can include x 10:40:05 refl : Pi (T : *). Pi (x : T). x = x 10:40:31 * is type of types smaller than *... I don't want to think about its cardinality right now 10:40:53 but for a given type T, Pi (x : T). x = x has the cardinality of T... 10:40:55 but you could have more complex things 10:40:55 consider 10:41:10 Pi (x : N). Pi (y : N). x = y -> () 10:41:13 remember -> is shorthand for Pi so 10:41:20 Pi (x : N). Pi (y : N). Pi (_ : x = y). () 10:41:33 now of course this is the same as Pi (x : N). () 10:41:34 and to continue my sentence ...it's S^T 10:41:48 so it certainly isn't the obvious thing 10:42:02 also () = 1... 10:42:06 well not the number 10:42:06 but we call it 1 10:42:10 because it has one value 10:43:59 \prod_{E:n=m} -- there's only ever 1 or 0 values of type n=m 10:44:53 Pi (x : T). x = x <<< what does this mean, the type of functions that ...? 10:45:11 sorry about the asynchronicity, i'm doing two things at once and i suck at it. 10:45:51 Pi (x:T).S is like T->S, but the value of the T is bound to x in S 10:46:08 its cardinality is product (x:T). S which is fitting because the tw are the same notation 10:46:12 which is just this isomorphism again 10:47:00 so in Pi (x : T). x = x what does = x mean 10:47:42 oh 10:47:44 obviously the cardinality of Pi (x : T). x is 1 10:47:47 x = x is just nice notation for Eq x x 10:47:52 hmm 10:47:58 which is? 10:48:00 for all values x and y of the same type Eq x y is a type 10:48:10 and there is 10:48:11 refl : x -> x = x 10:48:16 (it has a more complicated type but ... that is the relevant parts) 10:48:19 (the rest is just type stuff) 10:48:32 so if we have a value of type x = y, we know that x and y are completely indistinguishable... 10:48:37 it's just equality 10:49:01 so we have m,n : N, and we know that m = n 10:49:03 so the two must be exactly the same 10:49:10 so we have \x. f x x refl 10:49:18 which is exactly the same as f, just with less stupid arguments 10:49:23 http://1.618034.com/blog_data/math/formula.3405.png 10:49:54 so the cardinality of functions (n:N) -> (m:N) -> n = m -> () 10:49:59 is the same as the cardinality of the naturals 10:50:18 because the only function of type N -> () is \_.() 10:50:24 well 10:50:27 not quite 10:50:28 Pi n : N . 1 has cardinality |N|? 10:50:31 er wait 10:50:35 the last bit is wrong 10:50:47 sec 10:50:52 http://1.618034.com/blog_data/math/formula.3406.png 10:50:53 obviously 10:50:59 because 1*1*1*1*... = 1 10:51:16 note the bold 1 in the |...| denotes the type with one value, tt : 1 10:51:23 the non-bold 1s are just the regular number 1 10:51:36 also the product in the |...| denotes dependent functions... 10:51:43 whereas after it's normal numbery products 10:52:07 so say n : N, then Eq n n is a type? what values are of that type? 10:53:05 let me just give you the definition in pseudohaskell 10:53:28 data Eq : forall a, a -> a -> Type where 10:53:37 refl :: a -> Eq a a 10:53:39 erm 10:53:45 refl :: (x:a) -> Eq x x 10:54:29 http://1.618034.com/blog_data/math/formula.3407.png 10:54:33 generalised for non-1 result types 10:54:48 i thought i know that already, if x is of type a, then Eq a a is a type. i still don't see what things can be of that type 10:54:54 note that if T = Bool, |T| = 2, so we have 2^N_0, which is the cardinality of the reals... 10:54:57 *knew 10:55:00 actually they're the computable reals for us, but 10:55:03 *Eq x x 10:55:11 no, you are wrong 10:55:17 if x is of type a, and y is of type a, then Eq x y is a type 10:55:31 when I restate things it's because you said something that was wrong 10:55:42 x:a -> Eq x x is a type is just a special case of that 10:55:47 nope 10:55:49 that isn't even true 10:55:53 that isn't even remotely correct 10:55:56 Eq :: (A : Type) -> A -> A -> Type 10:56:05 refl :: (A : Type) -> (x : A) -> Eq x x 10:56:11 one is a type one is a value 10:56:15 "if x is of type a, and y is of type a, then Eq x y is a type" <<< i just instantiate this with x and y the same object 10:56:18 and Eq x y is a type for ALL x and y 10:56:24 oklopol: but it's IMPORTANT 10:56:29 because if they had to be the same it would be a useless type 10:56:31 and i get "if x is of type a, and x is of type a, then Eq x x is a type" 10:56:46 IT'S A FUCKING USELESS TYPE ANYWAY BECAUSE YOU HAVEN'T TOLD ME WHAT IT CAN CONTAIN 10:56:51 god you suck at explaining things 10:56:53 refl :: (A : Type) -> (x : A) -> Eq x x 10:56:56 I have; several billion times. 10:57:08 i'll ask fax at some point 10:57:17 I didn't sign up to teach type theory to someone who doesn't know it, so it's no surprise I'm not prepared for it. 10:57:23 refl does not return a type. 10:57:26 oh refl is a value :P 10:57:26 It returns a value of type Eq x x. 10:57:34 So is Eq, actually, because types are values. But. 10:57:35 okay thanks 10:57:58 So we have Eq x y, but only Eq x x is inhabited. 10:57:58 yeah okay i see it now 10:58:05 All the rest are uninhabited, so we can't prove (give a value) them. 11:03:31 yeah okay i see what Eq is now, the haskell does indeed explain it completely 11:04:26 -!- tombom has joined. 11:05:32 so Eq x y is inhabited by ":)" if x = y, otherwise there's no value of that type 11:06:02 pretty much yep 11:06:05 except it's refl not :) 11:06:15 so obviously if we have m,n:N and m=n, m and n are completely redundant 11:07:49 -!- MigoMipo has joined. 11:35:26 15:04:05 AnMaster: it's April 2 now 11:35:26 Then you are very late: 12 am is the end of the fools. <-- ? 11:35:33 is that UK tradition? 11:35:34 What? 11:35:42 Oh; perhaps it is only UK tradition. 11:35:51 It certainly is but I assumed it was so elsewhere too. 11:35:55 I never heard of it before at least. 11:36:06 Well, it has fallen out of favour in this interblaggy world. 11:36:15 I thought it went on for the whole day 11:36:28 alise, oh? 11:37:19 yes 11:50:40 -!- BeholdMyGlory has joined. 11:58:46 -!- MigoMipo has quit (Quit: Konversation terminated!). 11:59:59 -!- MigoMipo has joined. 12:01:49 -!- MigoMipo has quit (Remote host closed the connection). 12:03:32 -!- MigoMipo has joined. 12:12:26 -!- BeholdMyGlory has quit (Quit: Leaving). 12:12:59 -!- BeholdMyGlory has joined. 12:38:57 -!- oerjan has joined. 12:40:50 -!- kar8nga has joined. 12:54:49 -!- MigoMipo has quit (Remote host closed the connection). 13:05:36 -!- kar8nga has quit (Remote host closed the connection). 13:06:38 -!- alise has quit (Ping timeout: 258 seconds). 13:29:32 -!- alise has joined. 13:34:38 -!- oerjan has quit (Quit: leaving). 13:36:12 -!- Tritonio_GR has quit (Read error: Connection reset by peer). 13:47:26 -!- Asztal has quit (Ping timeout: 265 seconds). 14:18:58 from kernel changelog (for 2.6.33.2): "We believe this is a secure hole that a none privileged user can crash the system." Interesting, err, word choice. 14:21:08 -!- Sgeo_ has quit (Read error: Connection reset by peer). 14:21:41 -!- Sgeo has joined. 14:39:53 You can access /my/ secure hole hur hur. 14:46:25 * Sgeo wonders how legal it would be to make a language based on the Active Worlds action line stuff 14:50:15 alise, XD 14:51:32 alise, another interesting sentence from the same changelog: "Fix this by explicitly storing the end of the biggybacked data in the decompressor, and use that to calculate the compressed image size." 14:51:32 " 14:51:41 Biggybacked! 14:52:03 alise, grandma, what a big back you have! 14:52:23 ALL THE BETTER TO LAY YOU WITH 14:52:24 Get it? 14:52:26 Lie on your back? 14:52:27 Lay? 14:52:28 It's hilarious? 14:52:29 augh 14:52:41 alise, oh it wasn't innuendo? 14:52:42 I had no idea I was so awesome 14:52:46 AnMaster: Of course it was! 14:53:09 as I thought to begin with then 14:57:02 I have noticed that in the kernel changelog the most awkward English grammar in commit messages seems to be written by *.jp people (according the the email in the author line) 14:57:28 this is not just in this changelog, but almost every kernel changelog I read so far, which must be quite a large number by now. 14:58:08 (either that, or Japanese sounding names with an email @intel.com, that is fairly too) 14:58:12 fairly common* 14:59:39 Yeah; Standard Japanese Programmer English is a strange breed. 15:00:02 I wonder why, hm 15:00:30 Japanese is very different from English. 15:00:40 And Engrish is ubiquitous in Japanese culture. 15:00:55 hm 15:01:18 what about Hollywood movies and such on TV? 15:02:44 or do they dubb those? 15:02:55 Presumably. 15:03:00 They do everywhere else :-) 15:03:05 not here 15:03:12 generally they just add text lines at the bottom 15:03:15 Also I'd say that Japan imports less culture from other countries. 15:03:20 Probably because we're too busy importing all theirs. 15:04:56 Someone I know who once visited Germany (for an extended period of time, business stuff iirc) told me that she was bored one day and decided to see a movie at the local cinema. She decided on a Bond movie thinking "oh well, I can always understand the English and ignore the text lines". Unfortunately it turned out it was dubbed. 15:05:06 -!- lament has quit (Ping timeout: 260 seconds). 15:05:19 In Sweden only movies aimed at children are generally dubbed. 15:05:52 I suppose you strongly push English there. 15:06:02 Less so in Germany I would imagine. 15:06:08 Because people actually speak German ;-) 15:06:22 Anyway, shoulda pirated it! 15:06:29 we do generally speak Swedish though :P 15:06:38 alise, this was during the early 1990s iirc 15:06:45 so well, that would have been fun 15:06:52 Hells yeah, ZMODEM! 15:07:31 "Tarski, one of the early great researchers in set theory and logic, proved that AC is equivalent to the statement that any infinite set X has the same cardinality as the Cartesian product X x X. He submitted his article to Comptes Rendus Acad. Sci. Paris, where it was refereed by two very famous mathematicians, Frchet and Lebesgue. Both wrote letters rejecting the article. Frchet wrote that an implication between two well known truths is not a new 15:07:32 har 15:07:32 result. And Lebesgue wrote that an implication between two false statements is of no interest. Tarski said that he never again submitted a paper to the Comptes Rendus." 15:08:12 AC is not alternating current here right? 15:08:23 Axiom of choice 15:09:03 right 15:09:58 -!- lament has joined. 15:11:24 * Sgeo wonders how someone who thought that one was the truth and the other was false would react 15:13:07 I am pretty sure that is trivially contradictory. 15:13:12 After all, they were proven to be equivalent. 15:13:21 So the rejection would be "LOL you made mistake" 15:13:29 Not "Nice paper, boy. It's shit." 15:17:20 One reason why the negation of the axiom of choice is trueAs part of a complicatedtheory about a singularity, I wrote tentativelythe following :We apply set theory with urelements ZFU to physicalspace of elementary particles;we consider locations as urelements, elements of U,in number infinite. Ui is a subsetof U with number of elements n. XiUi is the infinitecartesian product and a set of paths. 15:18:01 -!- Sgeo_ has joined. 15:18:45 alise, I think "LOL you made mistake" would be "somewhat" anachronistic in this case 15:19:07 STFU Cantor --Wittgenstein 15:19:15 hah 15:19:33 Hilbert, you're a fag. Please commit program-suicide. --Godel 15:19:47 meh 15:20:06 alise, Pretty sure it was "Gödel"? 15:20:15 Lazy. 15:20:23 and that should be transcribed as "Goedel" in English then, shouldn't it? 15:20:50 Yeah but nobody does. 15:20:57 lol - "Axiom of Life" = "~choice" 15:21:11 -!- Sgeo has quit (Ping timeout: 258 seconds). 15:21:15 alise, that's what Hamlet said! 15:21:17 http://www.facebook.com/group.php?v=wall&gid=2243319629 group of idiots 15:21:49 well we know that 2b = 2*b 15:21:52 and as far as types go 15:21:53 2 = bool 15:21:55 ? 15:21:56 and a*b = (a,b) 15:21:56 so 15:22:02 eh? 15:22:05 (Bool,b) \/ ~(Bool,b) 15:22:12 if we interpret ~ as implication of falsehood 15:22:18 (Bool,b) \/ ((Bool,b) -> False) 15:22:34 so either you can construct a value of type (Bool,b) or you cannot 15:22:40 what sort of strange syntax for "and" is (a,b)? 15:22:46 It's not and. 15:22:53 oh multiplication then? 15:22:54 a*b = (a,b) in type theory 15:22:57 hm 15:22:59 tuple 15:23:01 right 15:23:02 because 15:23:08 alise, * is somewhat overloaded :P 15:23:12 |a*b| = |a|*|b| 15:23:17 and also cartesian product 15:23:37 alise, is that * = multiplication for the last one? 15:23:39 plus it meshes well with disjoint union - a+b - |a+b| = |a|+|b| 15:23:42 yes 15:23:48 if we do dependent tuples then we have 15:23:58 wait, does that hold true for C? It doesn't, does it? 15:23:59 |sum x:T, P| = sum x:t, |P| 15:24:02 where P involves x 15:24:07 AnMaster: || is cardinality 15:24:08 not absolute 15:24:24 |sum x:T, P| = sum x:t, |P| --- if P is constant, i.e. doesn't involve x 15:24:26 alise, in " |a*b| = |a|*|b|" ? 15:24:28 then this is just |T|*|P| 15:24:29 AnMaster: yes 15:24:43 so normal tuples are the degenerate case of dependent tuples 15:24:48 dependent function arrows: 15:24:48 well the result is the same for abs() for R though 15:24:59 ??? 15:25:00 cardinality 15:25:02 is about sets 15:25:04 not absolute 15:25:04 well yes 15:25:08 |prod x:T, S| = prod x:T, |S| 15:25:15 if we assume that S doesn't involve x 15:25:17 then we get 15:25:18 but the overloaded syntax gets confusing 15:25:22 |S|*|S|*...|T| times... 15:25:28 so |S|^|T| 15:25:37 we actually say the function arrow is S^T in set theory... 15:25:47 if we assume it involves x of course both of these are more complicated 15:25:54 where ^ is? 15:25:55 but it's cool 15:25:59 AnMaster: exponentiation, obviously 15:26:24 alise, not that obvious since most of the other syntax wasn't :P 15:26:38 well it is not my fault you don't know type theory :) 15:26:53 but sum/product types ar enamed that way because they're basically identical 15:26:55 *are named 15:27:07 they're how you['d define addition/multiplication on things like sets if you had to 15:27:12 alise, It is just that I get confused when the line is possible to interpret sensibly as more than one thing 15:27:16 addition is obviously union - you add all the elements together 15:27:28 AnMaster: learn to disambiguate based on context 15:28:24 alise, well, then ^ could have been XOR as well, not that likely but... 15:29:02 Incredibly unlikely - because |S|*|S|*...|T| times is obviously |S|^|T|. 15:29:11 true 15:41:04 -!- Sgeo_ has changed nick to Sgeo. 15:45:52 -!- lereah_ has quit (Quit: Leaving). 15:55:35 I wish oerjan was here 15:58:49 He was 15:58:53 Don't know when 16:02:27 I mean now 16:05:33 * alise proves False from 16:05:35 Axiom func : nat -> (nat -> bool). 16:05:36 Axiom surj : forall f, exists n, forall x, func n x = f x. 16:05:39 oerjan was right, obviously 16:05:44 just felt like formalising it... 16:06:47 I take it to mean that that either at least one of those axioms is self-contradictory, or they contradict eachother 16:07:11 Wait, surj uses func 16:08:45 -!- MigoMipo has joined. 16:08:58 Sgeo: it's basically just one axiom 16:09:00 basically 16:09:11 if we have a surjective mapping from naturals to functions from naturals to booleans, we're fucked 16:09:12 restated: 16:09:20 there are more functions from naturals to booleans than there are naturals 16:09:59 Informal proof, due to oerjan: Say the mapping is called magic. Consider f n := not (magic n n). 16:10:10 This is a function nat -> bool. 16:10:21 We know that for every function nat -> bool, there is a natural number n such that magic n = that function. 16:10:22 * Sgeo tries to understand what surjective means, based on the code. /me fails 16:10:31 Sgeo: simply the above 16:10:37 Call f's magic number fn. 16:10:43 Now consider (f fn). 16:10:47 = not (magic fn fn) 16:10:50 magic fn = f, so this is 16:10:54 = not (f fn) 16:10:59 So, f fn = not (f fn). 16:11:03 Contradiction. Q.E.D. 16:11:55 Sgeo: basically a function A->B is surjective if for every x in B, there exists a y in A such that f(y) = x 16:12:06 otherwise our nat -> (nat->bool) mapping could just be 16:12:11 \n.\m.true 16:12:56 Sgeo: incidentally the axiom of choice is about surjective functions 16:13:18 it states that every surjective function has a right inverse 16:13:23 or rather is equivalent to such 16:13:27 "right" inverse? 16:13:58 so, for every surjective function f : A -> B, there exists a function g : B -> A such that f(g(x)) = x for every x in B 16:15:39 Sgeo: The formal proof that there cannot exist a surjective function from naturals to functions from naturals to booleans: http://pastie.org/900407.txt?key=w45dbutwoqcuuxwkqnpq 16:16:04 Is this Coq? 16:16:06 I had to define not myself - it seems Coq doesn't have it for booleans. 16:16:06 Yes. 16:16:31 Then the proof just went by picking out what surj says about our f - that func n x = f x 16:16:46 then expanding this to not x = x 16:16:50 tada 16:17:08 here's the steps as it goes: 16:17:11 after the destruction: 16:17:13 x : nat 16:17:14 H : forall x0 : nat, func x x0 = notb (func x0 x0) 16:17:14 ============================ 16:17:14 False 16:17:20 after the notdistinct: 16:17:22 x : nat 16:17:22 H : forall x0 : nat, func x x0 = notb (func x0 x0) 16:17:23 ============================ 16:17:23 func x x = notb (func x x) 16:17:27 then I just apply H and tada 16:17:35 * Sgeo needs to learn Coq before attempting to understand this 16:17:41 (we apply notdistinct because (b <> notb b) is shorthand for (b = notb b) -> False) 16:17:51 (so if we apply it, Coq realises we need to prove (b = notb b) to achieve our goal of False). 16:18:02 (which we can do: because surj tells us it is so) 16:18:25 Sgeo: This also suffices as a proof that the reals are more numerous than the naturals, btw. 16:18:52 Consider a real number as an infinite string of binary bits (it can just end in 0s if it isn't "really" infinite) 16:18:58 (nat -> bool) - f n is the bit at position n 16:19:03 Reals can be treated as functions from .. ah 16:19:08 so (nat -> bool) ~~ real 16:19:17 -!- jcp has joined. 16:19:24 so the proof says that we cannot define a function from naturals to reals such that every real has a corresponding rational 16:19:25 erm 16:19:28 so the proof says that we cannot define a function from naturals to reals such that every real has a corresponding naturla 16:19:29 *natural 16:20:27 -!- lament has quit (Remote host closed the connection). 16:27:23 -!- MizardX has joined. 16:49:30 -!- MigoMipo has quit (Remote host closed the connection). 17:02:16 Agda is crazy 17:14:31 /home/ehird/code/univ.agda:16,8-11 17:14:32 □∏_ is not strictly positive, because it occurs in the 5th clause 17:14:33 in the definition of □_, which occurs in the first argument to □∏_ 17:14:33 in the 5th clause in the definition of □_, which occurs to the left 17:14:33 of an arrow in the type of the constructor all in the definition of 17:14:33 □∏_. 17:14:38 AnMaster: You'd like Agda; it has nice error messages! 17:14:45 Now to figure out what that perfectly well-formed English is trying to tell me. 17:21:22 Hail, alise. 17:21:32 Ho. 17:21:43 You have me on Monday, too - such a special week's end this is. 17:22:24 Whoo. 17:27:50 I was here yesterday, too: but I was too tired to come here. 17:27:54 I was on my iPhone here, though. 17:27:57 So, yeah. 17:36:02 -!- adam_d has quit (Ping timeout: 265 seconds). 17:49:32 -!- ais523 has joined. 17:51:22 alise, "□" is a square box? 17:51:27 yes. 17:51:29 hi alise 17:51:33 right, not font issues then 17:51:35 alise, XD 17:51:37 hello ais523 17:51:42 AnMaster: it's the magical box of interpretation (I probably should have used brackets) 17:51:46 err lol hi alise 17:51:56 hi 17:51:58 ... Man. Microsoft *still* gets buffer overflows. 17:52:13 pikhq: I'm not surprised, that's inherent in C 17:52:20 that it's hard to check for them 17:52:28 ais523: Not really. It's inherent in bad programmers for C. 17:52:30 in theory, Splint can statically prove a program has no buffer overflows, but it's not very good at it 17:52:33 ais523, you can avoid such data structures when possible 17:52:55 of course for a binary stream there isn't any good alternative 17:53:03 I'd say that any programmer bad enough to do that sort of thing shouldn't be allowed to touch C when working. 17:53:15 (and C doesn't really help with providing other good data structures) 17:54:12 anyway, why this? Has there been a new windows exploit recently or what? 17:54:29 Nah, reading about how they've started doing... Fuzz testing. 17:55:27 And seeing bunches of buffer overflows in office. 17:56:05 pikhq: in binary formats, or XML formats? 17:56:32 As it's the latest version of Office, I'm going to guess "both". 17:57:11 buffer overflows in XML is just embarrassing 17:57:14 fuzz testing can be very useful 17:57:42 * AnMaster remembers finding div by zero errors in both cfunge and ccbi early on using a fuzz tester 17:58:01 AnMaster: What's surprising is that they only started doing it. 17:58:07 of course, such code isn't very good at finding anything but crash bugs, and only ones that aren't extremely complex to trigger 17:58:56 hmm, I wasn't online yesterday 17:59:02 any good April Fool's stuff I should look at? 17:59:34 Two in Agora 17:59:34 ais523, google used microweeks amongst other things to measure how long searches took 17:59:56 One good, the other mine 18:00:13 pikhq: Programming in C is nearly impossible for a human! 18:00:18 ais523, gigawatts, parsecs, "shakes of a lamb's tail" and Planck times were used too 18:00:22 hmm, ok 18:00:27 seems surprisingly uncreative for Google 18:00:30 ais523, oh and the RFC was quite funny too 18:00:33 ais523, they did other ones too 18:00:40 ais523, you mean Topeka, right? 18:00:44 what was the RFC this time? 18:00:58 ais523, maps.google.com.au, did directions in Australian slang 18:01:05 alise: I can do it. For many cases not involving stack munging. 18:01:05 s/u,/u/ 18:01:11 (getcontext et al scares me) 18:01:16 pikhq: Yeah, with what error rate? 18:01:24 Google was renamed to Topeka 18:01:26 ais523, oh and the Topeka stuff too yeah 18:01:38 YouTube videos had a TEXTp option 18:01:42 oh yeah that 18:01:49 [not Google] Reddit made everyone an admin 18:01:50 Sgeo: ASCII art? 18:01:53 Sgeo, never got that working, was it flash only? 18:01:55 Fark headlines were acrostics 18:01:59 AnMaster, I.. guess 18:02:01 also, that reddit thing sounds like utter chaos 18:02:03 Topeka? Missed that 18:02:09 Sgeo, as in, couldn't get the html5 stuff to work for it. 18:02:22 AnMaster, I imagine it might be Flash only 18:02:23 alise: Lower than you'd expect, actually. 18:02:32 pikhq: I doubt that highly :) 18:02:39 When using getcontext, nearly 100%. :P 18:02:39 ais523: I think the admin-mode changes were local-only 18:02:58 The admin stuff including infinite upvotes/downvotes 18:03:01 (which leads me to suspect that I should never, ever touch that.) 18:03:09 ais523, the RFC was about a tcp option to mark packet mood 18:03:21 hmm, as in you could perform admin actions but reddit faked the result rather than actually doing it? 18:03:30 ais523, mood would be encoded as a string of ASCII chars making up a smiley 18:03:35 ais523, and stored the result per user, I think 18:03:44 (don't remember if IANA were supposed to assign them or not) 18:03:48 AnMaster: ah, OK 18:03:55 [unless you changed your own headline, I think] 18:03:56 AnMaster: It seems that TEXTp wasn't available in parts of Europe, somebody somewhere said that it worked for him through a US proxy but not from home 18:04:07 and putting unreasonable registration requests onto IANA is standard with April Fools' RFCs, IIRC 18:04:10 ais523, anyway: http://tools.ietf.org/html/rfc5841 18:04:19 Deewiant, hm 18:04:36 ais523: haha, that's great 18:04:39 ais523, check Agora? 18:04:44 Sgeo: I am 18:05:09 -!- adam_d has joined. 18:05:13 Sgeo: the first one where you submitted half the proposal is much funnier, given what happened to Nomicapolis 18:05:35 pikhq: Programming in C is nearly impossible for a human! <-- hm. That raises some interesting questions about Kernighan and Ritchie.... 18:05:41 What happened to Nomicapolis? 18:06:30 Sgeo: there was an attempt to copy B's ruleset to it, but accidentally only the first half was copied 18:06:38 ais523, what did reddit do? 18:06:39 and the resulting ruleset didn't allow rule changes 18:06:44 AnMaster: They can't manage it either, they just only publish their successes 18:06:52 alise, hm... 18:06:55 AnMaster: see above, it's me who was asking rather than answering 18:07:09 ais523, o.O 18:07:11 In fact almost all existing programming languages are completely infeasible for programming which is why we have so many bugs. 18:07:19 That does make the accidental post funny 18:07:24 ais523, I saw the discussion about it, but I was unable to locate the line where it said what they did. Something related to admin I gathered 18:07:30 But people don't want to do a little more work once than do lots and lots of not much work, so they don't use better languages with good type systems. 18:07:30 AnMaster: they made everyone an admin 18:07:40 or at least, to think they were, according to what I was told earlier in this channel 18:07:45 ah 18:07:48 this is all second-hand info, though, and the people who actually told me are still here 18:07:53 which is why I'm confused as to why you're asking me 18:07:55 right 18:07:55 alise: ButbutPOINTERS ARE MORE EFFICIENT 18:08:02 :P 18:08:05 There was a "turn admin on" link for logged in users 18:08:20 It made an [A] thingy appear next to other user's name 18:08:30 Which gave options like ban, x-ban 18:08:33 AGDA I AM CONFUSED 18:08:51 It randomly did things like 16.14% shill account 18:08:59 Let you "edit" headlines 18:09:30 Upvote and downvote a single thing repeatedly. 10 or more repeated upvotes (not sure if it was 10) made it an upvote to infinity 18:09:38 Similar in the other direction 18:09:56 I might be forgetting some stuff 18:10:15 personally, I think a language which is C + a proof that it doesn't contain buffer overflows, null pointer derefs, etc. is entirely feasible 18:10:24 * ais523 continues to be annoyed at Splint 18:10:33 for purporting to do exactly what I want, and failing at it 18:10:49 Repeated variables in left hand side: n 18:10:52 I know Agda, god damn! 18:11:01 pikhq, Nowdays I seldom use C unless I'm fixing code already written in C. I guess I still use C if I need to do something low level enough that a high level language is impractical. 18:11:16 Watching Ark of Truth now 18:11:56 How the hell do you do dependent pattern matching in this thing? 18:12:06 head (witness (S n) f) (successor n) = ? 18:12:09 complains about repeated ns 18:12:17 ais523, splint is a good idea. In practise I found it useless. Mostly because it generates parse errors on even the most basic C99 code. And sometimes also on perfectly fine C89 code. 18:12:33 AnMaster: even without parse errors, some of its decisions are just bizzare 18:12:43 sjgdflkgjdfhdklgfhg 18:12:54 ais523, iirc I managed to get splint to segfault when running it on all C files in a directory. The problematic file was one generated by flex. Never found out what in that file caused it 18:12:57 e.g. you can move a closing brace of an inner scope one line without changing the meaning of the program at all, but with a visible effect on splint's output (warning vs. no warning) 18:13:29 ais523, huh? 18:13:33 ais523: Well, lint-type things tend to be about style as much as semantics 18:13:38 ais523, what is it that it warns about then? 18:13:45 AnMaster: my guess is, it's just wrong 18:13:57 I can't see any explanations for that behaviour other than a bug in Splint 18:14:04 ais523, if it is just about indention style or something like that, it seems reasonable 18:14:14 and yes, splint is buggy and unmaintained 18:14:34 AnMaster: no, it was about memory leaks 18:15:22 Well that's a bit messed up, isn't it :-P 18:16:02 yes 18:16:29 I found clang in static analyser mode moderately useful btw. Doesn't detect a lot of stuff yet and somtimes it "crashes" 18:16:34 Not as in coredump, but as in assert(0 && "Message that only makes sense to a LLVM developer"). 18:17:08 (they seem to love assert(0 && "string") btw) 18:17:23 Would you prefer assert(!"string")? :-P 18:17:56 heh 18:18:10 Deewiant, I would prefer never seeing either when running the program :P 18:18:16 I HAAAAAAAAAAAATE THIS 18:18:18 Well yeah 18:18:24 But you can't have everything :-P 18:18:50 THIS DOESN'T WORK 18:20:07 however, clang in static analyser mode seems to have fairly low number of false positives for me (less than splint certainly!). And it doesn't warn about completely irrelevant stuff... 18:20:40 can't really tell anything about number of false negatives. A bit hard to know unless you wrote the code with intentional bugs to test the static analyser... 18:21:09 alise, define "THIS" 18:21:22 Deewiant, why not btw? 18:21:35 AnMaster: stuff 18:21:50 alise, ah. 18:22:05 AnMaster: Dunno 18:22:16 alise, very precise description that 18:23:06 Deewiant, so you stated that I can't have everything without having any good explanation for why that is the case? 18:23:50 It seems to be the way the world works 18:23:58 ah 18:24:02 I can't justify why the world works that way 18:24:07 right 18:24:39 hm I first considered asking "why not" to that as well, but that would have been silly 18:28:25 hmm, I don't believe the fuzz-testing Office thing, the article about it was posted on april 1 and claims Microsoft used other people's Windows computers as a botnet 18:29:04 -!- Oranjer has joined. 18:31:18 Hmm. 18:32:34 Alex Brown deciding that OOXML is doomed to failure seems to be not an april fool's joke, though 18:32:55 and that's the same sort of event as Miguel de Icaza noticing that Mono has an unclear patent situation 18:36:20 "You have watched 72 minutes of video today." 18:41:34 -!- MigoMipo has joined. 18:49:20 -!- Oranjer has left (?). 18:54:42 -!- alise has quit (Ping timeout: 258 seconds). 19:00:25 * Sgeo wants to experiment with unsafeInterleaveIO 19:05:46 what does that do? 19:06:12 Deferrs the IO operation until the value it gives is needed 19:06:20 Haven't actually tried it yet 19:06:45 wth, I only get an usable wlan signal on my laptop atm if I hold my hand like I was about to change the angle of the lid... 19:06:48 that's weird 19:07:05 Sgeo: haha 19:07:10 so presumably it only works on input? 19:07:43 the difference is huge too, like -79 dBm vs. -90 dBm for the signal. (My card doesn't report the noise correctly, so no idea about the SNR) 19:07:45 ais523, well, say, an IO Integer can be made of something that outputs then inputs, so the output SHOULD be deferred until the input is needed 19:07:48 That's what I'm testing 19:07:59 Sgeo: ah 19:08:12 I'll paste the results 19:08:26 ais523, I assume you will be able to explain this 19:08:38 AnMaster: Your hand scatters/reflects more of the signal? 19:08:47 AnMaster: probably you're reflecting the signal 19:08:57 human skin is pretty reflective wrt microwaves 19:09:06 ais523, it doesn't work unless I actually touch the plastic on the lid though 19:09:41 -90dBm is 1pW and -79 dBm is ~12.6pW... So about tenfold difference... 19:10:01 if I hold my hand slightly away (a few mm I guess, hard to measure), I get the bad signal 19:10:26 hm 19:11:35 Ilari, is that p as in pico? 19:11:46 oh btw, what does the m stand for in dBm? 19:12:13 The "m" there denotes the reference power is 1 mW. 19:12:16 AnMaster: dB relative to mW. That p was supposed to be multiplier for 10^-12... 19:12:35 Ilari: why convert? 10 dBm is a tenfold difference 19:12:39 you don't need to convert back into watts 19:13:39 fizzie, reference as in? 19:13:48 AnMaster: 0dBm => 1mW 19:13:50 ah 19:14:08 ais523, http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24603#a24603 19:14:20 hm, wlan signals are _extremely_ weak then... 19:14:30 AnMaster: Yes, dB is a dimensionless unit; -90 dB could be anything, as long as it is 10^-9 of something. 19:14:41 dBm is the only case I have seen where unit used as reference is not written completely (there's dBV, dBW, etc...) 19:14:47 Sgeo: ah, it didn't work? 19:14:56 ais523, it worked perfectly! 19:14:57 Look at it 19:15:10 It only did the interleaved one when it was needed 19:15:18 oh, I didn't notice the first wasn't interleaved 19:15:45 The wikipedia dBm page has rather nice table of values; "typical received signal power from a GPS satellite" is listed as -127.5 dBm, or 178 aW. That's not a whole lot. 19:15:47 -!- alise has joined. 19:16:08 fizzie, isn't dB basically "the range we want is awkwardly large, lets use something logarithmic"? ;P 19:16:16 alise, I'm in love with unsafeInterleaveIO 19:16:53 Sgeo: it is as unsafe as the name suggests. 19:17:01 Howso? 19:17:06 fizzie, for ratios that is 19:17:14 Sgeo: it breaks Haskell's purity 19:17:22 It is somewhat less unsafe than unsafePerformIO, but still unsafe. 19:17:26 though I wrote that above... seems I only thought it 19:17:28 Shun it. 19:17:35 getContents is acceptable in small utilities but not large programs. 19:17:52 Why? 19:17:53 Sgeo: It means that you can suddenly have errors occuring in any function. 19:17:58 presumably, because if you use it twice it might only run once 19:18:01 what does the "interleave" in it signify? 19:18:02 Sgeo: Because it breaks Haskell's purity. 19:18:09 Why not just use unsafePerformIO if you don't care about that? 19:18:14 I meant, how does it break Haskell's purity? 19:18:16 oh, that's unsafePerformIO 19:18:17 AnMaster: basically it splits off a lazy thread of IO 19:18:17 AnMaster: Side effects are interleaved with pure code. 19:18:29 so unsafeInterleaveIO (... read a file byte by byte) 19:18:30 alise, ah 19:18:32 produces a lazy string of the whole file 19:18:33 Satellite signals are usually extremely weak. That's why one usually sees modulations that have low SNR requirement (like QPSK). 19:18:36 only read as required by evaluation 19:19:02 consider an unsafePerformIO call that does output 19:19:02 then random pure code could cause unpredictable output 19:19:06 depending on the evaluation semantics of the implementation 19:19:09 all haskell specifies is non-strict 19:19:17 Sgeo: getContents >>= return foo -- You get errors in foo. 19:19:25 pikhq/alise: and the "perform" in the other one signifies that it isn't lazy then I guess? 19:19:46 AnMaster: unsafeInterleaveIO :: IO a -> IO a 19:19:53 unsafePerformIO :: IO a -> a 19:19:57 aha 19:19:59 unsafeInterleaveIO is just return (unsafePerformIO x) 19:20:08 unsafePerformIO is, of course, an abomination of the highest order. 19:20:10 Wait, what's that in do notation? do { a <- getContents; return a} 19:20:21 alise, ouch, unsafeInterleaveIO seems very nasty 19:20:25 why does haskell even have it? 19:20:29 do {a <- getContents; return foo } 19:20:32 where foo is a pure expression 19:20:37 *do { a <- 19:20:47 AnMaster: because it is useful: consider interact :: (String -> String) -> IO () 19:20:48 it is 19:20:58 ah 19:20:59 interact f = do s <- getContents; putStr (f s) 19:21:06 AnMaster: getContents lazily returns all of stdin 19:21:08 this is convenient 19:21:12 it is a hack - but it is convenient 19:21:13 AnMaster: unsafeInterleaveIO is useful for various small utilities. 19:21:15 so the answer is convenience 19:21:16 hm 19:21:32 Oh, because while it's, with getContents, lazily going through the file, trying to get more out of the "list" may cause an IO error? 19:21:37 are the usual "safe" IO facilities implemented using these unsafe ones internally? 19:21:57 AnMaster: No, the unsafe ones are done in terms of the safe ones. 19:22:11 AnMaster: Neither. 19:22:13 pikhq: that's nonsensical 19:22:19 pikhq, err. It isn't 1 April any more... 19:22:23 alise, maybe pikhq was being sarcastic? 19:22:25 AnMaster: unsafePerformIO is just an internal thing that hacks around with the uber-internal IO data structure. 19:22:28 The default IO operations are primitives. 19:22:36 alise, hm 19:22:40 The IO data structure is not exposed unless you import internal GHC modules. 19:22:49 alise: getContents is done in terms of unsafeInterleaveIO and 'safe' IO operations. My statement of this came out confused. 19:22:54 Is my unterstanding correct? 19:22:55 pikhq: Right. 19:23:02 Sgeo: pretty much 19:23:07 it's more insidious but that is one special case 19:23:18 Examples of insidiousness please? 19:23:39 alise, hm what language is the io primitives implemented in? 19:23:48 it would be neat if it was haskell 19:23:52 but I guess it can't be then 19:23:56 AnMaster: They're part of the Haskell runtime, I'm pretty sure. 19:24:03 Erm. Part of the GHC runtime. 19:24:08 The one bit of GHC that's not in Haskell. 19:24:11 AnMaster: what pikhq said 19:24:13 ah 19:24:14 although the IO data structure is defined in haskell 19:24:20 and GHC itself is written in haskell (but the RTS is C) 19:24:24 (exception: random things like the evil mangler) 19:24:25 GHC is really gnarly code 19:24:31 some parts define the Monad class themselves 19:24:35 because haskell didn't have it at the time! 19:25:24 I assume the stuff not implemented in haskell is kept to a minimum? 19:25:48 What, the RTS? 19:25:54 It's quite big but it's also rather good. 19:25:58 hm 19:26:02 And most of the Prelude is in Haskell. 19:26:05 Almost all, in fact. 19:26:11 It's just auto-specialised behind the scenes. 19:29:20 I just start experimenting with unsafeInterleaveIO, and I get told to avoid it :( 19:29:51 Well, it is bad. 19:31:24 My computer just started singing "Good Morning" to me 19:32:23 :D 19:33:20 Dear Megavideo: I waited 54 minutes. Now please let me continue watching my video 19:34:57 Metamath is cool 20:09:14 -!- Oranjer has joined. 20:31:41 -!- alise has quit (Ping timeout: 258 seconds). 20:37:38 You find the strangest things when digging through old home directories; here's a "cp" replacement that copies files by starting two processes, having the first read the input file, the second write the output file, and doing all communication between processes by using the SIGUSR1 and SIGUSR2 signals as the "dit" and "dah" symbols for morse code, and suitable pauses to distinguish words. 20:38:24 I'm not sure why it doesn't just use those two signals as "on" and "off" events (or just one signal to toggle) and timing for even the dit/dah distinguishement; but it's reasonably silly as-is. 20:38:57 Sounds fun 20:42:10 Reminds me of programming assignment from one course... 20:45:06 fizzie, so it doesn't work for non-text files? 20:45:28 fizzie, as for using timing: would be unreliable on a non-realtime OS 20:45:29 AnMaster: Right. But be honest, how often do you need to copy non-text files anyway? Almost never! 20:45:43 Oh, but it's not a problem if you use long enough pauses. 20:45:48 fizzie, more often than text files! 20:46:02 only cp command today was to copy a kernel image to /boot 20:46:12 20 milliseconds between bytes and 100 milliseconds between words, it seems. 20:46:26 I don't think I've used cp for about a week now 20:46:38 I use mv a lot more often than cp 20:46:40 I don't copy very often; I did yesterday, but via the GUI 20:53:36 -!- alise has joined. 21:00:12 Gregor: Think maybe you could add the &butiwouldratherbereading= feature to Lonely Dino? 21:00:41 Shouldn't be /too/ difficult, I could cut up the images as they are ... 21:00:55 Mmkay. 21:02:49 -!- adam_d_ has joined. 21:06:17 -!- adam_d has quit (Ping timeout: 265 seconds). 21:06:27 butiwouldratherbereading? 21:06:35 sounds like an April Fool's URL param 21:06:54 That was a fun April Fool's Day, you guys! To replace T-Rex and company with Reginald and Beartato from Nedroid, I used the trick of a transparent PNG file that masked out the existing graphics. Then, I was free to put any new graphics on top! The empty mask file is here, if you want to play with it. 21:06:55 And play with it you might want to, because although I've turned off the image replacement by default, it's still available on the site! Just add "&butiwouldratherbereading=nedroid" to any Dinosaur Comics URL and you'll see something like this. 21:07:03 http://www.qwantz.com/index.php?comic=290&butiwouldratherbereading=nedroid 21:07:06 amazing 21:07:42 http://www.qwantz.com/index.php?comic=35&butiwouldratherbereading=nedroid 21:07:45 other params: achewood, pennyarcade, wigu, pokey 21:07:56 http://www.qwantz.com/index.php?comic=&butiwouldratherbereading=pokey -- thus creating the best comic strip conceivable 21:08:17 Gregor: MISSINGNO 21:08:30 ...? 21:08:51 more parameters: 21:08:53 xkcd 21:08:56 problemsleuth 21:08:58 daisyowl 21:09:11 also 21:09:11 onewheretrexswearsmore 21:09:27 http://www.qwantz.com/index.php?comic=548&butiwouldratherbereading=daisyowl 21:12:06 * Sgeo decides that the best way to understand the State monad is to read the source 21:12:56 it's pretty comprehensible anyway 21:13:08 it's basically what you do in Haskell if you really want to make it an imperative lang 21:13:26 although, more fun would be some sort of State variant that stored an associative array with ways to update individual elements 21:13:47 Like the ST monad except with STRefs only storing one type? 21:14:14 that way, you could compile imperative langs almost literally 21:14:25 -!- oklopol has quit (Ping timeout: 248 seconds). 21:15:43 Sgeo: It's nothing to do with ST. 21:15:49 ST is an entirely different strange beast altogether. 21:16:14 ST is a safe IO monad. 21:16:22 alise, different from State [I know], or different from what ais523 is describing [please explain]? 21:16:25 Well, just the reference part. 21:16:27 Its semantics are odd. 21:16:30 Sgeo: oh, I see 21:16:32 -!- kar8nga has joined. 21:16:37 alise: Well. Yes. That's what makes it safe. 21:16:41 State is simply - you know how you could pass an extra argument to every function, Sgeo? 21:16:47 And just call with a modified argument to change state? 21:16:55 State just wraps that into a monad so you don't have to pass it around. 21:16:58 The semantics are identical, 21:16:59 State is pretty much the purest form of a Haskell monad, I think 21:17:00 *identical. 21:17:03 alise, I know what it is, I'm trying to understand how it works, which is why I'm reading the source 21:17:07 it's a monad, and the monad chain is accessible and user-defined 21:17:36 as opposed to most monads which are designed to stop you arbitrarily changing the underlying chain, or even determining anything about it except via accessors 21:17:59 Monads are so pass. 21:18:43 yep, they just get all the press because they're unusual to people who don't know Haskell 21:19:33 Dependent types are the shiznit. 21:19:51 wait, people actually use the word "shiznit"? 21:20:15 In theory, I could make my own function that is in the State monad that has state and a value passed to it, without using "get" and "put" 21:20:16 I have talked to people who think monads are a gargantuan, subtle, and strange library. 21:20:29 ais523: Especially when talking about mathematics! 21:20:37 Sgeo: Yes. 21:20:37 Sgeo: Of course. 21:20:52 Sgeo: that's what it's /for 21:20:53 / 21:20:55 The State monad is a fairly simple thing. That'd be pretty easy to do. 21:21:12 ais523: no, he means 21:21:16 accessing state directly using the constructors 21:21:20 The only thing the State monad grants you is nice sugar for that. 21:21:37 alise: ah 21:21:43 Just to clarify my understanding quickly, a >>= b >>= c is parenthesized as a >>= (b >>= c) ? 21:21:56 Sgeo: It does not matter. 21:22:02 The monad laws require the two to be equal. 21:22:09 Sgeo: Yes, but it does not matter for any proper monad. 21:22:24 * Sgeo mindbreaks 21:22:41 That's one of the monad laws. 21:22:57 Which way of thinking about it would make the definition of >>= for State easier to understand? 21:22:59 Sgeo: why do you struggle with simple identities? 21:23:02 Neither. 21:23:17 Sgeo: think of "a >> b" as "do a then b" 21:23:25 then it's obvious that a >> b >> c the parens don't matter 21:23:34 and >>= is just a version where you can grab a return value 21:23:57 alise, surely there was a time when you struggled with this stuff. When was that? 21:24:32 Sgeo: I picked up monads pretty quickly 21:24:34 [Not necessarily THIS stuff in particular, but Haskell in general, or specific parts of Haskell] 21:24:34 Oh, absolutely, I struggled with monads. 21:24:55 But I just seem to notice a sort of pattern where you have issues abstracting out simple laws to understand instances satisfying those laws. 21:25:02 Maybe I'm wrong. 21:25:17 Certainly I must have my own flaws in understanding that I do not myself notice. 21:25:54 Rule one with monads: they are simpler than you think. Rule two: they do nowhere near as much as you think. Rule three: there is no magic. 21:26:41 syntactic sugar doesn't count as magic? :D 21:26:45 Rule four with monads: you may need more pixie dust. 21:27:33 Sgeo: That's no magic. 21:27:38 Gregor: Hah. 21:30:25 * Sgeo thinks he gets State's >>= 21:33:11 I wish fax was here 21:33:15 -!- comex has quit (Ping timeout: 268 seconds). 21:33:25 -!- comex has joined. 21:34:04 hi comex 21:34:50 alise, fax is in #haskell 21:34:57 Ah. 21:35:10 I wish fax was here // Awwwww 21:35:19 to ask about type theory kthx 21:38:33 -!- oerjan has joined. 21:45:31 Now, I need to learn to understand Functors and Arrows 21:46:04 Functors are trivial. 21:46:09 As are arrows. 21:46:09 alise, about my learning, I've noticed that I like to read a lot of different tutorials 21:46:15 if we have a surjective mapping from naturals to functions from naturals to booleans, we're fucked <-- note that "naturals" can be replaced with any set there 21:46:27 Functors are objects where fmap makes sense. 21:46:33 oerjan, the real numbers don't make up a set? 21:46:53 Sgeo: _in both places_ 21:47:33 >.> 21:47:48 it is indeed true (in ZFC) that there is no surjective mapping from reals to functions from reals to booleans. 21:48:47 also booleans can be replaced with any set that has a self-map without fixpoints (i.e. any set with at least 2 elements in ZFC) 21:49:17 How much of that relies on the C in ZFC? 21:49:23 (i said it that complicatedly because i'm not sure if those are equivalent concepts in ehird's type theory stuf) 21:49:28 oh, nothing at all 21:49:31 *stuff 21:49:58 -!- pikhq has quit (Read error: Connection reset by peer). 21:50:01 * alise generalises it not to have nat; I realised it didn't need it but didn't think to formalise that 21:50:13 it was just my default theory for it. in fact it is essentially true for constructive set theory as well, which is why alise and i started discussing it 21:51:02 it is true in type theory of course 21:51:05 certainly so since I formalised it 21:51:40 in my intuition type theory is almost the same thing as constructive set theory. 21:51:50 Almost, but not quite. 21:51:54 Type theory has an equality type for instance. 21:52:09 And set theory, well, doesn't really have "dependent" sets in any meaningful sense. 21:52:13 i suppose you could have a simpler constructive set theory than that 21:52:15 -!- coppro has joined. 21:52:26 Plus things like quotient sets and the like - but the fundamental theories, sure. 21:52:31 oerjan: http://pastie.org/900901.txt?key=gfjqr1tonuchocnutw2dqw 21:53:23 I am surprised Coq does not already have notb/notdistinct. Or maybe it does? 21:53:30 in fact this is probably a theorem of pure lambda calculus, and the halting theorem, godel's incompleteness theorem and cantor's theorem are all special instantiations of it (diagonalization) 21:54:07 Oh, wait. 21:54:09 It exists. 21:54:10 negb 21:54:27 Diagonalisation is beautiful. 21:56:00 -!- coppro has quit (Client Quit). 21:58:35 oerjan: http://pastie.org/900907.txt?key=ny2be0sujqn23hvkcty1fa 21:58:45 Could generalise it from bool if you want, but... 21:59:41 mhm 21:59:47 -!- pikhq has joined. 22:01:44 Should I consider rewriting some of my Python stuff in Haskell? 22:02:01 Actually, most of it is on my old computer, so meh 22:02:20 oops = 22:02:20 let e := magic_surj in 22:02:20 match e (fun n : T => negb (magic n n)) with 22:02:20 | ex_intro x H => 22:02:20 let n := no_fixpoint_negb in 22:02:21 match n (magic x x) (sym_eq (H x)) return False with 22:02:22 end 22:02:24 end 22:03:18 Hey, Internet's back! 22:06:10 -!- tombom_ has joined. 22:08:48 -!- pikhq has quit (Read error: Connection reset by peer). 22:09:02 yay we managed to outrun him again 22:09:12 -!- sshc has quit (Quit: leaving). 22:09:51 -!- tombom has quit (Ping timeout: 260 seconds). 22:10:55 -!- kar8nga has quit (Read error: Connection reset by peer). 22:12:19 -!- coppro has joined. 22:15:06 -!- coppro has quit (Client Quit). 22:20:08 unsafeInterleaveIO is just return (unsafePerformIO x) 22:20:38 except with a guarantee of not evaluating more than once 22:21:19 -!- coppro has joined. 22:22:35 i used it in Malbolge Unshackled to create an infinite lazy datastructure containing IORefs. afaik that usage is perfectly safe. 22:22:57 unsafePerformIO can't get evaluated more than once? 22:23:04 erm, things made with 22:23:19 in theory it can 22:24:50 haskell compilers are perfectly permitted to inline pure code in multiple places 22:34:54 (Hence "unsafe" PerformIO) 22:35:30 I meant unsafeInterleaveIO 22:35:30 Heh, that's funny; if you have alsamixer open, and then unplug the (USB) sound card it's controlling, you get http://pastebin.com/NL8Sew2t 22:37:33 ha 22:37:40 Sgeo: indeed, it would be useless for its purpose if it could be evaluated more than once. imagine do l <- getContents; return (l,l) returning two different lists consisting of unpredictable parts of input 22:38:18 and getContents uses unsafeInterleaveIO internally 22:38:29 (or something very close to it) 22:39:21 Isn't there some function (Monad m) => m m a -> m a? 22:39:28 yes, join 22:39:36 *m (m a) 22:39:58 13:21:43 Just to clarify my understanding quickly, a >>= b >>= c is parenthesized as a >>= (b >>= c) ? 22:40:01 13:21:56 Sgeo: It does not matter. 22:40:04 13:22:02 The monad laws require the two to be equal. 22:40:27 no, it must be (a >>= b) >>= c, the other one isn't even well-typed 22:40:44 !haskell :i (>>=) 22:41:04 damn egobot always disappearing 22:41:06 What does it do with IO, and could unsafeInterleaveIO be written without unsafePerformIO using join somehow? 22:41:18 oerjan: oh of course 22:41:32 (>>=) :: (Monad m) => m a -> (a -> m b) -> m b 22:41:34 Sgeo: ?, and no 22:41:35 --from memory 22:41:49 Sgeo: it defers running the actual action until the result is needed. no way of doing that with join. 22:42:20 Sgeo: it was the fixity/precedence i was looking for, actually 22:42:34 Oh 22:42:49 infixl 1 22:42:57 so left as you'd expect 22:43:03 * Sgeo still gets confused by fixity 22:43:22 it's associativity and precedence bundled into one 22:43:37 Then I'm confused by associativity 22:43:47 where associativity is in the syntactic sense 22:44:21 basically, should a >>= b >>= c mean (a >>= b) >>= c, a >>= (b >>= c) or be disallowed altogether? 22:44:37 those are infixl, infixr and infix, respectively 22:44:41 Which is which.. oh 22:45:26 which side you start combining terms from, essentially 22:45:49 HASKELL HAS NO CONCEPT OF FIXITY 22:45:50 What happens when you mix in other operators of equal precedency? 22:46:17 Sgeo: note that those first two are foldl (>>=) [a,b,c] and foldr (>>=) [a,b,c] respectively 22:46:29 HASKELL HAS NO CONCEPT OF NULLITY 22:46:35 actually it does, I was thinking ARITY 22:46:38 or would be, if they were compatible types 22:47:40 -!- tombom_ has quit (Quit: Leaving). 22:47:43 Sgeo: join x intuitively runs x, then runs the result immediately as an action in the same monad. no deferring involved. 22:48:03 and you cannot simulate it without some special function 22:48:41 (of course monads other than IO may not strictly obey the concept of running things immediately) 22:49:45 What are Arrows? 22:49:54 a type class 22:51:12 a kind of strange bundling of features afaict 22:51:35 they're morphisms in a category, so functions are your main example. 22:52:00 you can compose them with >>> . for functions f >>> g means g . f 22:52:09 -!- Deewiant has quit (*.net *.split). 22:52:09 -!- wareya has quit (*.net *.split). 22:52:09 -!- Slereah has quit (*.net *.split). 22:52:34 but they also include operations to combine stuff "in parallel", using pairs 22:52:36 -!- dixon` has joined. 22:52:39 Haskell blows ass 22:52:42 -!- dixon` has left (?). 22:52:58 e.g. (f &&& g) x = (f x, g x) and (f *** g) (x,y) = (f x, g y) 22:53:11 (again using the function example) 22:53:14 Well, I'm convinced. Let me brain bleach all my Haskell knowledge. 22:53:25 -!- Deewiant has joined. 22:53:25 -!- wareya has joined. 22:53:32 -!- Slereah has joined. 22:53:42 hey talk about the monomorphism restriction 22:53:51 also talk about how unstandard GHC is 22:54:11 hmm, I don't understand that restriction, as it goes away if you add a type signature 22:54:21 that says just what the compiler had inferred anyway 22:54:30 which is why you disable it 22:54:37 What _is_ it? 22:54:38 why is it there? 22:55:09 ais523: the basic idea is that if you have an equation of the form x = ... then you should be able to expect the right side not to be evaluated more than once, in practice 22:55:25 I don't see how that's related... 22:55:55 but if the type involves type classes, then the right side can only be evaluated after you pass the actual type dictionary into it 22:56:13 ah, OK 22:57:11 so it must be evaluated at least once for each type it's used with, and it may be hard for the compiler to catch all uses of the same type so even that might be duplicated 22:57:34 that's my understanding of the x = ... case. 22:57:58 Semantically that should be equiv unless unsafePerformIO is involved, right? 22:58:34 semantically it's irrelevant 22:59:12 for the (x,y) = ... and similar cases there is the additional complication that the type of x or y separately might not determine the full type dictionaries to use in the right part, so in that case you're not even allowed to override with an explicit type signature 22:59:52 although the compiler could try to be cleverer there, the standard does not demand it 23:00:24 Sgeo: yes. but someone has apparently coughed up an example where this causes exponential blowup in execution time 23:00:27 iirc 23:00:44 this is why I just use C 23:01:24 as for nonstandardness of GHC i don't know, unless you mean its heap of extensions which are optional... 23:01:34 """optional""" 23:01:52 return quadrescence :: IO Chatter 23:02:38 Sgeo: that doesn't even make sense 23:02:40 nice try tho 23:03:13 ?? 23:04:31 oerjan: optional aka turned on by default 23:05:11 -!- fax has joined. 23:06:15 well i don't use ghc so i don't know, i thought you had to use a flag for almost everything 23:06:36 oerjan, what do you use? Hugs? 23:07:14 Sgeo: oerjan is sane and uses Standard ML with MLton 23:07:18 (i've recently downloaded the Haskell Platform, but i just saw that winghci will be bundled only with the coming release so i'm waiting a bit) 23:07:28 other than that, winhugs 23:08:35 (i got seriously annoyed when ghci insisted on waiting for the gvim editor to quit and i see winghci avoids that) 23:09:18 (gvim _tries_ to fork itself to avoid such unless you add a flag, but ghci somehow manages to thwart it) 23:09:39 oerjan: why isn't Monad a "subtype" of Functor? (why it doesn't inherit from the Functor typeclass) 23:09:54 Quadrescence: hysterical raisins 23:10:00 what? 23:10:10 "historical reasons" 23:10:13 oh 23:10:39 -!- Deewiant has quit (*.net *.split). 23:10:39 -!- wareya has quit (*.net *.split). 23:10:44 Functor was invented after Haskell 98 was standardized 23:11:05 mathematical functors and monads weren't invented with Haskell 23:11:19 but at first haskell only had monads 23:11:26 anyway, I'm feeling so sick that I had better go to bed now 23:11:27 and they've never managed to implement the "case class" feature that is supposed to make things seamless 23:11:27 goodbye 23:11:32 -!- alise has quit (Quit: Leaving). 23:11:45 er it's not case class 23:11:53 * oerjan is channeling scala 23:12:42 Is Scala any good? 23:12:48 Or should I stick with Haskell? 23:12:56 Scala is great 23:13:06 i don't know i've just read about it's case classes 23:13:08 It has type safety, runs on the JVM, object oriented 23:13:16 can run on the android platform 23:13:37 still functional 23:13:47 Quadrescence: as of now you only need to implement (>>=) and return to make a Monad. and haskell doesn't currently have a feature that allows you to deduce a _superclass_ method (Functor's fmap) from that, that's what this class something feature would do 23:14:42 -!- wareya has joined. 23:14:44 they would also like to put Applicative in between, there 23:15:10 -!- adam_d_ has changed nick to adam_d. 23:16:29 -!- Deewiant has joined. 23:18:00 there's a lot of duplicated functionality between Control.Applicative and the older Control.Monad, in fact i once counted there were only a handful or so of functions in Control.Monad which were _not_ generalizable to Applicative 23:19:40 some of that is in Data.Traversable as well iirc 23:20:22 -!- MigoMipo has quit (Remote host closed the connection). 23:20:48 -!- Deewiant has quit (*.net *.split). 23:22:40 -!- Oranjer has left (?). 23:23:06 and a bit in Data.Foldable 23:24:00 *its ^^^^^ 23:24:14 -!- Deewiant has joined. 23:34:50 I dont know how to compute the product of gaussian periods 23:37:18 * oerjan looks it up 23:37:39 -!- pikhq has joined. 23:39:50 * oerjan suspects a connection with harmonic analysis of finite abelian groups 23:45:22 INTERNET 23:46:06 -!- Oranjer has joined. 23:46:28 ET INTERN 23:48:44 if z^5=1 what is the value of z+2z^2+z^4 ? 23:50:00 apparentnyl it's always a rational, but it's not... 23:50:11 fax: What's the type of z? 23:50:25 complex number 23:50:31 complex real* 23:51:30 I think -1=(z^2+z^4)+(z^3+z^1)=x1 + x2 should mean that x1*x2 is a rational 23:52:57 oerjan: HAWT 23:53:33 It's a good thing Gore created the Internet instead of Clinton, or it would have been the Intern-net *BA-DUM CHING BAD JOKE* 23:53:38 -!- pikhq has quit (Read error: Connection reset by peer). 23:55:30 Data.Complex> [z+2*z^2+z^4 | let r = mkPolar 1 (pi*2/5) , z <- map (r^) [0..4]] 23:55:50 [4.0 :+ 0.0,(-1.0) :+ 1.17557050458495,(-1.0) :+ (-1.90211303259031),(-0.999999999999999) :+ 1.90211303259031,(-1.0) :+ (-1.17557050458495)] :: [Complex Double] 23:56:17 :S 23:56:24 what about z^2+z^3? 23:56:50 Data.Complex> [z^2+z^3 | let r = mkPolar 1 (pi*2/5) , z <- map (r^) [0..4]] 23:56:50 [2.0 :+ 0.0,(-1.61803398874989) :+ 1.11022302462516e-016,0.618033988749895 :+ (-1.11022302462516e-016),0.618033988749895 :+ (-1.11022302462516e-016),(-1.61803398874989) :+ 2.22044604925031e-016] :: [Complex Double] 23:57:06 seems to be real 23:57:10 what the hell 23:57:16 oh 23:57:25 z^2 is the conjugate of z^3 23:57:46 ooh 23:57:48 since they're inverses and on the unit circle 23:58:10 so it's really just Re (2*z^2) 23:58:17 -!- pikhq has joined. 2010-04-03: 00:00:28 -!- pikhq has quit (Read error: Connection reset by peer). 00:03:45 -!- pikhq has joined. 00:04:24 -!- pikhq has quit (Read error: Connection reset by peer). 00:05:04 apparently mkPolar 1 is also known as cis 00:05:21 yes 00:05:27 "cos + i sin" 00:05:51 im pissed off about this cyclotomics 00:06:01 yeah i know, i meant it was a defined haskell function 00:07:07 hm 00:07:23 -!- FireFly has quit (Quit: Leaving). 00:08:04 z^5 = 1 and not z = 1 means z^4 + z^3 + z^2 + z + 1 = 0 fwiw 00:08:25 i suppose that's one of the results, but it also is simply polynomial division 00:08:49 well 00:08:52 z^4 + z^3 + z^2 + z = -1 00:09:29 but we should be able to extract two sequences, x1 = z^4 + z^2, x2 = z^3 + z (say) such that x1+x2=-1 & x1*x2 = 00:09:35 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:10:13 ah 00:10:25 it doesn't seem to be true though :( 00:10:49 well z and z^4 are also conjugate, so z+z^2 and z^4+z^3 are conjugate 00:11:06 and multiplying conjugates at least gives a positive real 00:11:20 2.6180339887498945 00:11:36 (that is 1+phi, which is not rational) 00:11:58 so I'm a bit lost now as for what I should do 00:12:03 another option would be z+z^3 and z^4+z^2 00:12:16 well that gives 0.38196601125010515 00:12:30 which is 1/2.6180339887498945 00:13:29 -!- pikhq has joined. 00:13:49 well i don't know this stuff, anyway 00:16:04 cyclotomic polys are easy 00:16:05 jeez 00:17:51 !hs let w = exp (2*pi*sqrt(-1)*(1/17)) :: Complex Double in (sum $ map (w^) [3,10,5,11,14,7,12,6])*(sum $ map (w^) [9,13,15,16,8,4,2,1]) 00:17:55 !haskell let w = exp (2*pi*sqrt(-1)*(1/17)) :: Complex Double in (sum $ map (w^) [3,10,5,11,14,7,12,6])*(sum $ map (w^) [9,13,15,16,8,4,2,1]) 00:17:59 `haskell let w = exp (2*pi*sqrt(-1)*(1/17)) :: Complex Double in (sum $ map (w^) [3,10,5,11,14,7,12,6])*(sum $ map (w^) [9,13,15,16,8,4,2,1]) 00:18:02 egobot is not here 00:18:42 (-4.0) :+ (-5.06434096082401e-016) :: Complex Double 00:20:10 you may try privmsg'ing lambdabot. prepend with "> " 00:20:23 *Galois Data.Complex> multiplicativeGroupGenerator 52 00:20:23 *Galois Data.Complex> map(\i->2^i`mod`5)[1..4][2,4,3,1] 00:20:23 *Galois Data.Complex> let w = exp (2*pi*sqrt(-1)*(1/5)) :: Complex Double in (sum $ map (w^) [2,3])*(sum $ map (w^) [4,1]) 00:20:26 (-0.9999999999999999) :+ 6.861555643110582e-17 00:20:38 i guess that won't show up here 00:20:53 multiplicativeGroupGenerator 5 = 2 00:21:13 orbit of 2 in multiplicative Z/5Z = [2,4,3,1] 00:21:22 hm 00:21:33 so the periods (w^2+w^3)(w^4+w) = -1 00:21:34 3 is also a generator, i should think 00:21:37 but I thought I did this...... 00:21:45 I just pick the first generator 00:22:33 as i said, exp (2*pi*sqrt(-1)*(1/5)) = cis (2*pi/5) 00:22:56 I don\t understand what I had wrong before 00:23:17 This mouse still feels too weird 00:23:33 well we didn't try that splitting 00:23:34 Also, changing the speed of the thing also changes the speed of the trackpad 00:23:39 (w+w^4)*(w^3+w^4) <------- augh!!! 00:23:41 im so stupid 00:25:31 * Sgeo switches back to his wired mouse 00:26:28 fax: i was trying to suggest things that were conjugates of each other, if the product was supposed to be negative no wonder that didn't work :D 00:26:51 oerjan, but you are right -- they are conjugates 00:27:12 um no 00:27:23 if they were conjugates their product would be positive 00:27:42 (w^2+w^3) and (w^4+w), that is 00:27:49 oh right I see 00:28:23 so there's a 'fast' way to calculate the value of (w^2+w^3)*(w^4+w) 00:28:31 but it's really confusind and complicaetd ;D 00:29:03 exactly the right kind of thing for a computer program, you'd think 00:29:46 I am trying to program this algorithm but it is really a lot harder than anything I have worked on before 00:29:53 well I guess that is the wrong way to put it 00:29:59 What if you tried it imperatively? 00:30:01 >.> 00:34:26 -!- coppro has quit (Ping timeout: 260 seconds). 00:40:17 this... appears to only work for fermat primes 00:40:27 but that is not good because there are other primes 00:42:28 oh? what goes wrong for 7, say? 00:42:48 well give me 10 mins I will try p = 7 on paper 00:43:17 {1,2,3,4,5,6} lessee 00:43:37 {2,4,1} nope 00:44:00 [3,2,6,4,5,1] 00:44:05 that's the orbit of 3 00:44:07 {3,2,6, 00:44:13 i was _getting_ there :D 00:44:15 :P 00:44:16 sorry 00:45:10 so do you take (w^3+z^2+w^6)*(w^4+w^5+w^1) ? 00:45:19 or would, if it worked 00:46:11 how did i get that z there 00:46:23 http://www.pasteit4me.com/312001 00:47:01 -!- ais523 has quit (Remote host closed the connection). 00:47:52 huh, so [3,6,5] and [2,4,1], or [3,4] and [6,1] 00:48:36 [3,4], [2,5] and [6,1] 00:48:45 so the thing splits into 2*3 or 3*x 00:48:47 so the thing splits into 2*3 or 3*2 *** 00:48:52 oh any two? 00:49:12 er wait 00:49:17 you multiplied all three 00:49:27 yeah 00:49:37 in general if we have an orbit that covers the whole group [a,b,c,d...] 00:50:07 it seems like you can share it out (one for me, one for you, one for him, one for me, ...) into sets which (obviously sum to -1) and multiply to make a rational number 00:50:21 but why they multiply to make a rational..... I have no idea 00:50:28 oh you are taking all the cosets of a subgroup? 00:50:38 hmm 00:50:43 yes I guess they are cosets aren't they 00:50:54 the group is Z/pZ by the way (multiplicative) 00:51:10 (I don'tknow if I neglected to say that earlier) 00:51:31 i understood that much 00:51:42 although i wouldn't call that Z/pZ... 00:52:04 wikipedia used a superscript X 00:53:03 hm since the multiplicative group is cyclic, i guess all subgroups are cyclic too so given by a single element 00:53:26 oerjan, ooh that explains why you can keep doing it! 00:54:34 it's a bit usesless to know that y1+y2+y3 = -1 & y1*y2*y3 = 1 00:54:36 you can't solve this equation 00:54:47 in fact if this is the case you don't need to find a primitive root at all, unless you want to classify everything 00:54:56 hmmm 00:55:00 p-1 is always even 00:55:11 (p > 2) 00:57:08 OMG BLUE BUBBLEGUM JONES 00:57:21 also, fax! :D 00:57:24 * augur glomps fax 00:57:28 hey augur :))) 00:57:40 i had an idea for a fun little challenge 00:57:46 the universe thing? 00:57:51 yeah did i mention it to you? 00:58:00 ive been modelling simple universes 00:58:08 what is a universe ? 00:59:11 ok so in this context, a universe is some topology, some number of particles that inhabit that topology (or some properties over that topology, take your pick), and some number of rules that govern the physics of those particles in that topology 00:59:59 augur WOLFRAM?? 01:00:10 no. 01:00:19 this sounds like cellular automata 01:00:24 im sure you could model (some) of these universes as CAs 01:00:28 except on arbitrary topology 01:00:31 but the physics dont have to be defined CAly 01:00:36 oh there are non-CA rule sets? 01:00:38 like how 01:00:44 well you could do so if you wanted. 01:01:21 just as an example, imagine you had an infinite discrete universe with a particle occupying one position in the universe 01:01:46 you could say that it has a constant velocity in some direction and so forth 01:01:53 im sure you could also define a CA for this tho 01:06:12 so do you know the setup of the game? 01:07:39 I guess so 01:07:42 it sounds very difficult 01:08:09 it is rather, i think 01:08:15 just to reiterate, the game goes like this 01:08:44 i secretly design a (simple) universe. then i provide to you the causal graph of the universe 01:08:52 oerjan, btw -- x1 = z^3+z^6+z^5 ; x2 = z^2+z^4+z^1 gives x1 = -1/2-sqrt(-7/4) ; x2 = -1/2+sqrt(-7/4) 01:08:53 and you have to determine the design i used. 01:09:11 augur, the causal graph is a picture ? 01:09:25 augur I want to try this but I am not likely to win 01:10:08 the causal graph is basically just a directed graph, where each node is one of the possible configurations of the universe, and each directed arc connects a configuration to a "successor" confiuguration 01:10:17 so the problem is, I know that z^3+z^6+z^5 = -1/2-sqrt(-7/4) -- but that doesn't help me find any expression for z^3 or whatever 01:10:22 ie the configuration the universe would be in after running the physics one time unit forward 01:11:27 you could imagine a universe with a single point in it, and that point has a single property Energy that is one of the integers, and the "physics" is such that Energy increases by one every time step 01:11:51 well z^3 is a 7th root of unity, i don't know whether they can be expressed with real roots 01:12:13 so the causal graph of this universe is basically 0 -> 1 -> 2 -> 3 -> ... where each state corresponds to one of the configurations {(point, energy)} of the universe 01:12:24 does this make sense, fax? 01:12:46 vaugely :) 01:13:00 or imagine you have a universe that is a string of text 01:13:04 of length 3 01:13:23 with say 1 of 26 "particles" (letters) in each position 01:13:34 "aaa", "aab", ... 01:13:35 oerjan, well there is a theorem that every root of unity can be expressed in radicals (from Gauss) 01:13:39 these are the configurations of this universe 01:13:53 fax: oh 01:13:55 oerjan, but I am completely failing to see how it works for non-fermat primes 01:14:02 then theres some physics that says each "configuration" is followed by, lets say, the "next" string 01:14:13 or god only knows what the universe is, right 01:14:22 augur yeah I get that it just seems if you can choose any rule you want that it's impossible to figure it out 01:14:33 well let me give you a very simple one :) 01:14:37 ok 01:14:42 here is a simple causal graph: 1 -> 1 01:16:05 this is the simplest universe i can think of 01:16:30 that sucks 01:16:31 :/ 01:16:39 idiot universe 01:16:41 cmon, think of what kinds of universes this could be :) 01:16:49 what is the universe and the physics 01:16:59 actually its a whole class of universes, but 01:17:01 the universe is {1} and the physics is I 01:17:35 basically, yeah. the universe is a 1x1 universe with no particles (or 1 particle) and no physical laws that change anything. 01:17:51 alternatively it could be seen as any universe with no particles an no physical laws that change anything 01:18:05 heres the next simplest one i can think of 01:18:08 1 -> 1, 2 -> 2 01:18:24 the universe is {1,2} and the physics is I 01:18:28 ? 01:18:37 well, what do you mean bye {1,2}? 01:18:40 idk 01:18:47 the 1 and 2 that i used are just names for configurations 01:18:47 What do you mean, BYE! {1,2} 01:18:51 it's just the nodes of a graph 01:18:55 there are no edges yet 01:18:56 (Sorry, couldn't help myself) 01:19:10 but the nodes in the graphs are not the universe 01:19:25 the universe is a topology plus a physics that this graph describes 01:20:14 the universe envisioned is as follows: 01:20:30 a 1x2 universe with one particle (which can be in either location) and no physics 01:20:54 or, a 1x1 universe with one particle (which can be pointing in either one of two directions) and no physics 01:21:12 no, it's a particle which can be either red or blue! 01:21:17 the configurations for the former are: [o| ] and [ |o] 01:21:23 oerjan, :) 01:21:33 and for the latter: [<] and [>] lets say. 01:22:43 heres another universe thats similar: 1 -> 1, 2 -> 2, 3 -> 3, 4 -> 4 01:24:34 im sure you can imagine what this is 01:24:58 yes, it's a 1x2 universe with two particles *ducks* 01:25:04 nope :) 01:25:14 unless you hve some physics in there 01:25:24 well no physics 01:25:29 nothing changes 01:25:30 then definitely not 01:25:38 because that universe would be [o|o] 01:25:44 and would have only one state 01:25:55 making its causal graph the same as the first universe: 1 -> 1 01:25:56 you didn't say particles couldn't be in the same position 01:26:07 ahhaaa good thinking oerjan :) 01:26:12 then yes, you're right 01:26:15 it could be that universe 01:26:42 anyway i predict the number of possibilities will become hopelessly large, fast 01:26:49 or it could be a 1x1 universe with a particle that faces one of four directions, or two particles that face one of two directions, or, ... 01:26:58 well, the number of possibilities might 01:27:08 but im not looking for _my_ solution, just _a_ solution 01:27:28 so heres another universe thats kind of interesting 01:27:33 "faces directions" sounds similar to momentum. 01:27:47 :) 01:28:09 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 1; 7 -> 1; 8 -> 4 01:28:15 * Sgeo wants to use Haskell for everything 01:29:07 ill even be generous and tell you the physical makeup of the universe 01:29:13 1x2, one particle. 01:30:07 well we have 2^3 states, so one bit could correspond to position of particle 01:30:30 ok :) 01:30:42 thats a truism, ofcourse 01:30:52 because, modulo anything else, the particle can be in exactly two positions 01:31:03 so the universe has at least 2*n configurations 01:31:06 well it means the particle can have 4 inner states in each position 01:31:13 ok 01:31:27 you're veeeery close 01:31:33 -!- Oranjer has left (?). 01:31:41 now just figure out what the physics is :) 01:31:46 it could point in each of four directions 01:31:54 true. 01:32:44 hm... 01:33:01 i make it a rule that the particle is _always_ changing position, each step 01:33:06 ok 01:33:50 so 1,3,5 and 8 correspond to the same position, 2,4,6,7 to the other 01:34:02 ok 01:34:30 now we can say that 7 and 8 are both pointing down 01:34:35 ok 01:36:20 btw, when you interpreted 1x2, did you interpret that to be 1 high or 1 across? 01:36:38 the particle always rotates its pointing direction each step, but skipping the down direction 01:37:02 i believe this gives the required graph 01:37:15 1 high 01:37:19 ok 01:37:25 thats what i intended :p 01:37:42 er what's what you intended 01:37:59 1 high 01:38:37 1 and 4 point left, 2 and 5 up, and 3 and 6 right 01:38:45 and rotation is clockwise 01:39:04 ok 01:40:27 thatll do it :) 01:41:26 now let me do one thing to my universe: expand the size to 2x2 now. the causal graph is as follows: 01:41:41 this analysis was made somewhat easier by the fact it contained two aspects that did not interfere with each other 01:42:00 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 1; 9 -> 10 -> 1; 11 -> 12 -> 3; 13 -> 14 -> 5; 15 -> 16 -> 7 01:42:17 identical physics, one particle, just in 2x2 not 1x2 01:42:34 what do you mean by identical physics? 01:42:39 that is, not the physics oyu just devised, but the physics that i had in mind. 01:42:44 ah 01:42:49 as before. 01:42:57 so this universe and the previous one are different _only in size_ 01:43:02 now we have 4 positions rather than 2 01:43:07 we do. 01:43:32 and there are still 4 inner states possible 01:43:39 indeed. 01:43:49 assuming those can be selected independently 01:43:53 -!- coppro has joined. 01:44:21 well they can, but the physics constraints which configurations are possible as next configurations. 01:44:51 for all of this you can assume that all properties of particles are independent of their position 01:45:44 -!- mibygl has joined. 01:45:54 -!- pikhq has quit (Read error: Connection reset by peer). 01:51:21 -!- Oranjer has joined. 01:51:48 this time there are 8 non-repeating states, while there were only 2 the last time 01:52:17 you mean states which, once left, are never again reached? 01:52:18 yes. 01:52:46 ill give you an even better hint 01:52:56 if you think of the particle as a robot instead, the physics makes more sense. 01:53:44 which means doubling the positions did not just add an extra irrelevent bit, it has to interfere with stuff 01:53:53 nope. :) 01:53:55 *irrelevant 01:54:12 otherwise, there would be only 4 non-repeating states 01:54:14 there is no constraint on the configurations that the particle can appear in 01:54:40 the particle can be found in each of the four positions in each of the four states. 01:54:46 i mean the new bit and the old ones have to have physical interaction 01:55:24 let me know if you want more hints 01:55:40 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 1; 9 -> 10 -> 1; 11 -> 12 -> 3; 13 -> 14 -> 5; 15 -> 16 -> 7 01:55:52 yep :) 01:57:01 there is still room for one bit aspect that does nothing but flip each turn (in fact this is clearer here since you numbered things to alternate odd/even turns) 01:57:25 remember, im not using your physics but mine. so you cant assume its doing what yours did :) 01:57:30 -!- pikhq has joined. 01:57:49 want another hint? 01:57:52 no, but i _am_ assuming i have to come up with something that fits the previous one as well 01:58:11 otherwise this would be easy 01:58:14 :) 01:58:31 hint: its not always changing position, nor internal state, during each time step. 01:58:46 but it *is* at least changing one of them 01:58:59 um the last point is obviouas 01:59:02 *-a 01:59:13 just making sure that it was :P 02:00:52 hm... 02:02:01 i think i've got it, just checking 02:02:37 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 1; 7 -> 1; 8 -> 4 02:02:51 what about it 02:03:00 just checking it gives the same 02:04:48 ok 02:05:57 each step, _if_ the particle is pointing toward another reachable position, it moves there. otherwise it rotates clockwise. this fits both universes. 02:06:07 bingo. :) 02:07:10 yay 02:07:58 now figure out the structure of this universe, given those physics, and 1 particle: 02:08:29 hm this is turning out more interesting than i expected :P 02:08:48 1 -> 2 -> 1; 3 -> 4 -> 3; 5 -> 6 -> 5; 7 -> 8 -> 7; 9 -> 10 -> 1; 11 -> 12 -> 2; 13 -> 14 -> 3; 15 -> 16 -> 4 02:09:07 so tell me the geometry of the universe. 02:09:08 the same physics? ok. 02:09:46 you can already figure it must be a universe with 4 positions. but what are their arrangement, and is there more to the geometry than just that. 02:10:25 there is at least some toroidal stuff going on 02:10:44 that's the only way you could flip between two states with those physics 02:11:33 wait four positions... 02:11:44 oh wait yes 02:20:42 so I'm a bit disappointed 02:20:57 I thought this program would be able to derive solution for the cubic equation and stuff like that 02:21:03 but it seems like you have to hard code all that in :[ 02:21:12 (in the roots of unity subroutine) 02:21:24 (unless I am [hopefully] missing something) 02:25:41 no ideas yet, oerjan? :) 02:25:53 augur: the universe is 2x2, with the left edge and right edge wrapping to each other. one (but not the only) assignment of states to positions is: 02:25:56 1/6/10/15 2/5/12/13 02:25:58 4/7/9/16 3/8/11/14 02:26:07 :) 02:26:09 bingo. 02:27:13 -!- adam_d has quit (Ping timeout: 265 seconds). 02:28:13 you might want to look at larger universes, and see if there are any parallels between them when you wrap one dimension 02:28:36 or see if there are parallels between when you wrap one dimension and when you wrap a second 02:29:10 oerjan, if you enjoy this, i can try to put up a site with a bunch of these 02:29:44 for the first, there would be 2*n final cycles where n is the number of rows 02:29:58 one for each going left, the other right 02:30:13 and each of length m 02:30:43 right 02:31:04 and each of those cycles would have m incoming paths of length n 02:31:14 well, half of them would 02:31:30 there are 2*m*n cycles 02:32:03 um no 02:32:09 there are actually 2*n cycles 02:32:16 you were right the first time 02:32:33 um s/cycles/states in cycles/ 02:32:56 actually, only the top and bottom rows would have incoming paths 02:33:05 right yes, sorry :) 02:33:19 m*n each 02:33:50 now are there any salient relationships between the unwrapped universe and the wrapped universe? 02:34:12 n to each of the m states in the cycle 02:35:10 well the downwards and upward paths still exist in both 02:35:45 the unwrapped universe has only one cycle, along the border 02:36:30 true 02:36:37 with 2*(m+n) states in it 02:36:42 look at the state graphs 02:36:51 keeping the state labels the same in both 02:37:49 no idea 02:38:40 try it and see ;) 02:38:55 well, everything _not_ approaching a border is of course the same 02:39:11 edges, that is 02:39:17 you mean everything that _is_ approaching a border 02:39:23 well, half the borders 02:39:26 because half the borders remain 02:40:05 by approaching i mean being next to, about to collide with it or pass through 02:40:32 and yeah only the changed borders 02:40:48 -!- Gracenotes has quit (Quit: Leaving). 02:40:53 -!- samosa has joined. 02:40:58 hm 02:41:06 Hello 02:41:19 Im new. 02:41:21 * augur eats samosa 02:41:26 What is this channel for? 02:41:30 :o 02:41:43 augur: conclusion, only 2*n edges are actually removed and 2*n added 02:41:49 :) 02:41:51 esoteric programming languages 02:42:02 ooh 02:42:20 ?? 02:42:23 -__- 02:42:36 lulz, i mean what does esoteric mean? 02:43:17 in this case it means weird and often useless 02:43:22 Esoteric, (adj.): unusual and not well-known. 02:43:47 i see 02:44:40 ^bf >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-]<.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+. 02:44:40 Hello World! 02:45:35 also frequently unreadable 02:45:48 Can fungot do ///? 02:45:48 mibygl: you don't know what is correct?) not declared in this scope points to *here*" ( or newline). 02:46:07 not that i know of 02:46:34 unfortunately a couple of our bots are missing, including the one with most esolangs in it 02:46:57 on the other hand, fungot is _written_ in one (and implements two others) 02:46:58 oerjan: please note how carefully i used capitalization, rather than against mine except for locative-object ( which makes no sense 02:47:37 Can I ask fungot what languages e implements? 02:47:38 mibygl: and the best, mmh. 02:47:43 mibygl: um, someone claimed you were == uorygl, is this correct? 02:47:48 ^help 02:47:48 ^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool 02:47:52 Correct. 02:48:08 If I were not uorygl, I would be impersonating uorygl, which is not a nice thing to do. 02:48:24 So fungot only implements two languages? Bah. 02:48:24 mibygl: eh what? 02:48:27 so oerjan, did you want me to put up one of those sites? 02:48:48 you mean having the same last 3 letters is impersonating? 02:48:58 If those letters are "ygl", yes. 02:49:27 On another network, instead of uorygl/mibygl, I'm Warrigal/Mibbigal. That's also an impersonation sort of thing. 02:49:54 augur: i don't think i'll be spending a lot of time on it, honestly. but who knows. 02:50:04 aww ok. 02:50:26 what if i offered a cash prize for a theory of how to infer properties of the universe from the properties of the causal graph? 02:50:27 :p 02:50:48 mibygl: you have to note that fungot implements those languages _in_ befunge 02:50:49 oerjan:, so i'd like to keep the secret weapon secret!" if you eval what magic outputs in javascript, but there would be 02:51:09 Grr, I want a ///bot. 02:51:23 (it does not expose befunge itself to others than fizzie, presumably for security reasons) 02:53:22 hm fungot does have definable commands though 02:53:22 oerjan: which wasn't that fnord at all 02:53:30 ^show 02:53:30 echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble 02:53:34 -!- sshc has joined. 02:53:49 mibygl: just write a /// interpreter in brainfuck and you'll be all set ;D 02:54:52 Gregor: your bots are missed 02:55:21 -!- pikhq has quit (Read error: Connection reset by peer). 02:55:44 I wish I could figure out what keeps happening to 'em. 02:55:50 -!- HackEgo has joined. 02:55:51 -!- EgoBot has joined. 02:56:38 mibygl: did you see me mention itflabijtslwi in response to your comment about /// and input? 02:57:25 !slashes /*/\/.\\0\/,\\,0,\\,1\/\/.\\1\/,\\,1,\\,0\/\/,\\,\/.\//********/.//.0 02:57:31 0110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100110100110010110100101100110100110010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110 02:59:57 I don't know. 03:00:07 -!- sshc has quit (Quit: leaving). 03:01:54 !slashes /!/@@@@//@/####//#/$$$$//$/ nom/om! 03:01:55 om nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom 03:02:09 *itflabtijtslwi 03:02:28 Now I want to do /// busy beaver stuff. 03:02:46 Try to write the program of length N with the longest finite output. 03:02:52 heh 03:03:34 Call that length ?(N). 03:03:42 * mibygl ponders when ?(N) is first larger than N. 03:04:37 Let's see, /x/yyy/xxx is 10 long and outputs 9, /x/yyyy/xxx is 11 long and outputs 12. 03:05:04 -!- coppro has quit (Ping timeout: 246 seconds). 03:05:47 By using that trick a bunch of times, as I did in that om nom nom thing, you can achieve nearly exponential growth. 03:05:58 seems hard to do something fancier in that short span 03:06:16 Mmkay, what's the best you can do in 80 characters? 03:06:38 -!- pikhq has joined. 03:07:55 Here's a simple attempt: /0/1111//1/2222//2/3333//3/4444//4/5555//5/6666//6/77777//7/88888//8/99999/00000 03:08:31 I think it outputs 2,560,000 characters. 03:08:47 -!- pikhq has quit (Read error: Connection reset by peer). 03:08:49 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@@@@@@@@** 03:08:49 ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************ 03:09:51 It would be nice if we had a Slashes unescaper. 03:11:14 So the result of that substitution is /*\*/+\+//+\+/*\*\*\*/? 03:11:36 something like that 03:14:09 anyway as you can see it doubles the number of **'s 03:14:27 So, /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\// has 38 characters, right? 03:14:42 -!- fax has quit (Quit: Lost terminal). 03:14:43 if you say so :D 03:15:16 If you just plopped two in, you'd have four characters to spare... 03:15:35 what? 03:15:43 If you use that twice. 03:15:50 oh right 03:16:06 which should give you something 2^2^n 03:16:29 Using two probably doesn't help at all. 03:17:28 -!- pikhq has joined. 03:18:42 -!- pikhq has quit (Read error: Connection reset by peer). 03:19:11 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\\-\//**++ 03:19:56 oh wait 03:20:12 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\\-\//**-- 03:20:12 -------------------------------- 03:20:25 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\\-\//**-- 03:20:26 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 03:20:48 oh we're already beyond 80 03:22:06 hm... 03:22:47 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**-- 03:22:47 --------- 03:22:59 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**-- 03:22:59 ------------------- 03:23:25 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**-- 03:23:25 --------------------------------------------------------------- 03:23:27 Um, I'd think that the second replacement would replace * with yet anther replacer. 03:23:54 what? 03:24:00 Replace @ with * and * with something else in it. 03:24:26 The first one will generate a bunch of *s; the second one will turn each * into a doubler. 03:24:44 Oh, I see that you're doing something like that already. 03:25:02 Uh, put some spaces in there so I see what's going on. 03:25:27 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\// @@@@ /*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\// ** -- 03:25:28 --------------------------------------------------------------- 03:25:49 Brilliant. 03:26:10 i reduced to 3 to keep it below 80 chars 03:26:28 Oh, that actually is what I was looking for. 03:27:05 unfortunately, that causes it to take some more time to get up to speed 03:27:12 Why doesn't that first output a bunch of *? 03:27:20 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**---- 03:27:20 --------------------------------------------------------------------------------------------------------------------------------------------- 03:27:24 er wait 03:27:32 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**-- 03:27:43 Since the first /@/\/... just makes the @s into *s, doesn't it? 03:28:00 that must have been fairly big because it doesn't print anything XD 03:28:07 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**-- 03:28:07 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 03:28:42 um no, it turns the @'s into * 3/2-icaters 03:28:59 -!- pikhq has joined. 03:29:08 Mmkay. 03:29:55 So, have you beat the one that uses only one 38er yet? 03:30:10 -!- pikhq has quit (Read error: Connection reset by peer). 03:30:33 well, i _hope_ the thing with 6 @'s above failed to respond because it got really big 03:31:19 Calculate how many it makes! 03:31:45 the 3/2 thing makes that a little awkward :D 03:33:44 -!- pikhq has joined. 03:34:02 !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in iterate m3h 2 !! 5 03:34:13 13 03:34:38 !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in iterate m3h 2 !! 6 03:34:40 19 03:34:54 What does that mean? 03:35:22 -!- pikhq has quit (Read error: Connection reset by peer). 03:35:32 it means the 5 @'s produce 13 *'s and the 6 @'s produce 19 *'s 03:35:49 !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in iterate m3h 2 !! 1 03:35:51 3 03:36:21 !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in map (iterate m3h 2 !!) [13,19] 03:36:23 [316,3597] 03:37:16 !haskell 6*80-9 03:37:18 471 03:37:53 um wait that makes no sense 03:38:37 If 19 is all you get, then this is worthless. 03:39:06 the @@@@@ one above printed more than 316 -'s, something is wrong 03:40:01 !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in map (iterate m3h 2 !!) [1..19] 03:40:03 [3,4,6,9,13,19,28,42,63,94,141,211,316,474,711,1066,1599,2398,3597] 03:41:07 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@** 03:41:07 ************* 03:41:21 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@@** 03:41:22 ******************* 03:43:09 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 03:43:24 (just checking if my terminal is really 80 wide 03:43:25 ) 03:44:31 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**-- 03:44:32 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 03:45:27 what the... 03:45:35 that is _not_ what egobot printed the last time 03:46:24 it had about another line. perhaps that 3597 long one previous caused a bug... 03:46:56 it never printed anything, after all. 03:47:45 anyway 3597 is worthless, as you say, we hadn't even filled in with @'s from the single substitution one 03:49:03 !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@@@@@@@@@@@** 03:49:25 that should be 4096, although it seems to stall egobot again 03:49:33 !slashes Boo! 03:49:33 ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************ 03:51:10 !slashes /-**/*-/---**************** 03:51:10 **--- 03:51:44 hm wait that can be reversed :D 03:52:10 Ooh, it can! 03:52:10 !slashes /-*/**-/--------* 03:52:10 ****************************************************************************************************************************************************************************************************************************************************************-------- 03:52:29 And you can do that lots of times. 03:52:37 _now_ we're kicking :D 03:52:44 Getting something like 2^^14 of them. 03:53:45 !slashes /-*/**-//*-/--*/--* 03:53:51 oh wait 03:53:59 !slashes Boo! 03:54:00 Boo! 03:54:14 !slashes /-*/**-//*-/--\*/--* 03:54:14 --------------------------------**** 03:55:13 !slashes /@/\/-*\/**-\/\/*-\/--\\*\//@-* 03:55:14 ----** 03:55:52 !slashes /@/\/-\\*\/**\\-\/\/*\\-\/--\\*\//@-* 03:55:52 ----** 03:55:58 !slashes /@/\/-\\*\/**\\-\/\/*\\-\/--\\*\//@@-* 03:56:04 -!- Alex3012 has joined. 03:56:10 !slashes Boo! 03:56:11 Boo! 03:56:23 apparently too much to hope for 03:57:38 !slashes /-*/**-//*-/--\*//-\*/**\-/--* 03:57:47 !slashes Boo! 03:57:48 Boo! 03:58:31 !slashes /-*/**-/----** 03:58:32 ********************************---- 03:58:50 now why didn't the previous one print the same... 04:00:00 i escaped every relevant *- boundary inside the substitutions that i can see... 04:00:01 What are we hoping for that's too much? 04:00:47 Quick question about the BSD license: What do I put for "Organization", given that it's myself? 04:00:55 to be able to copy substitutions into @'s, and then apply them to pass - and * doubling past each other four times... 04:00:59 -!- pikhq has joined. 04:01:24 ?? 04:01:28 "No, completely chaotic" 04:01:34 Your name. 04:01:34 lol 04:01:47 "Neither the name of the Sgeo" 04:02:04 Last time I put an organization into an Organization box, it credited all my work to that organization. 04:02:24 !slashes /-*/**-//*-/--\*/--* 04:02:25 --------------------------------**** 04:02:29 What's the MIT license like? 04:02:50 !slashes /-*/**-//*-/--\*/-* 04:02:51 ----** 04:03:01 I like it 04:03:06 !slashes /-*/**-//*-/--\*//-\*/**\-/-* 04:03:07 ********************************---- 04:03:26 that was better. and one more iteration would kill it XD 04:04:41 which means two @'s is too much to hope for again. hm... 04:09:15 -* => **- => ----** => 32*, 4- => 4*2^32-, 32* => 32*2^(4*2^32)*, 4*2^32- => ... 04:10:29 * Sgeo wonders if codepad.org is an inappropriate way to distribute this code 04:14:08 http://codepad.org/wd8oGuUT 04:14:11 Such a mess :/ 04:17:43 What is that code? 04:20:59 Python mapping of a C API 04:24:09 http://forums.activeworlds.com/showthread.php?p=124425#post124425 04:32:31 !slashes /*1/11*//*\*/*//1*/*1+//1+/+1/*****1 04:32:44 !slashes Boo! 04:32:44 Boo! 04:32:57 !slashes /*1/11*//*\*/*//1*/*\1+//1+/+1/*****1 04:32:58 *++++++++++++++++++++++++++++++++11111111111111111111111111111111 04:41:24 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//++/+0+//+///(//(((((1) 04:41:25 000000000000000000000000000000023 04:44:23 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//(((((1) 04:44:23 23 04:45:39 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//(((((((1) 04:45:39 2 04:46:41 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1+/(((((((1) 04:46:42 (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11+ 04:49:28 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+/(((((((1) 04:49:29 (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111+ 04:50:15 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//(((((((1) 04:50:15 128 04:50:32 -!- Gracenotes has joined. 04:51:59 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//(11111) 04:51:59 10 04:52:42 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1) 04:52:48 1024 05:01:01 -!- Oranjer has left (?). 05:04:17 -!- sshc has joined. 05:04:22 -!- sshc has quit (Changing host). 05:04:22 -!- sshc has joined. 05:04:27 Hey, you got it to output 1024. 05:04:41 -!- adu has joined. 05:07:45 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+111111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1) 05:07:52 4314 05:07:58 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+11111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1) 05:08:04 8231 05:08:07 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1) 05:08:10 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+11111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1) 05:08:12 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1) 05:08:15 132343 05:08:18 2000 05:08:20 2662 05:08:24 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1) 05:08:26 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+11111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1) 05:08:31 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1) 05:08:31 4424 05:08:33 13044 05:08:37 100000 05:08:40 I must say, this function doesn't make much sense. 05:08:51 what? 05:09:15 This is what I get for trying to understand things without analyzing them. 05:09:36 well what you are doing is changing the output base 05:10:42 !haskell import Data.Char; import Numeric; main = print [showIntAtBase n intToDigit 1024 | n <- [2..10]] 05:10:57 !haskell import Data.Char; import Numeric; main = print [showIntAtBase n intToDigit 1024 "" | n <- [2..10]] 05:11:00 ["10000000000","1101221","100000","13044","4424","2662","2000","1357","1024"] 05:11:21 * Sgeo is confused 05:11:55 well the parts from 2000 and down, at least 05:13:00 !haskell import Data.Char; import Numeric; main = print [showIntAtBase n intToDigit 1024 "" | n <- [2..12]] 05:13:02 ["10000000000","1101221","100000","13044","4424","2662","2000","1357","1024","851","714"] 05:14:12 oh! 05:14:46 i need to reorder a bit 05:15:20 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//(111) 05:15:21 6 05:15:59 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//(((111111111) 05:15:59 432 05:16:39 -!- Copyleftist has joined. 05:17:13 -!- Copyleftist has quit (Client Quit). 05:17:41 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//(((111111111) 05:17:41 432 05:18:25 -!- Copyleftist has joined. 05:18:26 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//(((((((1) 05:18:26 128 05:18:40 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//(((((1) 05:18:40 32 05:18:51 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//((((((((1) 05:18:51 256 05:18:55 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//(((((((((1) 05:18:56 512 05:19:48 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//(((((111) 05:19:48 96 05:20:23 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//111() 05:20:23 3 05:21:08 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//111() 1111() 11111() 111111() 1111111() 11111111() 111111111() 05:21:08 3 4 5 6 43 8 9 05:21:21 -!- Copyleftist has quit (Client Quit). 05:21:30 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//43/7//44/8//45/9//(+/(//++/+0+//+///(//111() 1111() 11111() 111111() 1111111() 11111111() 111111111() 05:21:31 3 4 5 6 7 8 9 05:27:07 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+111111111111/1\+//11/2//21/3//22/4//23/5//42/6//43/7//44/8//45/9//46/A//47/B//84/C//85/D//86/E//87/F//(+/(//++/+0+//+///(//1() (1) 1(1) ((1) 1((1) (1(1) 1(1(1) (((1) 1(((1) (1((1) 1(1((1) ((1(1)) 1((1(1)) (1(1(1)) 1(1(1(1)) ((((1) 05:27:07 1 2 3 4 5 6 7 8 9 A B 100 110 120 130 14 05:27:39 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111111111/1\+//11/2//21/3//22/4//23/5//42/6//43/7//44/8//45/9//46/A//47/B//84/C//85/D//86/E//87/F//(+/(//++/+0+//+///(//1() (1) 1(1) ((1) 1((1) (1(1) 1(1(1) (((1) 1(((1) (1((1) 1(1((1) ((1(1)) 1((1(1)) (1(1(1)) 1(1(1(1)) ((((1) 05:27:40 1 2 3 4 5 6 7 8 9 A B C0 D0 E0 F0 10 05:27:59 huh 05:28:37 oh 05:28:53 !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111111111/1\+//11/2//21/3//22/4//23/5//42/6//43/7//44/8//45/9//46/A//47/B//84/C//85/D//86/E//87/F//(+/(//++/+0+//+///(//1() (1) 1(1) ((1) 1((1) (1(1) 1(1(1) (((1) 1(((1) (1((1) 1(1((1) ((1(1) 1((1(1) (1(1(1) 1(1(1(1) ((((1) 05:28:53 1 2 3 4 5 6 7 8 9 A B C D E F 10 05:29:08 hi 05:29:39 hi 05:29:43 how are you 05:30:43 well i should be going to bed but instead i'm apparently doing number display in /// :) 05:32:06 (aka slashes) 05:33:52 i see 05:33:58 i'm writing an arbitrary-precision lib 05:34:16 which i will use to write a serialization lib 05:34:28 which i will use to write a scripting language 05:34:48 which i will use to write simulation software 05:34:57 which i will use to write artificial intelligence 05:35:05 which i will use to take over the world !!! 05:35:20 dammit i was going to joke how this would end :D 05:35:24 lol 05:35:49 you missed "write an operating system" in there, though 05:36:00 no, i don't need to write an os 05:36:10 that's where the AI comes in 05:36:14 ah. 05:36:21 it will write all the drivers for me 05:36:51 it will crawl the web for documents about all devices ever made 05:37:25 it will also reverse engineer Win32 drivers as well 05:37:38 it will do everyone's homework 05:37:54 um... that's not a good thing? 05:38:07 huh? 05:38:10 which part? 05:38:15 doing everyone's homework 05:38:17 oh 05:38:20 ya i was jk 05:38:43 that would be like, some kinda VIP service 05:39:28 oerjan: what would you have AI do for you? 05:41:42 tricky 06:06:02 -!- oerjan has quit (Quit: Good night). 06:06:24 -!- mibygl has quit (Ping timeout: 252 seconds). 06:17:44 -!- samosa has quit (Quit: samosa). 06:53:09 -!- kar8nga has joined. 07:11:55 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 07:24:03 -!- MizardX has quit (Ping timeout: 276 seconds). 07:35:48 -!- adu has quit (Quit: adu). 07:43:44 -!- kar8nga has quit (Remote host closed the connection). 07:44:46 -!- kar8nga has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:02:23 lifthrasiir: PyFunge bug: if ; is the first character in a file, it doesn't work properly 08:16:58 -!- kar8nga has quit (Remote host closed the connection). 08:28:00 -!- kar8nga has joined. 08:40:47 -!- cheater2 has quit (Ping timeout: 258 seconds). 08:54:19 -!- kar8nga has quit (Remote host closed the connection). 09:21:56 -!- MigoMipo has joined. 09:36:14 Deewiant, interesting bug 09:43:01 -!- charlls has quit (Ping timeout: 264 seconds). 09:50:50 Deewiant, a bit hard to test with mycology though I imagine? 10:00:05 -!- cheater2 has joined. 10:03:19 -!- tombom has joined. 10:49:48 -!- adam_d has joined. 10:50:35 -!- Tritonio_GR has joined. 11:29:16 -!- BeholdMyGlory has joined. 11:29:19 -!- BeholdMyGlory has quit (Changing host). 11:29:19 -!- BeholdMyGlory has joined. 11:39:15 -!- alise has joined. 11:43:45 hail 11:53:21 -!- olsner_ has joined. 12:18:50 alise, hi 12:18:54 Hi. 12:19:20 also I found out why I was unable to use some 802.11n networks. Wrong reg domain setting. 12:19:41 (that issue confused me for months) 12:20:28 dear diary 12:20:35 (it was on "world" setting, which is defined as the subset of channels allowed everywhere) 12:20:49 alise, wrong window :P 12:20:57 not quite 12:22:14 what were you going to tell it then? 12:22:47 Actually I was being a jerk to you 12:22:51 :P 12:23:56 I shouldn't be surprised 12:41:18 Now where is coppro? 12:48:52 -!- cheater2 has quit (Read error: Connection reset by peer). 12:49:45 -!- cheater2 has joined. 13:01:03 bbl for the rest of the day 13:01:08 (out of town, no internet) 13:06:08 -!- tombom has quit (Quit: Leaving). 13:08:27 -!- olsner_ has quit (Quit: olsner_). 13:35:38 fpqrsuvtu 13:38:52 Oh, dear; an unwinnable game of robotfindskitten. 14:09:09 AnMaster: Well yes, I'd need a separate file but I won't bother with that for a bug that only shows up in one interpreter 14:20:32 -!- MigoMipo has quit (Remote host closed the connection). 14:25:31 -!- oklopol has joined. 14:38:03 -!- alise has quit (Ping timeout: 258 seconds). 14:52:52 My rfk86 is a bit prone to unwinnables, because the screen is smaller than is typical, but I think I generate the same amount of NKIs. 15:00:30 -!- olsner_ has joined. 15:56:35 -!- mibygl has joined. 16:33:36 -!- olsner_ has quit (Quit: olsner_). 16:43:19 -!- jcp has joined. 16:46:36 -!- BeholdMyGlory has quit (Remote host closed the connection). 17:22:52 -!- Gracenotes has quit (Remote host closed the connection). 18:04:22 -!- adam_d has quit (Ping timeout: 265 seconds). 18:05:02 -!- adam_d has joined. 18:10:35 -!- MizardX has joined. 18:21:18 * Sgeo will try walking outside a bit today 18:22:02 -!- FireFly has joined. 18:59:58 Oh, dear; an unwinnable game of robotfindskitten. <-- is that possible!? 19:00:34 fizzie, NKI? 19:03:04 also I need to figure out how to make ubuntu call iw reg set SV on boot... 19:05:08 err SE of course 19:05:09 not SV 19:06:38 problem is that it needs to be done before the wlan interface goes up, otherwise it won't take effect for some reason 19:06:45 so thus rc.local won't work 19:17:40 -!- fax has joined. 19:29:54 -!- MigoMipo has joined. 19:51:50 -!- alise has joined. 19:52:49 Hello, hello, hello, hello! 19:53:26 Hellote. 19:54:33 11:00:34 fizzie, NKI? 19:54:33 non-kitten items 19:54:35 10:59:58 Oh, dear; an unwinnable game of robotfindskitten. <-- is that possible!? 19:54:38 Apparently in the flash version. 19:54:58 alise 19:54:58 alise 19:55:04 alise, I thought the kitten was always generated, but I guess I was wrong 19:55:30 I am not using my laptop!; I am using the ole' desktop. Not the iMac. 19:55:41 Is a semicolon after an exclamation mark /really/ valid? I mean, honestly. 19:56:13 It ought to be. 19:56:38 -!- coppro has joined. 19:57:25 alise, perfectly, ! is logical not, and ; is "skip to next ; in path" 19:57:45 Your wittosity is unmatched, surely. 19:57:49 In this world. Universe! 20:00:34 -!- BeholdMyGlory has joined. 20:04:07 AnMaster: In rfk86, at least, the kitten is always generated, but it may be unreachable. 20:04:15 xD 20:14:41 gtg 20:14:43 -!- alise has quit (Remote host closed the connection). 20:22:55 fizzie, heh? 20:22:57 -!- adam_d_ has joined. 20:23:01 fizzie, does that even make sense? 20:25:59 -!- adam_d has quit (Ping timeout: 265 seconds). 20:31:38 where is alise 20:31:39 fffffffffffffffff 20:44:47 AnMaster: Sure. You can't move diagonally in rfk86, so if you have an object that is surrounded by 4 other objects (in the corner, 2 other objects is enough), you can't ever touch that object. If it happens to be the kitten, you are out of luck. 20:47:42 (You can move diagonally in the official robotfindskitten, but that just means you need more stuff to block the kitten totally.) 20:49:33 And, after all, robot must touch items to determine if they are kitten or not. 20:51:58 fizzie, true 20:52:23 fizzie, I never seen an unreachable object in the "official" one 20:54:48 If you hve a large terminal, it's pretty unlikely. But it's still possible. 20:55:19 With a 20x5 terminal window (where you only get 20x2 cells of grid) it happens more often than not. 20:56:31 And if you make a small enough terminal window, robotfindskitten ends up in an infinite 100%-CPU loop; probably it's trying to place objects randomly and not finding any free slots. 20:58:44 lol 20:59:18 i remember when i was 8 and had that bug 20:59:24 in a prog 21:09:32 fizzie, hm terminal is 180x41 according stty size 21:12:15 -!- augur has quit (Ping timeout: 268 seconds). 21:23:26 -!- mibygl has quit (Ping timeout: 252 seconds). 21:42:15 -!- hiato has joined. 21:42:42 -!- MizardX has quit (Ping timeout: 276 seconds). 21:42:44 -!- hiato has changed nick to sheep. 21:42:55 -!- sheep has changed nick to hiato. 21:43:05 -!- augur has joined. 21:45:14 -!- hiato has left (?). 22:05:35 -!- MizardX has joined. 22:20:49 -!- isthac has joined. 22:22:52 * isthac is no entirely satisfied with his nick, wanted something that sounded like it was straight out of lovecraft's work 22:23:46 -!- isthac has changed nick to hiato. 22:27:59 And you stuck with it for so long, too. 22:30:51 I know, having withdrawel symptoms as we epeak, but my newly hired councellor says i'll get through it 22:38:34 -!- hiato has left (?). 22:41:11 Huh. 22:41:17 .za is to South Africa as .ch is to Switzerland. 22:41:26 In that it's not actually short for any /official/ name. 22:41:27 Weird. 22:42:20 Weird. 22:43:09 Though, .za would have at least made since if the TLDs were done in '65. :P 22:43:51 (.za is an abbreviation of Zuid-Afrika, Dutch for South Africa. Dutch was an official language there before '65.) 22:49:10 You'd have to go back a bit farther for .ch 22:49:27 Confoederatio Helvetica. 22:49:56 Which actually makes a *little* bit of sense. That's apparently minted on Swiss coins... 22:51:08 Hah. .su exists. 22:51:18 (TLD for the Soviet Union) 22:52:40 There's someone with the email address n@ai 22:53:08 I'd like to see someone with the address root@. 22:53:34 HE ADMINISTERS THE ENTIRE NET 22:53:52 Well, DNS 22:54:05 ENTIRE. NET. 22:54:36 THE TUBERWEBS 22:54:42 YES 22:55:44 rebooting, kernel upgrade 22:58:02 DNS TLDs are fairly ridiculous. 22:58:16 .cat is a gTLD. 22:58:23 It is reserved for sites in Catalan. 22:58:34 -!- AnMaster has quit (Read error: Connection reset by peer). 22:58:57 (a somewhat obscure Romance language) 23:00:26 -!- AnMaster has joined. 23:01:37 sometimes i like to pretend pikhq never googles anything but actually just happens to know everything 23:02:10 Hah. 23:02:17 I <3 me Wikipedias. 23:03:21 * pikhq googles "omniscience" 23:04:03 * Sgeo once tried to make a mathematical proof that no omniscient beings existed 23:04:29 there's this wp page about one of our professors that says he studies math and something like alien abductions. i almost asked him about this, but luckily found out that the wp page had actually confused two professors with the same name before 23:04:33 Sgeo: Under what axioms? 23:04:54 * Sgeo didn't QUITE grasp that Turing machines didn't take/need to take input/output, and that not being computable by a turing machine != not knowable 23:05:05 Hah. 23:05:43 Yeah, a UTM is a machine that can compute any algorithm, not a magic machine that does everything. :P 23:05:53 (that's a UTM + magic oracle) 23:06:13 Hmm. Magic oracle? Me want. 23:15:40 -!- oerjan has joined. 23:28:57 -!- oerjan has quit (Quit: Reboot). 23:31:23 -!- oerjan has joined. 23:34:51 Is hiato's "newly hired councellor" some sort of sneak-dig at the ehird of many names? 23:35:27 why isn't alise back 23:44:10 -!- Oranjer has joined. 23:53:08 grrrrrr 23:56:24 Sgeo: the input and output of a TM are the tape 23:59:24 -!- FireFly has quit (Quit: Leaving). 2010-04-04: 00:00:46 -!- MigoMipo has quit (Ping timeout: 264 seconds). 00:04:01 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:05:04 fuck gnome 2.30. They *edited* the old icon theme for the worse. It looks ugly as fuck. And no they didn't save the old icon theme under another name as far as I can tell. 00:05:12 * AnMaster is really annoyed now 00:16:00 ah here we go. Old version extracted to /usr/share/icons/gnome-previous 00:34:39 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 00:35:50 -!- jcp has joined. 01:38:32 -!- Alex3012_ has joined. 01:39:11 -!- Alex3012 has quit (Ping timeout: 265 seconds). 01:39:15 -!- Alex3012_ has changed nick to Alex3012. 01:45:32 -!- adam_d__ has joined. 01:48:22 -!- adam_d_ has quit (Ping timeout: 265 seconds). 02:01:54 -!- adam_d__ has quit (Ping timeout: 265 seconds). 02:11:47 -!- Oranjer has left (?). 02:17:37 DOCTORRRRRRRR 02:17:39 :DDDDDDDDDDDDD 02:19:09 hi augur 02:19:20 FAXXXXXX 02:19:28 help 02:19:35 i need somebody 02:19:39 HELP 02:19:42 not just anybooody 02:19:45 ;D 02:20:26 sup girly 02:21:35 idk I can't figure out what to do now 02:23:05 for? 02:23:47 for my self :S 02:23:52 hey augur 02:23:56 o.o 02:24:02 watch the new doctor who episode! 02:24:04 I understand why you can't trisect an angle :D 02:24:15 everyone talks about doctor who 02:24:16 well you CAN trisect an angle 02:24:19 I haven't been watching it 02:24:23 just not with a compass and straightedge 02:24:26 yes 02:24:30 augur want me to tell you i 02:24:31 augur want me to tell you it 02:25:55 what who how huh 02:27:16 the proof 02:36:40 augur 02:36:41 fat head 02:36:47 :| 02:36:59 * augur rapes fax 02:37:01 wait damnit 02:37:04 you're a girl 02:37:05 fuck 02:37:13 that didnt happen 02:37:15 so are you 02:37:30 am not 02:37:46 IZE A BOY 02:55:15 :/ 02:58:39 By "rape" he of course means "scour one's existence from the earth". 02:59:08 And I'm not sure where that takes me, but in the end, your mom's a whore. 03:07:13 I bite off augurs hand 03:07:18 sucker 03:18:24 fax, what's the proof? 03:18:42 Sgeo -- okay 03:19:17 the first thing is to notice that if we have lengths x and y on our paper -- we can also construct x+y, x-y, xy, x/y using our straightedge and compass 03:20:05 How do you do xy and x/y? 03:20:12 the only other thing we can really do is draw a circle and intersect a line with it: analytically this means solving something like x^2+y^2=r^2 against a linear equation -- all in all we can take square roots this way 03:22:33 hm 03:27:05 you put x and y at right angles 03:30:06 no you don't sorry 03:30:10 you put x and 1 at right angles 03:30:17 1? 03:30:18 then you draw the hypotenuse, and exend it out (forever) 03:30:25 you need a '1' value to multiply things 03:30:39 I mean you could just use a thumbwidth or something 03:30:41 Oh, you're responding to my x*y x/y question 03:30:53 so this is a triangle with sides, 1:x 03:31:24 you exend the baseline too, until you find a place where the height down is y, and that gives a (similar) triangle with is y:xy 03:31:37 to divide numbers you can just reverse this procedure 03:31:38 you can construct sqrt(x) toooooo 03:32:52 Sgeo, so in effect we have a field (have you met this structure from algebra before??) 03:33:13 I've heard of fields, don't really know what they are. They define certain operations on them? 03:33:39 well a field is just something which has +,-,*,/ and stuff like (x+y)z = xz+yz 03:34:03 so we can construct every element of our field with a ruler and compass! 03:34:51 say our field so far is R, we can adjoin some square roots to get R[sqrt(x)] which is again a field 03:36:11 obviously constructing an angle is equivalent to constructing it's cosine. In the case of the angle being 360/n it's equivalent to constructing the n-gon right? 03:36:39 * Sgeo is only half paying attention, tbh 03:50:38 -!- fax has quit (Ping timeout: 240 seconds). 05:44:36 Sgeo: you pissed fax offfffffff 06:07:14 -!- oerjan has quit (Quit: Good night). 06:09:47 -!- zzo38 has joined. 06:10:43 I found another esolang called ModanShogi it is based on a shogi game movements 06:10:47 http://github.com/yhara/ShogiModan 06:20:01 Nice. 06:32:00 * Sgeo can easily imagine writing a Haskell implementation of BF before ever understanding a nice way to write a Python implementation of BF 06:34:01 Mind you, with Haskell, I can use Parsec 06:34:43 Which is severe overkill for Brainfuck parsing. 06:37:20 I guess it's healthier to figure out how to do without 06:58:11 Sgeo: you saw my parser in Haskell, did you not? 06:58:12 Nobody expects the Spanish Inquisition. 06:58:26 coppro, um, part of it 06:58:32 I don't think I saw the full thing 06:58:48 And at any rate, I want to process everything into BFCmds before processing 06:58:53 And nobody expects the big monster with three tentacles on the same ship either, unless *I* say so. 06:59:20 Sgeo: um 06:59:26 http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24645#a24645 06:59:27 are you dumb 06:59:50 ? 07:00:14 * Sgeo obviously shouldn't have said processing in both places, if that's what you mean 07:01:09 And yes, I think BFComment can be useful. Say I also want to write a simple optimizer 07:01:19 Don't need to interpret to do that 07:01:26 And I can leave comments in place 07:01:49 Sgeo: I hope one day you learn python and haskell and maybe even scheme 07:02:08 [and brainfuck for that matter] 07:02:11 * Sgeo knows Python fairly well 07:05:43 Quadrescence, are you going to explain yourself? 07:07:47 no 07:08:02 If a good friend was here, I'd have him explain 07:09:19 -!- dixon has joined. 07:09:22 ohai 07:09:59 I heard someone was being stupid and wanted to use monadic parsing for brainfuck. 07:10:15 Who gets to wear the dummy hat? 07:10:36 * Sgeo wants to see proof that dixon /= Quadrescence 07:10:49 AWWW Sgeo GETS TO WEAR THE DUMMY HAT! 07:11:02 Well, first you should /msg nickserv info dixon all 07:11:24 And see that I've been registered years before Quadrescence with an entirely different account. 07:12:25 Then you should stop using monadic parsing, which I'm guessing at least 100 people in this channel told you was a bad idea. 07:13:22 Overkill == bad idea? 07:14:06 Always. 07:14:18 It'd be like driving your children to school in a tank. 07:14:28 When all you really wanted was side-impact airbags. 07:15:18 Do you think 42 is really the proper answer to life, the universe, and everything, or do you think not? 07:15:36 zzo38: i think ur homosexual 07:17:02 Quadrescence: Why do you think that, please? 07:17:30 zzo38: evidence suggests so 07:18:09 Can you please explain what evidence and how you can come to that conclusion from the given evidence, I would like to know how 07:18:41 Turing was gay, we in this channel talk about stuff that Turing did a lot, therefore we are all gay. 07:18:55 Sgeo: That's a dumb way. 07:19:11 Perhaps it was true of Turing but it doesn't make that of everyone 07:19:13 zzo38: do you mind if I finish these sun chips and mtn dew 07:19:24 zzo38, no kidding? 07:19:31 Quadrescence: I really don't care. They aren't mine 07:19:34 zzo38: He integrated you over a finite portion of a hypergeometric function and realized you swung the wrong way. 07:19:47 thx dixon 07:19:51 np 07:19:53 I'm actually asexual 07:19:53 (=p) 07:20:01 (virgin) 07:21:24 zzo38: oh and i have some sixlets to eat too 07:21:48 I have some twins to eat later. I'm waiting for them to arrive :3 07:22:02 wat 07:22:24 was that sexual innuendo 07:22:26 "eat" 07:22:47 ;) 07:23:10 Why? 07:23:31 When? 07:24:08 (In case you didn't know, I was asking "Why?" to Quadrescence's) 07:24:49 zzo38: oh I guess I am hungwy 07:25:12 Do you mean "hungry" or "hungwy"? 07:25:42 the latter 07:26:12 * Sgeo should really be sleeping 07:26:42 Or using Python. 07:27:38 And I have never heard of such a word as "hungwy" and I don't know what it means 07:28:35 It's etymologically related to "twat." I would ask if you were familiar, but it seems you've already implied not. 07:37:51 Do you have any idea of making spell in D&D game? 07:40:43 I have ideas to make spell to swap the text contents of two books or scrolls, and also to make the caster's hand fall off, and so on 07:46:04 The real country of freedom is "Pull down to select" 07:49:49 -!- pikhq has quit (Read error: Connection reset by peer). 07:50:36 And when Sevil arrives on the ship, if there is not a big monster with three tentacles arriving on the same ship, something has gone wrong and you have to figure out what's wrong. 07:50:39 -!- zzo38 has quit (Quit: zzo38). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:01:29 -!- pikhq has joined. 08:15:08 * Sgeo was thinking about how to get the optimizer working, and it helped me figure out a bit of the parsing 08:19:05 * dixon was thinking about how to get Sgeo's brain working, and it helped me figure out that he's probably just hopeless :\ 08:24:57 I wuv you Sgeo, I do, I'd just wish you'd listen to the four people telling you that you're strangling kittens with oil pipeline. 08:25:09 I'm not using Parsec 08:25:15 You promise? 08:25:20 Yes 08:25:36 I would give you a hug, but I have a tendency to cop a feel. 08:26:02 I _am_ using a data BFCmd that means I can't just write parseBFChar '+' = BFInc etc 08:27:43 You could always try python-llvm, for the lulz. 08:28:22 * Sgeo should be sleeping 08:28:31 Sleep will probably let me think better when I awake 08:28:36 It's 3:26AM here 08:28:43 03:30 here. 08:29:14 o.O 08:29:32 Either you're rounding, or there's a mysterious 3min difference 08:29:47 erm, *looks at timestamp* 4min 08:29:52 between 3-4 08:30:25 Well, I'm using NTP, so I hope it's not wrong. 08:34:25 night 08:34:33 nini 08:58:31 -!- FireFly has joined. 09:16:08 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 09:39:26 -!- adam_d has joined. 09:50:30 -!- tombom has joined. 09:54:31 -!- Gracenotes has joined. 10:23:39 -!- olsner_ has joined. 10:26:06 -!- MigoMipo has joined. 10:31:38 -!- Tritonio_GR has quit (Quit: Leaving.). 10:47:53 -!- BeholdMyGlory has joined. 11:47:24 -!- BeholdMyGlory has quit (Remote host closed the connection). 12:00:51 -!- olsner_ has quit (Quit: olsner_). 12:32:22 -!- cheater2 has quit (Ping timeout: 268 seconds). 12:38:20 -!- cheater2 has joined. 13:06:44 -!- olsner_ has joined. 13:14:39 -!- fax has joined. 14:17:11 -!- olsner_ has quit (Quit: olsner_). 14:30:16 -!- MigoMipo has quit (Remote host closed the connection). 14:43:14 -!- oerjan has joined. 15:30:02 -!- BeholdMyGlory has joined. 16:13:44 -!- oerjan has quit (Quit: leaving). 16:23:47 -!- MigoMipo has joined. 16:28:01 -!- adam_d has quit (Ping timeout: 265 seconds). 16:39:10 -!- hiato has joined. 16:46:15 -!- hiato has quit (Ping timeout: 276 seconds). 16:47:56 -!- hiato has joined. 16:54:21 * Sgeo goes to write a separate tape manipulation module 16:55:24 * fax does something more interesting than implement brainfuck 16:58:56 * hiato comments 16:59:54 * Sgeo wonders if he's over-engineering 17:01:21 -!- jcp has joined. 17:23:21 what is that sort of "always" falling tone called now again? 17:23:25 well not always falling 17:23:27 it just sounds like it 17:23:47 there was one in Mario64, if you went up the final stairs before collecting enough stars 17:24:06 I remember hearing some name for that sort of sound once 17:25:33 fizzie, do you happen to know? I think I remember you were involved in a discussion about them here ages ago? 17:31:18 I vaguely remember a discussion about them, but not any specific name. I think the tones themselves were mentioned on some "auditory illusions" page. 17:33:30 Apparently it's sometimes called Shepard’s paradox, though that name seems to be a bit ambiguous. 17:33:36 http://www.moillusions.com/2006/05/audio-optical-illusions.html 17:34:06 "Audio optical illusions" 17:34:09 Stupidest phrase EVER 17:34:17 heh 17:34:33 Everyone seems to call them that. :p 17:34:57 http://angrydylan.blogspot.com/2007/11/shepards-paradox.html is another bit, and you can obviously google more. 17:35:47 http://en.wikipedia.org/wiki/Shepard_tone is also related. 17:35:52 Phew, maybe that was enough linkery. 17:37:52 -!- olsner_ has joined. 17:39:41 That's a lot less of a trick than I originally assumed it might be :P 17:40:42 fizzie, no! need more links! 17:40:45 quick! 17:40:47 XD 17:43:05 www.www.com.com 17:43:29 I wonder if someone owns that 17:43:51 www.com.com seems to redirect to cnet 17:44:00 so presumably they own www.www.com.com too 17:44:01 hmmm 17:44:02 It's a subdomain of com.com, which belongs to cnet 17:44:10 damnit 17:44:11 though it isn't in dns 17:45:14 http://org.org/ --- wth is this place? 17:46:19 Someone's random photos is what it looks like. 17:46:31 fizzie, why not call it audio illusions instead? 17:46:41 I mean, there is no good reason to include the word optical there 17:46:57 meh, with such n awesome name 17:47:09 unlike if you were to use the Swedish word for optical illusions: "synvillor" where "syn" refers to "sight" 17:47:27 calling it "ljudsynvillor" would be quite reasonable then 17:47:56 (because "villor" alone means nothing related to illusions. It means "villas". Go figure) 17:48:12 I guess ljudvillor would be interpretable too 17:48:23 Was gonna ask 17:49:30 * Sgeo wonders if his decision to make moveRight :: Tape a -> Maybe (Tape a) will just confuse him beyond all home 17:49:33 *hope 17:51:11 Sgeo: BF in Haskell? I have but one question: why? 17:54:44 Sgeo: what's the meaning 17:55:12 Sgeo, why maybe? 17:55:23 Sgeo, won't moving right always be possible? 17:55:36 while moving left might hit the start 17:55:41 if there's a wrap 17:55:57 hiato, then it will always be possible in both directions 17:56:20 yeah, that's how i'd do it 17:56:50 Well, I want there to be several kinds of tape 17:57:03 It's possible to make tape unbounded at both ends, or bounded at both ends 17:57:40 hiato, nah I would do infinite tape upwards, but finite downwards 17:57:44 data Tape a = Tape [a] a [a] 17:57:45 -!- coppro has quit (Ping timeout: 276 seconds). 17:57:52 thus forming an analogy to N 17:57:59 With the head of each list being the element closest to the head 17:58:03 while infinite in both directions would be an analogy to Z 17:58:05 erm, tape head 17:58:11 uphill both ways 17:58:26 your tape hiato would be an analogy to N modulo x 17:59:02 * AnMaster wonders what a tape analogous to Q or R would be 17:59:03 I guess 17:59:16 also what a finite, non-wrapping one would be 17:59:20 a finite set I guess 17:59:25 yep 17:59:26 without modulo 17:59:41 How would I make a tape that wraps? let the_list = [0,0,0,0,0] in Tape (reverse the_list) 0 the_liist? 18:00:01 No, I don't.. think so 18:00:03 Sgeo: it's impossible 18:00:04 now I want an uncountably infinite bf tape :( 18:00:12 :( 18:00:15 Sgeo, what is? 18:00:22 wrapping around in a tape? no 18:00:29 I donno, I just find it easier to give a generous length, then rotate tape as needed, always working on the first element 18:00:34 just take the current position modulo the length of the day 18:00:39 s/day/tape/ 18:00:41 weird typo 18:00:48 heh 18:00:55 OR do rotatinos 18:01:02 rotatinos? 18:01:18 rotations 18:01:21 :P 18:01:30 hiato, using a linked list? 18:01:31 tail a ++ [head a] 18:01:44 then yes it makes sense to use a circular linked list 18:02:15 no it doesn't 18:02:27 hiato, if the language is single assignment that would be rather inefficient 18:02:37 assuming cons style lists that is 18:02:48 fax, why not? 18:02:54 use a double linked circular list 18:02:59 moving left or right is trivial 18:03:06 just follow the pointer in the relevant direction 18:03:11 of course that requires a low level language 18:03:23 if you are going to use mutable variables then you should make the values mutable rather than the cons 18:03:36 AnMaster: yeah, true, but that's the concpt, and if mage lazy it doesn't really matter - all operationse on the first etement only 18:03:49 hiato, "mage lazy"? 18:03:54 heh 18:04:03 I have no idea 18:04:10 hiato, what the heck was "mage" a typo for... 18:04:12 New keyboard layout 18:04:25 made? 18:04:28 aha 18:04:32 yeah, made 18:04:37 hiato, dvorsak? 18:04:44 err modulo spelling 18:04:51 Naah, my own 18:04:57 was on colemak 18:05:12 I'm perfectly happy with qwerty 18:05:24 I don't type that much, I code. Meaning I think more than I type 18:05:37 (becuase I don't use asm) 18:05:37 Ah, right 18:05:49 naah, just an experiment 18:06:00 (I do :P) 18:06:11 well okay I use inline asm in C sometimes... 18:06:38 You're just afraid of it's power 18:06:50 nah 18:06:56 :P 18:06:56 I prefer high level languages 18:07:09 I like extremes 18:07:48 because what needs 200 lines of C needs maybe 20 lines of erlang. (well usually not quite as dramatic ratio, but when the stuff is heavy on memory handling it might be) 18:08:30 how many lines of C would it take you to write a program that recurse through a set of directories given on the command line, finding duplicate files 18:08:38 it should avoid reading files if possible 18:08:44 by checking the size of the files 18:08:57 yeah, well, if people talk efficiency and anything other than ASM, they're just making up useless -etrics 18:09:07 hiato, har. 18:09:12 heh, 10000's 18:09:14 hiato, well, efficient in programmer time 18:09:31 no not 10000s 18:09:39 I think maybe 1000 lines at most 18:09:45 some 900 more likely 18:09:53 but in erlang it took me, what, *checks* 18:10:18 232 lines, including comments and blanks 18:10:31 Yeah, 10000's because I know no C libraries and would prob implument another language and link to bash or something 18:10:35 Language Files Code Comment Comment % Blank Total 18:10:35 ---------------- ----- --------- --------- --------- --------- --------- 18:10:35 erlang 1 119 81 40.5% 32 232 18:10:45 according to ohcount 18:10:46 nice 18:11:04 it does it in three steps 18:11:18 yeah? 18:11:39 step 1: recurse and read file info, store in a dict the size as key, and append the filename to the value 18:11:48 so all files with the same size is in the same key 18:12:24 clever start 18:13:16 step 2/3: (2) for each such key it goes through and calculate the hash of each file, stores a 2-tuple {size,md5sum} with filenames (3) for each such key, now it finally checks that they are the same, and we don't have a theoretical hash collision 18:13:25 step 2/3 are done interleaved to make use of disk cache 18:13:32 that is, it won't need to read the files in again 18:13:48 step 2 is done to not have to load as much file data into memory at once 18:13:56 since I need to run this on fairly large files 18:14:02 say 200-300 MB each at most 18:14:27 a lot often the files will be much smaller 18:15:10 Hmmm, but as you probably considered, tle size comparison isn't really necessary, in fact, i'm sure any decent hash takes it into account anyway 18:15:29 but, still clever 18:15:47 hiato, the size is to reduce having to read the files from disk 18:15:55 if there are no two files of the same size 18:16:00 it doesn't have to read those at all 18:16:10 since getting the size is way faster than reading the file 18:16:19 it maps to a simple stat() or such at some level 18:16:21 Oh, right. Heh 18:16:37 ok, cant fault you then 18:16:38 hiato, I ran this on the linux source tree with a compiled kernel in it 18:16:50 it was way faster than a naive bash script that I used before 18:17:07 as in, 30 seconds vs. 7 minutes 18:17:14 both on cold cache 18:17:22 Really? I thought pipes and such are lazy 18:17:27 eh? 18:17:30 what are you talking about 18:17:31 wow 18:17:57 a | grep b && c 18:18:07 or, rather 18:18:26 eh 18:18:39 wait, I'm slow with kbd 18:18:51 Please hold 18:19:30 -!- iamtheobject has joined. 18:19:35 -.- 18:20:28 well 18:20:42 hiato, they just work concurrentlyu 18:20:45 concurrently* 18:20:47 not lazily 18:21:25 Gregor, btw wth is up with the topic? You set it last it looks like 18:21:57 You don't like it? :P 18:23:19 An efficient implementation in *sh would take into account that pipes as data flow are lazy, more specifically, if used as a source, it will only feed as much as is requested, so you could easily implement a naieve list and glob for files based on hashes andpipes that feed data only to the point that the conditional request fails 18:24:04 hiato, no that is incorrect 18:24:12 oh? 18:24:22 pipes are just concurrent, not lazy 18:24:28 damnit 18:24:30 the kernel has a buffer 18:24:38 and i did all that typing 18:24:39 and writes block if that buffer is full 18:25:49 theoretically I could optimise my implementation by doing the md5 calculation while data is being read in 18:25:55 shouldn't be too hard in erlang 18:26:09 -!- ehirdiphone has joined. 18:26:14 * hiato wouldn't know 18:26:16 hi ehirdiphone 18:26:26 Yo 18:26:55 Hi ehirdiphone 18:27:01 Why are you on the iPhone? 18:27:04 ehirdiphone: phone? 18:27:07 Ah 18:27:19 Meh reasons. Not important. Hello! 18:27:42 I think I'm overengineering my BF interpreter 18:27:54 Have you seen the cw input interface for the iPhone? 18:28:04 BRB 18:28:19 hiato: ? 18:28:22 No? 18:28:44 Morse Code iput, er, iDitDah or somesuch 18:28:50 -!- olsner_ has quit (Quit: olsner_). 18:28:54 ehird god dammit 18:30:06 ehirdiphone: http://kb1ooo.com/iditdahtext/iDitDahText.html 18:30:51 Sgeo: You are *probably* overengineering it. 18:30:52 fax: What?! 18:31:20 I was wanting to talk to you for ages 18:31:57 fax: At most you had to wait two days. 18:32:24 I /do/ have to pick things up from the old house. 18:32:26 ehirdiphone you and fax have been missing each other with like 5 minutes for *days* 18:32:33 hiato: Ha 18:32:44 ehirdiphone, have things improved btw? 18:32:50 AnMaster: Aha :-D 18:33:04 fax: Dude, some people have real lives. Granted, ehird is normally an exception. Still. :P 18:33:10 pikhq, :D 18:34:32 ais formulated me getting a girlfriend as the most ludicrous explanation for the unit absence possible. Nuff said :P 18:34:50 nuff said?? 18:35:10 well gf's are extremely easy to get 18:35:17 Enough. Except more nuff-y. 18:35:36 AnMaster: Answered in MSG 18:35:37 oh she didn't get the nuff 18:35:42 msg 18:36:00 * AnMaster looks 18:36:02 wnat the fucking hell is going on 18:36:07 was watching that video hiato linked 18:36:16 fax: Whaddya mean? 18:36:35 is "pareto optimal" in common usage? 18:36:41 do you all know what it means? 18:37:10 no 18:38:01 okay that's enough of an answer for me 18:38:45 :C 18:39:16 fax: Be more precise and if you want to talk do. 18:40:24 ehirdiphone do you know who I am ?? 18:40:25 -!- ehirdiphone_ has joined. 18:40:26 -!- ehirdiphone has quit (Remote host closed the connection). 18:40:28 -!- ehirdiphone_ has changed nick to ehirdiphone. 18:42:14 fax: I was under the impression you wanted to talk :P 18:42:38 hi 18:43:01 http://www.nuffy.net/pics/funny/toilate/toilete_signs_08.jpg Little did they know that ZW birds are female :P 18:50:10 is "pareto optimal" in common usage? <-- what *does* it mean 18:50:49 fax: Be more precise and if you want to talk do. 18:50:49 ehirdiphone do you know who I am ?? 18:50:50 * ehirdiphone_ (~ehirdipho@82.132.248.25) has joined #esoteric 18:50:50 * ehirdiphone has quit (Remote host closed the connection) 18:50:50 * ehirdiphone_ is now known as ehirdiphone 18:50:50 fax: I was under the impression you wanted to talk :P 18:50:52 hi 18:50:55 ehirdiphone, in case you missed some of that 18:51:32 fax: What do you mean, do you know who I am? 18:51:34 http://www.nuffy.net/pics/funny/toilate/toilete_signs_08.jpg Little did they know that ZW birds are female :P <-- ZZ? ZW? 18:52:31 I'm your father ehirdiphone. NOOOOOOOOOOOOOOOOOOOOOOOOOOO! 18:52:32 Bleh at there being no Integer -> Char 18:52:36 XX is female, ZW is female, so in fact these bathroom signs are indicating that male birds (and some insects, etc) use the same restroom as female mammals (e.g. humans :P ), and female birds (etc) use the same restroom as male mammals (e.g. humans) 18:52:46 Sgeo: Int 18:52:54 Gregor, har 18:52:56 + fromInteger 18:53:04 Gregor, "restrooms"? 18:53:05 toEnum ? 18:53:17 ... yes? 18:53:18 Gregor, do you mean toilets? 18:53:19 Gregor: Hawt :P 18:53:30 Maybe I should just have the tape be Tape Char 18:53:37 Gregor, what is the circle and the triangle symbols? 18:53:39 are* 18:53:40 AnMaster: In the US, that's just about the only word we don't use to refer to the room :P 18:53:47 Gregor, heh 18:53:48 Although that complicates + and - slightly 18:53:50 AnMaster: That I can't answer ... 18:53:54 well, not really, I guess 18:53:57 Gregor, ah 18:54:11 Sgeo: succ. pred 18:54:19 Char will do fine. 18:55:04 Gregor, why call it restrooms? 18:55:10 Gregor, also what about "loo"? 18:55:20 "water closet: a toilet in Britain 18:55:20 wordnetweb.princeton.edu/perl/webwn" 18:55:23 hm I guess not 18:55:23 That's a word with no meaning whatsoever here. 18:55:40 "Loo" is just fine. Don't think many people *use* it, but I'm pretty sure most people would understand it just fine. 18:55:53 apparently Gregor didn't 18:55:56 pikhq: GET OUT OF MY COUNTRY YOU TRAITOR COMMY 18:55:58 pikhq, I would use toilet? 18:56:00 *COMMIE 18:56:01 Gregor: Hah. 18:56:03 Crapper 18:56:10 AnMaster: "Uh, the toilet's in the bathroom..." 18:56:17 har 18:56:20 Nobody says water closet 18:56:21 ehirdiphone: "Uh, the toilet's in the bathroom..." 18:56:24 you don't need to call them anything, just say you're gonna take a shit 18:56:29 WC, /maybe/. 18:57:13 "i intend to leak fecal matter out of my ass, where should i do this" 18:57:14 OK, OK, so most people would know what "loo" means. 18:57:27 pikhq, here in Sweden toalett can be both the room, or the equipment. When referred to as the room it is a room which contains only the equipment and handfat (English word slipped my mind, you was your hands there) 18:57:33 But it would be like this "loo" -> "funny British word for bathroom" -> "bathroom" 18:57:38 Not "loo" -> "bathroom" 18:57:40 it wouldn't be used for a room that contained a bathtub or such as well 18:57:48 Whereas WC would just have people scratching their heads. 18:58:07 AnMaster: "handfat" is officially the greatest word ever. 18:58:09 WC is common on signs for toilets around here 18:58:11 AnMaster: Sink? 18:58:14 AnMaster: A room with just a toilet is also a bathroom. ;) 18:58:18 no one would *say* it though 18:58:22 Gregor, ah yes 18:58:25 AnMaster: yeah 18:58:28 Exactly 18:58:31 pikhq, it is not! 18:58:34 well maybe in English 18:58:37 "restroom" and "bathroom" are used interchangeably here. 18:58:39 In floor plans, it's termed a "quarter bath". In spite of having 0 baths. 18:58:41 Not in English, in American vernacular. 18:58:50 I always thought that abba song was about toilets when I was really young 18:58:55 WATERLOO! 18:59:02 ehirdiphone, well no one would say "water closet" in the same way as no one says "dihydrogen monoxide" 18:59:19 as in, I actually heard people using it, but just as a joke 18:59:31 ehirdiphone, hehe 18:59:56 argh now I feel I have that tune on my head 19:01:01 ehirdiphone, that "water closet: a toilet in Britain" was from define:loo btw 19:17:01 Flood 19:17:03 -!- dixon has quit (Ping timeout: 276 seconds). 19:17:08 Upfpdgkglc fyoddv fypf cups tx hung ufgo 19:17:35 ehirdiphone, flood? 19:17:53 Izi USB jai ow zkqodj wkdhf euwixb jdb jd dk ne fdisk zlqpxh 19:18:04 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 19:18:04 * AnMaster goes elsewhere 19:18:42 Ozowkd abxoxbs fowoxjwj x dj jz. I icori h dj oso odj jebwkxodocidisbbaixieisoso kj jwoxppskjajco ackvpgirurvx iwospwiiqbzbc woxpfkf. 19:19:17 -!- tombom has quit (Quit: Leaving). 19:19:50 -!- dixon has joined. 19:20:43 -00:01/10:33, and I'm near the end of this file 19:20:46 says vlc 19:20:47 near the end 19:21:02 19:33 < AnMaster> was watching that video hiato linked <------ er? 19:21:06 funny the way it continues to count 19:21:10 -00:-02 19:21:23 okay now it is worse 19:21:29 01:08/01:03 19:21:46 hiato, the link you linked 19:21:57 had a video demoing the thing on it 19:22:11 Ooooooh. Heh 19:22:54 also, at least vlc can count, dont get me started about mpd and streams 19:26:28 -!- dixon has quit (Ping timeout: 240 seconds). 19:26:39 hiato, oh? 19:26:51 -!- Sgeo has quit (Ping timeout: 265 seconds). 19:28:06 It just gives seemingly random numbers. Fair enough, it cant be expected to track position in a stream, but it gives me things like 99:01:01:01 19:28:23 -!- dixon has joined. 19:28:25 i mean, what is that? The radio station is older 19:28:44 and I've been listening for maybe ten minutes 19:28:45 hiato, possibly in the current segment? 19:28:52 of something 19:29:18 Heh, exactly 19:30:33 hiato, or 99 indicates a stream 19:30:45 se posible 19:30:50 se? 19:31:02 it is, IIRC 19:31:10 French 19:31:15 non? 19:31:16 99:01:01:01 <-- is 99 in hundreds of hours? 19:31:18 or what 19:31:25 No idea 19:31:33 hiato, well what is the last unit in? 19:31:39 let me connct now and show you 19:31:41 seconds? centiseconds? 19:32:37 Pfftt.... no idea 19:32:51 07:17:47 is the one pice of info 19:33:04 the other is my corroct listen time 19:33:07 * AnMaster has a 3 line, 14 column lcd here 19:33:18 should I make it possible to get a console on it? 19:33:21 or try to at least 19:33:27 would need a user space daemon for it 19:33:28 FTW\ 19:33:36 since I need to program it with libusb 19:33:39 isn't se written c'est 19:33:42 s/\//! 19:33:48 it can only display a limited charset btw 19:34:19 oklopol: wouldn't know, never took french 19:34:28 ic 19:34:44 ("isn't ic written i see") 19:34:53 ;) 19:36:00 -!- MigoMipo has quit (Read error: Connection reset by peer). 19:37:19 AnMaster: 20:30 < AnMaster> since I need to program it with libusb ---> what about a parallel port? Significantly easier 19:37:22 -!- Sgeo has joined. 19:37:54 My dad stepped on the switch for the power thing that powers the cable modem 19:38:13 Gregor: what is a "mandelstam"? 19:38:23 -!- jcp has joined. 19:38:48 It's a verb. "to mandelstam" 19:39:09 Ok, and it's meaning is? 19:39:14 -!- dixon has quit (Ping timeout: 276 seconds). 19:39:25 Well ... it's a mandelly kind of ... stamming. 19:39:26 *its 19:41:24 Oh? Wouldn't have guessed that, sneaky and deceptive. So it's like like a not so frabtious way of presbiedling 19:41:52 -like 19:47:54 I think my bftape.hs is good enough 19:48:10 -!- adam_d has joined. 19:48:51 http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24660#a24660 19:50:39 Sgeo: any particular reason for moveby? 19:50:52 -!- lament has joined. 19:51:05 The main program stores BF commands as, e.g., BFMove 5 19:51:15 Instead of just BFRight 19:51:17 or something 19:51:29 Oh, ok 19:53:20 I like the modifyTapeHead 19:53:38 nice thinking 19:53:49 ty 19:57:24 It seems like it can take a while to figure out how to write a line of Haskell, but reading it is easy 19:57:33 [in general] 19:58:09 And it's generally important to be able to read code later, more so than writing it now.. 19:58:46 -!- dixon has joined. 19:59:07 Gregor, there? 19:59:15 Yes? 19:59:20 Gregor, I have a little request for your musical skills 19:59:24 Oh? 19:59:27 Gregor, something I think might be interesting 19:59:54 Go on 19:59:57 Gregor, the result of merging the internationale and some of Chopin's music 20:00:04 I have no idea what it would sound like 20:00:12 but it sounds interesting 20:00:18 and I lack the skill to do it myself 20:01:19 Guhhh uhh? 20:01:27 Gregor, eh? 20:02:09 Gregor, is that a good or bad sign? 20:02:26 I don't yet know :P 20:02:35 However, I do believe this is probably beyond my skills. 20:03:02 Gregor, ah :/ 20:03:09 Did you have anything more specific than "Chopin's music"? 20:03:39 Gregor, well, some suitable music by him. I'm not quite enough expert on him to be able to name a specific piece 20:03:46 Gregor, but iirc you liked him a lot 20:04:03 so I assumed you would be able to pick a suitable, slow piece that is typical Chopin 20:04:16 e.g. "Any Chopin Nocturne #whatever" :P 20:04:35 Gregor, well yes sounds good. 20:04:46 just pick the number you want 20:05:24 Gregor, you see, I and some other people were discussing this in another channel (on another network). 20:05:55 I imagine the fact that you've ever heard The Internationale before and I have not has a lot to do with our respective positions on Earth :P 20:07:12 Gregor, eh? 20:07:24 Gregor, you haven't heard the Internationale?! 20:07:29 Well, I have now. 20:07:38 (assuming that "ever" was a typo for "n&" 20:07:40 ) 20:07:54 Maybe I have before, but dismissed it as "extraordinarily generic anthem-sounding music" 20:08:03 Gregor, well so it is! 20:08:08 Gregor, kind of 20:08:27 Gregor, it is just that it is about as far as you can get from a Chopin nocturne 20:08:34 which is why we were discussing merging them 20:08:40 I see :P 20:09:09 Gregor, I have no idea if it is possible, and if it is, if the result is interesting 20:09:11 So I assume you were referring to merging not so much in creating a piece of music which is a stylistic merge, but actually mixing recordings of both into some horrible mutant. 20:09:31 but considered that I once heard a boogie-woogie waltz... 20:09:37 I don't consider it *impossible* 20:10:22 i'm good at mixing X and deathcore for any value of X, if anyone's interested 20:10:30 heh 20:10:46 oklopol, to what ratio? 20:11:11 to any X/deathcore ratio less than or equal to 0.5, i suspect 20:11:48 that was actually mostly a joke, deathcore isn't what i usually write (although it is what i usually listen to). 20:11:56 Gregor, http://www.youtube.com/watch?v=eFO0SXf4mw4 (lyrics in Swedish btw, but the music itself should be interesting, the boogie-woogie waltz) 20:12:38 the composer and perfomer is the famous (in Sweden) comedian Povel Ramel 20:12:44 performer* 20:15:26 that's some serious liquid insanity 20:17:36 -!- Alex3012 has quit (Read error: Connection reset by peer). 20:17:36 -!- Sgeo_ has joined. 20:17:36 -!- Alex3012 has joined. 20:19:05 oklopol: set X = 0 20:19:23 write me some nothing music 20:19:52 if i mix deathcore and nothing, won't the result be just deathcore 20:20:52 also people generally manage to name the genre of any of my music, except those who hear an electric guitar and say metal or rock 20:20:57 *don't 20:20:58 -!- Sgeo has quit (Ping timeout: 265 seconds). 20:21:05 oklopol: hmm right 20:21:10 god i'm getting tired of inequalities 20:21:23 X = -deathcore 20:21:48 Don't what? 20:22:07 X = -deathcore + i :| 20:22:13 there should be a don't somewhere in there 20:22:20 X usually denotes a set 20:22:23 they manage not 20:22:32 or matrix 20:22:40 Or something that isn't a variable. 20:22:50 eh? 20:23:17 you mean in something like let (X, S, m) be a measure space, X is not a variable? 20:23:32 or what do you mean by variable 20:23:39 A variable varies. 20:23:52 err no it doesn't, in math 20:23:57 Yes, it does. 20:24:02 In math. 20:24:03 oh 20:24:07 this is news to me 20:24:11 e.g., y = 3x+6 20:24:15 a variable is just something you plug in values for 20:24:18 but i believe you 20:24:24 x \in R, thus x can VARY to be any value in R 20:24:32 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info). 20:24:38 and in (X, S, m), X can VARY to be any set 20:24:51 -!- ehirdiphone has joined. 20:25:27 Not ANY set. 20:25:34 dixon: That's a stupid definition of change. 20:25:46 ehirdiphone: Thanks? 20:25:53 absolutely any set can be made a measure space out of 20:26:01 x \in R has more constraints 20:26:10 Yw 20:26:38 if you say let x \in R and then prove something about x, you're doing it for any value of x. similary, if you let (X, S, m) be a measure space, and prove something about it, you prove something for any measure space. 20:26:46 what's the difference making x a variable and X not one? 20:26:50 oklopol: Vitali set, boiiiiii 20:27:26 what 20:28:06 i'll assume you were joking above 20:28:55 I'll assume you're pretending not to know about non-measurable sets. 20:29:29 i know about non-measurable sets 20:29:45 i just don't see how vitali set made any sense 20:29:52 * Sgeo_ wonders if making his parser blind to too many [ is a bad idea 20:30:35 Sgeo_: "meh" 20:30:42 oh you meant 20:30:46 well, too many ] will probably cause it to ignore everything after the extra [ 20:30:48 erm ] 20:30:48 Bad program = undefined behaviour :P 20:30:53 if X is a vitali set, then you can't make a measure space out of it? 20:30:55 ehirdiphone, heh 20:30:56 that's not true 20:31:04 obviously 20:32:16 ... 20:32:49 ehirdiphone: wrong 20:33:14 Quadrescence: about what 20:33:16 bad program = doesn't do what it's supposed to 20:33:26 or it does but exceedingly poorly 20:33:36 dixon: any set X can be made into a measure space by setting S = {{}, X} and m(a) = 0 for all a \in S 20:33:38 This parser is getting uglier by the second :/ 20:33:42 even a vitali set 20:33:46 Quadrescence: I meant 20:33:47 So if a measurable space has a lebesgue measure, and the Vitali set isn't lebesgue measurable 20:33:55 Feed nonprogram to interpreter 20:33:58 => UB 20:34:05 oh okay 20:34:12 then you're off the hook 20:34:23 That's wonderful, but is that making a measure space of the Vitali set itself, or a different set containing the vitali set as a subset? 20:34:25 THE HOOK 20:34:49 Sgeo_: Use parsec :P 20:34:57 it's making a measure space of the vitali set, X = vitali set. i assumed the vitali set was an example of something X can't be 20:34:59 ehirdiphone, is that a joke? 20:35:04 because you said X can't be *absolutely any set* 20:35:04 After several people told me NOT to? 20:35:05 Sgeo_: no 20:35:13 They're fucking idiots 20:35:21 and said this is because "vitali set boiiiiii" 20:35:24 ehirdiphone: Brainfuck parsing. 20:35:25 Were they in #haskell? 20:35:31 If not disregard them 20:35:36 also you can even make R^n into a measure space such that all vitali sets are measurable 20:35:42 i'll leave this as homework 20:35:43 pikhq: Is a two liner in parsec 20:35:52 ehirdiphone, pikhq and Quadrescence and dixon 20:35:58 And 4 lines out of it. :P 20:36:10 pikhq, um, this is much much more than 4 lines 20:36:27 Sgeo_: dixon is a moron and pikhq should be ashamed :P 20:36:38 And Quadrescence is a fluffy bunny. 20:36:46 Thusly he can do no wrong. 20:36:52 He is excused. 20:37:07 How about this: I do it both ways 20:37:19 TMI 20:37:30 rofl 20:37:47 that's some serious liquid insanity <-- what is? 20:37:48 ehirdiphone: dixon is certainly not a moron 20:38:21 Quadrescence: can you explain his statement about X vs x? 20:38:45 i hope there's a better argument out there than vitali set boiiiii 20:38:56 Which is better: A language that's easy to write in but difficult to read, or a language that's easy to read in but difficult to write? 20:39:00 Boiiiii 20:39:09 Sgeo_: neither 20:39:14 Sgeo_: One that's difficult to both! 20:39:22 oklopol: I don't really remember what the argument was 20:39:41 It's just that it seems that Haskell tends to be a bit of the latter, imo 20:39:51 Quadrescence: then nm 20:40:07 or read logs, it's not a very interesting argument 20:40:14 Sgeo_: Only because it is new to you. 20:40:26 you can reiterate the question/whatever so we are all on the same page 20:40:38 Avoid stating informed opinions until you're informed :P 20:41:03 the claim was that X usually denotes matrices or sets and is therefore not a variable, unlike x which denotes things like real numbers 20:41:20 -!- Oranjer has joined. 20:41:26 and that in x \in R, x can *vary*, whereas if you say (X, S, m) is a measure space, X can't vary 20:41:38 dixon: do you agree with what he just said (that this was the claim, be it true or false) 20:41:51 i don't see how there's any distinction between those 20:41:55 Quadrescence: I said X can't assume all values. 20:42:08 well X \in Set, of course 20:42:13 e.g., a non-measurable set 20:42:27 Assuming lebesgue measure 20:42:32 that statement i just find plain weird 20:42:43 why couldn't you make a non-measurable set into a measure space 20:42:44 oklopol: X \in Set or MeasurableSet 20:42:48 Set 20:43:13 any set made into a measure space as for instance (X, {{}, X}, m), m(a) = 0 for all a 20:43:25 *can be 20:43:40 Dear Notepad++: Please don't attempt to match [ and ] if they're in single quotes 20:43:57 Any negative number can be made nonnegative by adding its inverse. That doesn't make it initially nonegative. 20:43:58 Dear Sgeo_, learn to use a decent fucking editor 20:44:13 also x \in R, so even if it was MeasurableSet, X would still be a variable in the same sense that we name an arbitrary element of some class 20:44:47 dixon: what? a vitali set is not in any way inherently non-measurable, as i said there are measures on R^n where vitali sets can be measured. 20:44:49 Actually I don't think X is a variable now 20:45:01 why? what's the difference? 20:45:09 oklopol: It's not Lebesgue measurable! 20:45:16 we say let X \in Set, and we say x \in R 20:45:26 and then we talk about that one x or X that can't change during the discussion 20:45:27 I just said "assuming Lebesgue measure" like 10000000 times 20:45:59 err right, the second time i missed that 20:46:01 I did for a second but now I don't. When I think variable, I think: forall X in D, f(X) 20:46:13 that's a weird assumption because it's not relevant that X can be non-measurable in some measure 20:46:31 The most popular measure :\ 20:46:39 (among the ladies anyway) 20:46:51 (i thought boob size was the most pop) 20:46:53 it's still irrelevant if we're talking about whether X can be made into a measure space 20:47:05 obviously there will be some spaces where X is not a measurable set, for any X except {} 20:47:22 and yeah sure it's the most popular 20:47:35 Quadrescence: Make a measure space of boobies. Get your sigma algebra all over that :3 20:48:11 oklopol: also IIRC you just interchanged "measure space" and "measurable space" a few times 20:48:22 Quadrescence: can you explain why "forall X in D, f(X)", as a definition for variable, makes x a variable in "x \in R", but not X in "X \in Set" 20:48:35 i seriously doubt that, but maybe, let's see 20:48:51 oklopol: I can explain if I add more context to the question 20:48:53 oh well 20:49:27 i did talk about non-measurable set, and meant non-lebesque measurable, that might not have been clear from context 20:49:30 idk this discussion is boring let's listen to Sgeo_ talk about stuff 20:49:31 Awesome, this parser seems to actually be working 20:49:32 sure add context 20:49:37 yes it's very boring 20:49:50 cool his parser is working 20:50:14 I wonder if his parser is parsing or if he is confusing lexing with parsing or both 20:50:28 Well, kind of. Extra ] causes it to cut off, and it seems to automatically put ] at the end if needed 20:50:40 What do you guys think? 20:51:19 hmm 20:51:21 It's not working 20:51:40 Ah nvm guys his parser isn't working 20:51:40 the fact ] is causing him trouble suggests parsing 20:52:23 i ate so much pizza i'm all twitchy 20:52:32 oklopol: yes I agree so I suppose he is talking about parsing and not lexing 20:52:38 is that healthy / even possible? 20:52:43 maybe it's caffeine kicking in 20:52:47 no that is not healthy and it is not possible 20:52:59 thought so 20:53:31 Quadrescence: but what do you think, is he using a separate module for the parser and the interpreter 20:54:04 speaking of caffeine, i should probably make some coffee before i get tired 20:54:06 probably because he seems to be the type that would overengineer the dick out of something 20:54:19 God did that to women 20:54:21 hence men 20:54:42 "out of something", so i think god did it to guys 20:54:51 I have the definition of the tape and functions that operate on it in a separate module 20:54:59 women are more optimal in many ways 20:55:00 oklopol: the pizza is slowing you down 20:55:18 I'm going to win our pseudo-argument now >:) 20:55:38 Sgeo_: so do you really have a stateful tape? or do you have a thing that generates new tapes from old ones 20:55:50 men are more in the direction of movie-autistic genius in that they suck and own at things more often than women 20:55:51 new tape from old ones 20:56:06 http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24660 20:56:16 which is away from the equilibrium of perfect humanness 20:57:01 dixon: i never considered it a pseudo-argument, although i agree it was a complete waste of everyone's time 20:57:15 oklopol: If we didn't have time to waste, we wouldn't be on IRC 20:57:17 Haskell is so anti-climactic. 20:57:25 You slave for hours and what do you have to show for it? 44 lines. 20:57:44 fuck yeah C \o/ 20:57:44 | 20:57:44 |\ 20:57:51 haha i love this bot 20:57:59 It can't count. 20:58:12 counted just fine on my screen 20:58:24 Have a monospaced font? 20:58:26 The modify lines seem to be below the 44 20:58:26 dixon: you probs have that alignment junk I hate 20:58:33 Quadrescence: DO NOT 20:58:33 at a margin 20:58:37 yes, i consider non-monospace ugly 20:58:48 oklopol: Do you read websites in monospace? 20:58:50 yes 20:58:55 haHAHAHahahAHA 20:58:55 oklopol: that is terrible 20:58:56 so weird 20:59:01 that is the worst idea i've ever heard 20:59:10 also i disable all features on pages, they are just white on black monospace 20:59:16 I helped him set up windows. Everything on his screen is 20:59:20 ehirdiphone made the theme for me 20:59:20 HAHahaAHaHahhahaHahahAHa 20:59:21 jk Sgeo_'s idea of using parsec to parse bf was the worst idea 20:59:21 yeah 20:59:23 White on black 20:59:27 Consolas 20:59:31 EVERY thing 20:59:37 You're so weird. 20:59:40 almost everything, some things override it 20:59:42 NO exceptions. It is beautiful. 20:59:51 ehirdiphone: not on the internet 20:59:54 even made an IE stylesheet for it 20:59:56 people are like wtf why is your computer broken 21:00:00 Quadrescence: oh yes 21:00:01 well, that is, if you use more than 2 websites on the internet 21:00:03 see ^ 21:00:06 oklopol: That's just because you use Windows. 21:00:21 what's just because? the override? 21:00:36 \o/ _o/ \o/ _o_ \o_ 21:00:36 | | | | | 21:00:36 /'\ >\ /\ >\ |\ 21:00:50 who decided to give some of these penises? 21:00:52 oklopol: No the broken 21:00:56 he meant 21:00:58 If he used something other than Windows they'd say that because it's not Windows 21:01:01 oh hmm yeah maybe 21:01:25 well you see they don't actually say anything because i never take my computer outside and no one even visits me 21:01:31 i mean i meet people but never here 21:01:42 haha 21:01:52 oklopol: Sure you did. 21:02:07 oklopol: You just go to your measure theory class and home to fap to it. 21:02:16 We now know the truth! 21:02:19 :P 21:02:34 measure theory isn't really what i do, measure spaces are just the only thing i was sure everyone would know 21:02:46 Sgeo_: what is a measure space??? 21:02:58 not like let [n, k, d]_q R be a linear code 21:02:59 ? 21:03:08 Sgeo_: What Is A Measure Space? 21:03:15 well where everyone = {dixon} :D 21:03:22 Why are you asking me? 21:03:30 Sgeo_: i said everyone knows measure spaces 21:03:37 and *someone* decided to take that literally 21:04:08 Can you find someone else to assume to be ignorant? 21:04:18 yeah fuuuuuuuuk taking "everyone" LITERALLY since there are so many other ways to take it 21:04:23 \o_ 21:04:23 | 21:04:23 >\ 21:04:42 so broken 21:04:52 i never mean what i say 21:04:59 bee are bee i hav 2 pee 21:05:03 AnMaster: only for xchat users 21:05:18 ehirdiphone, and other similar clients 21:05:25 I made erc format it that way too 21:05:28 oklopol: Or because it was the highest level of knowledge you could surmount in order to battle my raging ego. 21:05:49 but it uses a static value 21:05:52 Woohoo, I think it's working 21:05:53 and a max column 21:05:55 \o_ 21:05:55 | 21:05:55 >\ 21:05:56 | 21:05:56 |\ 21:06:02 is what I see 21:06:30 AnMaster: That is a fekking bizarre alignment thing. 21:06:50 no, lowest 21:06:50 pikhq, well no. It is supposed to be like xchat. But Quadrescence's nick is one char longer than the max length 21:06:58 pikhq: aligned rightwards 21:06:58 pikhq, this it overflows into the other area 21:07:02 oklopol: Uh huh! 21:07:04 See, that's bizarro. 21:07:11 ehirdiphone: See? 21:07:13 the linear code thing was the highest level 21:07:15 :P 21:07:15 pikhq, rightwards is normal 21:07:17 to me 21:07:20 xchat does it too 21:07:23 there it looks like: 21:07:27 i assume you don't care what they are 21:07:30 *know 21:07:31 And that's all that does that. 21:07:31 \o_ 21:07:32 | 21:07:32 >\ 21:07:32 | 21:07:32 /\ 21:07:34 oklopol: I lol'd. 21:07:38 pikhq, see ^ 21:07:46 pikhq, when I used irssi it did it too 21:07:48 http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24662#a24662 21:07:52 because I set irssi up that way 21:07:53 Seems to be somewhat working 21:08:01 AnMaster: Why do you break your IRC clients? 21:08:05 Another function will combine BFAlters and BFMoves etc. 21:08:07 pikhq, I find it *WAY* easier to read 21:08:27 Bah. 21:08:27 * Sgeo_ wishes it wasn't so ugly 21:08:43 Sgeo_: Use another language. 21:09:02 dixon, then it wouldn't be a bf parser 21:09:03 actually Sgeo_ just wrote it badly :P 21:09:08 but, say, an intercal parser 21:09:21 ehirdiphone, any ideas for improvements? 21:09:24 or do you mean the language the parser is written in? 21:09:27 It wouldn't be in Haskell. 21:09:35 AnMaster: The language it was written in . 21:10:12 Sgeo_: don't mention parsing the rest twice. using god forbid a monad would avoid such duplication 21:10:25 EWW MONADS 21:10:34 codes are subsets of Q^n, where Q is some set. if we take Q to be the finite field of size q then Q^n is a vector space over Q, and linear codes of type [n, k, d]_q R are just subvector fields of Q^n of dimension k (d and R are minimum distance between two codewords and max distance between a non-codeword and the code) 21:10:35 Keep your sick functors away from my categories 21:10:53 so not very deep 21:11:06 (have to define what you mention) 21:11:06 Functor? 21:11:09 I hardly know her! 21:11:12 * Sgeo_ is not sure how he'd use a monad to help here 21:11:18 oklopol: igi 21:11:26 Sgeo_: Just use parsec 21:11:32 ew. 21:11:35 It's Easy. 21:11:49 ew at parsec or linear codes? 21:11:55 Parsec. 21:12:00 Linear codes are fine. 21:12:14 if you like coding theory (the theory of uniform length codes) then linear codes are very useful 21:12:31 ah cool 21:12:38 I like cryptography, so some information theoretic properties of coding and error correction come into platy. 21:12:39 play* 21:13:01 I'll also do it in Parsec 21:13:06 Both ways will be available 21:13:07 dixon: how about whenever anyone mentions haskell you take a big gulp of shut the fuck up- in place of the current pipe the fuck up 21:13:21 Sgeo_: now /that/ is pointless 21:13:24 ehirdiphone: Or I could not. That works better for me. 21:13:32 ehirdiphone: was that a joke 21:13:37 "pointless" 21:13:49 ehirdiphone, the non-Parsec way teaches me stuff, the Parsec way makes it a bit more useful for checking stuff 21:13:51 because haskell can be written in pointless/POINT-FREE style 21:13:51 Quadrescence: no, im not /that/ inanw yet 21:13:55 *inane 21:14:15 -!- tombom has joined. 21:14:20 -!- tombom has quit (Changing host). 21:14:20 -!- tombom has joined. 21:14:31 -!- coppro has joined. 21:14:32 i know very little cryptography 21:14:41 dixon: Yeah but you're the most irritating person here except me 21:15:03 ehirdiphone: I'm also the second-coolest person here. 21:15:03 I have an age exemption; are you royalty? 21:15:09 You'll have to live with the paradox. 21:15:27 am i the coolest?!?!? 21:15:38 a i am i ami amiai maimaimaiamiamiamai 21:15:45 oh i am in awe of your cool 21:15:53 Peanut is the coolest. 21:15:53 AM I COOLEST I WUN BE COOLAST :<< 21:15:58 oh 21:16:13 I'm peanutacus 21:16:15 http://i.imgur.com/cTSP2.jpg 21:16:27 ehirdiphone: you don't have an age exception for long. 21:16:30 *won't 21:16:36 Queen of her domain. 21:16:40 oklopol: orly, how about 18 21:16:43 * Sgeo_ wonders how this parser handles lazy lists 21:16:50 Erm, that was poorly phrased 21:16:55 yes that was 21:16:58 you should be embarrassed 21:16:59 sex in USA = unirritatibg 21:16:59 *exemption 21:17:03 that may be better 21:17:06 *unirritatibg 21:17:14 *unirritatibg 21:17:44 My spellchecker has now learned unirritatibg. 21:17:45 well i don't know which country you are now, although i have my guesses, but i consider 15 enough for everyone. 21:17:49 and everything 21:17:50 No joke 21:18:01 It seems to handle strings with _|_ in the middle nicely 21:18:07 oklopol: BAH 21:18:11 oklopol: The Swedish have a saying: If it's not in diapers, it's old enough to be stretched. 21:18:14 oklopol: i wonder why 21:18:28 dixon: yeah but they're perverts 21:18:35 yeah i'm no pervert 21:18:38 ehirdiphone: Neutral perverts. 21:18:42 tombom: 'cuz oklopol just turned 15 21:18:55 yes 21:18:59 that was what i was thinking 21:19:04 oh 21:19:11 dixon: the swiss are more neutral and THEY DEFEND CATHOLICISM 21:19:15 Or because his boyfriend just turned 15 21:19:21 :P 21:19:23 And he's CATHOLIC 21:19:28 or well they share a name with the pope's guards 21:19:33 purity brick 21:19:37 SAME THING; BOOYAH 21:19:37 HAHAHAHAHAHAHHA 21:19:49 pure, haskell 21:19:52 all makes sense now 21:20:04 anyway oklopol is like 52 now 21:20:16 * oklopol calculates again 21:20:18 That makes sense 21:20:23 pedopedo 21:20:33 Hitting on my young self. 21:20:35 ;))) 21:20:36 well i do find 15-yo girls sexy like any normal male 21:20:39 oklopol: how old are you if you can disclose 21:20:42 that's not pedo 21:20:47 i'm 21 21:20:48 Quadrescence: 21 iirc 21:20:53 just turned 21:20:56 i c 21:21:00 oklopol: Like you are a vampire 21:21:01 had this big party 21:21:04 "Just turned" 21:21:16 :))))))))))))))) 21:21:21 oklopol's bf is me he's saving my penile virginity for 15 21:21:22 ehirdiphone: how old are you if you can disclose 21:21:23 no wait i forgot fangs 21:21:27 tru story 21:21:48 Quadrescence: 3 21:21:59 ehirdiphone: next time just don't answer or say you don't want to 21:22:09 i would tell you but it may have changed since i last heard it 21:22:20 oklopol: Hasn't 21:22:21 i hate ages, should memorize years of birth instead 21:22:28 just retina irritate Quadrescence 21:22:33 *tryina 21:22:42 oh umm then i wish i hadn't said that 21:22:47 oklopol: Birthdays. Using coding theory. 21:22:50 because i have two numbers for your age 21:22:55 14 or 154 21:22:57 *15 21:23:11 Has iPhone in his name, obv 14. 21:23:15 birthday PARADOX mathematics is WRONG 21:23:27 what paradox? 21:23:28 Because YOU ARE EDUCATED EVIL 21:23:30 dixon: your accuracy is physically painful 21:23:34 time cube 21:23:34 oklopol: Birthday paradox 21:23:40 i have heard of that 21:23:52 was it about time dilation or something 21:24:01 no 21:24:01 No 21:24:01 :P 21:24:05 If it redeems me I bought this thing in 2007 when it was still uncool :| 21:24:09 i have a great memory 21:24:16 oklopol: EARTH HAS SIMULTANEOUS FOUR 25 HOUR DAYS 21:24:22 YOU ARE EDUCATED EVIL 21:24:23 ehirdiphone: and you waited until it was cool till you started using it? 21:24:23 etc 21:24:26 that's... much worse 21:24:27 http://timecube.com 21:24:28 ALL ELSE ARE EVIL 21:24:32 oklopol: No 21:24:34 :P 21:24:35 gene ray 2012 21:24:45 100% 21:24:46 YOU STUPID BECAUSE OF EDUCATION LIES 21:24:50 It's more likely that there are two people in a room of.. I forgot how many .. who share a birthday than you might intuitively think 21:24:58 -1 x -1 = -1! 21:25:00 Sgeo_: 23 21:25:03 oh that's the paradox? 21:25:07 i would never have guessed 21:25:20 As much of a paradox as banach-tatami 21:25:24 Tatami 21:25:27 Tarski 21:25:30 tarski? 21:25:31 At 23 the chance of there being two people who share a birthday is 50% 21:25:37 iirc 21:25:38 i forget, are larouchites rather dismissive of negative numbers 21:25:48 then as you get more than 23, that goes up rapidly. 21:26:07 http://en.wikipedia.org/wiki/Birthday_problem for epic win 21:26:08 Sgeo_: iirc? you mean "if i just looked at wikipedia behind this window a second ago correctly"? 21:26:12 24 = 100% because of synchronicity 21:26:17 Quadrescence, I didn't 21:26:20 k 21:26:22 jw 21:26:27 dixon: "epic win" oh please 21:26:30 Quadrescence: No, because It old him from my cryptographic memory of awesome 21:26:36 ehirdiphone: Yes dear? 21:26:36 i remember 23 from reading some book in like 5th grade 21:26:40 for that probability 21:26:47 not what it means, but the number in that context 21:26:47 dixon: I want a divorce 21:26:57 ehirdiphone: I keep the house. 21:26:59 And your penis. 21:27:10 You can have the kids. 21:27:11 i used to read all sorts of crap as akid 21:27:14 *a kid 21:27:20 Me too. Like Playboy. 21:27:23 dixon: ok how about an anullment 21:27:43 ehirdiphone: It'd be just like you to not put out and call it quits. 21:27:53 dixon, i heard that the library you wrote years ago is becoming an official part of the standard library for the D programming language 21:28:04 Why did I ever even think you were so much to want to than do anymore like? 21:28:07 it is so cool to meet people who know that much about crypto 21:28:18 Quadrescence: but that means dixon will be 21:28:21 INTERNET 21:28:24 FAMOUS 21:28:32 meh, it's D 21:28:33 Less Internet-famous than Q. 21:28:48 coppro: meh it's D, why meh 21:28:49 D is a bad attempt at fixing C++ 21:28:53 wrong 21:28:58 cpressey is more famous than walter bright :p 21:29:19 i'm less known than all of you put together 21:29:20 D was a very good attempt, and rather successful in terms of the language itself, but politics and everything around it was not good so etc 21:29:40 no, D as a language is pretty bad 21:29:41 oklopol: you're -1 famous 21:30:01 if not for time cube just become -1 times more famous 21:30:06 coppro: agreed 21:30:10 coppro: D as a language is fine. It's just the implementations that suck. 21:30:17 A hodgepodge of features 21:30:18 * Sgeo_ can't seem to copy from GTK+ applications to any other application 21:30:22 D as a language is good (pre 2.0) 21:30:27 no D is okay as a language and the politics is okay, but it has a crappy name 21:30:29 all apropos nothing 21:30:39 and the syntax, while easier to parse than C++'s, is even uglier 21:30:46 Wiat, it's working now? 21:30:50 wat 21:30:53 wat 21:30:56 ! for templates, wtf 21:30:59 Quadrescence: do you think his code is now working? 21:31:00 wiat 21:31:05 oklopol: no 21:31:08 oklopol: No copying 21:31:09 coppro: Fixes issues with <<<<<<<>>>>>>>. 21:31:12 From gtk apps 21:31:16 Why is it that all-of-a-sudden, copy/paste from XChat is working. It never worked before 21:31:19 dixon 21:31:21 I think the ! is much better than <>, parsing problems or not 21:31:22 (and Pidgin) 21:31:23 *dixon: what? 21:31:28 dixon: Instead !(!(!(!()))) 21:32:00 ehirdiphone: Much better to parse. 21:32:01 ehirdiphone: note that << is an operator in C++, so is >>, so is <, so is > 21:32:03 -!- MizardX has quit (Ping timeout: 276 seconds). 21:32:09 so is ! 21:32:14 dixon: yes, much better to parse. Also uglier 21:32:18 I'd prefer SPECS 21:32:22 ! is prefix 21:32:28 Quadrescence: yes 21:33:39 anyway it's a fact that if someone thinks D is uglier than C++, then that someone also think bjarne stroopywoopy's mop head is hotter than raven riley after a shower 21:33:54 Everything should just use Haskell's type system :D 21:33:55 AnMaster: You've inspired me to actually try to learn to /play/ something by Chopin properly :P 21:33:56 A TRUE FACT 21:34:08 Sgeo_: Yes definitely 21:34:28 Especially those things which require values to be a part of types 21:34:40 You know, like a type like Matrix(2,3) 21:34:45 haskell is totes appropriate for this 21:34:49 * Gregor looks up Raven Riley for comparison 21:34:53 Haskell's type system is nice but hardly ideal 21:35:05 Sgeo_: Nnnno 21:35:34 Sgeo_ is just amazed and etc after using haskell for one day and is professing wisdom and whatever he thinks he has obtained 21:35:57 I've been using Haskell for more than one day 21:36:05 NEEDS MORE LAMBDA 21:36:09 Just haven't written a large project in it before 21:36:13 Sgeo_: sorry 1 week 21:36:16 I mean 1/2 weeks 21:36:25 (one half) 21:36:38 THOU SHALT HAVE BUT ONE CHARACTER IN YOUR MACHINE ALPHABET. LAMBDA. 21:36:38 How about, I started no later than September 26, 2009 21:36:47 And have made Haskell puns before then 21:36:52 (Well, one pun) 21:36:54 LAMBDA LAMBDA LAMBDA, LAMBDA LAMBDA. 21:36:57 HASKELL PUNNNNS 21:37:06 It was not the best pun tbqh 21:37:07 Sgeo_: Oh it seems you've started about 1 day ago 21:37:35 ehirdiphone, execution-wise or concept-wise? 21:37:39 esp. since just yesterday you said "is it worth learning haskell?!?!?!" 21:37:50 Sgeo_: erm both :p 21:37:57 :/ 21:38:10 ;( 21:40:26 Sgeo_: Did you know that Haskell curries? 21:40:31 coppro, yes 21:40:35 :P 21:40:45 Did you know that curry is *delicious*? 21:40:48 Is there supposed to be a pun based on someone's name in there? 21:40:52 uh, yes 21:41:16 Howard you figure that out? 21:41:26 the guy the language is named after, even 21:41:33 Haskell my anus 21:41:34 coppro, yeah yeah 21:41:42 Haskell Curry. Hooray. 21:41:57 for whom both Haskell and currying are named 21:42:15 schoenfinkeling is the proper term 21:42:49 -!- impomatic has joined. 21:42:51 Only an iPhone user would schoenfinkel 21:42:58 Hi :-) 21:43:04 dixon: wat. 21:43:24 wat. 21:43:39 I think it should be "Haskelling". 21:43:47 "In Haskell, every function is haskelled." 21:43:56 but schoenfinkel invented it! 21:44:09 -!- MigoMipo has joined. 21:44:13 pikhq: untrue 21:44:16 Yeah, well. Schoenfinkel should change his name to Haskell. 21:44:24 (A,B) -> C 21:44:26 Wasn't currying invented before Haskell? Haskell Curry did Currying stuff, not Haskell stuff 21:44:35 Sgeo_: No duh 21:44:35 I think programmers should stop sullying great mathematicians by naming shitty languages after them. 21:44:49 Curry just popularised Schoenfinkeling. 21:45:01 heh 21:45:03 dixon: oh, go away 21:45:13 ehirdiphone: no u 21:45:32 everyone knows that things in math and science aren't named after the discoverer, but the researcher 21:45:37 dixon: our sole resident /actual/ mathematician has his name in the haskell98 report 21:45:47 http://verrahrubicon.free.fr/Combinator.pdf 21:45:58 ehirdiphone: Much to his embarrassment, I'm sure. 21:46:03 i agree with dixon 21:46:17 ehirdiphone, who? 21:46:20 dixon: why not ask oerjan? 21:46:28 And he's not your sole resident mathematician. 21:46:50 * Sgeo_ thinks ais523 counts as a mathematician. 21:47:04 Not if that's secretly alise. 21:47:14 Sgeo_: More of a computer scientists. 21:47:33 ais523 is multiple people now? 21:47:34 i am a journalist 21:47:39 I dunno, the 2,3 TM work was pretty mathy 21:47:40 dixon: Trolltastic. 21:47:45 Sgeo_: Hah. 21:47:51 pikhq: No, I'm serious. 21:48:02 dixon: ... Oerjan == alise wha? 21:48:11 pikhq: ais--whatever. 21:48:14 dixon: ais solved the 2,3 TM problem 21:48:29 ais523 == oerjan wha? 21:48:34 Admittedly, only Wolfram cared about the implications 21:48:39 pikhq: == me 21:48:44 apparently 21:48:53 ehirdiphone: ... The hell? 21:49:08 I propose we collectively ignore dixon on the grounds that he is duck-fuckingly annoying 21:49:36 dixon: http://en.wikipedia.org/wiki/Alex_Smith_(The_Simplest_Universal_Computer_Proof_contest_winner) Here's ais523's Wikipedia article. :P 21:49:47 pikhq: I asked if ais was alise? 21:50:12 dixon prolly hates wp too :p 21:51:37 I don't hate anyone. 21:51:55 but you hate entities 21:52:01 i have nothing against dixon but if everyone else ignores him i'll probably start talking to him here 21:52:07 *stop 21:52:25 Yes, the world needs more sheep. Good call. 21:52:44 ok operation Duck Fucking begins, im no longer highlighting dixon at all 21:53:16 nothing wrong with sheeps 21:53:33 I find it somewhat humorous, ehirdiphone, that you equate ignoring me to bestiality. 21:53:48 * ehirdiphone Fuchs some Duchs 21:53:51 No offense to anyone, but no academic institution would really accept this as something: http://www.wolframscience.com/prizes/tm23/TM23Proof.pdf 21:53:57 (thx iPhone spell corrector) 21:54:02 you wouldn't stop talking to someone if everyone else just saw your half of all your conversations? 21:54:11 Quadrescence: he wasn't exactly trying for that 21:54:14 why not just talk in pm and spam your half on the channel then 21:54:24 well i guess that's more work 21:54:29 he had his proof wolfram demanded shit he collated it 21:54:36 tada money 21:54:50 he was just playing around to find a proof 21:54:56 Quadrescence: why? (i haven't read it) 21:55:01 (well some of it) 21:55:09 * Sgeo_ doesn't ignore people 21:55:11 oklopol: idk becuz i sed so 21:55:15 oklopol: it's not in Computer Modern 21:55:29 Quadrescence: Yeah, it's up to Wolfram's standards, not anyone sane's standards. :P 21:55:29 oklopol: No, I'd keep talking just to annoy the people who were ignoring others. But I'm a bastard. 21:56:03 i might too, dunno 21:56:06 Quadrescence: Amuway it's being published in Complex Systems 21:56:19 admittedly 21:56:25 a wolfram journa 21:56:25 L 21:56:32 Last I heard they keep asking him to change it 21:56:42 Been years now 21:56:48 Prolly won't ever get published 21:57:14 oh it says "I" instead of "we" 21:57:23 therefore unpublishable 21:58:13 :D 21:58:24 I think it has more to do with the Impact headings and whatnot. 21:59:28 he just used the default openoffice style iirc :p 21:59:38 so probably not impact 22:00:23 Really? Looks like Impact Condensed :\ 22:00:33 it looks like shit 22:00:44 (literally, look from a distance) 22:01:12 (well of course it looks like shit, it's not monospaced!) 22:01:43 Quadrescence: You're just looking at the Perl code. 22:01:44 Quadrescence: Yeah so what 22:01:44 We're talking maths :P 22:02:02 dixon: oops yeah you're right 22:02:07 oerjan used latex so mush 22:02:08 *nyah 22:02:13 Math can be beautiful. 22:02:15 ehirdiphone: actually we are talking about some computer science 22:02:15 -!- jcp has quit (Read error: Connection reset by peer). 22:02:28 It's even more beautiful when typeset properly. 22:02:49 Quadrescence: oerjan is no CSer you whore 22:02:57 tru 22:02:57 :| 22:03:12 i was kidding anyway since CS is a subset of math 22:03:33 subfield, it retains its arithmetic and is closed under... I'm kidding. 22:03:38 yeah :P 22:03:42 also oklopol http://www.file-pasta.com/file/0/funktio_rec.pdf 22:04:07 closed under actual physical COMPUTERS OMG 22:04:32 much prettier 22:05:15 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info). 22:05:38 -!- ehirdiphone has joined. 22:06:18 my dream is to become such a great mathematician my papers will be published in journals even though i mandate they be printed in monospace. 22:06:45 well actually my dream is to ever get anything published anywhere, but anyway 22:07:18 -!- charlls has joined. 22:07:26 submit it to Annals of Mathematics then Rejecta Mathematica 22:07:31 infallible 22:07:41 Keep your Masterpieces in a Personal Journal. 22:07:48 dixon++++++++++++++++++++++++ 22:07:56 dixon: you are zeilberger 22:08:00 oklopol: What about if you demand that they be in monospace with *unrendered* TeX? 22:08:01 Yeah, so? 22:08:03 this explains EVERYTHING 22:08:12 :D 22:08:27 o 22:08:28 actually i'm fine with math notation 22:08:43 well most of it 22:08:46 Me too. 22:09:00 Except pochhammer. 22:09:09 pochhammer l o l 22:09:16 I like it apart from the inconsistent/ambiguous bits 22:09:20 ...wwwwait 22:11:55 And there's some abuse of notation with matrices and unit vectors too, but nothing too bad. 22:12:37 |x| is crappy but most of the rest is fine 22:12:58 (1 massively ambiguous 2 starter = terminator) 22:13:05 |x| is amazing 22:13:10 |x| is wonderful 22:13:18 lol. 22:13:22 ||x|| is slightly annoying 22:13:40 Not so much when typeset, but in IRC, etc. 22:13:52 ||x||, for all those negative cardinalities 22:14:06 wat 22:14:11 wat 22:14:16 Precisely! 22:14:26 fungot, hi there 22:14:27 AnMaster: c-h b c-x o c-s eval c-s etc. automatically translating scheme to human language 22:14:36 AnMaster: You've inspired me to actually try to learn to /play/ something by Chopin properly :P <-- hahah 22:14:40 :D 22:14:51 ^style 22:14:51 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube 22:14:53 if x is a set and its cardinality is negative, you need || 22:14:54 aha 22:14:56 ||.|| 22:15:03 oklopol, how rude :P 22:15:11 what is? 22:15:16 never mind :P 22:15:21 i will 22:15:34 innuendo 22:15:35 there 22:16:02 ||.|| looks like very squashed breasts obvs 22:16:18 ehirdiphone, goatse? 22:16:20 ehirdiphone has never seen boobs 22:16:29 you don't have enough imagination 22:16:42 Quadrescence has never seen ||.|| shaped breasts, ha! 22:16:47 Crazy man! 22:16:49 nor have I 22:16:56 Or have you 22:17:00 no 22:17:05 Coreutils... GNU coreutils... 22:17:07 ehirdiphone: you have never seen boobs 22:17:18 I have never before seen a 782 line "cat" program. 22:17:24 Quadrescence, he knows how to use internet. I doubt he hasn't. 22:17:34 Quadrescence: Stuck in a loop there 22:17:34 AnMaster: tru 22:17:40 USE INTERNET 22:17:42 -!- hiato has quit (Quit: underflow). 22:18:03 pikhq, I have! Last time coreutils cat was mentioned in here. 22:18:17 Hahah. 22:18:29 HOW DO YOU MAKE A FREAKING IMPLEMENTATION OF CAT THAT COMPLEX 22:18:42 pikhq, tell me 22:18:45 pikhq, what does it do 22:18:46 IDK ADDING ERROR CHECKING AND OTHER THINGS THAT COULD FUCK UP IN C 22:18:54 Cats are complex creatures. 22:19:04 Quadrescence: Hah. 22:19:10 ehirdiphone, yes, what with all the quantum state you have to emulate 22:19:13 AnMaster: ... Significantly more than file concatentation. 22:19:14 Quadrescence: 782 lines? you write really bad C 22:19:16 in case someone puts it in a box 22:19:25 i have seen more boobs online than irl 22:19:32 It does rather a lot of manual buffering, as well. 22:19:32 pikhq, you could try mmap()ing the file if possible 22:19:36 oklopol: shicking 22:19:37 hope this isn't too much of a shock 22:19:39 that should add some 20 lines at least 22:19:39 Shocking 22:19:43 -!- iamtheobject has quit (Quit: Leaving.). 22:19:52 oklopol: That's true of anyone. The difference being you have seen boobs IRL. The same cannot be said by ehird. 22:19:56 ehirdiphone: i am v bad at c 22:19:59 ehirdiphone, "shicking"? XD 22:20:02 AnMaster: That would be saner than what this is doing. 22:20:12 Manual. Buffering. 22:20:12 pikhq, then what *is* it doing 22:20:17 what the hell 22:20:23 *why* 22:20:27 cat is so well written 22:20:31 "Because." 22:20:34 There's something called *portable C* 22:20:45 but libc has buffering... 22:20:51 dixon and Quadrescence are currently embracing one another discussing their next contrarian move 22:20:55 Quadrescence: And then there's something called "crazy". 22:21:01 sweet, really 22:21:11 pikhq: Yes, and it happens this is just written in portable, robust C 22:21:16 they're allergic to agreeing with anyone else 22:21:17 Something that is apparently foreign to you all 22:21:32 I hope you are joking 22:21:37 ehirdiphone: Careful, we may include sardonicism. 22:21:43 also cat is afaik written for posix systems 22:21:50 Yes I am definitely joking because that would be a funny joke 22:22:07 Quadrescence: The point is that there are no C systems without buffered IO. 22:22:08 yeah thought so 22:22:28 pikhq, ds9k? 22:22:34 pikhq: actually, you're wrong 22:22:42 Fine, "almost no". 22:22:48 "Few" 22:22:49 pikhq, correction: "no hosted" 22:22:50 Most of the standard library stuff is *optional* 22:22:51 Probably not any one with libc. 22:22:56 The guys ate RedHat generally know what they're doing. 22:22:59 Quadrescence, freestanding ones 22:23:00 -e 22:23:01 Quadrescence: Buffered IO is K&R. 22:23:10 pikhq: K&R is not standard 22:23:23 dixon, I don't think that is good for your digestion 22:23:29 AnMaster: Me either :< 22:23:33 What I'm saying is that "dear God, it's a feature of C that is on any sane system and most insane ones." 22:23:34 dixon, :/ 22:24:06 So what's all this about maniacs thinking they're going to be using a C system where stdio is unbuffered? 22:24:07 pikhq: And it was probably written at least 100 years ago. 22:24:10 pikhq: What I'm saying is that it's better to support insane systems to than not at all for a library that is supposed to be portable across systems 22:24:31 Oh, look. And this is using 22:24:44 *read* instead of any buffered IO. 22:24:51 I think that if you manage to find a system for which the C library does not have buffered stdio, that will be the LEAST of your problems. 22:25:06 Note that read is actually less portable than buffered IO. 22:25:07 dixon, Yes it is well known Ada Lovelace wrote the first version of GNU cat! 22:25:09 The fact that it almost certainly won't have a filesystem, processes, or more than 256 bytes of memory are more significant. 22:25:28 pikhq, wonderful 22:25:35 pikhq, is it using write() or? 22:25:45 Gregor: A standard is made for a reason 22:25:47 AnMaster: read() and write(). 22:25:53 sigh 22:26:03 Which are common to all POSIX systems, sure, but are not standard C. 22:26:07 It's made to be followed, not made to be seen as a piece of paper and then users decide what is sane 22:26:28 Of course a specific C function is less portable than a general implementation strategy ;-P 22:26:50 "read" is portable than the buffered IO primitives in ISO C. 22:27:04 pikhq: ^less 22:27:12 ehirdiphone: Dankon. 22:27:36 So, all the manual buffering increases complexity and reduces portability. 22:27:50 That's fucking madness. Sheer fucking madness. 22:27:55 pikhq, you forgot a word there 22:27:58 " "read" is portable than the buffered IO primitives in ISO C." 22:28:02 more or less? 22:28:05 portability is completely irrelevant 22:28:10 yeah true it is definitely fucking madness 22:28:19 AnMaster: less. 22:28:21 i'd write cat in like 30 lines lol 22:28:22 right 22:28:27 30!? 22:28:31 Yes. 22:28:32 I'd write it in two 22:28:38 (If in C) 22:28:41 hah 22:28:42 oklopol: More complex, less portable, harder to read, less efficient. 22:28:44 AnMaster: /msg 22:28:54 pikhq: go do some benchmarks 22:28:59 then tell me about efficiency 22:29:00 pikhq: Less efficient? 22:29:10 ehirdiphone, mhm 22:29:21 This buffering is also done stupidly. 22:30:20 Not that it *matters*, but damn. 22:30:45 seriously were the coders drunk or something? 22:30:59 Quadrescence: GNU. 22:31:04 Ballmer peak 22:31:24 pikhq: Patch it? 22:32:03 I wonder if they would accept a patch for it 22:32:22 No. 22:32:45 Probably not. 22:32:47 ehirdiphone, you are probably correct 22:33:06 Nah the implementation is so shitty why wouldn't any sane person accept a patch 22:33:20 brb 22:33:23 If you made a funny webcomic about it though, they might. 22:33:26 read /msg people 22:33:29 Worked for XKCD. 22:33:38 terrible buffering technique 22:33:40 700 lines 22:33:59 not portable 22:34:00 inefficient 22:34:16 oh my god shut up 22:34:41 main(){while(!feof(stdin))putchar(getchar());} 22:34:42 :D 22:34:42 Done 22:34:43 Quadrescence: http://codepad.org/yG9ubkE2 obv we should've switched to BSD 22:34:58 pikhq: That's not standard C. 22:34:59 fax: aren't you interested in portability and buffering? 22:35:12 pikhq: You may get an error that isn't EOF 22:35:22 I am only interested in telling people to shut up 22:35:24 Deewiant: Meh. 22:35:25 :P 22:35:34 oh 22:35:43 Mine'd've been {int c; while((c = getchar()) != EOF) putchar(c);} 22:35:54 if you want your code to be correct, you don't use C 22:36:03 dixon: that is 250 lines that is terrible inefficient etc 22:36:11 Both aren't standard C. 22:36:38 What's nonstandard? 22:36:56 main() is assumed int and must return a value. 22:37:03 nonstandard C can do computation with infintesimals 22:37:11 Mine was just a compound statement, not the whole thing 22:37:15 heh 22:37:41 Deewiant: But it was in { } which was assumed to be main. 22:37:47 Yes 22:37:50 In standard C99 you don't have to explicitly return a value 22:38:07 main must return 22:38:12 both aren't standard C, but one is! 22:38:13 Not in C99. 22:38:16 hahahahaha 22:38:42 Yes you do. 22:38:49 No, you don't. 22:38:58 while(!feof(stdin)) putchar(getchar()); also has the problem that feof(stdin) returns true only after getchar() has actually returned EOF once, so you get an extra character at the end. 22:39:01 if only there were specs where you could check this stuff 22:39:07 Further, the standard restricts main() to main(void) and main(int argc, char **argv) 22:39:13 In C99, when control flow reaches the end of main, the return value is 0. This is an exception to the norm. 22:39:18 (Really, I left out #include and int main(void) and return 0; because I couldn't be bothered to type them out) 22:39:22 Though main() is "acceptable" 22:39:25 But not recommended 22:39:47 :3 22:39:49 Anyways. How's about non-retarded arguments? 22:39:54 yeah 22:39:57 like your mom 22:39:58 Love me some non-retarded arguments. 22:40:05 like acne and boils 22:40:17 like fax's fagoo 22:41:14 which do you think is better, O(n/\epsilon^2) or O(n^2/\epsilon)? 22:41:23 (ISO/IEC 9899:TC2 5.1.2.2.3 "Program termination": "reaching the } that terminates the main function returns a value of 0.") 22:41:32 \epsilon is the parameter of the approximation, n is the size of input 22:41:47 Deewiant: Yes, but still not recommended. 22:42:00 dixon: Yeah, shaddup. 22:42:01 Your recommendations weren't under consideration. :-P 22:42:11 not his recommendation 22:42:29 I recommend you all STFU 22:42:35 tru 22:44:00 oh, that was in the technical corrigendum number 2, which is why dixon said otherwise, because it's not in the standard prior to that 22:44:25 pikhq: yeah, shaddup 22:44:30 brb ham 22:44:35 OMG I WANT HAM 22:44:38 Quadrescence: We're in agreement, then. 22:45:24 Quadrescence: It's not in the TC2 changes, I'm pretty sure it was there from the original 9899 onwards... 22:45:27 I don't want anyone to shut up, so more oil to the flames: the } thing is in the original ISO/IEC 9899:1999 standard, too. 22:45:42 Yeah, it's not in the TC1 changes either. 22:46:46 I don't think it's 1999-specific 22:47:08 C++98 had it, and it's something that would only have been considered as a legacy feature 22:47:19 It certainly wasn't in C89 or C90. 22:47:47 And I don't know why they'd put it in TC2 if it was in the original draft. 22:48:44 9899:TC2 meant the original standard with TC up to 2 applied to it. 22:49:34 I don't think so 22:49:34 I wonder if there's any version of "cat" that has special-case code to use sendfile(2) on systems that provide a suitable one. (I'm also not sure if any do; Linux's out_fd must be a socket, and I'm not sure it handles well the case where the amount of input bytes isn't known.) 22:50:26 The corrigenda are individually referred to as ISO/IEC 9899/Cor.#:200# 22:50:36 err 22:50:44 ISO/IEC 9899:1999/Cor.#:200# 22:50:57 I do not believe there is a term to indicated the consolidated Standard 22:51:22 I do not care whether it was correct, I said it's what it meant and I know what I meant :-P 22:51:42 "ISO/IEC 9899:TC2" was from the header of http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1124.pdf 22:51:48 The WG14/N1124 draft pdf has... right. 22:52:00 Deewiant-ninjutsu is too fast. 22:52:08 Quite. 22:52:17 anyways 22:52:25 Speaking of C99, does anyone know a compiler that implements the full standard? 22:52:43 Cormac or something? 22:52:46 Almost does it 22:52:48 Sun Studio, supposedly. 22:52:52 Sun's supposedly does 22:53:09 the FDIS for ISO/IEC 14882:1998 included the text about implicitly returning 0 after main. This is not a feature that would have been considered except as a legacy feature from C, and due to the timing it could not have been a C99-only feature 22:53:15 supposedly sun does that 22:53:33 SUN 22:53:38 ... supposedly 22:54:19 coppro: It was a compiler extension long before it became standard, but it was never standard. 22:54:25 I fucking hate GNU compilers. 22:54:46 dixon: like I said, I cannot imagine this feature being included in C++ unless it was standard in C prior 22:55:00 "before it became standard, but it was never standard" 22:55:11 Yes. 22:55:25 oh please guys, dixon is just changing his opinions according to ours 22:55:34 First it was LOL GNU IS ROBUST 22:55:39 So, what you're saying is that it is not standard and that it was an extension before it was standard. 22:55:45 Then LOL CRAZY CODE 22:55:47 You're an idiot, and /ignore. 22:55:56 woah wait are you saying dixon is trolling 22:55:57 pikhq: To C89, yes. 22:56:04 fax: Nah, really? 22:56:09 woah woah that is a pretty strong statement 22:56:15 fax: GOSH 22:56:37 pikhq: You can't honestly think implicitly returning 0 was in the C89 standard. 22:56:40 unfortunately, I cannot see a public list of DRs for C90 22:57:00 btw, let us discuss C90, not C89 22:57:08 Bet dixon doesn't even know there was a C94; well, almost. 22:58:39 C89 and C90 are equivalent 22:59:08 -!- augur has quit (Ping timeout: 246 seconds). 22:59:53 how do I generate numerals from 000-999 in bash? 23:00:07 jot perhaps? 23:00:29 coppro: seq 23:00:39 thanks 23:00:56 a nice command 23:02:27 -!- calamari has joined. 23:02:27 ehirdiphone: are you sure all your insults to dixon are justified? 23:02:36 lol 23:03:07 -!- Mibbigal has joined. 23:03:23 bak 23:03:54 * coppro wants a 'wgrep' command 23:04:00 also btw C89 is the best 23:04:01 -!- charlls has quit (Ping timeout: 264 seconds). 23:04:08 C99 is only good for crypto libs 23:04:10 but that's it 23:04:13 no exceptions 23:04:14 coppro: w? 23:04:23 fax: And I wasn't trolling. It's well-known that several compiler extensions were in place before and after the C89/90 standards were ratified. Allowing 'void main()' and 'implicitly returning 0' were part of those extensions. They're still enabled in the GNU compiler by default. Yes, C99 made this 'standard' behavior, but it's still not recommended. Your functions should always return a value if they're stated to. 23:04:25 But seq(1) is not POSIX! How can you suggest such a thing! 23:04:29 Quadrescence: Sorry, I like for(int i = ...) 23:04:34 fizzie: Nor's bash. 23:04:40 pikhq: I feel sorry for you too 23:04:54 int i = 0;for(...) is dumb. 23:05:02 pikhq: Yes, though bash was already given in the question. 23:05:07 int i; for (i = 0; ...) is not, however 23:05:20 Anyways. Imma go do something more intelligent than talk to you. 23:05:26 tru 23:05:32 Like feign intelligence. 23:06:01 The irony of him ignoring me because his misunderstood what I said is just precious. 23:06:01 Anyway, I am going to assume you've never written a compiler before and wouldn't understand why declaring variables at the start of a block is good, and also beneficial for those who maintain. 23:06:14 he* 23:06:37 i don't understand it at all 23:06:45 hmm oh 23:07:08 well maybe i wouldn't understand it either 23:07:40 but i know for a fact maintainability is really uninteresting 23:07:52 tru 23:08:20 if you wanna write big programs, you're just fucking stupid imo 23:08:27 -!- coppro has quit (Ping timeout: 260 seconds). 23:08:35 why not write small ones and not write big ones 23:08:37 The maintainability thing is also debatable; a for loop index variable isn't that much more unclear, no matter whether it's defined where the loop start or at the beginning of some arbitrary block where the loop happens to be in. 23:08:57 ummm 23:09:19 fizzie: suppose you are changing variables from int to long in order to use arrays larger than 4GB 23:09:28 But god damnit you can't seem to find that bug in your program 23:09:33 programming language trolls handbook, page 12, section 3: "maintainability is a good one to use because if anyone disagrees you can just tell them they haven't worked on any REAL programs" 23:09:48 fax has never written in C, btw 23:09:57 fizzie: You haven't worked on any REAL programs. 23:09:59 that's funny... 23:10:09 also fax forgot an apostrophe in "trolls" 23:10:13 Quadrescence: Shouldn't you be using size_t to begin with?-) (There's a huge mess of a thread in comp.lang.c unmoderated about that.) 23:10:19 fizzie: no 23:10:27 I work on a "real" program, in development since 1977.. and it is the biggest pipe of shit code I've ever seen 23:10:36 **pile 23:10:39 Why would you use size_t for loop indexes? It can be negative. 23:10:47 unsigned int all the way, baby. 23:10:54 size_t is unsigned, you know. 23:10:57 ssize_t is signed. 23:11:02 -!- coppro has joined. 23:11:12 And noone argue with me saying my situation is impractical because it indeed is! 23:11:55 fizzie: See /msh 23:12:01 /msg 23:12:55 fizzie: Can't you just play along? This is all part of an elaborate plot to annoy the hell out of ehirdiphone. 23:13:07 however, having said that.. the program works well.. but you just have to be a little flexible and not assume a single programming style throughout 23:13:29 dixon: I'm not annoyed. 23:13:35 the biggest problem with programs like that is idiots that can't be flexible 23:13:46 ehirdiphone: tru 23:13:50 (fax has never written a program before) 23:13:56 they spend years trying to save themselves from getting into fights by making up 'guidlines' and stuff 23:14:20 (fax has never followed a guideline before) 23:14:59 guidelines change.. so I don't see how that helps long term 23:15:13 calamari: really? 23:15:29 Well, guidelines never work out in the open source world where there are no dictators 23:15:35 calamari: You have to be like the ISO people and have your guidelines change once a decade or so. 23:15:44 yes.. short term it helps but long term you're still going to have a mess 23:16:10 Then it all kinda smooths out, because only one compiler (Sun, apparently) fully supports your changes 11 years after you make them. 23:16:21 hahaha 23:17:02 fizzie: ping 23:17:12 But if you find yourself unstandardized, then you get the mess of incompatibility that is D, Python, Java, etc. 23:17:18 hahahahahahhahahaha i found a video of fax on youtube 23:17:20 ^echo hi fizzie 23:17:21 hi fizzie hi fizzie 23:17:46 http://www.youtube.com/watch?v=jeK1g2L1C6o 23:18:00 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info). 23:18:41 -!- ehirdiphone has joined. 23:18:53 I wonder how they talked their mom into doing this. 23:19:15 -!- augur has joined. 23:19:30 shut up augur 23:19:40 :( 23:19:47 Someone fax hates more than me? Pleasure to meet you. 23:19:48 fax = pthug? :( 23:20:08 -!- tombom has quit (Quit: Leaving). 23:20:38 Nevermind, sad face and lack of retort means he's a pussy. 23:20:42 dixon: oblique raises [in the] neuromuscular junction 23:21:00 Quadrescence: Bicept Lift Ankle Krossover 23:21:11 That's Krossover with a K 23:21:14 :3 23:21:30 * Sgeo_ tries to again focus on Brainfuck 23:21:47 I'm amazed what bad trolls you are. 23:21:50 Quadrescence: sexy 23:21:55 i took my pants of 23:21:56 *off 23:22:06 oklopol: me too 23:22:17 Do you think we would have talked to you if we had anything interesting to discuss? 23:22:33 oklopol: :o 23:22:35 oklopol: Aw, I was hoping that to be some sort of "pants of X" special-pants thing. 23:22:43 * augur lays on oklopol 23:22:49 oklopol: this is also worth seeing: http://www.youtube.com/watch?v=4MjTb5A68VA&feature=channel 23:22:53 fizzie: hi 23:22:54 * Quadrescence gets augur off 23:22:57 f u 23:23:00 nooo 23:23:03 oklopol is MINE >O 23:23:06 ehirdiphone: hey 23:23:19 Quadrescence: maybe. if you're nice. 23:23:25 um but augur you are mine therefore by the law of transitivity................................................... 23:23:35 -!- MigoMipo has quit (Read error: Connection reset by peer). 23:23:35 since when am i yours >| 23:23:48 also, possession is not a transitive relation. 23:23:58 infact, it's antitransitive 23:24:00 uh since I beat some sense into you about rewrite rules 23:24:09 YOU? hah! 23:24:20 you're the one who was all like "yeah ok i see your point ill take that into consideration" 23:24:44 "ehirdiphone: Do you think we would have talked to you if we had anything interesting to discuss?" <<< what do you mean? 23:24:49 Well yeah I had to be respectful since last time I was not respectful fax got super pissed and began to talk shit about me 23:25:01 are there older women in that vid too? 23:25:57 ah younger women and pencils with faces. you know what i like man 23:26:24 wtfbbq 23:27:54 pedopen's signature of approval 23:28:57 http://image.fpsbanana.com/ico/sprays/pedobear4dzsmalll.jpg 23:31:02 -!- Mibbigal has changed nick to mibygl. 23:31:39 Anyone have a suggestion for a good high-school level algebra book? 23:31:55 my suggestion is no one learns high school level algebra 23:32:17 Who's the author? 23:32:34 everyone is their own author in that one 23:32:44 no wait 23:32:57 maybe more like no one. 23:33:36 -!- FireFly has quit (Quit: JO). 23:33:50 -!- Quadrescence has quit (Ping timeout: 245 seconds). 23:34:00 -!- oerjan has joined. 23:34:30 -!- Quadrescence has joined. 23:35:38 hay guise 23:35:39 Welcome back, Quadrescence. 23:35:50 We missed you. 23:36:06 Thanks 23:36:17 don't worry oerjan we noticed you too 23:37:23 argh! 23:37:29 * oerjan tries to be invisible 23:37:52 it says i have the +i flag, why isn't it working? 23:40:54 no, i am not ashamed to be mentioned in the haskell report. although the reasons _are_ trivial corrections. 23:41:06 * oerjan skips the rest of the logs 23:41:27 fax: ping 23:43:07 oerjan: It's alright, we know The Truth(R)(TM)(C) 23:43:15 oerjan: you shouldn't, there was this fascinating conversation about all sorts of things 23:44:11 Yes, it was wonderful. Especially the part about measure spaces, linear coding, and compiler extensions. 23:44:48 actually part of both conversations was about variables 23:45:16 They're an important topic. 23:45:28 variables don't exist 23:46:13 Your mood is a variable. 23:46:15 afk 23:53:42 I, uh. Do complain to me if you feel like what will follow is a miscarriage of justice or anything such. I don't promise I'll be awake very much longer, though; but then again, this is just an IRC channel, not the end of the world. 23:54:01 Also preliminary apologies if I mess up chanserv manipulatations somehow. It's amazing what I can mess up. 23:54:12 Hm. Besides dealing with consecutive + and -, and > and <, what optimizations can I easily make 23:54:31 fizzie is so soft and sensitive 23:54:40 Sgeo_: printing using printf or equivalent, and not simple char in and char out 23:54:41 Obviously, two loops means the second can be discarded 23:55:10 Quadrescence, I'm talking about manipulating the BF at this point, not the interpreter 23:55:23 idgi 23:55:51 optimize :: [BFCmd] -> [BFCmd] 23:56:01 -!- ChanServ has set channel mode: +o fizzie. 23:56:16 fizzie: Chanserv is hard. Let's go shopping! 23:56:27 —and neutralised... 23:56:34 Yes, I don't really know why I bother with it anyway. 23:56:37 the Lord Pilot. 23:56:37 ...why would dixon be kicked? 23:56:44 -!- dixon has joined. 23:56:44 -!- ChanServ has set channel mode: +b *!*@unaffiliated/reikon. 23:56:44 Quadrescence: ... 23:56:46 fizzie: You missed one. 23:57:07 fizzie: ban me too plz 23:57:33 Quadrescence: I'm trying, I'm trying. It's not as easy as it looks like. 23:57:46 any day now 23:57:58 You have a very difficult nickname to spell. 23:58:03 :P 23:58:05 q u a d r e s c e n c e 23:58:18 I think I got it now. 23:58:23 -!- Quadrescence has joined. 23:58:24 -!- ChanServ has set channel mode: +b *!*@unaffiliated/quadrescence. 23:58:33 That "akick" thing is really brain-dead. 23:58:49 Why can't it just kickban people, instead of just adding them to some sort of mysterious list that is only checked at join-time. 23:59:06 And nothing of value was lost. 23:59:11 Beats me. 23:59:13 Thanks fizzie! 23:59:26 Have you considered therapy for your op allergy? :D 23:59:40 Maybe there's some sort of topical cream I could use. 2010-04-05: 00:00:18 * Sgeo_ sees a bunch of ][ in Lost Kingdom, and decides that removal of extreneous loops isn't a bad idea, even if it misses some extraneous loops 00:00:32 Topological cream. 00:03:40 -!- mibygl has quit (Quit: Page closed). 00:04:17 I wish I had something sufficiently esoteric to present (to sort-of justify that we needed the channel in a usable state), but that Piet compiler I was hoping to advertise here is still a bit too unfinished. 00:05:05 (In the "ERROR:main.c:94:main: code should not be reached. Aborted (core dumped)" sense of unfinished.) 00:05:56 hey ehird 00:06:06 ever heard of finite fourie transform 00:06:14 finite fourier transform 00:06:14 So I want a language where self-concatenation results in nop. 00:06:26 So for all code x, xx = nop 00:06:31 fax: Yes.... 00:06:37 :( 00:06:57 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:07:11 ehirdiphone: that's probably easy if you don't also want concatenation to mean execution chaining :D 00:07:12 Flip bit, *, is a self negating op. 00:07:41 otherwise, cpressey already tried that. (burro, was it?) 00:07:47 oerjan: hey, cpressey managed it but hs inverses weren't thr same 00:07:49 His 00:07:58 They were different code iirc 00:08:25 say % moves cell 00:08:51 "If M, then move left; else move right. Toggle M.@ 00:09:00 *M." 00:09:06 %% is nop 00:09:08 oh true 00:09:15 xyxy wouldn't be nop 00:09:16 Then suppose ! = toggle M 00:09:22 %!%! 00:09:31 even if primitive operations had that property 00:09:34 That's not nop. 00:09:49 So let's say % doesn't toggle M. 00:10:00 Then %!%! is a nop. 00:10:02 you would need xyx = y for all x,y, essentially 00:10:13 oh right, an _abelian_ group 00:10:22 oerjan: well that's what im doing 00:10:26 -!- dbc has joined. 00:10:45 * flip; % if m then leftelse right; ! toggle m 00:10:46 you end up just xoring bits of features, that way 00:10:56 *bit fields 00:10:58 this is ok so far, right? 00:11:12 %*!%*! 00:11:31 .0 0 0 00:11:37 0 .0 0 00:11:52 0 .1 0 (not m) 00:12:06 .0 1 0 (not m) 00:12:12 .1 1 0 00:12:15 dammit 00:12:51 ehirdiphone: each operation would essentially be a flip of some set of bits 00:12:56 eliminate ! Then 00:13:07 > if m then right else left 00:13:17 < if m then left else right 00:13:22 both toggle m 00:13:37 oerjan: new idea 00:13:48 p(reverse p) = nop 00:14:12 *>*< <*>* 00:14:22 1 0 0 0 00:14:31 1 .0 0 0 00:14:33 well that's easy since you only need each primitive operation to have that property 00:14:40 1 .1 0 0 00:14:51 1 1 .0 0 00:14:58 1 .1 0 0 00:15:03 yeah that works 00:15:08 My optimizer stripped 1781 bytes off of Lost Kingdom 00:15:22 oerjan: is pp = nop feasible 00:15:28 as in potentially tc? 00:15:34 Or at least nontrivial 00:15:38 i don't think so 00:16:05 Then reversing it is. 00:16:32 since it has to be an abelian group, you could _sort_ the operations and it would be equivalent. obviously the only property remaining is whether each primitive operation is an even or odd number of times 00:16:34 symmys, is the name. 00:16:56 Sgeo_: nice 00:17:11 calamari, how so? 00:17:16 oerjan: ha 00:17:20 Sgeo_: closer to 2 mb :P 00:17:57 oerjan: ok what about pp=opposite of p 00:18:09 ehirdiphone: that just means ppp = nop, right? 00:18:09 This thing currently doesn't have the brains to run parts of code, see the result, and just put it back in 00:18:28 oerjan: hmm.. yes, I suppose 00:19:08 Sgeo_: my bfbasic language produces rather bloated code, so I'm sure you can do better :) 00:19:21 that seems trickier to understand. hm. 00:19:31 calamari: it is truly hideous code! :) 00:19:41 calamari, the only effect my optimizer has is removing loops that occur immediately after loops 00:20:02 * Sgeo_ is curious about the [-][.] structure at the beginning 00:21:04 Oppoppo would be a nice name for the pp=opposite p Lang. 00:21:21 ehirdiphone: obviously abelian groups made out of Z_3 parts will fulfil that, but i'm wondering if it can be non-abelian 00:22:20 hm for finite groups, now what was that theorem... 00:23:07 :D 00:23:31 Sgeo_: ??? 00:23:49 No what I'll call "flat" code (code made up of +-<>) should need to change direction more than twice 00:24:05 calamari, Lost Kingdom begins with [-][.]. 00:24:10 erm, not the last . 00:24:16 I'm curious as to why 00:24:40 maybe he added that on, but I don't see that in the actual compiler 00:25:01 Erm, 3 times, not twice 00:25:07 [-][.] seems... dumb 00:25:17 Sgeo_: It's omittable in its entirety. 00:25:30 coppro: I think that's a stripped out set of comment blocks? 00:25:43 p^3 = 1 can be non-abelian iirc 00:26:11 pikhq, my optimizer currently isn't perfect 00:26:12 3x3 upper triangle matrices 00:26:19 err no wait 00:26:21 It just emits loops after loops at this point 00:26:29 Hrm. 00:26:54 well anyway there was some sort of example i'm too tired to come up with 00:27:06 Also, it won't attempt to optimize + - 00:27:10 And I consider that a feature 00:28:24 hm sylow's theorem, but i'm not sure it helps 00:28:27 *theorems 00:28:59 oklopol: oh fine 00:29:16 i'm trying to find it but it seems the webpage of our algebra course is down 00:29:30 somehow you can do it with matrices 00:29:41 1 on the diagonal ofc 00:29:47 oerjan: or how about p^length(p) = nop :) 00:29:54 now if it's finite it must have order 3^n, at least 00:30:15 ehirdiphone: aigh 00:30:54 hm actually that might give some restrictions 00:30:59 It occurs to me that loops nested thus: [++[-]] means that the outer loop doesn't need to be a loo\ 00:31:01 loop 00:31:09 so 00:31:13 ** is nop 00:31:18 as is ****** 00:31:19 ehirdiphone: um wait then every primitive operation is a nop :D 00:31:21 :D 00:31:29 ((1 a b) (0 1 c) (0 0 1))^3 = ((1 2a (2b + ab)) (0 1 2c) (0 0 1)) ((1 a b) (0 1 c) (0 0 1)), so okay, the idea is you take a field with char 3 00:31:33 *^1 you see 00:31:35 oerjan: er I mean 00:31:43 length+1 00:31:48 ok 00:32:00 ********* is nop 00:32:12 Or am I incorrect somehow? 00:32:41 ehirdiphone: how do you get the last one? 00:33:20 oerjan: #*** = 3; ***^4 = ************ 00:33:21 Sgeo_: the outer loop could still be done 0 or 1 times 00:33:42 #** = 2; **^3 = ****** 00:33:44 Oh, right 00:33:44 huh 00:33:58 ehirdiphone: l*(l+1) is always even 00:34:10 right... 00:34:15 you are simply getting everything (**)^n 00:34:25 which is equivalent to having just ** 00:34:40 x^#x-1 = nop :D 00:34:53 okay checked 00:35:07 so nop from ** is ** 00:35:16 from ***, ****** 00:35:24 ****, ************ 00:35:34 so for p^3 = 1, you can take any field F with char(F) = 3, and the upper triangular matrices with 1 in the diagonal will be a non-abelian group with p^3 = 1 w.r.t. multiplication 00:36:02 everything except p^3 is obvious, i couldn't do that with ascii notation 00:36:15 would've been much easier to work out in my head 00:36:33 p^3 = 1 00:36:56 ehirdiphone: still all even. and _you_ do realize that concatenating nops gives a nop, right? 00:37:17 oerjan: i'm being silly 00:37:31 CAN WE PLEASE TALK ABOUT THESE GROUPS NOW 00:38:00 oklopol: make em eso 00:38:09 groups are very eso 00:38:19 non-abelian ones 00:38:23 at least 00:38:27 groups don't exist 00:39:00 oklopol: 3x3 matrices, you said? 00:39:11 yes 00:39:35 so just 3 degrees of freedom... 00:39:58 p^63 = nop 00:40:03 happy? :P 00:40:05 what are degrees of freedom? i've heard of them but didn't really gut it 00:40:37 dimension of space, mostly? 00:40:58 oh 00:41:00 cool :) 00:41:24 in statistics the explanation was really vague 00:41:30 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info). 00:41:48 -!- ehirdiphone has joined. 00:42:33 fizzie: you're still op >:) 00:42:56 -!- fax has quit (Ping timeout: 265 seconds). 00:43:09 [1 a b; 0 1 c; 0 0 1] [1 d e; 0 1 f; 0 0 1] = [1 d+a e+af+b; 0 1 f+c; 0 0 1] 00:43:24 if i did it correctly 00:43:32 iidic 00:44:36 -!- fax has joined. 00:44:49 ehird 00:45:38 Fax 00:45:45 hi 00:45:49 hi 00:46:12 oerjan: looks plausible 00:46:15 will you still ignore me if I mention p, q and <-> fax 00:47:24 answer: yes 00:47:47 so M^2 = [1 2a 2b+ac; 0 1 2c; 0 0 1], M^3 = [1 3a 2b+ac+2ac+b; 0 1 3c; 0 0 1] = 0 if char. 3 00:47:50 I PMd you 00:47:57 = 1, yes 00:47:58 er, = 1 00:48:17 cuz non-abelian 00:48:25 ...and cuz matrix i guess 00:48:45 non-abelian doesn't apply when multiplying a matrix with itself, though 00:48:53 yo 00:49:22 yeah but you don't use 0 for identity in one place and 1 in another 00:49:33 so because the group isn't altogether abelian, you'd use 1 00:49:36 it was a typo :D 00:49:51 and 1 = identity matrix 00:49:56 -!- jcp has joined. 00:49:59 02:47… oklopol: cuz non-abelian 00:50:00 02:47… oklopol: ...and cuz matrix i guess 00:50:06 i included both reasons 00:50:30 WHATEVER 00:50:47 using Z_3 as the field, that gives 9 elements 00:50:50 i mean because the 0 couldn't have been interpreted as the zero matrix 00:50:59 it would definitely still have been the identity matrix 00:51:20 oklopol: oh, and it doesn't need to be a field, a commutative ring is sufficient 00:51:34 so i think the non-abelian thing is a better reason- 00:51:35 *. 00:51:47 well sure 00:54:08 food -> 00:54:16 dog -> 00:58:55 Dog food 01:00:45 now the _next_ question is, can we get an infinite group of this type with finitely many generators? 01:02:14 and then something whose word problem is unsolvable, to perhaps give us TC? 01:02:38 im TC 01:02:40 (turning crazy) 01:09:47 -!- Gracenotes has quit (Ping timeout: 260 seconds). 01:09:54 if you just have {a, b} and w^3 = 1 for all words, then you have an infinite amount of words and finite amt of generators, i think 01:10:10 and it's a group because p^-1 = pp 01:10:32 ooh 01:10:37 "The Burnside problem, posed by William Burnside in 1902 and one of the oldest and most influential questions in group theory, asks whether a finitely generated group in which every element has finite order must necessarily be a finite group" 01:10:51 xD 01:10:54 oh umm 01:10:56 DEAD END REACHED 01:11:02 yeah okay then there must be something wrong with mine 01:11:07 ehirdiphone no the answer is no 01:11:18 :D 01:11:22 it's not entirely unanswered, mind you 01:11:24 so no dead end 01:11:31 huh, isn't it completely answered? 01:11:37 could be 01:11:41 what about ppppp = nop 01:11:43 i'm just reading the article 01:11:49 i think it was by some russians 01:11:54 ehirdiphone: that falls under burnside too. 01:11:57 construction was like 200 pages 01:12:06 however, burnside is generally false, it seems 01:12:12 p^1001 = nop 01:12:12 i just said that 01:12:19 yeah 01:12:22 the answer is no 01:12:40 also that's why construction an not proof 01:12:42 but that doesn't tell us which particular powers are possible 01:12:43 *and 01:13:09 ohhhhhhh 01:13:16 HA 01:13:17 okay i just realized what was wrong with my idea 01:13:25 TIME TO SEARCH FUCKERS 01:13:58 if you take {a, b}^3 and then take the free monoid with the constraint w^3 = 1, then also uw^3 = 1 for all u, w. so it's not a group, it's just a monoid 01:14:22 so turns out the burnside problem of monoids can be answered by any fucker in a minute, but for groups it requires russians. 01:14:40 err {a, b}^* obviously 01:14:57 oklopol: um any monoid in which everything has w^3 = 1 is a group 01:15:15 because you have an explicit inverse w^2 01:15:25 hmm well umm yes 01:15:28 so what's wrong 01:15:42 well you haven't proved it's actually infinite... 01:15:54 the thue morse word has no repetition of order more than 2 01:15:59 take subwords 01:16:06 ah! 01:16:25 they need not be different 01:16:54 because you can expand any 1 01:16:57 in the middle 01:18:09 "By contrast, very little is known when exponents are small, exponents 2,3,4 and 6 excepted." 01:19:01 in other words, it's probably still unsolved for many of them 01:19:17 but solved for 3, so probably it's finite then 01:20:41 okay what you need to do for semigroups is to add a 0 element and set uxxxv = 0 for all u, x, v 01:21:14 then you can find an infinite amount of words in a binary alphabet by taking thue-morse 01:22:10 and we have 0*u = 0 = u*0, obviously not a group 01:22:48 "B(m,3), B(m,4), and B(m,6) are finite for all m." 01:22:52 now for any substring of the thue-morse word, you can do no rewrites, because the 0 element doesn't occur and neither does a repetition of order 3 01:23:13 m is the size of finite basis? 01:23:17 (and B(m,2) is even simpler, it's what we discussed above) 01:23:20 yeah 01:23:21 or maybe not basis set of generators 01:23:29 *yeah 01:26:17 "The particular case of B(2, 5) remains open: as of 2005[update], it is not known whether this group is finite. 01:26:34 of course it's finite 01:27:02 um and you know this how? :D 01:29:13 I'm just saying random stuff sorry :( 01:29:32 There's a CROBOTs tournament at the end of the month if anyone want to take part 01:32:02 -!- fizzie has set channel mode: -o fizzie. 01:32:14 (Oh, I completely forgot about that.) 01:40:50 "Moreover, the word and conjugacy problems were shown to be effectively solvable in B(m, n) both for the cases of odd and even exponents n." 01:41:17 so uh all exponents n 01:41:27 would be another way of saying that. 01:41:28 might mean it is hard to make something TC even if B(m, n) is infinite 01:42:10 ehirdiphone: well, it is at the end of a section where every other result _does_ distinguish odd and even 01:42:48 even being apparently more complicated in several respects 01:43:20 s/section/paragraph/ 01:45:30 also, http://en.wikipedia.org/wiki/Tarski_monster_group 01:45:52 those have some huge exponents though 01:45:53 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100315083431]). 01:47:06 oho 01:47:11 I lik monster groups 01:47:23 I want to study moonshine but I have to learn some stuff first..... 01:47:30 that's not _the_ monster group though 01:47:34 yeah 01:47:40 I didn't realize there was other ones actually 01:47:45 these are actually infinite 01:47:52 oh :( 01:48:09 but have _only_ finite subgroups 01:48:20 :D 01:48:21 and only of a particular, prime order 01:49:10 tarski & hutch 01:51:04 ehirdiphone: there are google hits for that 01:52:10 * Sgeo_ somewhat mindboggles at a package that provides isBottom 01:54:09 Sgeo_: there is a package by conal containing a function f such that 01:54:25 f _|_ y = y 01:54:32 f x _|_ = x 01:54:36 -!- charlls has joined. 01:54:45 if neither are _|_, it returns either 01:55:08 (psst: the one that evaluates first) 01:55:11 I guess it deals with nontermination by being whichever is .. riht 01:56:47 Definition isBottom {A} (x : A) : bool := true. 01:56:50 Erm 01:56:54 false 01:57:17 ehird lol I just wrote that in #haskell a moment ago 01:57:25 heh 01:57:36 GET TO BED :| 01:57:42 I want to try to program for a bit first 01:57:47 but it probably wont work and I'll go 01:58:11 do computable reals 01:58:24 prove some thing about them 01:59:55 every function on them is continuous, i hear. you could prove that. 01:59:58 ehird yeah I have been meaning to write in the bit about reals from my book 02:00:07 oerjan, I'm not sure if that is provable! 02:00:22 oh well 02:00:23 oerjan, I think it's _true_ but may be sort of like the continuum hypothesis or similar 02:00:43 I'm thinking interally though 02:00:50 like inside the type theory 02:00:58 yeah I hope I am not making this up 02:01:29 hmm 02:01:42 I suppose it's related to the unprovability of trichotomy 02:02:00 and trichotomy implies some pretty strong statements but I don't think it quite reaches P \/ ~P 02:02:12 -!- adam_d has quit (Ping timeout: 265 seconds). 02:02:38 fax: you can't prove the trichotomy for comp reals? 02:02:41 I should try to get a better understand of this stuff 02:02:48 huh 02:02:52 and write a note on it or something 02:03:03 I wonder if there's q middle ground 02:03:05 *a 02:03:08 this computable reals and analysis stuff (and meta theory) 02:03:38 maybe continued fractions? 02:04:03 continued frractions are something I am not very comfortable with... 02:04:11 Why not? 02:04:18 I never used them 02:04:32 1+1/1+1/... 02:04:39 there's the golden ratio 02:04:42 DONE 02:04:45 :p 02:04:45 I know that one :P 02:04:51 well i suppose it's about how if you have one real x and another real y then it can be that for every n they are closer than 1/n but you cannot prove it 02:05:00 (prove forall ...) 02:05:02 can you solve every quadratic as a continued fraction? 02:05:05 I'll play with them tomorrow I guess 02:05:23 fax: every real has a continued fraction 02:05:32 Are there any BF optimizers that optimize back into BF code? 02:05:40 Well Chaitins constant... 02:05:46 Sgeo_: Yes 02:05:48 but you still must be able to define functions on them, and therefore any functions must also have their value close 02:05:57 x=(-b/a)+(-c/a)/x 02:05:57 Same site as list kingdom 02:06:03 Jonripley or sth 02:06:15 (-b/a)+(-c/a)/((-b/a)+(-c/a)/((-b/a)+(-c/a)/((-b/a)+(-c/a)... 02:06:16 I guess 02:06:24 but that will never give a complex value 02:06:29 that can't be right 02:06:37 maybe it diverges on those cases 02:06:43 I'll define continued fractions in coq tomorrow 02:06:53 ehirdiphone, no unitness tomorrow? 02:07:10 Not tomorrow. M 02:07:11 fax: quadratics have _periodic_ continued fractions iirc 02:07:18 and only they 02:07:26 *roots of 02:07:41 * Sgeo_ doesn't see any optimization stuff on the site 02:07:53 well a continued fraction still has to be a function... 02:07:58 nat->nat 02:08:03 hmm 02:08:15 oh, well real ones i guess 02:08:36 * Sgeo_ pokes ehirdiphone 02:08:56 Search more 02:09:09 -!- charlls has quit (Quit: Saliendo). 02:09:14 hmm 02:10:04 wait does 0 have a continued fraction 02:10:23 0 = 0 + 0/(0 + 0/(0 + ... 02:10:31 0 repeated means that 0 = 0 + 1/0 = 1/0 02:10:46 ehirdiphone, are you sure there's something there? 02:10:49 but 0(1/0) =/= 1 02:10:56 Sgeo_: 80% 02:11:08 fax: oh 0/ 02:11:14 * Sgeo_ sees nothing relevant 02:11:23 is 0/ allowed in a continued fractin? 02:11:30 it must be... 02:11:33 Just 1/ afaik 02:11:48 0/ would be pretty dumb in a continued fraction 02:12:19 f : N -> N; R(f) = f(0) + 1/(f(1) + 1/...) 02:13:45 ehirdiphone, I'm still not seeing it 02:13:50 * Sgeo_ should probably stop whining 02:14:05 im curious abuot the convergence of this continued fraction for quadratic 02:14:23 Sgeo_: it's clearly been optimized away 02:14:50 fax: no, 1/ only in ordinary continued fractions 02:14:56 ahhh 02:14:57 okay 02:15:01 If he has one, he either didn't realize the pointlessness of ][loop] 02:15:03 that makes things harder 02:15:04 well 02:15:08 1/infinity = 0 02:15:16 Or he doesn't run his own code through it 02:15:17 so what's the continued fraction for infinitY? 02:15:24 fax: 1/0 ? 02:15:25 1 + 1/0 I guess 02:15:31 so 0 = 0 + 1/infinty 02:15:48 so 0 = 0 + 1 /( 1 + 1 /( 0 + 1 /( 02:15:57 i think 0 and infinity are sort of boundary cases 02:16:10 you just let the fraction _end_ there 02:16:19 f 0 := 1; f (S _) := 2 // sqrt 2 02:16:27 or any integer for that matter. 02:16:56 it seems to orbit around e-4 02:17:01 and not get smaller 02:17:18 oh it's getting smaller... just takes some time 02:18:24 I wonder which infinity it is 02:18:33 zero is all the same but infinity is all different 02:18:34 The tastiest one. 02:18:46 one of my favorite infinity is sqrt(2pi) 02:19:01 thats' 1 + 2 + 3 + 4 + 5 + ... IIRC 02:19:03 >_> 02:19:19 no sorry it's 1 * 2 * 3 * 4 * 5 * ... 02:19:30 1 + 2 + 3 + 4 + 5 + ... = -1/12 02:19:41 clearly. 02:20:08 hey everyone makes mistakes 02:20:08 :) 02:20:32 hey wait a minute. now _you_ are doing math and _i_ am saying random nonsense. 02:20:57 fax: also of course all rationals only have finite continued fractions 02:21:09 So really it is nat -> maybe nat 02:21:19 -!- sshc has quit (Quit: leaving). 02:21:24 oerjan, the old 3/5-switch :) 02:21:29 (two; irrationals have one infinite one) 02:21:46 (fuck yeah I just referenced wiles proof of fermats lol theorem) 02:22:00 1 = 1/(0+1/(0+1/(... *whistles innocently* 02:22:16 ehirdiPHONE can you prove that every rational is finite? 02:22:25 finite continued fraction 02:22:32 I am sure that it is true but I wonder how to actually build it 02:22:36 fax: no but wikipedia can 02:22:43 Euclidean algorithm 02:22:48 Checkout 02:22:51 ... 02:22:55 Checkkit 02:23:00 >_> 02:23:07 induction on the size of numerator and denominator 02:23:30 lol 02:24:12 s/and/+/ if you want a specific measure 02:25:00 -!- sshc has joined. 02:26:12 http://upload.wikimedia.org/math/f/9/7/f9729d86173eced1bc46aeb6087dada9.png <------ nice picture 02:26:57 but but... it's not fractal! 02:27:49 I like the . 02:28:01 The 0 at the end of the recurring 9s 02:30:23 New Autotune the news tomorrow! 02:31:51 :( Autotune 02:32:00 obama the musical? 02:32:20 * oerjan googles that 02:32:56 Autotune the news! 02:33:02 Autotune the news! 02:33:09 Everything sounds beeettet 02:33:12 Beetter 02:33:16 Autotuuuuuuned 02:34:07 These later ones tend to reference earlier ones 02:34:58 -!- jcp has changed nick to banbino. 02:35:02 -!- banbino has changed nick to Banbino. 02:37:20 -!- sshc has quit (Quit: leaving). 02:39:04 -!- Gracenotes has joined. 02:41:39 -!- Banbino has changed nick to jcp. 02:46:05 -!- sshc has joined. 02:47:17 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info). 02:48:50 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 02:49:29 -!- coppro has joined. 02:54:32 -!- jcp has quit (Read error: Connection reset by peer). 02:57:05 -!- sebbu2 has joined. 02:57:53 -!- sebbu has quit (Ping timeout: 276 seconds). 02:57:54 -!- sebbu2 has changed nick to sebbu. 02:58:40 -!- EgoBot has quit (Remote host closed the connection). 02:58:41 -!- HackEgo has quit (Remote host closed the connection). 02:58:44 -!- HackEgo has joined. 02:58:46 -!- EgoBot has joined. 03:09:34 -!- jcp has joined. 03:11:50 -!- sshc has quit (Quit: leaving). 03:14:34 oklopol 03:14:34 ? 03:25:47 me? 03:27:02 ffffffff 03:27:08 I can't remember what I was going to say to you 03:27:22 oh yeah have you seen divisibility lattices? 03:29:32 yes 03:30:19 Lesse ... 1 is bottom ... is there a top? 03:30:31 well the top is the number you are factoring 03:30:32 oh 03:30:35 obviously not 03:30:35 no I guess it's not 03:30:40 if you take all nats 03:30:43 what about infinity! 03:30:49 1*2*3*4*5*.. 03:30:50 Who says you can't divide by infinity? 03:30:58 that's divisible by everything infinetly many times 03:31:06 that's the obvious way to make it bounded i guess 03:31:18 you add infinity to make it bounded? :D 03:32:06 well... yes :P 03:32:42 but now you must add more infinities, like 2*2*2*... >:) 03:33:05 I wonder which ones have values and which dont 03:33:14 what do you mean? 03:33:21 apparently harmonic series doesn't have a value 03:33:29 but I am not sure about htat.. 03:33:39 although 1*2*3*4*5*... is still on top, all primes divide it infinitely often 03:34:13 man I just can't understand this chapter 03:44:29 fax: don't be your brain's bitch 03:45:15 pain's bridge 03:45:59 seriously I have been working on this stuff for 3 days now 03:46:08 it's very difficult 03:46:10 I am not Gauss 03:46:26 completely degaussed, in fact 03:46:32 ..................................................... lol 03:46:43 okay seems the divisibility lattices are distributive 03:47:14 it's just the sum of one N lattice per prime, isn't it 03:48:00 oklopol, how dod you prove it? 03:48:13 i proved it using the cool characterization i mentioned 03:48:16 (that's how you can use it to program in fractran) 03:48:18 yes I want to see :))) 03:48:20 in burris' book on universal algebra 03:48:23 did you find two numbers? 03:48:29 one for each of those lattices 03:48:34 oh it's really easy to prove 03:48:45 you can just check it yourself if you know the characterization 03:48:53 dunno if it's easy from the definition 03:49:20 idea was to try both to see how much better the characterization is in action, but i'm not sure i have the energy now 03:49:49 oerjan: how do you define the sum of two lattices? 03:50:01 of an infinite number of them, actually... 03:50:11 oh wait 03:50:18 like (x, y) <= (z, w) iff x <= z, y <= w? 03:50:24 yes. 03:50:41 although i realized only a finite number can be different from 0 03:50:41 and that extended to infinite products 03:50:55 hmm 03:51:14 which is analogous to sums of modules/abelian groups 03:51:26 vs. products that are unrestricted 03:51:45 -!- fax has quit (Quit: Lost terminal). 03:52:14 also one thing i remember about distributive lattice is that they are exactly the sublattices of boolean algebras 03:52:20 *lattices 03:52:32 okay so we can take the sublattice of N^P generated by the individual primes, maybe 03:52:44 they are?!? 03:52:49 that's an even cooler characterization. 03:52:51 yes iirc 03:53:05 there's a whole chapter about boolean algebras in the universal algebra book 03:53:16 unfortunately not in the exam so i'm probably not going to read it anytime soon 03:54:00 one way of showing this is that _both_ classes of algebras have only {0,1} as their subdirectly irreducible members 03:54:21 (up to isomorphism) 03:55:29 there's probably a less heavy-weight method, i just happened to learn about subdirectly irreducible algebras once 03:55:41 okay i've actually proved the former 03:55:55 proved what? 03:56:08 err 03:56:21 i seem to have expanded both and said former about one of the two 03:56:28 i've proved that for distributive lattices 03:56:50 proved _what_ for distributive lattices? 03:56:56 xD 03:56:59 err 03:57:19 that the class of distributive lattices has only {0,1} as a subdirectly irreducible member 03:57:30 Exercise 1.11. Show that a distributive lattice is subdirectly irreducible if and only if it 03:57:30 is a 2-element lattice. 03:57:35 ah. 03:57:49 harder than it sounds, that one 03:57:54 from this it should be trivial actually 03:58:01 you don't need the other one 03:58:02 it should, huh. 03:58:34 just note that a product of 2-element lattices is also a boolean algebra 03:58:53 subdirect irreducability still feels a bit strange to me, don't see how that's useful directly, but i'm all ears 03:59:02 oh 03:59:09 hmm 03:59:35 well the thing is every algebra is a subdirect product of irreducible ones 03:59:52 yes 03:59:55 where a subdirect product is a special kind of subalgebra of a product 03:59:57 right 04:00:13 yeah i know what it is, and i'm starting to see how the proof would go 04:01:06 so umm first of all every distributive algebra must be a subdirect product of {0, 1}'s, which are boolean algebras 04:01:14 yep 04:01:20 *lattice 04:01:28 err right 04:01:39 but why is the subdirect embedding also a boolean algebra? 04:01:47 or wait is that obvious 04:01:59 it's not, it's a _sublattice_ of one 04:02:15 oh lol 04:02:22 okay so actually it is totally trivial 04:02:46 once you get the lemma proved 04:03:00 yeah 04:04:06 the idea for the lemma is there's a very strong characterization for the smallest congruence relation C(a, b) equating a and b, so if there are three elements, and C(a, c) and C(b, c) both contain (a, b), you can use the characterization to prove a = b 04:04:29 so you can separate any pair by a nontrivial congruence, which is equivalent to not being subdirectly irreducible 04:04:38 i'm not sure why i told you that 04:04:45 maybe just because i remembered it. 04:05:47 i actually had this really complicated proof with pictures and shit, the other guy on the course had a short algebraic proof and said "i have no idea what i actually did here, but it seems to be correct" 04:06:39 i have many more uninteresting stories, if you wanna hear 04:06:40 ok. when i learned about subdirect products i just played around with defining congruences. iirc a /\ x = a /\ y gives a congruence, and similarly for \/ 04:06:57 or rather, i though in terms of quotients 04:07:00 *thought 04:07:44 and these congruences exist both for distributive lattices and for boolean algebras 04:08:22 (boolean algebras sort of are distributive lattices, so isn't that obvious) 04:08:27 (?) 04:08:44 well yes as long as you prove "not" is also preserved 04:08:58 hmm right 04:10:30 "oerjan: where a subdirect product is a special kind of subalgebra of a product" <<< why leave this open, it means it's surjective w.r.t. any individual index of the product 04:10:53 a /\ ~(a /\ x) = a /\ ~a \/ a /\ ~x = a /\ ~x 04:11:00 i don't like it when people leave things out of definitions, everything starts feeling all blurry and scary 04:11:20 that's not a very clear definition 04:11:43 oerjan: so wait what did that prove exactly 04:12:02 that ~ is preserved by the congruence. at least i think it implies it. 04:12:30 oklopol: well just after i said that you told you already knew about it 04:12:32 let's see if i can even see what it means to be preserved by a congruence... 04:12:56 oh 04:13:06 oerjan: yes, i didn't mean "why did you leave this open", i just needed to fill it 04:13:08 i'm still thinking in terms of quotients, you see 04:13:11 **you* 04:13:19 oh umm hmm right 04:14:11 the map x -> a /\ x is a quotient map, if you redefine the operations on the range by applying extra a /\ ... liberally 04:14:29 a is just some element you choose? 04:14:33 yeah 04:14:42 and quotient maps give congruences, of course 04:14:59 um i shouldn't even call it quotient 04:15:06 homomorphism 04:15:13 the kernel is a congruence 04:15:14 yeah 04:15:34 it's just isomorphic to the quotient of the congruence 04:16:07 yes, by the famous whatevermorphism theorem 04:16:35 so essentially all you have to prove is that applying a /\ ... liberally on the right side _does_ make it a homomorphism 04:17:07 and the above equation does that for ~ 04:17:41 so you proved h(~(h(x))) = h(~x)? 04:17:48 for /\ it's almost trivial, and for \/ you need the distributive law 04:17:49 where h is the homom 04:18:05 well yeah 04:18:25 where h is the map 04:18:53 shouldn't you prove ~h(x) = h(~x), that is, ~(a ^ x) = a ^ ~x 04:18:59 wait... 04:19:10 i think i'm a bit lost. 04:19:26 nope the thing is that we don't use the same operations on the range (even if it is a subset) 04:19:50 we use the operations with the h liberally reapplied at the end 04:20:15 so like ~y : range = a ^ ~y : domain 04:20:16 so we're defining a new algebra which just happens to share some points 04:20:23 yeah 04:21:05 and this works very well for distributive lattices and boolean algebras 04:21:30 i also played around with doing it for heyting algebras 04:21:46 i got kripke models that way 04:24:08 (heyting algebras are to intuitionistic logic what boolean algebras are to boolean logic) 04:24:23 okay i finally get your one-liner up there. 04:24:31 the range vs domain issue was a bit confusing 04:25:11 oh they are now? i just know they have ->. 04:25:32 and i remember most of the axioms 04:26:09 ah yes. i guess the fact i could do this was a kind of an epiphany, made it much simpler to find congruences 04:26:23 do you know cylindrical algebras of dimension n and n-valued post algebras? 04:26:31 heck no 04:27:07 okay those were the two weirder examples of algebras in the book 04:28:10 was just wondering because you seem to have an intimate relationship with all the others 04:28:27 i had never heard of heyting algebras either 04:28:40 boolean algebras i had heard of, surprisingly enough 04:28:45 iirc i found in an _irreducible_ heyting algebra that a \/ b is true iff either a is true or b is true, where "is true" means is equal to the true element 04:29:34 what does true mean? :) 04:29:52 x is true iff 1 -> x or something? 04:29:54 eh 04:29:57 what does that even mean 04:30:04 let me rethink 04:30:07 well 1 is the true element i guess 04:30:25 so x is true means x = 1? 04:30:28 yeah 04:30:51 was that subdirectly irreducible or directly? 04:31:05 subdirectly 04:31:19 i don't know which is more common, prolly subdirect because of the problems direct has 04:31:21 that's what i was dabbling with at the time 04:31:30 right, right 04:32:14 -!- calamari has quit (Ping timeout: 276 seconds). 04:32:58 well, it was about time this channel had an interesting conversation, i thank you for that. i should get back to my stuffs now 04:33:13 i also _think_ that if x is not 0, then there is a heyting algebra homomorphism sending x to 1 != 0 04:33:52 there's too much axioms for me to wanna try that straight from the definition 04:34:25 actually not that many but anyway 04:34:28 well it may have been just using a map like x /\ ... and the above trick 04:34:46 or possibly x => ... 04:34:49 I.. think, now that I understand how to use StateT, the actual implentation of the interpreter just became trivial 04:34:50 *-> 04:35:00 Sgeo_: heh 04:35:22 Although not quite.. I don't think sequence does quite what I want it to do 04:35:45 Actually, hm. That "trivial" function doesn't quite ty.. n/m 04:35:50 sequence does them one after the other, passing each state to the next, iirc 04:36:08 (afa state is concerned) 04:36:53 * Sgeo_ was wrongly thinking that the thing for , would be StateT Tape IO Char, but it is StateT Tape IO (), just like everything else 04:38:56 Sgeo_: what did you want sequence for? 04:39:07 maybe sequence_ would be better? 04:39:29 (you're not interested in any results not in the state, so) 04:40:05 oerjan, getting my point about being confused across, I know the difference 04:40:29 ok 04:41:29 Besides, if I want to use sequence, I can always use (const () . ) (sequence_ $) 04:41:38 Um, don't know if that's exactly what I'd use 04:41:48 Also, no _ obviously 04:41:56 * Sgeo_ is not quite a master of pointfree 04:42:35 const () `fmap` 04:42:54 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 04:44:00 however, i think sequence_ sometimes is more tail recursive 04:44:27 since it doesn't need to put on the return value remembered 04:45:37 -!- calamari has joined. 04:48:15 Going to go eat now 04:48:27 -!- sshc has joined. 04:55:17 Would you say it's complete and utter overkill to use Linux to make a disk image that does the following: run LostKng? 04:56:59 s/use.*: // *whistles innocently* 04:57:24 oerjan: Hah. 05:04:22 -!- lament has quit (Ping timeout: 264 seconds). 05:04:54 -!- augur has quit (Ping timeout: 265 seconds). 05:14:45 legalify = cmdsToBF . parseBF -- Turns any string into legal BF 05:15:05 Well, not checking for hitting the left edge or negatives or anything 05:17:55 any string already is legal BF, unless it has mismatched brackets >:) 05:18:27 legalify fixes mismatched brackets 05:18:35 ok then 05:18:48 Although fixing might not be what's wanted 05:18:59 -!- lament has joined. 05:19:20 (truncating at the first extra ], and adding ] if there were extra [) 05:20:03 -!- augur has joined. 05:21:29 -!- jcp has joined. 05:22:57 oerjan, does sequence_ work well with infinite lists? 05:23:22 i think so 05:24:00 sequence_ = foldr (>>) (return ()) 05:24:04 sequence = fold.. was about to ask 05:24:21 Might have said foldl though :/ 05:24:37 well, sequence_, yeah 05:25:15 Well, with >>, there's supposed to be no difference, right? 05:25:20 And foldr works with infinite lists 05:25:39 i should think it's intended to be usable 05:26:35 as long as the monad used can handle it 05:33:50 -!- lament has quit (Ping timeout: 260 seconds). 05:38:19 -!- Oranjer has left (?). 05:45:53 -!- pikhq has quit (Read error: Connection reset by peer). 05:49:44 -!- pikhq has joined. 05:52:51 -!- Sgeo_ has changed nick to Sgeo. 06:02:06 -!- lament has joined. 06:30:05 -!- lament has quit (Remote host closed the connection). 06:41:17 -!- adu has joined. 06:46:17 -!- oerjan has quit (Quit: Good night). 06:46:26 -!- calamari has quit (Quit: Leaving). 06:59:24 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 07:08:32 hey kidos 07:26:15 -!- FireFly has joined. 07:39:43 hi augur 07:39:51 who you 07:41:18 -!- Gracenotes has quit (Quit: Leaving). 07:45:37 -!- adu has quit (Quit: adu). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:17:48 -!- augur has quit (Read error: Connection reset by peer). 08:18:10 -!- augur has joined. 08:41:54 -!- Gracenotes has joined. 08:42:35 -!- adu has joined. 09:29:03 -!- lament has joined. 10:02:25 -!- lament has quit (Ping timeout: 248 seconds). 10:04:06 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 10:05:58 -!- tombom has joined. 10:11:21 The more clear case of yesterday's banned two made a reasonable argument that the other ban was merely collateral damage, and that the subject might behave and contribute constructively. I don't know how true that is -- for all I know, it might be a Clever Ruse and they could be the same person -- but since it's not such a great chore to reapply the ban, and I'll be around reasonably well for the next some hours to monitor what happen 10:11:21 s, I think I'm going to unban the other one. 10:11:23 If (s?he|it) decides to come back, you might consider explaining that -- while it may not always be apparent -- there's some sort of vaguely defined set of channel-appropriate behaviour; and while disagreeing is one thing, deliberately annoying people, at least for an extended amount of time, is another. 10:14:49 -!- ChanServ has set channel mode: +o fizzie. 10:15:00 -!- fizzie has set channel mode: -b *!*@unaffiliated/quadrescence. 10:15:03 -!- fizzie has set channel mode: -o fizzie. 10:23:24 -!- Alex3012_ has joined. 10:25:05 -!- Alex3012 has quit (Ping timeout: 276 seconds). 10:25:14 -!- Alex3012_ has changed nick to Alex3012. 10:55:44 -!- adam_d has joined. 11:35:14 -!- BeholdMyGlory has joined. 11:36:44 -!- Gracenotes has quit (Quit: Leaving). 11:45:26 -!- MizardX has joined. 12:30:32 -!- cheater2 has quit (Ping timeout: 276 seconds). 12:34:55 -!- cheater2 has joined. 12:52:42 -!- ais523 has joined. 12:58:52 -!- adu_ has joined. 13:01:27 -!- adu has quit (Ping timeout: 265 seconds). 13:20:27 * AnMaster wonders how a program on a single core, single cpu system, can have higher cpu time than wall time. 13:21:13 According to my watch it has been running for about 1.5 minutes, But cpu time in top of it is 3 minutes and 24 seconds 13:22:46 ais523, hi btw 13:23:40 hi 13:24:55 any idea about the weird cpu time btw, ais523 ? 13:25:13 no 13:25:22 hmm... are you overclocking/underclocking the system? 13:25:36 it's possible that the CPU has a bogus idea of how much time it's taking, I suppose 13:25:47 ais523, ondemand cpu speed is in use 13:25:51 but no overclocking 13:26:24 but since this process is baiscally CPU bound it is eating about 99% of the CPU all the time 13:26:28 hmm 13:26:31 so the system should be at top speed 13:26:44 yep, cpufreq-info confirms that system is running at 2 GHz 13:26:58 and there the process finished 13:27:05 so hard to tell now afterwards 13:28:02 (it was optipng running on a few thousand small png files btw) 13:54:07 * AnMaster wonders how to write sort(1) in dd/sh 14:04:23 btw, is it just me, or has spam decreased drastically during the past 2 days or so 14:04:44 I only got one spam during that period, normally I get something like 30 / day or so... 14:05:25 ais523, ^ 14:05:38 I'm still getting just as much spam as before 14:05:42 hm 14:06:00 pure chance then I guess 14:07:14 there should be some list with like "don't spam me, I'm too smart to fall for it". Sadly I guess that wouldn't work... 14:08:45 (I imagine it would work in a similar way to those block-telemarketing registers) 14:08:59 -!- adam_d_ has joined. 14:11:03 -!- adam_d has quit (Ping timeout: 265 seconds). 14:31:12 "./textures/cargo/explosives.png: Microsoft DirectDraw Surface (DDS), 128 x 128, DXT1" <-- Quite a lot of wtf here... 1) .png for THAT? 2) The game this is from uses OpenGL, not sure if it runs on windows at all... 14:32:04 AnMaster: those registers do work 14:32:15 at least in the UK, telemarketing companies don't want to be tracked down and fined 14:32:41 true 14:34:44 ais523, what I meant was that it wouldn't work for spam 14:34:53 no, it wouldn't 14:35:04 although, a spammer was arrested and fined in California recently 14:35:18 it made the headlines, on the basis that nobody expected they'd actually catch one 14:35:50 ah 14:38:06 -!- fax has joined. 14:38:52 Yeah, but most of them are probably A) unwilling participants in a botnet and/or B) not in a country that gives a shit. 14:43:58 yep, the spammer in question was a business doing it deliberately, and even turned up in court to defend itself 14:44:10 which is also rather bizzare 14:47:48 AnMaster: Did I ever link http://codu.org/music/vg/gm1.ogg at you? 14:48:17 not sure 14:48:25 * AnMaster wgets 14:48:55 Gregor, piano, some sort of synth? 14:49:22 's more video game music (created per request) 14:49:25 and hm... some string instrument 14:49:37 and huh, a lot more 14:49:40 OK, it's an odd ensemble :P 14:49:46 Gregor, nice though 14:49:51 so far at least 14:49:59 Gregor, was there a xylophone? 14:50:05 hmm, I generally like video game music 14:50:19 AnMaster: Nothing even similar :P 14:50:35 * ais523 plays it 14:50:51 Gregor, some percussion thing that sounded somewhat wooden? 14:51:04 only for a very short period 14:51:14 I assume that you're referring amusingly to the Shamisen :P 14:51:22 Which is a plucked string instrument. 14:51:34 huh, never heard of Shamisen before 14:51:39 but yes very nice. 14:52:19 Gregor, but please provide me a list of the instruments 14:52:30 also, for which video game was it created? 14:52:50 Just a class project of a friend of a friend. 14:53:02 I can do one better, I think ... 14:53:20 http://codu.org/music/vg/gm1.mid 14:53:26 http://codu.org/music/vg/gm1.rg even 14:54:05 aargh wth. That isn't the QT theme in rosegarden 14:54:13 * AnMaster wonders why it is mostly black 14:54:21 lol 14:54:23 it looks like a cross of blender and QT 14:54:26 awful 14:54:37 'snot supposed to look like that :P 14:54:50 Gregor, yeah, let me check other QT apps... 14:55:05 yay, I use Rosegarden to 14:55:05 kate looks normal 14:55:06 *too 14:55:14 hm 14:55:20 konsole and Rosegarden are the only Qt apps I use regularly, and konsole is supposed to be mostly black :P 14:55:22 Gregor: why does it go silent from 1:00 onwards? 14:55:38 i like the theme 0.....0b3.....32e.....edge...... 14:55:42 ais523, it isn't? 14:55:49 ais523, maybe your download failed? 14:55:50 ais523: "It"? 14:55:53 or youy hit mute? 14:55:56 Gregor: your music 14:56:03 with chromatic scale fedcba0123 14:56:06 ais523: Yeah, that's a "you" fail, since it does not :P 14:56:15 OK, that's strange, I rewound past 1:00 and then it started working 14:56:17 i guess it's pretty much the only theme 14:56:23 Gregor, which version of rosegarden do you have? 14:56:36 AnMaster: 1.7.3 14:56:59 10.02 here??? 14:57:06 what happened there 14:57:16 did they jump or something 14:57:22 Guhhh ...? :P 14:57:41 http://www.rosegardenmusic.com/ 14:57:42 Apparently they did. 14:57:48 aaargh it *is* supposed to look like that 14:57:57 I just use whatever the latest in Debian is X-P 14:58:13 Gregor, but the gui is supposed to look black, see screenshot on their website 14:58:15 how awful 14:58:28 Oh, they're doing the retarded year = release number thing. 14:58:35 it doesn't even fit together 14:58:36 was there a matrix mode in rosegarden 14:58:43 since it seems to use the GTK style for some stuff 14:58:44 oklopol: Sure 14:58:50 (as I set up qtconfig to do) 14:58:57 can you get it for win? 14:58:57 (because I like clearlooks) 14:58:58 But matrix mode is weird and pointless. 14:59:02 eh? 14:59:06 what do you compose in? 14:59:12 NOTATION 14:59:16 8| 14:59:19 you're insane 14:59:25 music notation is the worst thing ever invented 14:59:26 same as Gregor said. A lot easier that way 14:59:31 And/or actually a half-competent musician :P 14:59:45 oklopol, also you record it mostly 15:00:00 Right, yeah, I've got my digital piano plugged into my computer. 15:00:01 OK, something is /very/ wrong with Totem ATM 15:00:10 Gregor: heh, I used to use NOTATION when I was on Windows 15:00:13 and then use some quantisise or whatever 15:00:17 forgot what it was called 15:00:33 ais523, is this a nodepad joke? 15:00:37 no 15:00:38 well sure if you like, but music notation is still a really ugly way to look at the result 15:00:48 it's an actual program 15:00:54 it's not very good, but it's good /enough/ 15:00:56 i mean unless piano music, then it's useful for playing sure 15:01:01 I actually do use matrix mode when I just record midi raw (and so, not conforming to any tempo) and want to edit it. Otherwise I record in notation mode because I can actually read and understand it ... 15:01:19 and has a few brilliant interface fails, such as making it very difficult to figure out how to set one clef to treble clef and a different clef to base clef 15:01:34 STOP DISAGREEING WITH MY INSANE OPINIONS 15:02:20 -!- tombom_ has joined. 15:02:23 i bet i've composed more music than you! (maybe not as much good music, but that's probably not relevant) 15:02:31 heh 15:03:03 That may or may not be true, I've thrown away vastly more music than I've kept. 15:03:27 But I guess when you make it that fine-grained, it all becomes meaningless :P 15:03:29 still the new GUI is completely awful. And it looks like three different people designed each half of it (!) without looking at each other's work. 15:03:30 during my whole two years of uni i think i've written like 4 songs or something :< i used to write one every few days at some point 15:03:44 -!- tombom has quit (Ping timeout: 246 seconds). 15:04:25 ah found where to change it 15:04:25 yay 15:04:26 Gregor: i think the best measure is to measure the amount of measures 15:04:35 ...ever written 15:04:36 remove thick in preferences for "use thorn style" 15:04:49 which seems to be the codename of this release or something 15:04:57 þorn 15:05:27 but then does it count that i've written programs that generate random music and i've occasionally just let them generate hundreds of hours for funsies 15:05:42 WAIT if that counts then http://codu.org/algorhythms/ 15:05:45 Gregor, huh, how did you manage to not make it play using the sound card? 15:05:46 :D 15:06:03 AnMaster: I have an absurdly complicated system for recording via fluidsynth. 15:06:16 Gregor, but that is a *.mid, not a *.rg 15:06:28 hmm, rosegarden doesn't seem to be working with timidity on this computer 15:06:36 AnMaster: Oh, from rosegarden; it's all configurable somewhere ... 15:06:43 okay something must be wrong on my side 15:06:44 hm 15:06:46 oklopol: And more specifically, http://codu.org/music/auto/OUT-T5.ogg (IIRC the link) 15:07:35 ah found it 15:07:39 no sound font loaded 15:07:40 huh 15:07:50 that is supposed to happen in rc.local wonder what went wrong 15:08:04 ais523: fluidsynth is (way) better anyway (or at least, it would be if it wasn't hugely buggy) 15:08:22 meh, all I really care about is being able to hear the notes 15:08:54 ais523, any idea (on jaunty) how to run a custom command early on in boot. In fact it must be after the generic wireless stuff is loaded but before the specific driver for my wlan chipset is loaded. 15:09:00 so rc.local won't work 15:09:32 Gregor, sb live 5.1 beats fluidsynth IMO 15:09:35 AnMaster: Is it sufficient to just unload the driver, do whatever you need to, then reload the driver? 15:09:58 AnMaster: Yes, probably, but producing recordings of it is annoying (well, OK, same for fluidsynth ... ) 15:10:14 Gregor, yeah but it takes a few seconds for the interface to come down, so I would need to add something like: rmmod iwlagn && sleep 4 && iw reg set SE && modprobe iwlang 15:10:17 iwlagn* 15:10:18 AnMaster: last time I needed to do that I just added a script to init.d by hand, although I'm not sure that's the best way 15:10:34 Gregor, it won't work right away 15:10:37 for unknown reason 15:11:02 Well, then you're screwzored. 15:11:03 * AnMaster wonders why iw reg set can't take effect on already up interfaces 15:11:15 or even down but with driver loaded 15:11:17 tried that too 15:12:33 strange; Timidity is working on its own, just not from Rosegarden, but Rosegarden says everything's fine with the MIDI 15:13:09 Gregor, what game was it for? I don't think I asked that above, and if I did I either didn't get an answer or I didn't see the answer or I forgot it 15:13:44 ah I did ask it, but didn't get an answer as far as I can tell 15:13:45 AnMaster: Just a class project of a friend of a friend. 15:14:05 Sort of a StarCraft ripoff :P 15:14:07 ah right 15:14:09 heh 15:14:30 Gregor, starcraft is rts right? 15:14:34 Yes 15:14:37 Gregor: that's completely computer generated? 15:14:45 i've just heard a few of these 15:14:53 oklopol: OUT-T5 is computer-generated notes, human-generated dynamics 15:15:02 ais523, hm 15:15:12 okay so what does that mean exactly? 15:15:14 ais523, why timidity? 15:15:19 or maybe i should read the page 15:15:27 AnMaster: because I have it handy, for playing MIDI files 15:15:44 oklopol: It means that it's more of an exercise in proving how important the human factor in playing music is than an exercise in proving how well a simple algorithm can compose :P 15:15:54 and Rosegarden's supposed to work out of the box 15:16:00 with it 15:16:03 ais523, hm 15:16:20 I never got timidity to _not_ crash 15:16:21 and did, on my last computer 15:16:27 so... what does human-generated dynamics mean, you play something on the piano, and random notes are substitute? 15:16:27 it is the most unstable thing I ever seen 15:16:28 *d 15:16:57 hmm, and it works fine from Totem 15:16:57 i need technical details 15:17:22 oklopol: Google for a program called Tapper (maybe "tapper conductor program" or something like that) 15:17:37 ais523, fluidsynth is very nice to generate music files, but for playing midi directly I found it sometimes lags or such. So there I use the hardware synth on my sound card 15:17:49 oklopol: With it, you take a MIDI file with no dynamics or tempo, and it reads the dynamics and tempo from playing on a digital piano, but uses the notes from the MIDI file. 15:18:21 Gregor, dynamics include everything except the which note is played? 15:18:23 oklopol: So I, the informed viewer of the notation, play it how I think it should sound, but don't play the actual notes (as they're borderline-impossible). 15:18:48 as in, how hard or soft you hit the key, when the note is played, the length of it, and so on? 15:18:58 Basically. 15:19:05 Gregor, what about the pedal? 15:19:42 (well pedals I guess. But I was thinking of sustain mainly) 15:20:22 That too. 15:20:40 oh dynamics, right, i don't care about dynamics 15:20:46 huh 15:21:08 you can do that stuff arbitrarily, as long as it's consistent 15:21:14 Gregor, and I have to say http://codu.org/music/auto/OUT-T5.ogg wasn't very good 15:21:18 no offence meant 15:21:23 OUT-T5 has its moments 15:21:38 but there's not themes, so it's sort of non-music 15:21:41 *no 15:21:44 -!- alise has joined. 15:21:47 moments of fits yes. 15:21:48 ;P 15:22:05 the listener needs a clear melody they analyze 15:22:07 *can analyze 15:22:17 oklopol, yes indeed 15:22:40 fax: Aye! 15:23:25 the usual listening process is as follows, you listen, write it on a matrix display in your head, try to find visual patterns, then hear those patterns in the music. 15:23:43 is it? 15:23:48 for me 15:23:52 ah 15:23:54 for some reason that's enjoyable 15:25:03 -!- alise_ has joined. 15:25:11 hi Alex3012 15:25:13 errr 15:25:15 hi alise_ 15:25:17 I meant 15:25:34 * AnMaster wonders why the tab order was alise -> alex -> alise_ 15:25:36 should i wash the dishes and clean the apartment of just laze around the whole day 15:25:41 oh wait, last spoken 15:26:03 what, some irc client is actually non-retarded enough to do that? 15:26:08 oklopol: many :P 15:26:15 oklopol, cleaning the apartment of just laze around for an entire day? 15:26:17 is it that large? 15:26:34 i've tried irssi, xchat and mirc and then something with a bird none of them did 15:26:42 oklopol, most clients can be set to do last spoken 15:26:48 and various webchats and other things i don't recall 15:26:52 xchat can definitely, pretty sure irssi can too 15:27:01 oklopol: pidgin? 15:27:02 "can", python can do it too 15:27:02 but yeah I don't think it is default in xchat at least 15:27:06 xchat can do it yeah 15:27:08 it's just a setting 15:27:08 who gives a fuck, they *don't do it* 15:27:10 one flick to do 15:27:14 oklopol, as in, there is a simple setting 15:27:19 a single checkbox or such 15:27:22 so why isn't it on 15:27:24 prefs -> input box -> last spoken 15:27:30 oklopol: 'cuz sometimes it's annoying 15:27:31 oklopol, because many people don't want that I guess? 15:27:34 like if i'm talking to awesome 15:27:35 for hours 15:27:38 THOSE PEOPLE ARE WRONG 15:27:38 then suddenly asshole butts in 15:27:41 and i end up talking to asshole 15:27:54 o_o 15:27:56 well umm SHUT UP 15:28:05 you too fax 15:28:08 sorry 15:28:09 nah jk 15:28:21 you don't have to shut up 15:28:30 but it helps 15:28:38 but you have to agree with me on something, i'm getting tired of being different 15:28:38 alise_, like: "a, you are an a person." and if "asshat" joins in between those two tab completes... 15:28:48 -!- deschutron has joined. 15:28:52 -!- alise has quit (Ping timeout: 265 seconds). 15:29:06 that's a great real life example 15:29:09 AnMaster, you are an asshat person. 15:29:15 alise_ you're an alise_ person 15:29:31 alise_, yeah you can get mistakes like that 15:29:40 clearly it should be that I'm an awesome person 15:29:44 fax is a fax person 15:29:45 :( 15:30:01 oklopol, I know the example is far fetched! 15:30:04 that means frequent teleporter 15:31:09 so i'm almost done with my bachelor's, and then i find the last algo i was gonna write up is completely wrong in the paper, and a lot of what i've written already uses it. 15:31:18 ouch 15:31:45 well assuming it's not my mistake, probably the case is that there's a simple way to fix it 15:32:07 i'm sure it's wrong, but the problem is the author probably didn't have the algo wrong, but just explained it wrong 15:32:34 -!- oerjan has joined. 15:32:45 i would explain it but what the algo does is a bit random without context 15:33:25 final year research project eh? 15:34:24 bachelor's, the first research project, not my own research, i basically just have to find sources and copypaste (in such a way that it shows the material went through my brain). 15:34:32 this is my second year 15:34:33 loll 15:35:31 the problem is i decided to read straight from journals and these papers are full of mistakes i only recently find myself having the skill to correct. which is a bit of a complicated sentence i guess 15:35:39 or not 15:35:46 also not that many mistakes actually 15:35:48 ouch 15:37:51 AnMaster: I didn't write it, so I don't care what you think :P 15:38:27 Gregor: i liked the notes but the dynamics sucked ass! 15:38:35 *sobblecopter* :P 15:38:42 what about rhythm 15:38:45 was that yours? 15:38:49 No 15:38:54 ...because that was pretty good too 15:38:58 :P 15:39:26 shoppe tiem. 15:39:32 ~~> 15:39:38 or wait maybe not just yet 15:40:34 ~~~~~~~~~> 15:40:54 -!- deschutron has quit (Ping timeout: 258 seconds). 15:46:25 -!- deschutron has joined. 15:47:42 i see 15:49:07 okay now really shoppe tiem 15:50:15 -!- adu_ has quit (Quit: adu_). 15:54:00 -!- adam_d_ has quit (Ping timeout: 265 seconds). 15:55:39 -!- adam_d_ has joined. 16:00:17 -!- adam_d_ has quit (Ping timeout: 265 seconds). 16:04:19 -!- adam_d has joined. 16:13:49 -!- adam_d has quit (Ping timeout: 265 seconds). 16:13:59 -!- adam_d has joined. 16:16:14 -!- charlls has joined. 16:19:49 -!- oerjan has quit (Quit: leaving). 16:25:30 15:23 < benmachine> besides which there are languages which are deliberately obnoxious 16:25:34 15:23 < EvanR-work> right 16:25:36 15:24 < Jafet> PLEASE DO NAME ONE 16:26:32 which channel? I recognise Jafet from #nethack 16:26:44 Malbolge's probably the best example of a deliberately obnoxious lang, though 16:26:55 i recognize jafet from people pasting what he's said 16:27:29 lol 16:27:50 #haskell 16:28:02 so maybe there too 16:29:19 fax: did you reply? 16:29:20 Gregor: then why not also put the undynamic'd versions up? 16:29:36 no 16:29:37 oh wait you do 16:30:00 I jost hjojddd 16:30:32 oh wait maybe you don't 16:31:06 -!- deschutron has left (?). 16:31:47 hi ais523 16:31:59 hi 16:32:46 * alise_ is defining the reals via continued fractions in coq 16:35:37 call me 0400243514 and whatever thing finland has, i can't find my cellphone, won't answer 16:35:59 should be something like +358 prolly 16:37:16 oklopol: who, me? 16:37:16 Callerying. 16:37:23 o---:) 16:37:24 whoever 16:37:24 thanks 16:37:28 * alise_ looks up the dailing code 16:37:31 why do you want called 16:37:34 too late 16:37:36 why do you want called 16:37:40 fizzie called 16:37:45 i told you 16:37:47 yeah it's +358 16:37:53 oklopol: what only one call accepted? 16:37:55 why would anyone want to talk on a phone?????? 16:37:59 fizzie: also good, now i can harrass you if i come to helsinki 16:38:08 I thought since I was in the same country, I'd best call just in case you were lying about the "no answer" thing. 16:38:13 fax: no one, cell phones are clocks you can find by calling them. 16:38:22 oh 16:38:34 -!- adam_d_ has joined. 16:38:45 oklopol: The number's on the first google-hit anyway, so no great loss there. 16:38:54 :P 16:39:16 alise_: i don't mind if you call me 16:39:32 now the fucking shoppe -> 16:40:12 oh won't answer 16:40:14 lame 16:40:17 oh well 16:40:23 i've talked to you on skype that is enough for one lifetime 16:40:24 -!- adam_d has quit (Ping timeout: 265 seconds). 16:41:07 I love the idea of having trouble finding your phone, and asking someone in another country over IRC to phone it so you can locate it 16:42:08 there is something so modern-international about that 16:46:56 -!- lament has joined. 16:50:07 -!- FireFly has quit (Ping timeout: 268 seconds). 16:52:27 -!- FireFly has joined. 16:59:40 oklopol: They're there. 17:00:06 oklopol: It's Onerously Uptight Toccata 17:00:11 oklopol: Hence "OUT" 17:01:40 -!- adam_d_ has quit (Ping timeout: 265 seconds). 17:02:15 -!- coppro has joined. 17:02:20 -!- coppro has quit (Client Quit). 17:03:01 what it was actually played? 17:04:13 -!- coppro has joined. 17:08:53 alise_: Sort of :P 17:09:25 link 17:12:52 http://codu.org/music/auto/OUT-T5.ogg 17:13:02 It was "played" with Tapper, so I played the dynamics and tempo, not the notes. 17:14:21 eh? 17:14:49 I like it 17:16:16 Tapper is a program that takes a MIDI file and lets you play the dynamics and tempo on a digital piano, replacing the notes you play with those from the original MIDI. 17:16:25 So when it's wildly impossible to play, you can still play it :P 17:19:58 Gregor: you have a gift for naming autogenerated music 17:20:16 Random-adverb random-adjective random-type-of-music. 17:20:19 Yes, quite the gift. 17:20:54 -!- adam_d_ has joined. 17:21:08 yep 17:21:18 ais523: the name is autogenerated too though :P 17:21:18 just you manage to pick particularly amusing random choices 17:21:33 Where by "you", you mean "rand()" :P 17:21:40 alise_: heh, then he has a gift for amusing random number generators 17:21:46 YES. 17:22:52 -!- charlesq__ has joined. 17:26:19 -!- charlls has quit (Ping timeout: 258 seconds). 17:27:27 ais523: i've done it before, it's always either a finn who calls or no one :< 17:27:42 once someone tried to call me who was not in finland, but it didn't work 17:28:14 -!- charlesq__ has quit (Ping timeout: 258 seconds). 17:28:17 oklopol: ah 17:34:01 oklopol: i can tryyyy 17:34:02 if you'll answer. 17:34:26 i will then 17:35:09 okayyyyyyyyyyyyy what is the number againyyyyyyyyyyy 17:35:26 0400243514 17:35:45 now i need to get skype downloaded 17:36:57 -!- adam_d_ has quit (Ping timeout: 265 seconds). 17:38:55 -!- coppro has quit (Quit: boarding). 17:40:13 (i seriously hope you don't actually do it... :P) 17:43:25 why not 17:43:49 because phone calls are scary 17:44:18 -!- lament has quit (Ping timeout: 276 seconds). 18:15:40 this will be so cool i could... 18:15:41 submarine it 18:20:38 * Sgeo is alarmingly tired 18:25:49 -!- jcp has joined. 19:03:29 hey guyez 19:03:30 I wrote a function 19:03:33 http://pastie.org/904126.txt?key=dmlvdatdbqpi68fo3gwjg 19:04:23 http://pastie.org/904128.txt?key=x8d87tccpvmsig80c46r3w here's the auxiliary proof i used 19:04:31 totally by hand i swear 19:05:40 that's fucking beautiful man 19:07:29 alise_: Hmm. For a second there I was going "wait, it's Monday... What's he doing here..." XD 19:07:57 pikhq: why's that funny 19:08:21 oklopol: sorry to disappoint you man but this is what i actually wrote http://pastie.org/904133.txt?key=sgwgk3z0vdxdip61onraow 19:08:28 conclusion: computers are better at writing progams than humans 19:08:29 *progams 19:08:32 *programs 19:09:00 oklopol: that omega is one wild-ass beast, you're in a proof right and it's to do with numbers right 19:09:02 and you type omega 19:09:05 then you press '.' 19:09:12 and it spits out something like http://pastie.org/904128.txt?key=x8d87tccpvmsig80c46r3w 19:09:16 and WHAMM totally proved man 19:09:19 alise_: that's pretty too, but not nearly as. 19:09:28 eventually we'll just have OmegaCoq 19:09:38 alise_: Unit-ness. 19:09:40 Theorem riemannhypothesis : blah blah blah. 19:09:42 omega. 19:09:43 Qed. 19:09:54 pikhq: of course i mean why is it funny that you thought that i mean it's an obvious thing to think :P 19:09:54 :/ 19:10:08 Ah. 19:10:13 * alise_ defines rational and irrational : R -> Prop 19:10:47 oh dear wait i need the continued fraction part to be optional 19:11:48 * alise_ defines sqrt(2) 19:13:15 Program CoFixpoint twos : CF := step 2 _ twos. 19:13:17 2 is not 0? 19:13:19 proved beyotch 19:13:27 Program is beautiful 19:13:47 Definition sqrt2 : R := real 1 (Some twos). 19:13:49 yeah some twos 19:13:51 just some of 'em 19:13:56 infinity of them to be precise 19:14:24 http://pastie.org/904145.txt?key=jynafvfiitwk3wphbwoqfq 19:14:30 here's what i need to do to prove that sqrt(2) is irrational 19:15:35 okay could we do as follows, you stop talking about coq till i learn it? 19:16:16 oklopol: no :D 19:16:22 don't worry, the wildcard' stuff makes no fucking sense to me either 19:16:26 it's just coinduction wizardry... 19:16:45 seriously you should learn coq though, i'm pretty sure i could prove anything... even that the world is flat 19:16:48 that's how awesome it is 19:17:09 have you actually proven anything nontrivial? 19:17:23 sqrt(2) irrational is like elementary school biology homework 19:17:44 oklopol, he's not even shown that it's sqrt(2) 19:19:22 oklopol: no :P 19:19:26 i'm only doing this 19:19:29 to test my reals 19:19:32 via continued fractions 19:19:37 Program CoFixpoint twos : CF := step 2 _ twos. 19:19:37 Definition sqrt2 : R := real 1 (Some twos). 19:19:37 Theorem sqrt2_irrational : irrational sqrt2. 19:19:37 intro i. 19:19:37 induction i. 19:19:38 simpl; auto. 19:19:40 assumption. 19:19:44 Qed. 19:19:45 and yes i didn't even prove it's the square root of two 19:19:48 i have no... arithmetic, as such 19:20:10 fax: okay lulz. i just glance at the codes to assess their prettiness. 19:20:11 oklopol: also, biology? 19:20:25 yeah biology, it's so easy it doesn't even need to be *math* homework 19:20:32 oklopl im mad at alise for being a dick to me 19:20:51 she was a dick to you? 19:20:55 fax thinks i'm a dick because i was talking to him then he demanded that i use his automatic primality prover before i do anything else 19:21:03 then he said if i don't do it right now she won't talk to me any more 19:21:05 *she 19:21:08 fucking pronouns and irc 19:21:15 then I didn't, then she stopped talking to me 19:21:35 you are so short sighted alise that has nothing to do with it 19:21:48 alise_: it's not what you said, it's the way you said it 19:22:12 yawn 19:22:22 IT'S FUNNY TO ME 19:22:31 fax: i'm mad at her too now 19:22:47 http://fermatslasttheorem.blogspot.com/2006/05/basic-properties-of-cyclotomic.html 19:22:50 fax: to be quite honest i am completely uninterested in talking to you if that involves continually doing exactly what you tell me to do before doing anything else 19:22:57 now let that be the end of it 19:23:55 no 19:25:12 no howso 19:34:08 In case anyone cares, the interpreter part of the interpreter was a bit easier than I thought it would be 19:34:22 Still need to make some tweaks though, but it can run Hello world 19:37:40 -!- charlls has joined. 19:52:10 fff 19:52:14 coq needs smarter pattern matching 19:54:10 -!- cheater2 has quit (Ping timeout: 264 seconds). 19:56:36 -!- zzo38 has joined. 19:56:41 Really, I ought to fix FlogScript uses all bcmath but I don't know the best way 19:57:20 -!- MigoMipo has joined. 19:59:00 -!- cheater2 has joined. 19:59:27 -!- zzo38 has left (?). 20:00:40 oklopol: more awesome noise: http://pastie.org/904213.txt?key=xwcjbezd3bn5212tsa0xwa 20:04:42 -!- tombom has joined. 20:06:24 -!- tombom_ has quit (Ping timeout: 240 seconds). 20:09:31 i got coq to print out "Anomaly. Please report." 20:10:19 -!- atrapado has joined. 20:14:54 heh 20:17:42 H : nat 20:17:42 n : nat 20:17:42 wildcard' : n <> 0 20:17:42 cf' : CF 20:17:42 H0 : rational (real H (Some (step n wildcard' cf'))) 20:17:44 ============================ 20:17:45 exists n0 : nat, rational (real n0 (Some cf')) 20:17:47 ouch 20:17:54 that was /not/ the issue i was expecting with this function 20:18:16 H0 : rational (real H (Some (step n wildcard' cf'))) 20:18:16 ============================ 20:18:16 rational (real n (Some cf')) 20:18:42 basically i'm having to prove that a continued fraction is rational, given that the same fraction plus one extra term is rational 20:18:58 the problem arises if we expand what rational is shorthand for: 20:19:01 exists i : nat, is_None (a_Sn i (real n (Some cf'))) 20:19:11 where a_Sn is a rather complex recursive function. 20:19:58 H0 : is_None (a_Sn x (real H (Some (step n wildcard' cf')))) 20:19:59 ============================ 20:19:59 is_None (a_Sn (pred x) (real n (Some cf'))) 20:20:00 this should be easier 20:23:18 * alise_ rejiggles is_Some and is_None a bit to make things easier 20:32:53 bye for a bit 20:32:55 jiggles? 20:32:57 bye 20:33:09 -!- alise_ has quit (Remote host closed the connection). 21:00:31 -!- calamari has joined. 21:04:49 -!- charlls has quit (Ping timeout: 258 seconds). 21:10:03 -!- oobe has joined. 21:12:32 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 21:14:05 oobe: It's spelled "oboe" 21:14:32 i think i know how to spell my own name 21:16:44 However, you shall now become the new pooppy (coppro) in my head :P. How about ... carlinet. 21:18:48 is oobe an actual norwegian name`? 21:18:49 *? 21:19:43 nope 21:19:53 its just my nick i use 21:20:23 oh sorry didn't notice your name is actually ascii pr0n 21:20:39 \o/ 21:20:45 :( 21:20:55 you're too short 21:21:05 so you don't get a body 21:21:05 \o/ 21:21:09 \o/ 21:21:09 | 21:21:09 |\ 21:21:24 -!- augur has quit (Ping timeout: 276 seconds). 21:32:06 I'm not sure I see the pr0n interpretation very well. 21:32:34 it was a complicated joke. 21:43:00 -!- charlls has joined. 21:55:11 -!- charlls has quit (Quit: Saliendo). 22:00:32 -!- tombom_ has joined. 22:02:14 -!- tombom has quit (Ping timeout: 260 seconds). 22:07:04 -!- tombom__ has joined. 22:07:37 -!- tombom_ has quit (Ping timeout: 246 seconds). 22:08:25 -!- jcp has joined. 22:19:57 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:26:38 -!- augur has joined. 22:29:47 george carlinet 22:34:07 -!- alise has joined. 22:36:04 hi 22:36:11 -!- augur_ has joined. 22:36:12 -!- augur has quit (Read error: Connection reset by peer). 22:36:22 -!- augur_ has changed nick to augur. 22:38:15 anyone wanna do my proof for me 22:39:12 alise it's because you don't listen to me 22:39:27 k 22:43:16 -!- augur has quit (Read error: Connection reset by peer). 22:43:38 -!- augur has joined. 22:45:32 -!- augur has quit (Read error: Connection reset by peer). 22:45:36 -!- augur_ has joined. 22:45:58 -!- augur_ has changed nick to augur. 22:46:09 MISSING: One underscore 22:46:11 REWARD: $0 22:49:33 H0 : is_None (a_Sn x (real H (Some (step n wildcard' cf')))) 22:49:33 H1 : x <> 0 22:49:34 ============================ 22:49:34 exists i : nat, is_None (a_Sn i (real n (Some cf'))) 22:49:34 it's a start 22:50:04 -!- augur has quit (Read error: Connection reset by peer). 22:50:52 -!- augur has joined. 22:53:57 H0 : is_None (CF_a_Sn x (step n wildcard' cf')) 22:53:58 H1 : x <> 0 22:53:58 ============================ 22:53:58 is_None (CF_a_Sn (safe_pred x H1) cf') 22:54:01 this should honestly be really trivial :P 22:55:25 it's tricky because it's not entirely clear from the definition of rational that you can traverse the (potentially infinite) list and reach an ending... 22:55:27 -!- olsner_ has joined. 22:55:31 Program Fixpoint Q_of_rational_CF (cf : CF) (H : exists n, rational (real n (Some cf))) : Q := 22:55:31 match cf with 22:55:31 | final n _ => Q_of_nat n 22:55:31 | step n _ cf' => Q_of_nat n + 1 / Q_of_rational_CF cf' _ 22:55:31 end % Q. 22:55:33 that's the entire function 22:55:41 the whole complexity is that tiny _ in the Q_of_rational_CF recursive call 22:55:45 because it's a bloody proof 22:56:03 -!- augur has quit (Read error: Connection reset by peer). 22:56:07 -!- olsner_ has quit (Client Quit). 22:56:27 -!- augur has joined. 22:58:03 -!- augur has quit (Read error: Connection reset by peer). 22:58:15 -!- augur has joined. 23:00:02 gah, I'm stuck! 23:01:27 alise, hm? 23:01:38 trying to do this proof 23:03:15 http://pastie.org/904537.txt?key=rqxoszxqfg7nkfvbf8jwa 23:03:29 I think I can think of Yet Another definition for rational/irrational that makes this easier 23:03:47 not based on the hugely complicated CF_a_Sn function 23:04:27 hmm ... no 23:04:29 I need CF_a_Sn to access elements 23:05:29 I think I failed to win Agora because I was inactive 23:08:40 -!- Gracenotes has joined. 23:10:07 * Sgeo goes to play with some worms 23:11:55 -!- FireFly has quit (Quit: Leaving). 23:13:23 -!- tombom__ has quit (Quit: Leaving). 23:20:05 -!- oerjan has joined. 23:28:07 -!- augur_ has joined. 23:28:13 -!- augur has quit (Read error: Connection reset by peer). 23:30:46 Sgeo: i presume the computerised sort 23:32:21 "Nobody loves me, everybody hates me. Think I'll go and eat worms!" 23:33:14 -!- augur_ has quit (Ping timeout: 260 seconds). 23:34:19 yep, there was an accident and every active player won Agora 23:36:33 here's some wonderful noise: http://pastie.org/904583.txt?key=bg0znn8ou1ynm5vozuag 23:36:34 everything after exist (fun m : nat => m <> S n0) n0 23:36:42 is a computer-generated proof that... drumroll... n is not S n 23:36:49 it actually gets cut off: 23:36:51 (fun .. => .. 23:36:51 .. 23:36:52 .. 23:36:52 .. 23:36:52 end) I 0%Z Omega19 in 23:36:54 for being too absurdly long to display 23:37:23 can you imagine a proof of that identity even remotely as advanced before COMPUTERS???? 23:37:34 -!- oklopol has quit (Ping timeout: 252 seconds). 23:38:11 http://pastie.org/904585.txt?key=5ijpll8mfjaxlpcn9wthq 23:38:15 this definition is also acceptable. 23:42:10 -!- Oranjer has joined. 23:55:54 -!- cheater3 has joined. 23:57:41 -!- cheater2 has quit (Ping timeout: 276 seconds). 2010-04-06: 00:05:23 -!- adam_d_ has joined. 00:13:07 * pikhq has created a Linux distro less featureful than DOS. Hooray. 00:13:35 wat 00:14:31 So I was curious how silly-small I could get something. 00:14:57 Funny, that's exactly what she said. 00:15:06 Also, just have a kernel with no userland, that'll be small :P 00:16:14 Gregor: Close. 00:18:40 combinatorial explosion of linux distros/penises 00:19:47 -!- adam_d_ has changed nick to adam_d. 00:26:18 pikhq: what did you come up with? 00:27:08 Currently at 344 kIb... 00:27:27 It possesses the following programs: /bin/sh, /bin/clear. 00:27:32 -!- Gracenotes has quit (Read error: Connection reset by peer). 00:27:47 And its kernel has the following features: initramfs, ELF support. 00:27:53 why /bin/clear? 00:28:13 Otherwise, the BIOS text doesn't get cleared in Qemu. 00:28:19 Tragic :P 00:28:22 lol 00:28:46 I hope /bin/clear is a shell script ... 00:28:47 actually, I would have to say sh makes it more feature rich than dos 00:29:04 Quite possibly 00:29:20 calamari: Heavily, heavily pared down shell. 00:29:21 Ohwait, echo isn't built into sh, is it :P ... so /bin/clear couldn't be a shell script probably. 00:29:24 cat is pretty useful too ... 00:29:31 what kernel? 00:29:36 2.6? 00:29:40 2.6.31 ATM. 00:29:49 I may experiment with other kernels. 00:29:49 wow, didn't realzie 2.6 could get that small 00:30:00 Though 2.6 has the nice feature that you can *compile in the initramfs*. 00:30:10 There's a bunch of "tiny" patches to 2.6 that help downsize it. 00:30:25 Those tiny patches were put into the main tree a while back. 00:30:38 ORLY? 00:30:39 Sweet. 00:30:50 I'm going to compare compression formats for the initramfs... 00:30:51 So it just takes some special .config frunging. 00:31:26 I may be at the point where the compression overhead of LZMA negates the benefits for the filesystem. :P 00:31:33 all you need now is to add egobfi 00:31:40 8-D 00:31:49 How much does TCC cost? 00:31:50 Hmm. 00:32:00 Oh, but eh, headers >_> 00:32:13 What's the world's smallest scripting language that borders on usable? :P 00:32:13 339 KB without compressing the root filesystem. 00:32:22 sh. 00:32:22 but anyhow, impressive.. could boot that off a 5 1/4" floppy :) 00:32:47 Maybe I missed something, but does that 339K /include/ the kernel? 00:33:09 I thought that was the FS, which actually sounded pretty big for sh and clear :P 00:33:49 Gregor: Yes. 00:33:52 How much of busybox can you stuff in before you can't boot from a floppy? 00:34:00 All of it. 00:34:08 WELL THEN GET STUFFING 00:34:16 Gregor: tomsrtbt 00:34:30 calamari: That's ancient, and has ancient utils, things tend to grow over time :P 00:34:41 BTW: What is maximum one can put into floppy (using normal 1.44M floppy drive)? 00:34:43 Actually. I'm going to go check and see if dietlibc and manual-built dash gets me a smaller shell. :P 00:34:43 Also, isn't it a superformatted floppy? 00:34:50 Ilari: 2.88M 00:34:50 http://wormtube.worms2d.info/?id=4 [some NSFW language] 00:34:55 Ilari: I think you can get like 2 mb 00:35:02 there's a man page somewhere which goes into ridiculous difficulty 00:35:07 *ridiculous detail 00:35:13 BTW: What is maximum one can put into floppy (using normal 1.44M floppy drive)? <-- this question should be stupid, and yet it's not ... 00:35:18 My first computer had 2.88M floppy drive... :-) 00:35:22 talking about things like interleaving sectors, and forcing the drive head past the normal limits 00:35:31 (which might break your drive, or might give you an extra couple of tracks) 00:35:41 Gregor: 2.88? wow.. so there must be no error correction at all? 00:36:03 calamari: Actually, floppy drives are just horribly overengineered. 00:36:05 Even today. 00:36:25 -!- ais523 has quit (Remote host closed the connection). 00:36:37 Aaaw, with dietlibc I can only get the shell down to 96k. :( 00:36:41 the drives, maybe.. but the media, no 00:36:46 Apparently the I/O interface supports up to 255 sectors and 256 tracks (but only up to two sides). 00:36:49 calamari: By the time floppies died, most floppy drives supported 2.88MB, there just were no 2.88MB disks ... 00:37:04 Gregor: yeah but he said standard 1.44 hehe 00:37:07 (currently, my busybox is down to 72k.) 00:37:20 calamari: I assume "1.44M" means "3 1/4 in" :P 00:37:37 Good quality 1.44MB disks formatted as 2.88MB without bad sectors (and appeared to work). 00:37:49 Hmm. I'm going to (quickly) overengineer "clear". 00:37:54 Actually, 90mm. :-) 00:38:47 Ahem-hem! Everybody quiet, it's ANNOUNCEMENT TIME. http://iki.fi/deewiant/ 00:38:48 For one thing: CCBI 2.0, at long last. Along with the usual Mycology update on the side. Too tired to build non-x86-64 bins now, but will do so. 00:38:51 Also: Fungicide, the Befunge-98 benchmark suite! 00:38:53 (CCBI 2.0 completes it in about one-fifteenth of the time that cfunge does. SO YEAH. AnMaster: macro-optimization > micro-optimization.) 00:38:56 Finally: I am tired, and am going to bed. Complaints can be directed to /dev/null. -> 00:38:59 As you were. 00:40:59 I just realized something silly. An ordinary key has 48 keys used for typing ASCII; 47 of these each can type two characters, and the remaining one (the space bar) just types one. 00:41:47 *keyboard 00:41:53 Quite right. 00:42:00 that's because there are 95 ascii characters 00:42:02 The shift key determines which of the two characters a key types. 00:42:09 * Gregor looks confusedly at his tab key 00:42:17 $ wc -c clear 00:42:18 55 clear 00:42:19 Well, I guess technically, the backspace, enter, tab, etc. keys type ASCII. 00:42:26 Okay, then. clear overengineered. 00:42:37 pikhq: If you installed echo, you could replace clear with an echo-based version for much fewer bytes. 00:42:50 But I meant the 95 printable ASCII characters, of course. 00:42:51 Gregor: But echo involves a larger shell. 00:42:57 smallest executable you can make is 45 bytes 00:43:07 calamari: Well aware. 00:43:18 pikhq: Guh? 00:43:28 * uorygl tries to make a smaller executable. 00:43:41 Gregor: echo is only a shell builtin in busybox. And you can remove it. 00:43:52 hmm of course that's assuming elf 00:44:03 touch blih; chmod +x blih; ./blih;. Which doesn't count, of course. 00:44:06 what was before elf? 00:44:06 pikhq: OK, but you'll gain a lot with echo ... such as the ability to do anything useful at all :P 00:44:16 calamari: COFF 00:44:18 calamari: Then a.out 00:44:21 Gregor: Your point? 00:44:28 how small could coff get 00:44:34 calamari: Ask Windows. 00:44:40 oh god 00:44:44 Is there anything that was just machine code? 00:44:51 Sgeo: DOS COM files 00:44:55 Hmm, it would be plausible to make a platform where all executables are shell scripts. 00:45:04 yeah .com was the ultimate 00:45:04 Of course, that would require the kernel to have a built-in shell. 00:45:06 Sgeo: Well, more accurately, it's just "throw this crap in memory" 00:45:09 Oh, hey. Busybox has a smaller shell. 00:45:31 Interactive execution is optional. 00:45:34 What would happen if you renamed a .exe to .com ? 00:45:35 Throw-this-crap-in-memory works best when you can do relative jumps, I imagine. 00:45:42 Sgeo: Which is to say, the correct way to load a DOS COM file is to copy it into memory at 0, then jump to a predefined point. 00:45:51 Sgeo: I don't know what DOS .exe files are, but they're not raw. 00:45:55 Sgeo: depends on the exe 00:46:04 It's probably not dissimilar to a.out 00:46:20 exe's have memory segment information 00:46:21 "Support if/then/elif/else/fi" 00:46:29 Now *there's* a useless feature if ever I saw one. 00:46:30 We [some computer specialty summer camp kids] were at this lab, and someone was showing us "how to mess up the computer" 00:46:44 He showed removing the registry entry that tells Explorer how to open .exe files 00:46:55 lol 00:47:01 Someone actually followed the instructions on one of the computers. 00:47:33 I fix it by using Start->Run to open command.com, and from there opening regedit.exe 00:47:41 Actually, .com files load at 0x0100 (there are some information structures in first 256 bytes of segment it is loaded to). Entrypoint offset is 0x0100. 00:47:43 And then copying the relevant entries from a good computer 00:47:56 Ilari: yep 00:48:11 So the guy who messed up the computer in the first place is all "He [the guy who gave the instructions] could have done it." 00:48:15 My memory of useless binary formats is slightly bitrotted. 00:48:23 I guess you could hack a headerless executable format into the kernel 00:48:23 64K busybox 00:48:25 The guy who gave the instructions wanted to rename regedit.exe to regedit.com 00:48:25 :) 00:48:28 * uorygl runs command.com and finds that it works. 00:48:45 Is there similar registry entry for .com? 00:48:59 Ilari, I think so, but it was untouched by these instructions 00:49:08 well you can try exe2bin ;) 00:49:14 62240 busybox <-- without echo 62240 busybox <-- with echo. 00:49:25 http://codu.org/projects/gelfload/ 00:49:34 Okay then. echo uses no space, so I'm satisifed. 00:49:49 Echo.. uses no space..? 00:49:49 Some malware uses that EXE registry entry (but I haven't heard of using COM entry yet). 00:50:05 take a look at the files it compiled.. might have some other freebies in there like true and false 00:50:43 Sgeo: Somehow. 00:50:48 -!- zzo38 has joined. 00:50:54 I invented a game http://zzo38computer.cjb.net/GAMES/meskilb.png http://zzo38computer.cjb.net/GAMES/meskilb.zip 00:51:04 Huh. What's the extension of the filename foo.bar.baz? 00:51:09 Is it baz or bar.baz? 00:51:14 Instructions: T to display level description text. Arrows or vi keys to move. 00:51:21 uorygl: baz 00:51:21 uorygl: In Windows, just "baz" 00:51:44 Instructions: R to reset, numpad -/+ to prev/next 00:51:54 Top row is inventory row. 00:52:05 That slightly implies that if a file is just named "foo", its extension is "foo". 00:52:09 Sgeo: I'm going to guess it has something to do with padding. 00:52:19 zzo that looks cool!! 00:52:30 pikhq: I can see that, but at least Windows treats as no extension in that case 00:52:38 I guess I can't play it 00:52:41 Wow, that game is huge. 00:52:43 I like the graphics though 00:52:45 UNIX doesn't care about extensions, o it is OK 00:53:01 zzo did you make them 00:53:07 That game is not finish yet I will add in more objects and levels more later 00:53:12 I should install windows so I can play this 00:53:16 fax: I didn't make the graphics I found icons in various things 00:53:17 zzo38: Context makes you confusing. 00:53:19 :P 00:53:21 fax: That's what wine is for 00:53:25 I'm not pikhq! 00:53:28 I'm discussing how echo takes no extra space in Busybox. 00:53:39 pikhq: btw sometimes -Os isn't the smallest, try -O3 00:53:52 * uorygl assumes that that .GMD file is not needed. 00:53:55 fax: You can use Wine or you can do it a different way by converting the GMD (although no such program exists yet, but I have started writing it) 00:53:56 pikhq: it probably got compiled anyways 00:54:05 333 kib! 00:54:09 The .GMD is the source-file, you don't need it to run 00:54:20 pikhq: what files is busybox compiling? 00:54:52 Or possibly I might later re-write a similar engine in C so that it can be cross-platform 00:54:57 Can you make a version with a volume control? This computer doesn't have one. 00:54:59 calamari: Not many. 00:55:01 And make the same game using that 00:55:10 Don't have an exact figure, though. 00:55:15 pikhq: do any of them look like linux commands? 00:55:33 I could probably get things down by passing the whole thing to the compiler at once. 00:55:36 I should say GNU commands shouldn't I 00:55:37 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 00:55:39 (CCBI 2.0 completes it in about one-fifteenth of the time that cfunge does. SO YEAH. AnMaster: macro-optimization > micro-optimization.) 00:55:39 oh 00:55:39 uber 00:55:39 snappeth 00:57:54 That's so much snap I've got ropeburn. 00:59:37 zzo38: on level 2, how come you have to go down and get the key before you can go through the door? 00:59:59 Is the idea that you're only allowed to make one attempt every fifteen seconds? 01:01:01 -!- oklopol has joined. 01:01:26 How does "because the door is locked" strike you? :P 01:01:44 That doesn't answer my question; it just leaves me wondering why the door is locked. 01:02:33 Ilari: man 4 fd 01:03:00 -!- Gracenotes has joined. 01:03:01 Yes, it is becausey ou need the key 01:03:06 It is obvious, isn't it? 01:03:17 /dev/fd0u1920 01:03:19 There is no idea of attempt 01:03:19 It's not obvious why that locked door is there. 01:03:37 Every time I hear "ow!", that's one attempt. 01:03:38 This game is turn-based only, not time-based. The only reason the door is there is to practice to use the key/door 01:04:05 How much practice do you think I need? It's pretty obvious how to do it; once I do it once, I don't need to do it three more times. 01:04:46 Just once. The other three times are completely different kind of puzzles having to do with key 01:05:03 If you don't like it, skip that level (push numpad + sign) 01:05:15 I still have to go get the key multiple times on level 2 if I want to pass that level. 01:05:35 I should also say something else: You can push F5/F6 to quicksave/quickload 01:05:52 Ah, that changes things. 01:06:04 I am sorry I didn't tell you that before 01:06:25 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 01:06:37 what game 01:07:27 oklopol: You can check the log if you don't know what game? 01:07:52 i can, yes 01:09:50 What game? 01:10:18 Sgeo: you can check the log if you don't know? 01:10:27 That game: http://zzo38computer.cjb.net/GAMES/meskilb.png http://zzo38computer.cjb.net/GAMES/meskilb.zip (arrow or vi move, R reset, numpad -/+ prev/next, F5/F6 qsave/qload) 01:10:31 HEY 01:10:35 that's not fair 01:10:37 i had to work for it 01:10:53 Sorry I just posted now because enough people ask 01:10:57 i know 01:11:01 i'm being silly 01:11:05 Somebody else could also have posted the same message 01:11:22 cuz i'm a funny dude 01:12:30 so what are the absolutely essential features of a linux shell? starting programs and globbing? 01:12:54 calamari: Perhaps also environment variables 01:12:58 Bah, who needs globbing. 01:13:10 uorygl: echo * 01:13:17 so that you don't need ls 01:13:18 :) 01:13:27 Well, just use ls. :P 01:13:31 Hum, are environment variables really a shell thing? 01:13:40 ls actually does some additional things too like ls -l and ls -la and so on 01:13:54 zzo38: of course :) 01:14:03 Yes, environment variables are a shell thing because no program can set environment variables of their parent process 01:14:41 Even if you don't have the "set" command to list all environment variables you still need to be able to set value of individual environment variables 01:14:51 But the env program can set environment variables for its child even if you can't set them in the shell. 01:15:24 I was going to say create a glob program and use backticks.. but backticks aren't free either 01:15:33 OK, then, if that is how you want, so. 01:16:01 oh, there is a glob call.. include glob.h hehe 01:16:49 pikhq: how big is your busybox 01:17:16 Don't you think that's an awfully personal question? 01:17:17 :P 01:17:31 haha 01:22:22 calamari: 64k 01:22:50 not bad at all! were you able to include any more executables after looking at the compiles? 01:22:58 Nope. 01:23:24 I'm trying to find a smaller shell. 01:23:43 -!- jcp has joined. 01:23:47 do i need diagonal movement in level 2? 01:24:03 pikhq: if you compile without the shell, how big is it? 01:24:35 calamari: Uh... 0k, I'd imagine? 01:24:38 That's... All I have. 01:24:49 you have echo 01:24:57 zzo38: do i? 01:25:03 oklopol: There is no diagonal movement. 01:25:06 ah okay 01:25:09 Ah, right. 01:25:13 just left up right down 01:25:29 This game is orthogonal movement only. (If there is any extra controls you need, they will be described in the level description (push T)) 01:25:54 I'm still trying to find a smaller shell. ;) 01:26:10 Hmm. Actually... 01:26:32 How small is Tcl? 01:27:01 Just roll your own shell. 01:27:09 while (true) + strtok + fork + execl = bad shell 01:27:52 Heheh. 01:28:05 Tempting. 01:28:06 shsh.. short for shit shell 01:28:09 I forgot about fgets ... 01:28:21 while (true) + fgets + strtok + fork + execl 01:28:34 Or hell, so long as it's an intentionally terrible shell, use gets :P 01:28:38 +glob 01:28:43 lol 01:28:56 globbing is for pussies, real men remember all the files they have and type out the names. 01:29:27 the question is whether you can make it smaller by excluding libc and using int 0x80 calls 01:29:30 Yes, if you are trying to write a shell using as small codes as possible that's OK I suppose 01:29:54 calamari: You can try writing in asm or machine-codes and see if you can do that 01:29:56 calamari: Probably. 01:30:04 Though, my libc is pretty darned small. 01:30:05 Hmmm, FORTH is an idea. FORTH doesn't have to be big ... 01:30:11 zzo38: okay i'm giving up at level 2 01:30:26 Gregor: Hmm. 01:30:33 pikhq: well the thing is that executables are slightly bigger when they have to use libc 01:30:38 oklopol: Try the other level then (push -/+ numpad) 01:30:40 what is the fourth programming language you learned? 01:31:05 fax: ... lesse ... do different dialects of BASIC count as different languages? 01:31:14 only if they are called FORTH 01:31:21 ........... 01:31:34 calamari: Yeah, but not by much. Particularly when you have a decent libc. 01:31:47 * pikhq enjoy his uclibc cross-compiler. 01:31:48 hmmm 1) gwbasic, 2) quickbasic extended 3) x86 asm 4) c? 01:31:51 may have been logo 01:32:07 oh damn you're right.. logo is in there 01:32:13 Could've been logo for me too, that was the first thing that came to mind. 01:32:19 8 01:32:19 hmmm 1) gwbasic, 2) quickbasic extended 3) logo 4) x86 asm 01:32:22 | 01:32:24 But I don't know if it was logo or AVR ASM 01:32:31 Why does the anarchy golf when you access a file in ../ it accesses /dev/ directory but if you use cd ../ it works correctly?? 01:32:34 no one knows logo 01:32:50 zzo38: you probably aren't one to give hintss? 01:32:52 *hints 01:32:53 I know logo 01:33:00 everyone knows logo 01:33:06 -!- atrapado has quit (Read error: Operation timed out). 01:33:08 oklopol: What hint did you want? 01:33:13 HOW IS 2 SOLVED :p 01:33:15 * Sgeo has heard of logo, but that's pretty much it 01:33:20 I remember writing a spirograph program in it in class and getting a few minutes of fame followed by years of nerd hell 01:33:26 I should probably actually play the game 01:33:29 calamari hahaha 01:33:37 nerd hell? 01:33:44 I should probably rewrite the game in JavaScript. 01:33:46 Because that's what I do. 01:33:50 Rewrite things in JavaScript. 01:33:57 Gregor that would mean I could play it !!! 01:34:00 oklopol: Which part are you stuck on? 01:34:13 fax: Play http://sibeli.us/ instead. 01:34:20 I have I didn't like it :( 01:34:30 you're like pushing buttons in time I can't do that 01:34:33 it made me ill 01:34:33 Someone should write a game that the makers of the game don't know how to solve, but know it's solvable 01:34:54 Sgeo: I have in fact done that. 01:35:01 zzo38: there's not that much to get stuck on, i have no keys left when i get to the room with the rocks, and there's no way to get the key without them falling and blocking the exit 01:35:10 zzo38, with this game, or a different game? 01:35:14 Many times. 01:35:32 oklopol: You need the arrow in the other room to block the stones falling 01:35:36 Well, I found a more... complete shell that's about 72k. 01:35:47 Sgeo: No, not this game. A different game (actually multiple different games) 01:35:51 zzo38: yeah i was just thinking i might actually try using them for something 01:35:58 Sorry. 60k if I use dietlibc. 01:36:05 I <3 dietlibc. 01:36:24 -!- adam_d has quit (Ping timeout: 265 seconds). 01:36:33 oklopol: You can also push the stones left/right 01:36:40 i know 01:36:42 Look mah, I've got tar! 01:36:58 and yeah okay it's really obvious now, i just, for some reason, completely dismissed the ball and the arrow 01:37:09 pikhq: What a sticky situation HYUK HYUK 01:37:19 Grogor did you make sibelius 01:37:23 There is a game I made but I don't know how to solve but I know it is solvable: http://zzo38computer.cjb.net/GAMES/MUTCHNAM.ZIP 01:37:25 pikhq: I assume you have tar without gz or whatnot. 01:37:29 Gregor: Hmm. More features in less space, or fewer features. Tricky. 01:37:31 And yes. 01:37:35 * Sgeo is still trying to figure out what the card suites are for 01:37:37 I disabled the builtin gzip. 01:37:37 fax: What a hilarious statement when you don't make it clear that you're referring to sibeli.us :P 01:37:38 pikhq: dietlibc's author is a nutjob who GPL-licensed it so MS don't steal his code :( so distros can't use it as a libc 01:37:43 fax: But yes, I wrote that code. 01:37:48 oh sorry :((( 01:37:49 since you can't redistribute non-gpl software linked with dietlibc 01:37:52 I didn't realize this 01:37:59 alise: Yes, that's my only issue with dietlibc. 01:38:04 pretty big issue 01:38:15 Sgeo: Did you push "T" at the first level it will explain you need to get four suits, please. 01:38:20 Though that's not *entirely* true. You can redistribute anything "gpl-compatible" linked with dietlibc. 01:38:25 This includes 3-clause BSD. 01:38:30 (note: whole thing is GPL now) 01:38:32 I just never managed to play these kinds of game, the music/timing type 01:38:41 Oh. Thought I had to get to the peace thing 01:38:43 Sadly, that limits dietlibc's usage a lot. 01:38:50 fax: This exists mainly as a hilariously bad idea for such a game :P 01:39:04 diet i386-linux-uclibc-gcc *.c -Os --combine -fwhole-program -DHAVE_GZIP=0 -DHAVE_LINUX_ATTR=0 -DHAVE_LINUX_MOUNT=0 -DMOUNT_TYPE=\"ext3\" -o sash 01:39:08 Sgeo: Yes you do but you need 4 suits 01:39:11 Now *there's* a build command. :) 01:39:21 It shows the inventory row on the top 01:39:30 I need no mount! I need no chattr! I need no gzip! 01:40:11 zzo38: is there a way to restart the game 01:40:33 i don't have a numlock + so i can't really just restart the game and replay till 3rd level every time 01:40:37 oklopol: Push R key 01:40:44 kay 01:40:47 Push -/+ to skip levels 01:40:56 Or use P/N if you don't have numpad -/+ 01:40:57 doesn't do anything 01:41:01 oh okay 01:41:06 Can I move on diagonals? 01:41:15 Sgeo: No. Orthogonal only. 01:41:29 And I don't QUITE understand the logic of the stone 01:41:36 wwwhat was the point of level 3 :D 01:41:39 You can also save/load at any time by pushing F5/F6. 01:41:50 how many levels are there? 01:42:08 oklopol: No much yet, but it will have a lot more levels and more objects later. 01:42:18 can i have a number, i have to decide whether to play them all 01:42:30 or to do something i consider more useful 01:42:37 * Sgeo does NOT understand how the stone decides to move 01:42:50 go near it and move once or soemthing like that? 01:42:52 *something 01:43:17 Going near it does not always cause it to move 01:43:26 oh. 01:43:27 Sgeo: It is like Hero Hearts or PC Wanderer if you have played it. Whenever anything departs from a space up to 1 left/right from it and up to 2 down (but not up) it will fall 01:44:05 oklopol: You can skip levels if you want. (And remember to push T it displays useful (or sometimes useless) information and level code. Push F and type in the level code to skip immediately to that level. 01:44:20 So I walk into that space and then move, that's when it falls 01:44:27 So above it is a blind spot 01:44:29 Yes. 01:44:33 okay so '8 01:44:34 *8 01:44:49 that's a bit too much, i'll mention if i do it some other time 01:45:21 also Sgeo part of the puzzle if to figure out the rules 01:45:24 *is 01:45:28 Ah :/ 01:45:29 Arrows and balloons move in a similar way to stones but a different direction 01:45:31 i mean 01:45:32 at least imo 01:45:39 * pikhq wonders how well upx works on Linux kernels 01:45:52 Apparently "no longer". 01:46:17 that's why they're interactive, so the rules need not be stated 01:46:21 well dunno 01:47:10 Level code EHQN is the first level that has additional controls that you have to use (push T it will tell you what they are) 01:48:57 Got it! 01:51:58 (These lambda-terms cannot be checked by modern systems like Coq or Agda, because the lambda-typed lambda-calculi of de Bruijn are "incompatible" with the Pi-typed lambda-calculi of modern type theory.) 01:52:02 ha fax was wrong it is feasible 01:54:53 what exactly did I say that is "wrong"? 01:56:51 if you took the time to actually read the paper you are quoting you might find that there are foundational problems with this 01:57:56 Have you ever made music using Bohlen-Pierce? 01:58:08 * Sgeo should learn what Pi Calculus is 01:59:07 Sgeo: not related 01:59:17 fax: well you didn't seem to know that automath did that at the time 01:59:17 alise stop being an ass 01:59:26 also i feel cheated on by coq after how nice mizar proofs are :( 01:59:34 fax: no. 01:59:47 just shut up about stuff you have no clue about 02:00:48 -!- zzo38 has quit (Remote host closed the connection). 02:04:39 fax: i don't remember you having contact with the authority of having clueness... 02:09:58 Anyway, g'bye everyone: see you Friday. 02:10:15 see ya 02:11:47 -!- alise has quit (Quit: Leaving). 02:15:32 Oh, crud 02:24:36 http://arstechnica.com/microsoft/news/2010/04/why-microsoft-did-the-right-thing-in-ditching-xp-for-ie9.ars 02:24:47 That Low Integrity thing sounds.. excellent 02:28:40 -!- coppro has joined. 02:29:45 POOPPY! 02:29:55 pooppy, meet carlinet. carlinet, meet pooppy. 02:30:43 Both people whose names I cruelly massacre for no good reason. 02:31:02 Heheh. 02:31:37 Okay, 339k and it's not going down much further... 02:35:25 * Sgeo looks at the HTML5 Quake2 02:36:40 Um, is there a link to actually try it somewhere? 02:36:48 329k. And fin. 02:51:19 * oerjan went for a walk. Great northern lights tonight. 02:52:28 can you upload the mental pictures 02:53:15 actually i would interpret that as "describe them", but i'm not sure that's a very fair thing to ask. 02:53:25 no, but if you're in finland maybe you can see them too? 02:53:48 i've never seen northern lights in turku 02:53:52 a few times in lapland 02:53:56 oh 02:54:17 they were very fast-moving tonight, and in a broad band straight overhead 02:54:27 :o 02:54:28 cool 02:54:37 not very colorful though, i've seen that a few times 02:54:52 well almost straight overhead 02:56:27 -!- augur has joined. 02:57:56 -!- roper has joined. 03:00:37 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 03:05:50 * Gregor steps out of the other room in a robe with a girl on each arm. 03:06:00 It's not what it looks like, Mr. roper! 03:12:03 pikhq: http://asm.sourceforge.net/asmutils.html 03:12:37 !userinterps 03:12:37 Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore chef chiqrsx9p choo cockney ctcp dc drawl dubya echo eehird ehird fudd funetak google graph gregor hello id jethro kraut num ook pansy pirate plot postmodern postmodern_aoler redneck reverse rot13 sadbf sfedeesh sffedeesh sffffedeesh sffffffffedeesh slashes svedeesh swedish valspeak warez yodawg 03:13:03 !aol Hello my friends! 03:13:08 HELO MY FR1END5!!!!!!!!!!1 03:13:31 calamari: Doesn't build on modern nasm. 03:13:42 pikhq: bummer 03:14:29 * calamari fails at being a c programmer.. can't figure out how to create this array of char *'s in the right format for strtok 03:14:46 calamari is actually building shsh :P 03:14:59 yeah, took a break when my mom called hehe 03:15:13 at an amazing 26 lines of code 03:15:38 sadbf? 03:15:42 !sandbf Testing 03:15:45 school me please: 03:15:47 !sadbf Testing 03:15:55 !sadbf +[.+] 03:15:55 char * args[16]; 03:15:55 03:16:05 args[0] = strtok(cmd, " "); 03:16:21 Why did EgoBot want to DCC Chat with me? 03:16:30 that line gives me a "you retard" error 03:16:43 Oh, to send me "Hey, here are the results" 03:16:53 !show sadbf 03:16:53 sadol :M$0 :d:i,45000@>i-01(2]M0:i-i1:S$0:C;3:l#C-01:p:m0@:m%+m1d?=#Cp"1<:m?<-m10-s1-m1?=#Cp"1.!'2#Mm?=#Cp"1,:#Mm'1;0?=#Cp"1[]S-p1?=#Cp"1]?=#Mm00:p[S0:p+p1 03:17:18 holy crap what is in this thing, it's 10k already 03:17:58 oh, forgot to strip 03:21:20 Please don't >.> 03:21:46 har har 03:22:00 :) 03:25:07 Please do :P 03:25:38 Can you be more specific about the error? 03:26:08 warning: assignment makes pointer from integer without a cast 03:27:15 You #include'd string.h? 03:27:35 nope 03:27:54 wow it compiles, thanks :) 03:28:28 Why not switch to Haskell! 03:28:35 * Sgeo has become a fanatic almost overnight 03:28:50 actually.. why fork? 03:29:06 calamari: Because system() requires a shell and exec() needs a fork. 03:29:07 Sgeo: that was fast 03:29:12 Unless you want a one-time-use shell :P 03:29:59 Sgeo: i don't think haskell is very good for making supertiny executables 03:30:09 Ah 03:30:41 although i recall something about a jhc compiler being better at it 03:31:17 whole program optimization iirc 03:31:39 but it was still experimental last i heard (quite a while ago) 03:31:57 * Sgeo should probably ask for advice on beautifying some code fragments 03:31:57 couldn't compile itself 03:32:07 Sgeo: yay 03:32:47 The interpreter seems to be working, kind of.. it's not crashing when I give it a bounded tape and "<", which is strange 03:32:56 paste? 03:33:48 http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24710#a24710 03:33:59 Oh, you want the whole interpreter to help me debug? 03:34:25 well let me look at that first 03:34:44 It's working, it's just ugly 03:34:53 yay it's working 03:34:59 lots of superfluous parentheses, i see :D 03:35:52 I'm not really all that certain which are superfluous 03:36:37 And there's no where that ... wait. I could have written a function with type BFCmd -> String -> ([BFCmd], String) 03:36:45 And have passed stuff into that function for most of those 03:36:55 (but not all) 03:38:05 yeah all those fst and snd really beg for a common where clause and pattern matching 03:39:30 Is it possible to have a common where clause to all those definitions? 03:40:05 http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24710#a24711 03:40:10 less parentheses 03:40:49 basically function application has higher precedence than _all_ operators 03:41:26 -!- jcp has joined. 03:41:31 (technically one pattern matching exception, @) 03:41:34 -!- coppro has quit (Ping timeout: 258 seconds). 03:42:08 and not at the top level, no, but just a moment... 03:43:33 i need vim for this... 03:49:42 http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24710#a24712 03:49:49 using a case expression 03:50:34 oh damn wait 03:50:48 code is not defined there 03:53:14 fixed http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24710#a24713 03:56:23 anyone know of an english parser grammar? 04:00:15 Sgeo: it should even be possible to factor out the identical ( : cmds, rest) part for most of the options, but i'm not sure that makes it better 04:00:38 Gregor: it actually looks like wordexp will do nearly everything in one call 04:00:48 just need to figure out some quirks 04:05:07 got it 04:05:42 I wonder if ithis would be smaller if I wasn't compiling on x64 04:06:56 yep, slightly 04:07:16 okay.. shit shell is 5684 bytes 04:09:29 calamari: Pastebin? 04:12:01 pikhq: http://pastebin.com/xJUQuFWX 04:12:12 * Sgeo feels guilty for not having written the code himself 04:12:17 Erm, the cleaned code 04:12:22 The original is mine, obviously 04:12:46 * oerjan feels guilty for doing too much of your work, i tend to do that when i get carried away 04:13:25 lol I didn't need the variable pid did I 04:14:33 doesn't save any byyes.. oh well 04:16:54 calamari: I'll see what I can do to it. 04:16:58 http://pastebin.com/aMmXde7G 04:17:00 -!- myndzi has joined. 04:17:12 little less crap in that one 04:19:31 41824 shish 04:19:38 ... When you stop including malloc... 04:19:38 -!- myndzi\ has quit (Ping timeout: 246 seconds). 04:19:46 ? 04:19:57 it's actually bigger with uclibc? 04:20:11 -!- fax has quit (Quit: Lost terminal). 04:20:25 That's bytes. 04:20:31 Erm. 04:20:44 so was mine 04:20:49 44K? WTF? 04:21:03 Wait. Are you dynamic linking? 04:21:07 yes 04:21:13 Failure. 04:21:19 Yours is several megabytes. 04:21:34 (as it needs all of glibc.) 04:21:48 I assumed you had uclibc already 04:21:53 doesn't work with it? 04:22:07 I do not have a dynamic uclibc. 04:22:09 ;) 04:22:12 ah 04:22:37 Among other things, this means the fewer functions you use the smaller your program is. 04:22:54 Also, perror? Bah. 04:23:11 if you are static linking, then int 0x80 asm would be smaller 04:23:22 did not realize you were 04:23:34 what's wrong with perror.. doesn't even increase the size 04:23:46 It's a function. 04:24:00 Including functions from libc means those functions are included in the binary. 04:24:43 113 shish 04:24:45 oh well 04:24:46 Same damned program without perror. 04:24:55 113 bytes? 04:25:13 Yes. 04:25:19 holy crap 04:25:27 perror took 44k? 04:25:44 Erm. Sorry, no. 04:25:52 wc -l instead of -c somehow. WTF, me? 04:26:04 41824 shish 04:26:09 That's more not fucking nuts. 04:26:15 yeah 04:26:25 But, yeah... perror includes stdio. 04:26:36 Though, so does fgets. :P 04:26:42 yeah that program sucks for static 04:26:52 It's probably wordexp. 04:27:04 Yup. 04:27:04 yeah, wordexp is doing a lot 04:27:30 What you really want to do is tokenise. And that's it. 04:27:50 yeah well it would have to be in asm next time 04:30:09 out of curiousity, how big is it when dynamically linked against uclibc 04:30:29 Dunno. I don't have a dynamic uclibc. 04:30:36 k 04:30:42 well it was fun writing it 04:30:49 Though probably about a megabyte if you *include* uclibc. ;) 04:31:41 Well, I'm going to go ahead and fix it to do utterly naive tokenizing. 04:32:04 I had that before but wordexp was so much better with the globbing and all for "free" hehe 04:33:29 -!- cal153 has quit. 04:39:52 9040 shish 04:40:00 Could probably be made smaller. 04:40:33 shish kebab 04:46:40 5288 shish 04:46:41 That's using read. 04:46:43 lol was looking at which syscalls I would need and it was going down the elementary list, 1, 2, 3, 4.. but then 11 and maybe 12 04:47:03 not bad 04:47:10 does it still work? 04:47:52 Yes. 04:49:37 1948 shish 04:49:40 With dietlibc. 04:51:39 cool 04:51:45 pastebin? 04:52:36 http://sprunge.us/ShKE 04:54:45 Fun fact: uninitialised static variables use 0 space in the output binary. :) 04:55:47 I could probably make this smaller by plopping down into assembly, but not by much. 04:56:06 YEAH THAT'S NOT BAD 04:56:17 ... What's with the capslock? 04:56:26 does it help to remove the function call 04:56:27 sorry 04:56:38 was in ASM programming mode.. that's a caps lock operation :) 04:56:38 Which function call? 04:56:53 tokenise 04:56:58 That's inlined. 04:57:05 oh, true 04:57:19 ++cmd_offset? 04:57:47 Where at? 04:57:49 dunno if that is a rumor or truth when they say x++is bigger than ++x 04:57:55 two places 04:58:21 for(cmd_offset = 0; cmd[cmd_offset] != 0; cmd_offset++) { 04:58:26 In any sane compiler, there's not any difference unless you're using the result value. 04:58:29 cmd_offset++; 04:58:32 ahh k 04:58:48 And if you're using the result value, you're getting bigger code regardless. 04:59:08 so how many bytes did that save on your disk? 04:59:33 Let me go make a new image. Without anything. Bwahahah. 05:01:31 System is 301 kB 05:01:51 Okay, 301 kiB for a Linux bzImage which does nothing but start shish. 05:03:15 That is the shittiest shell ever. 05:03:30 yay!!!! 05:03:31 :D 05:03:43 And this... Is the shittiest Linux distro ever. 05:04:01 You actually can't do anything on it. :) 05:04:22 Not even error messages, because dietlibc doesn't have any, and nor does this kernel build. 05:04:28 well you can run more shells 05:04:35 Yes. Yes you can. 05:04:59 so I take it echo is gone? 05:05:05 -!- Oranjer has left (?). 05:05:09 Yes. 05:05:15 As is everything else. 05:05:29 I was previously using sash, which had a few builtins, and was 60k. 05:05:59 well chdir is probably not too big since there is a syscall for it 05:06:38 * Sgeo should be eating and doing laundry 05:07:22 does ctrl-D still work to terminate the shell? 05:07:46 Yes. 05:07:55 dietlibc? 05:08:07 Sgeo: Yes. It's freaking tiny. 05:08:07 shish? 05:08:13 Shit Shell 05:09:03 calamari: When read reads nothing, it returns 0. So, it exits. :) 05:14:27 shsh turned into a fork bomb lol 05:14:41 Hahah. 05:15:11 Yeah, might want to fix that... 05:15:15 come on linux you can kill this thing 05:15:43 You're not running this in a VM? 05:15:51 nope haha 05:16:49 whew, closing the term did it 05:17:03 okay what did I screw up 05:18:50 -!- augur has quit (Ping timeout: 245 seconds). 05:21:00 -!- Alex3012 has quit (Read error: Connection reset by peer). 05:25:43 pikhq: there is a bug.. trying to track it down.. if more than one parm is used, you can't go back to using just one parm 05:26:02 calamari: Mmm. That is an issue. 05:29:36 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 05:30:06 I love how we're at the point that malloc is absurd bloat. 05:33:01 -!- oerjan has quit (Quit: leaving). 05:33:42 fixed it 05:33:49 Whooo. 05:33:54 for (--tokened_offset; tokened_offset < MAXSIZE; ++tokened_offset) 05:33:54 tokened[tokened_offset] = NULL; 05:34:38 Ah. 05:34:50 seems to break the ctrl-d after a cmd tho 05:34:58 maybe unrelated 05:36:12 Works here. 05:37:19 Hrm. Still seeing that bug, though. 05:37:38 yeah maybe that wasn't the fix 05:42:12 for(;read_result < MAXSIZE; read_result++) 05:42:12 cmd[read_result] = 0; 05:42:35 Might be more than is needed, but it works. 05:43:23 It is. 05:43:27 cmd[read_result + 1] = 0; 05:43:29 There. 05:43:47 so it was an off by one error? 05:44:36 Yes. 05:46:07 Even though it's 12:44, and I need to be up early, I need to go wash clothes now 05:46:52 Dear Gmail: Emails from the email list I'm on are not spa 05:46:53 spam 05:48:19 http://sprunge.us/NWgK 05:48:47 " i wish all the glasses had the brown dark lenses...i can only see out of one eye so i could never see the 3d when i tryed to watch them all i would see is a blurry red image..im glad there attepmting to change it" 05:49:15 Although maybe she's saying that if they change it, she'll still be able to watch the programs even though they happen to be in 3d 05:49:43 I particularly love how this shell cannot handle spaces in any arguments. 05:56:50 I think you want a break; after the exec, otherwise syntax errors are a problem 05:57:16 and cmd[read_result + 1] = 0; was right I think you may have a typo on your new source 05:58:38 calamari: "break"? "break"? That is a forkbomb. 05:58:48 -!- MizardX has quit (Ping timeout: 276 seconds). 05:58:48 comex is a redditor? 05:58:51 The new source does not have read_result any more. 05:59:14 oh, okay 06:01:51 why is it a fork bomb? 06:02:10 it should never get to the line after the exec, unless the exec fails 06:02:12 Oh, wait, no it's not. 06:02:30 It'll just jump out of the while loop and exit. 06:02:35 Unlike now, where it exists. 06:02:36 yep 06:02:38 Erm. Exits. 06:02:52 I'm pretty sure GCC will compile the two as equivalent. 06:02:53 * Sgeo should be washing clothes right now 06:02:57 In fact, I'll go do that 06:03:12 if it doesn't break, then the child won't terminate 06:03:30 ... Uh, return from main *is termination*. 06:03:38 Note that it currently does a "return 0". 06:03:41 and how does it return 06:03:46 return 0; 06:03:55 how does it get out of the loop 06:04:05 It returns from main. 06:04:37 put a puts about return.. you wont get there with a syntax error 06:04:41 above 06:04:41 _start then calls the exit system call with the return value from main. 06:05:01 Yes, and with a syntax error the forked process exits from main. 06:05:17 Unlike what you propose, which is... A jump to a return from main. 06:05:40 puts("e"); 06:05:40 return 0; 06:05:42 Do I need to beat "return 0;" into your head some more? 06:05:46 execvp(tokened[0], tokened); 06:05:47 return 0; 06:06:04 oh, my bad, you do have it 06:06:15 *Yes*. 06:06:23 the old source didn't 06:06:35 yeah either one is pretty much the same 06:06:46 Yes, and I added it because it was going to forkbomb otherwise. :P 06:07:03 yeah that is why I added break 06:07:09 we just solved the same problem two different ways 06:07:31 And GCC compiles them equivalently. 06:07:42 good 06:10:23 changing the directory doesn't work lol.. duh the environment goes bye bye 06:10:53 I think in order to do that, parsing of the command will have to go before the fork 06:11:16 Yes. 06:14:40 got it 06:19:05 http://sprunge.us/GFKJ 06:30:30 hmm unsetenv isn't working for some reason 06:31:15 } else if (strcmp(tokened[0], "unset") == 0) { 06:31:16 puts(tokened[1]); 06:31:16 printf("%i\n", unsetenv(tokened[1])); 06:32:05 unset PATH prints PATH then 0, indicating success 06:32:31 set works though 06:34:58 does adding cd bloat it quite a bit? 06:36:16 -!- coppro has joined. 06:36:52 since unset didn't work: 06:37:00 if (strcmp(tokened[0], "cd") == 0) { 06:37:01 chdir(tokened[1]); 06:37:01 } else if (strcmp(tokened[0], "set") == 0) { 06:37:01 setenv(tokened[1], tokened[2], 1); 06:37:01 } else if (fork() == 0) { 06:37:01 execvp(tokened[0], tokened); 06:37:03 break; 06:37:06 } 06:37:16 there.. feature complete, right? :P 06:37:58 pikhq: thanks for the fun 06:38:58 calamari: No problem. 06:39:32 I'm guessing adding strcmp, chdir and setenv adds a bit to the size 06:39:48 can't really see it here since I'm compiling dynamic 06:40:02 I'll check. 06:40:30 http://sprunge.us/OfEd 06:40:49 shish.c:(.text+0xcb): warning: setenv calls malloc. Avoid it in small programs. 06:41:06 change it to putenv then 06:41:25 oh wait 06:41:51 one minute, that will require a code change 06:41:53 That'll... do the same thing. 06:42:06 4448 shish 06:42:10 not exactly, different args 06:42:30 wow 06:42:45 malloc is overheady. 06:43:00 putenv shouldn't require malloc 06:43:27 2032 shish 06:43:32 Without the setenv. 06:43:48 "so altering the string changes the environment." 06:44:03 yeah, fun huh? 06:44:20 } else if (strcmp(tokened[0], "export") == 0) { 06:44:21 putenv(tokened[1]); 06:44:55 so the syntax is export PATH=/bin or whatever 06:45:36 Then the PATH will be /bin/ until you have a command long enough to overwrite the PATH. 06:46:43 Wait, "long enough"? As in, buffer overflow? 06:46:58 Sgeo: Well, not really a buffer overflow. 06:47:27 It's just that putenv makes the buffer given as an argument be part of the environment. Meaning that when you change the buffer, the environment changes. 06:47:30 dunno, it seems to work 06:47:55 As it just so happens, that buffer is also where command parsing happens. 06:48:35 it doesn't seem to overwrite it 06:48:36 calamari: I'm going to statically allocate an array of buffers for that. 06:49:16 Touching my chin no longer means blood on my hand, yay! 06:49:17 although I can't explain WHY it isn't 06:49:27 Sgeo: hows that laundry coming along 06:49:33 In the drier 06:49:47 I'll go to sleep when it's time for the dryer to be off 06:51:33 it's possible that libc is doing a malloc for me 06:51:54 put that would break the spec 06:51:57 *but 06:53:31 Wait, nope, there's still blood on my hands 06:53:36 hmm according to the man page, it depends on the libc 06:55:28 * Sgeo listens to random songs in the Avatar: The Last Airbender soundtrack 07:11:27 got primitive \ escape sequences working 07:11:55 so now you can escape spaces 07:12:21 http://sprunge.us/iFNP 07:12:50 -!- augur has joined. 07:13:09 \space is special, everything else turns back to whatever it was after the \ 07:13:23 well space does too, but it sets a flag 07:16:05 and with that, I think it actually is usable now 07:17:10 Give it rawirc, and you'd make zzo38 happy. :P 07:17:20 vonkeror? 07:17:28 telnet. 07:17:39 pikhq: so how big is http://sprunge.us/iFNP 07:18:39 4448 bytes. 07:18:59 whats odd 07:19:03 **err that's odd 07:19:07 why is it so big 07:19:30 putenv? 07:19:35 Probably. 07:19:52 well the next closest shell was 60k, right? 07:20:05 2108 without putenv. 07:20:08 So, yeah. 07:20:17 well kinda need putenv 07:20:30 Or setenv. 07:20:38 yeah 07:20:50 but that was even bigger 07:21:03 That was about the same size, actually. 07:21:43 hmm then we should definitely use setenv since it is safer 07:21:56 4448 with setenv. 07:22:14 ... Yeah, no reason not to. 07:22:23 what syntax did you use for it? 07:22:33 set foo bar 07:23:01 setenv(tokened[1], tokened[2], 1); ? 07:23:14 Yeah. 07:23:19 okay cool 07:23:47 well there you go then .. shsh lives :) 07:23:57 :) 07:24:14 I guess that put it at around 335k 07:24:49 er 305k 07:25:09 i'll check. 07:26:08 302k. 07:26:18 not bad! 07:26:42 btw does ctrl-z do anything? 07:27:10 No, you need more logic for job control. 07:27:33 in the kernel? 07:27:39 -!- MigoMipo has joined. 07:27:44 No, in the shell. 07:28:04 For job control, you need to actually watch the terminal for Ctrl-Z to send sigsusp. 07:28:53 I guess I'm wondering how you could ever run more than one thing at a time with our shell :) 07:29:08 nohup? 07:29:11 Erm. 07:29:13 No. 07:29:19 Detaching from the terminal. 07:29:49 yeah would have to daemonize 07:30:14 Which is nearly what a job-controlling shell does anyways. 07:31:22 we could almost use vfork instead of fork 07:31:27 wonder if it's smaller 07:32:10 They're system calls. 07:32:24 true 07:32:27 The libc functions literally do nothing but jump to the kernel. 07:33:03 guess putenv isn't a system call 07:33:04 It would be *saner* to use vfork, though. 07:33:26 Not at all. 07:33:45 The environment is done entirely in userspace, IIRC. 07:34:50 oh, then execv might be smaller 07:36:33 Not really. 07:37:18 The environment is just extern char **environ. 07:37:42 but the call has to get the PATH and find the command 07:37:54 maybe that's not much code 07:38:21 Ah, that. 07:39:03 I doubt it's much code. 07:40:23 I wonder how hard it'd be to hack shsh into busybox 07:40:38 haven't ever tried adding a command to bb before 07:40:40 Probably not very. 07:42:28 Why am I still up? 07:42:49 because being asleep sucks 07:43:09 -!- adu has joined. 07:45:37 * Sgeo just found out that lamebook doesn't show ALL entries on a topic on the main page 07:45:44 I'm going to be awake for a bit longer 07:56:47 * coppro is a git 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:03:01 * Sgeo will be waking up in 3hrs :( 08:06:09 good luck with that 08:25:04 I'm totally wearing e by numbers to my math contest 09:03:36 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 09:13:02 -!- calamari has quit (Quit: Leaving). 09:15:47 -!- adu has quit (Quit: adu). 09:18:36 -!- adu has joined. 09:43:38 -!- cheater2 has joined. 09:45:25 -!- cheater3 has quit (Ping timeout: 264 seconds). 09:48:36 -!- oobe has quit (Remote host closed the connection). 09:57:27 -!- adam_d has joined. 10:08:23 -!- lereah_ has joined. 10:36:48 -!- tombom has joined. 10:46:41 -!- FireFly has joined. 11:18:23 -!- BeholdMyGlory has joined. 12:29:59 -!- Deewiant has quit (Quit: Changing server). 12:30:14 -!- Deewiant has joined. 12:44:24 -!- cheater2 has quit (Read error: Connection reset by peer). 12:44:53 -!- cheater2 has joined. 13:29:10 -!- augur has quit (Ping timeout: 252 seconds). 13:32:12 -!- roper has changed nick to atrapado. 13:48:55 (CCBI 2.0 completes it in about one-fifteenth of the time that cfunge does. SO YEAH. AnMaster: macro-optimization > micro-optimization.) <-- hm really? 13:49:11 but did you compare with all fingerprints disabled for both? 13:49:26 after all, last I looked ccbi 2 implemented way fewer fingerprints 13:49:34 Here's a nice Microsoft support experience: https://connect.microsoft.com/VisualStudio/feedback/details/546053/ 13:49:36 "But Unfortunately we will not fix this issue as it is not a common code and is not a high priority issue.Thanks for playing with our product." 13:49:37 All fingerprints enabled for both 13:49:54 I especially like the "thanks for playing" bit. 13:49:56 Deewiant, then what bit is so much faster? 13:50:12 Last I looked cfunge doesn't implement any of the mainloop-intrusive fingerprints like IMAP/TRDS? :-P 13:50:19 Deewiant, true 13:50:32 my question still stands 13:50:33 (They're the only ones that really matter) 13:50:46 A better Funge-Space helps 13:50:55 Deewiant, better in what way? 13:50:58 as in, how do you do it 13:51:10 I haven't profiled both cfunge and CCBI to see where exactly each one spends their time, you know ;-P 13:51:17 Complicatedly 13:51:34 Deewiant, well, I know on my system cfunge spends most time in string pushing in y. That bit could be optimised somewhat 13:51:39 env -i reduces it of course ;) 13:52:01 Deewiant, how do you mean "Complicatedly" 13:52:02 -!- augur has joined. 13:52:16 How about you check out the benchmarks and the results at iki.fi/deewiant/befunge/fungicide.html first :-P 13:52:39 Deewiant, is this not on mycology? 13:52:40 then 13:53:01 You could read the whole announcement instead of just that one line, you know :-) 13:53:07 Deewiant, well I couldn't find it 13:53:10 Mycology is pointless to benchmark 13:53:15 Deewiant, that line I quoted was first in my scrollback 13:53:15 Since both cfunge and ccbi do it in 0.000s 13:53:23 it is now out of it completely 13:53:37 Fortunately /topic 13:53:47 Deewiant, 0.000? You have a fast computer then 13:53:53 Yes, I do. :-P 13:53:55 I get it down to two zeros at best 13:54:06 (That's with fingerprints disabled) 13:54:25 even with fingerprints disabled iirc it is something like 0.0024s for both here 13:54:38 With them enabled, maybe 0.002s or something, can't remember. Still less than 0.01s so any differences are completely pointless. 13:55:23 "A Linux system (due to the /proc usage for memory use measurement) with GNU Coreutils" <-- then it will have to wait. I'm on freebsd for most of today alas. 13:55:53 You probably don't want to run the benchmarks yourself. 13:55:58 oh? 13:56:00 why not 13:56:19 it is hard to profile to find out where the issue is without running them myself 13:56:42 Deewiant, anyway, you didn't explain how your funge space works... 13:57:27 "Lastly, a table." What a wonderful sentence. 13:57:41 Gah, tkk.fi is timing out for me 13:57:44 * AnMaster wonders why http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/ times out 13:57:51 ah not only me then 13:58:07 Deewiant: Your Funge benchmarks generated too much traffic for it to handle. 13:58:18 I seriously doubt that :-P 13:58:27 Deewiant, still: 1) why don't I want to run the benchmarks myself to be able to profile it? 2) how does your funge space work? 13:58:39 Deewiant: Soon you'll receive angry letters from the computing centre folks. "Why are you hosting such a popular site on our server?!" 13:58:59 fizzie: I wouldn't be that surprised, since they do say that they don't like that. 13:59:09 But I would be surprised if it were /that/ popular. :-P 13:59:26 AnMaster: I needed to check the numbers from my site to be able to answer 1) properly, but basically because they take a long time to run 13:59:47 AnMaster: Maybe around 20 hours for cfunge on my machine 13:59:49 Deewiant, then it is useless to test improvements with basically then? 13:59:53 sigh 14:00:00 Well, you can run individual ones of course 14:00:09 Deewiant, well, don't they take as long? 14:00:15 Not all of them 14:00:24 Deewiant, and for 2)? 14:00:37 Like said, it's complicated :-P 14:00:38 I seem to be unable to access the source and read it atm 14:01:13 Deewiant, so complicated that you don't know how it works? 14:01:15 or what 14:01:31 (I mean, seriously, I can't see a good reason for not being able to explain it...) 14:02:04 FWIW I think stinkhorn does something similar since it has similar performance characteristics (and beats cfunge often enough) 14:02:11 Deewiant, also, how much ram do they use? 14:02:32 If the site weren't timing out I could answer you 14:02:38 I assume nothing too excessive. Since otherwise I won't be able to run them 14:02:49 Depends on the interpreter :-P 14:02:54 Deewiant: It stopped timing out for me when I did one stop + reload now. 14:03:00 Deewiant, if it is more than 2 GB then I will end up swap trashing 14:03:10 fizzie, still times out for me 14:03:18 For cfunge it'll be more than that on a few of the bigger ones, IIRC 14:03:23 For ccbi it won't be, IIRC. 14:03:31 mhm 14:03:48 fizzie: I'm getting this on ssh to kirves: 'NFS server korppu not responding still trying' 14:03:51 Deewiant, then why don't you explain how your funge space work. Just saying it is complicated isn't a reasonable excuse 14:04:34 Deewiant: Well, "broken" *is* the natural state of a NFS system. 14:04:38 Basically, AABBs whose contents are stored as arrays, with a hash table as a fallback 14:04:41 fizzie: :-D 14:04:47 Deewiant, AABBs? 14:04:52 It's a term. 14:04:55 meaning? 14:05:07 Axis-Aligned Bounding Box. 14:05:13 huh. 14:05:29 Deewiant, something similar to what glfunge was doing? 14:05:41 I don't know what GLfunge was doing. 14:06:04 something with octtrees iirc 14:06:07 * AnMaster looks at fizzie 14:06:33 Deewiant, anyway, how large is each such AABB? 14:06:33 GLfunge had fixed-size (axis-aligned) blocks in a treeish way, I forget the details exactly. It certainly didn't try to figure out code-wise sensible regions to put in a block, for example. 14:06:34 -!- augur_ has joined. 14:06:58 AnMaster: Dynamic. 14:07:08 Deewiant, okay, but do you have some size limits for it? 14:07:11 No. 14:07:14 -!- augur has quit (Read error: Connection reset by peer). 14:07:20 how do you decide when to split them off then? 14:07:32 and when do you use the hash table fallback? 14:07:34 "Split them off"? 14:07:46 Deewiant, well, maybe I misunderstood how you were doing it then 14:07:59 See, it's complicated. ;-P 14:08:07 Deewiant, I assume you create new such ones at runtimes? 14:08:23 Deewiant, well I can't access the code to read it myself atm 14:08:28 Deewiant: Do a facebook account with the name "CCBI 2's fungespace", and set your relationship status with it to "it's complicated". 14:08:28 since the server is still down for me 14:08:41 fizzie, hehe 14:09:13 I even just booted into Windows so I could make Windows binaries so now I can't access the source code myself either :-P 14:09:33 -!- adam_d_ has joined. 14:09:34 Deewiant: Incidentally, do you have any sort of looping in those benchmarks? I was looking at the descriptions and most of them seemed to be of the form "repeat X Y times". Which makes a jitfunge developer sad, since for a benchmark like that, it'd just end up tracing (and interpreting) the contents once. 14:09:35 Deewiant, if you were to make windows binaries you surely have the source for *making* them around too? 14:09:48 fizzie: The -p style ones loop. 14:09:55 AnMaster: I was going to download it from the site. 14:09:57 haha 14:10:13 Since I forgot to copy it over to the NTFS disk. 14:10:20 Deewiant, reboot then? Btw tried mingw? Debian/Ubuntu has a package for mingw cross compiler iirc 14:10:47 I don't think cross compiling D is easy enough 14:10:53 hm true 14:11:00 Deewiant, well it should be with llvm :P 14:11:11 No, because LLVM bitcode is not platform-independent 14:11:20 -!- adam_d has quit (Ping timeout: 245 seconds). 14:11:26 There's platform-specificity before the code reaches LLVM. 14:11:34 isn't the llvm asm in theory if you do it right? 14:11:43 mostly platform independent 14:12:00 a few things like type sizes need to be adjusted 14:12:33 Rebooted. 14:12:44 AnMaster: "Mostly" != "fully". 14:13:04 Deewiant, but the remaining bits shouldn't be *too* hard to account for 14:13:17 And really, it depends. For D it won't be since it'll e.g. be using the wrong exception-handling code. 14:13:21 some of the OS API + some type sizes 14:13:23 I.e. DWARF instead of SEH. 14:13:26 OS API, exactly. 14:13:32 Which is a big thing and nontrivial to convert. :-P 14:13:58 Deewiant, well, stuff like D already does it, doesn't it? Since there are linux and windows versions 14:14:11 The LLVM D compiler doesn't support Windows. 14:14:15 ah 14:14:23 good for their sanity 14:14:29 And even if it did, it wouldn't "do that" 14:14:36 do what? 14:14:41 It just grabs the appropriate #ifdef-equivalent when compiling 14:14:45 LLVM can't see that 14:14:51 well yes you would need system headers 14:14:59 -!- augur has joined. 14:15:24 Temp copy of my site hosted locally at http://tar.us.to:5423/ 14:15:25 like any cross compiler it would need headers from the target system 14:15:38 And since a cross compiler doesn't exist... :-P 14:16:14 Deewiant, what the hell is txz? 14:16:27 -!- augur_ has quit (Read error: Connection reset by peer). 14:16:44 tar.xz 14:16:53 and what is xz? 14:17:17 http://tukaani.org/xz/ 14:17:20 Deewiant, did ccbi use 32-bit or 64-bit cells? 14:17:26 and which did cfunge use? 14:17:32 because cfunge defaults to 64-bit cells 14:17:34 Look.at.the.results. 14:17:42 Deewiant, yes it says ccbi2-32/64 and so on 14:17:43 but 14:17:50 it doesn't tell me if that is -m64 or -DUSE64 14:17:58 which are *very* different things 14:18:04 the fastest variant is -m64 -DUSE32 14:18:09 All executables involved (the interpreters themselves or the interpreters’ interpreters, such as perl and python) were x86–64 ELF binaries. 14:18:16 hm 14:18:20 It says that on the page, you know. 14:18:26 brb phone 14:18:37 Hmm, my SVGs aren't working. 14:22:03 O Firefox, why fail'st thou so 14:22:32 -!- augur has quit (Quit: Leaving...). 14:22:51 -!- augur has joined. 14:26:20 -!- adam_d_ has quit (Ping timeout: 265 seconds). 14:33:22 back 14:33:42 tkk.fi seems back as well. 14:33:45 ah 14:33:57 Deewiant, 403? 14:34:05 hm reloading two times helped 14:34:11 weird 14:35:20 Deewiant, anyway, if this is mostly due to funge space (and I have no clue about profiling D code...) 14:35:27 then I'm lucky 14:35:39 because my funge space code is well abstracted 14:35:48 good generic API against it 14:35:59 So you'll just copy it over as usual? ;-P 14:36:03 Deewiant, nah 14:36:25 Deewiant, did you implement BOOL btw? And what about REXP? 14:36:34 if you did, then surely you just copied it from me! 14:36:46 since I implemented those before you did 14:36:53 REXP and FING are the two new ones in CCBI2, for fungot 14:36:53 Deewiant: letrec is fine, i can verify it 14:37:05 Deewiant, you copied it from me then clearly :P 14:37:08 AnMaster: Hey, at least you have a history of taking code from CCBI :-P 14:37:19 Deewiant, not really. Of studying it yes 14:37:45 Weren't the original issues with TURT in cfunge due to my buggy implementation? ;-) 14:38:46 Deewiant, that wouldn't have been an issue if you hadn't made it buggy 14:38:47 ;P 14:38:50 :-D 14:39:27 Deewiant, but yes, TURT and I guess the matrix fingerprint were based on your ones 14:39:41 because at the time I implemented those I didn't really know much about the underlying areas 14:39:48 that would be required to implement them 14:40:39 Deewiant, looks like cfunge won at http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/horizontal.b98.html 14:40:45 wait 14:40:46 misread 14:40:47 hrrm 14:41:04 Deewiant, where does it list the size of the program? 14:41:09 IIRC cfunge wins at diagdown,diagup,hollow-square 14:41:12 It doesn't 14:41:20 Deewiant, you said that varied on the main page 14:41:23 based on some parameter 14:41:51 Oh, you meant the parameter value? 14:41:53 Deewiant, also I care much more about speed than memory usage. Relatively speaking, memory usage is not very interesting to me 14:41:56 Deewiant, yes 14:42:05 Where are you looking for it? 14:42:18 at http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/horizontal.b98.html 14:42:19 On that page the graphs at the top have it as the x-axis 14:42:34 Deewiant, eh? where are the graphs 14:42:37 I didn't see any graphs 14:42:46 SVG :-/ 14:42:53 Deewiant, I use firefox 14:43:06 They work for me at tkk.fi but they didn't at my locally-hosted one, which was weird 14:43:18 Deewiant, they don't work on tkk.fi for me 14:43:31 Deewiant, they do work on wikipedia 14:43:38 (tried http://en.wikipedia.org/wiki/File:SVG.svg ) 14:43:50 (and also clicking the image) 14:43:58 That's a PNG 14:43:59 :-P 14:44:05 Deewiant, not if you click the image 14:44:19 Yes, that works but embedding seems a bit unfortunately random 14:44:55 Cactus plot for time used. 14:44:55 I presume you see the text instead? "Line plot of foo bar" or whatever 14:44:56 what? 14:45:05 For example that text, yes 14:45:08 What what 14:45:13 Deewiant, why not ? 14:45:17 I thought that was the normal way 14:45:18 Because that doesn't work in Firefox :-P 14:45:22 Deewiant, eh!? 14:45:31 SVG img doesn't work in Firefox: it's a known bug 14:45:39 https://bugzilla.mozilla.org/show_bug.cgi?id=276431 14:45:40 Deewiant, I'm pretty sure it worked for me with .svg in 3.0.x versions 14:45:44 haven't tested recently 14:45:46 You're wrong 14:46:00 Deewiant, shouldn't this be a trivial fix 14:46:14 I mean, rewriting them to object tags internally or something 14:46:15 It's a security issue since SVGs can be scripted 14:46:19 Or something like that 14:46:25 Can't remember the details but no, it's not trivial. 14:46:26 Deewiant, but so can web pages... 14:46:36 But other images can't... I DUNNO 14:46:58 AnMaster: Anyway I presume you see that "cactus plot" text? 14:47:09 okay what the hell 14:47:14 after view source I do see the images 14:47:17 .................. 14:47:19 :-D 14:48:03 Deewiant, anyway it is pretty much guaranteed that whatever-32 is faster than whatever-64 14:48:08 since more data fits in cache 14:48:09 Yes, it is. 14:48:33 how comes mine was so fast for the squares? 14:49:05 Deewiant, anyway the table below, it doesn't state what problem size it is for 14:49:16 It's a summary, it includes all problem sizes 14:49:23 so the total memory? 14:49:26 is it average? 14:49:27 peak? 14:49:35 It is the total memory. 14:49:40 Sum. 14:49:43 you mean run1 + run2 + run3 ...? 14:49:49 Yes, that is what "total" means. 14:49:49 Deewiant, and in what unit 14:50:00 "All time measurements are in seconds (s) and all memory measurements are in mebioctets (Mio)." 14:50:25 ... that unit... 14:50:31 :-D 14:51:02 it took like 3 seconds to figure out what was written. Because "word form" reading broke down 14:51:13 and then another second to parse it 14:51:49 I would complain about you not justifying how these benchmarks are reflective of real-world Funge-98 use, if there was any. 14:52:06 fizzie, :D 14:52:11 fizzie, there is fungot 14:52:12 AnMaster: magic takes away most of the " _" is 0??? 14:52:16 Yes, that would be a minor problem if there were any. 14:52:42 you could test fungot's ul and bf interpreters instead 14:52:43 AnMaster: nngh or something? ( so when cmuscheme48 sends the ' ,from-file foo.scm' command, it would be. 14:52:45 as free standing 14:53:28 Deewiant, ccbi1 stats for hollow square are amazing 14:53:34 how did it even manage that 14:53:37 CCBI1 is quite amazing :-D 14:53:43 slower than language::befunge 14:53:50 Deewiant, why does it say language-befunge there? 14:53:52 not the proper name 14:54:09 None of them say the proper name because I was too lazy to prettify them 14:55:00 AnMaster: And hey, cfunge is slower than Language::Befunge on the two biggest fork.b98 14:55:00 heh read that as petrify 14:55:10 Deewiant, fork.b98 as in t? 14:55:11 well 14:55:22 Deewiant, I will argue that forking a lot is not realistic 14:55:32 thus it is a pretty useless stats 14:55:42 Sure 14:55:53 most programs won't have more than 2 or 3 threads. I can't imagine anything with more than 50 say 14:56:38 Deewiant, cfunge is optimised for expecting few threads. It only grows the thread list in very small chunks. Unlike the stack that is grown in chunks of 1024 elements iirc 14:57:04 what I'm confused about is diagup/diagdown being efficient in cfunge 14:57:14 Deewiant, is that x to set a delta of 1,1? 14:57:37 It uses x to do that, yes (what else?) 14:57:45 Deewiant, oh and if I implement another funge space, expect it to be a compile time option. 14:57:55 so you have to list 4 variants of cfunge next time ;P 14:58:08 Deewiant, well, then it goes like 11x11x? diagonally 14:58:23 or what does it travel over 14:58:27 empty space? 14:58:28 No? It travels over z 14:58:31 ah 14:58:37 "11x followed by the given number of z in a diagonal line." 14:58:50 Deewiant, well I don't know how you implement z... 14:58:59 :-D 14:59:08 sleep(1); return; 14:59:13 sleep(1)? ;P 14:59:14 why 14:59:18 Of course not :-D 14:59:21 har 14:59:54 The problem is that CCBI doesn't handle loading of sparse files efficiently 14:59:57 Deewiant, how many decimals did you use for http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/diagdown.b98.html ? 15:00:01 more than is listed I assume 15:00:13 look at cfunge-32/64 ordering down ther 15:00:14 there 15:00:16 gettimeofday() 15:00:20 on "Individuals" 15:00:24 So microseconds, I guess 15:00:29 since the sorting shows more than what you list 15:00:46 It really doesn't matter if the difference is that small :-P 15:00:59 Deewiant, each is an average over how many runs? 15:01:17 http://users.tkk.fi/~mniemenm/befunge/fungicide.html#measurements 15:01:56 "First, the interpreter is run on a benchmark once and its time and memory use are measured. Memory usage is assumed to not vary, and thus it is measured only this one time per benchmark. " 15:01:57 what? 15:02:03 Deewiant, how can it not vary? 15:02:10 Why would it vary? 15:02:25 Deewiant, oh you mean vary between runs, not vary during a run 15:02:34 Yes, of course :-D 15:02:56 I suppose I could just always take the memory usage as the first value 15:03:03 Deewiant, well, since cfunge sets up randomness at startup, presumably the code path to write it could look slightly different 15:03:18 so srandom(19847682764) vs. srandom(19847682372) 15:03:20 or whatever 15:03:22 I also assume that that makes absolutely no difference 15:03:29 hm wait 15:03:39 I think I use the microseconds from gettimeofday() 15:05:17 Deewiant, the thing to do is to make it double fork and run the original process only for console IO 15:05:22 that should confuse your stuff ;P 15:05:42 Deewiant, also I notice you skipped efunge 15:05:43 how comes 15:05:45 I'll disqualify such an implementation for being abusive :-P 15:06:17 "There have not yet been any release, first release (0.0.1) is expected in late October or early November (2008)." 15:06:29 Deewiant, anyway, what does mmap() calls show up as in /proc/self/smaps ? heap? 15:06:39 err 15:06:44 s/self/pid/ 15:06:47 I'll be honest: I don't know. The numbers seemed representative so I went with them. 15:07:36 Deewiant, also since cfunge mmap()s the input file I assume it will drop sharply once the file is loaded 15:08:51 Deewiant, what is up with plots/horizontal.b98/1000000/line-memtime.svg 15:09:17 Something up? 15:09:32 yes? 15:10:19 Deewiant, it looks weird for the lower one 15:10:20 If you mean the Rc/Funge-98 messing about, I've seen it do that elsewhere as well and I don't think the measurements are wrong 15:10:25 ah 15:10:42 Deewiant, and why is the cfunge plot in plots/horizontal.b98/100000/line-memtime.svg discontinuous? 15:10:59 it goes to almost zero at one point? 15:11:54 I don't know; that happens as well, with many interpreters; they start out high, then drop, then climb "normally" 15:11:58 Deewiant, and uh plots/horizontal.b98/10000000/line-memtime.svg has two red lines at once? 15:12:06 memory is no longer a function of time 15:12:16 since there is more than one value 15:12:23 Huh? 15:12:35 Deewiant, there is a constant red line at the top 15:12:45 and there is one normal one further down 15:12:48 Yes; that's in all the plots 15:12:53 ah indeed 15:12:55 It just marks the theoretical maximum 15:12:55 and why= 15:12:59 I.e. the amount of memory in my system 15:13:02 ah 15:13:14 The time ones have something similar, for the timeout of 10800 seconds 15:13:17 Deewiant, I thought it was ccbi1 :P 15:13:24 maybe some other way to mark it 15:13:26 say dashed line 15:13:29 would work better 15:13:48 For some reason the SVG terminal in gnuplot doesn't use non-solid lines for the interpreters, it was better in postscript 15:13:48 Deewiant, did cfunge ever hit the timeout? 15:14:05 You can see that in the main summary: no, it didn't 15:14:17 2318.5 seconds was the maximum for cfunge-32 15:14:41 mhm 15:14:49 Deewiant, and what about memory limits 15:14:53 plus the graphs on the main page 15:14:57 ? 15:14:57 I haven't figured them out 15:15:05 they make little sense 15:15:17 benchmarks completed -> time? 15:15:21 that doesn't make sense to me 15:15:34 There's a textual explanation above, you know 15:15:36 how is time a function of how many of the benchmarks were successfully completed? 15:15:42 Deewiant, read it, confused me even more 15:16:03 It's just the maximum time needed to complete that many benchmarks 15:16:05 "First a few cactus plots: the vertical axis displays the maximum amount of resources (time or memory) used to solve the corresponding number of benchmarks" <-- perhaps you mean "correspondingly numbered"? 15:16:12 No, I don't 15:16:18 then I can't read it still 15:16:29 oh it is a sum? 15:16:36 of the time up until then? 15:16:45 No, it's not cumulative, it's the maximum. :-P 15:16:56 what? 15:17:00 that makes NO sense 15:17:21 If you have ten benchmarks that take: 1 1 1 1 1 2 2 2 2 3 seconds, you'll get five dots at 1, four at 2, one at 3 seconds 15:17:32 (With the x-coordinate increasing by one each time) 15:18:16 hm 15:18:26 See e.g. http://www.cril.univ-artois.fr/SAT09/results/timegraphs.php?idev=22 for a precedent, I didn't make this up ;-P 15:18:47 Deewiant, so what if the ten benchmarks take: 15:18:55 1 1 1 1 1 2 2 2 3 3 2 15:19:01 Same thing 15:19:01 or 11 I guess 15:19:08 Or wait, that's one more 3 15:19:10 But anyway 15:19:11 Deewiant, so you get three or two three dots? 15:19:12 It's sorted first 15:19:17 ........... 15:19:25 So that's equivalent to 1 1 1 1 1 2 2 2 2 3 3 15:19:31 Deewiant, that is useless for getting an overview of which ones are slow 15:19:45 It's meant for comparing the interpreters, not the benchmarks 15:19:55 Deewiant, and didn't stinkhorn complete any btw? 15:19:58 well 15:20:02 only a few 15:20:04 it looks like it 15:20:05 ? 15:20:11 oh wait 15:20:13 that is pyfunge 15:20:18 so pyfunge crashed? 15:20:27 This is all explained in the text 15:20:32 which part 15:20:40 "Note on misbehaviour" 15:21:16 # CCBI 1.0.20 can’t handle fork.b98 past 4096 threads at all, crashing in some way. 15:21:18 oh? 15:21:19 why? 15:21:27 "in some way" == "I don't know" 15:21:30 Deewiant, does it stop at the first one crashed? 15:21:37 "it"? 15:21:41 ... 15:21:47 the diagram 15:21:59 since it seems cut short very early for ccbi if just the fork one failed 15:22:20 You can see the number of benchmarks run in the table below 15:22:27 74 for most, 69 for CCBI 1, 42 for PyFunge 15:22:33 hm 15:22:57 Deewiant, do the fork threads exit right away? 15:23:02 or do they continue to run? 15:23:08 They're all alive when the first one hits @ 15:23:29 hm 15:23:52 for the forks one, I think that simply tuning the realloc() growing size for threads would change it a lot 15:24:03 Possibly 15:24:29 http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/fork.b98.html <-- why are there extra smaller diagrams? 15:24:30 CCBI just does a braindead append, leaving the GC to handle it (and everybody who's used D for a while knows that this is a good way to kill performance) 15:24:42 There are no extra diagrams, they're all the same 15:24:51 there are a lot of tiny ones at the end 15:24:54 Why Firefox displays some as small, I do not know 15:24:59 ah 15:24:59 Move your mouse over them 15:25:24 Deewiant, does nothing? 15:25:36 For me it enlarges them if they're small :-P 15:25:53 reloading the page makes them large 15:25:55 View in a separate tab/window/program if they're problematic 15:26:03 Deewiant, btw I found out I have to allow scripts if I want the svgs to show 15:26:15 Yes, that blocks them 15:26:31 which is silly, it noscript only blocks the scripts, not the whole page normally 15:26:37 so why should it be any different for svgs 15:26:44 only block the scripts in the svgs 15:26:50 Shrug 15:27:15 For me noscript displays a placeholder with its logo if it blocks them, so I thought that'd be obvious, sorry :-P 15:27:59 Deewiant, anyway I bet I could make a number of benchmarks where cfunge would be way faster :P 15:28:21 ccbi1 as the fastest one would have a hard time though 15:28:27 bbl making food 15:28:46 I've asked you for benchmarks three times over the past six months; IIRC you responded once saying that you didn't have any ideas 15:28:52 So suffer ;-P 15:34:52 I think you mentioned life.bf once, but I couldn't be bothered to figure it out and adapt it into a benchmarkable form 15:59:52 Deewiant, well life.bf is useful 16:00:05 and so is fungot's ^bf and ^ul 16:00:05 AnMaster: misc/ packages.scm 16:00:39 Deewiant, and what I do with life.bf is run it for 20 seconds. then kill it. Then check how large the output file is 16:00:49 quite easy to benchmark 16:01:06 Deewiant, I think I told you the command line I used before 16:01:23 so it is very benchmarkable yes 16:01:35 Changes there might even depend on the level of I/O buffering 16:01:44 Which has nothing to do with performance 16:02:13 Deewiant, stdout redirected to something tends to become fully buffered 16:02:46 Where the buffer size can vayr. 16:02:47 vary. 16:03:05 Fungot seems to suggest using "misc/packages.scm", but I'm not sure how that'd work. 16:04:14 Is there some sort of canonical brainfuck benchmark? You could run that on the ^bf interp, or some other Befunge-brainfuck. Not that that'd be very indicative of those mythical real-world workloads either. 16:04:16 AnMaster: Preferably: replace the , with $ and set it up so that it stops after some (preferably easily changeable) number of iterations 16:04:35 (But that's what I haven't bothered to do) 16:05:37 -!- Alex3012 has joined. 16:13:49 -!- oerjan has joined. 16:16:38 -!- adam_d_ has joined. 16:34:12 -!- lereah_ has quit (Quit: Leaving). 16:42:22 -!- augur has quit (*.net *.split). 16:43:16 -!- augur has joined. 16:43:18 -!- augur has left (?). 16:43:18 -!- augur has joined. 16:47:36 -!- augur has set topic: History | News: 0 events tunes.org private sector in the beginning of Christ Foundation | http: / / / ~ 2 per year - and through Torah mandelstam. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 16:48:21 -!- augur_ has joined. 16:48:45 spot the difference. 16:49:36 -!- augur has quit (Read error: Connection reset by peer). 16:58:23 Deewiant, IO tests are interesting too 16:59:08 -!- adam_d__ has joined. 16:59:09 But try not to conflate it with non-IO. 17:01:58 -!- adam_d_ has quit (Ping timeout: 265 seconds). 17:02:12 Deewiant, hm? 17:02:28 Deewiant, btw: awk '{print $6}' /proc/*/maps | sort -n | uniq -c | grep -Ev '/usr/lib/.*\.so' indicates mapped files are shown not as heap 17:02:32 not sure about anon mmap 17:02:56 I.e. if you're going to benchmark IO, try to benchmark only IO, not IO + something otherwise performance-intensive. 17:03:00 there are also lines like: 17:03:02 /proc/8939/maps:7fab50ecf000-7fab50f2f000 rw-s 00000000 00:04 23592979 /SYSV00000000 (deleted) 17:03:03 /proc/9438/maps:7f1396aa0000-7f1396b00000 rw-s 00000000 00:04 23756833 /SYSV00000000 (deleted) 17:03:05 quite interesting 17:03:19 fizzie, btw for bf benchmark that mandelbrot in bf wasn't very fast iirc 17:03:23 it should be useful 17:03:35 as in, extremely slow without optimising 17:03:43 and still slow with optimising compiler 17:04:20 /proc/2407/maps-7f7165c88000-7f7165c89000 ---p 00000000 00:00 0 17:04:20 /proc/2407/maps-7f7165c89000-7f7166489000 rw-p 00000000 00:00 0 17:04:25 now those are some strange mappings 17:04:40 that is - after since it was from grep -C 17:05:08 Deewiant, and smaps is iirc the same, just with more info 17:05:12 so harder to grep in 17:05:17 since it is not one entry per line 17:06:03 Deewiant, looks like firefox mmap()s ~/.mozilla/firefox/profilename/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}/chrome/adblockplus.jar and so on 17:06:06 for all the extensions 17:06:09 interesting 17:06:46 Deewiant, btw as far as I can tell erlang doesn't use the system heap 17:06:54 it is zero in size 17:07:04 it mmap()s areas and use those I think 17:07:21 Deewiant, so yeah testing efunge that way would require adjustments 17:08:01 I'm /fairly/ sure that anon mmap() is included. 17:08:18 I'd be very surprised if those programs all used only brk(), at least. 17:08:39 Deewiant, no, I'm pretty sure there isn't 17:08:46 7f55b454e000-7f55b46e5000 rw-p 00000000 00:00 0 17:08:46 7f55b4762000-7f55b7f18000 rw-p 00000000 00:00 0 17:08:46 7f55b7f84000-7f55b8085000 rw-p 00000000 00:00 0 17:08:46 7f55b80f2000-7f55b8572000 rw-p 00000000 00:00 0 17:08:49 those are anon mmaps 17:08:52 as far as I can tell 17:09:05 Deewiant, because the way that erlang works, I can see how those varies 17:09:12 both in number and in size 17:09:13 when it runs 17:09:33 I mean, included by my measurer: it doesn't grep over anything that looks like that IIRC 17:09:42 (I.e. I don't really know what you're talking about) 17:10:26 Deewiant, you said you added heap + stack from smaps iirc? 17:10:30 or did I misunderstood you? 17:10:42 I didn't say anything, I wrote something on the web page 17:10:42 misunderstand* 17:10:47 Deewiant, well okay 17:11:02 Deewiant, but [heap] is brk() as far as I can tell in some simple tests 17:11:04 'Memory usage is measured using a Python script which repeatedly reads the /proc//smaps pseudofile, summing up any “Shared” and “Private” values.' 17:11:06 and anon mmaps are not there 17:11:31 Deewiant, Shared_Clean or Shared_Dirty? 17:11:40 or both? 17:11:48 Both 17:11:51 both Shared and Private seems to be split into Clean/Dirty here 17:12:09 Anything that starts with "Shared" or "Private" is summed 17:12:25 Deewiant, due to COW and such on I'm not sure this is actually good 17:12:30 you should look at the type of the object 17:12:32 Neither am I 17:12:34 probably 17:12:36 But it seemed representative 17:12:45 Deewiant, like libc seems mapped more than once into some processes 17:12:47 which is weird 17:12:56 wait no 17:13:03 those are read/readonly/nx and so on 17:13:29 Unless you have a full replacement solution ready or you can find something that would cause a significant mismeasurement I'm not fussed :-P 17:13:53 Deewiant, well for one, erlang -smp would cause problems I think 17:14:16 let me check 17:15:03 ah hm 17:15:29 seems the threads go into /proc//task//smaps 17:15:49 hm 17:16:06 aha 17:16:15 the thread specific stacks are gone from the main one it seems 17:16:22 7f1106688000-7f1106699000 rw-p 00000000 00:00 0 [threadstack:0000fff0] 17:16:36 or wait 17:17:14 well not sure 17:17:26 linux does seem to try to do something "reasonable" for phtreads apps 17:17:54 Deewiant, is there any graph over which test took the longest for a given implementation? 17:18:06 Like I want to see what else than t that cfunge was extremely slow at 17:18:14 if anything 17:19:04 -!- augur_ has quit (Ping timeout: 268 seconds). 17:19:11 Deewiant, oh btw: 17:19:13 // For concurrent funge: how many new IPs to allocate in one go? 17:19:13 #define ALLOCCHUNKSIZE 1 17:19:17 that explains a lot I think 17:19:18 How would one graph that? :-P 17:19:29 Deewiant, as a venn diagram! 17:19:32 (not really) 17:19:33 >_< 17:19:50 Deewiant, was that >_< over the #define? 17:19:53 -!- augur has joined. 17:19:57 No, the venn diagram 17:20:01 But I suppose it works for that too 17:20:35 It is soon AI competition time again; I get to invent new plots to draw about the games, yay. 17:20:41 For finding the "worst" for anything, grab the preprocessed data and do some awk or something... 17:20:45 Deewiant, I'm not sure non-1 sizes will work properly 17:20:52 I have to check 17:21:01 AnMaster: Some #define if only one value is ever correct :-D 17:21:03 (ipList*)malloc(sizeof(ipList) + sizeof(instructionPointer[ALLOCCHUNKSIZE])) 17:21:07 I thought I fixed that code? 17:21:13 (ais helped me figure it out) 17:21:24 hint: instructionPointer is a *type* 17:22:01 Deewiant, fizzie now one C nerd mark if you can tell me what it does and why it works. 17:22:18 also, it confused no ends out of the static analyser sparse 17:22:42 Isn't it just taking the sizeof of a static array? 17:22:48 Seems rather trivial to me... 17:22:49 Deewiant, not a static array no 17:22:56 Deewiant, but yes in that case 17:22:59 the other case was better 17:23:04 -!- adam_d__ has changed nick to adam_d. 17:23:19 Deewiant, there it was sizeof(instructionPointer[(*me)->size + ALLOCCHUNKSIZE]) 17:23:22 Deewiant, :) 17:23:23 Yes, I remember that VLA one... but I guess that should be equally obvious 17:23:24 ah 17:23:57 * AnMaster wonders why he cast the value of malloc() 17:24:04 I mean, it isn't like this is C++... 17:24:41 uh, what did I just do... 17:24:45 recursive sshfs I think 17:26:15 Deewiant, where was the link to the .xz tools now again? 17:26:28 because 17:26:33 it isn't in repos 17:26:38 of ubuntu 9.04 it seems 17:26:43 O_o 17:26:53 It's in [core] in Arch 17:27:07 You sure you don't have it already? 17:27:27 Indeed, xz-utils only appears in karmic and lucid. 17:27:32 Deewiant, I'm on my laptop... 17:27:38 since it has a better CPU 17:27:42 way better one 17:27:45 (C.f. http://packages.ubuntu.com/search?keywords=xz-utils&searchon=names&suite=all§ion=all) 17:28:05 meh *third level recurses ssfs to uncompress it* 17:28:21 (since I mounted a different subtree before 17:28:23 ) 17:28:24 hm 17:28:28 AnMaster: What do you decompress lzma with? 17:28:45 Deewiant, lzma -d ? 17:28:50 Where lzma is from? 17:29:02 $ which lzma 17:29:03 /usr/bin/lzma -> /usr/bin/xz 17:29:06 $ lzma --help 17:29:07 lzma 4.32.0beta3 Copyright (C) 2006 Ville Koskinen 17:29:07 Based on LZMA SDK 4.43 Copyright (C) 1999-2006 Igor Pavlov 17:29:17 $ file /usr/bin/lzma 17:29:17 /usr/bin/lzma: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped 17:29:33 Huh. 17:29:41 Homepage: http://www.7-zip.org/sdk.htm 17:29:44 says apt-cache 17:29:49 if I guessed the right package 17:29:50 bbl 17:29:58 You did. 17:30:00 got to do something other, more important, RL 17:30:12 Well, with luck, that'll decompress it as well :-P 17:31:15 fis@eris:~$ apt-cache show $(dpkg-query -S $(which lzma) | cut -d ':' -f 1) | grep ^Homepage: 17:31:15 Homepage: http://www.7-zip.org/sdk.htm 17:40:43 This Ubuntu lucid installation has xz-utils installed by default (depended by Gnome's file-roller thing), but it still won't overwrite /usr/bin/lzma with a symlink. (The "lzma" package has priority: required, and is therefore also installed.) 17:41:56 -!- oerjan has quit (Quit: leaving). 17:52:08 Deewiant, so the xz file is just lzma? 17:52:32 * AnMaster looks for the README on fungicide 17:52:46 It might be different if xz does something different based on argv[0]... 17:53:24 Deewiant, neither integrates into tar though, at least there seem to be no equiv to tar -z or tar -j for lzma here on ubuntu 17:53:39 That's GNU tar specific anyway 17:53:40 The page about xz-utils did say that .xz is a newer container, even though the LZMA algo is still LZMA. 17:53:51 Deewiant, true, but that is the tar I normally use 17:54:05 And lucid's GNU tar has a -J flag for xz. 17:54:10 -J, --xz 17:54:10 filter the archive through xz 17:54:31 And --lzma for lzma. And --lzop for lzop. 17:54:39 Lzo too? Nice. 17:54:40 lzop? 17:54:42 (The latter is yet another LZMA-based thing.) 17:55:00 Isn't LZO completely different? 17:55:00 Oh, right, lzop *was* LZO-based. 17:55:03 Deewiant, anyway, I can't figure out how to just run a timed test on forking 17:55:10 Yes, I was just under the impression that lzop had a silly name. 17:55:19 lzop is deliciously fast. 17:55:28 pikhq, bad compression ratio iirc? 17:55:28 AnMaster: You can comment stuff out from runs.dat with # 17:55:33 But it was in fact so that lzop is based on LZO; it was *lzip* that was the yet another LZMA-based utility I was thinking of. 17:55:38 Then make an interpreters.dat and use runallruns 17:55:41 There's certainly a number of them. 17:55:47 AnMaster: Not too far from gzip, actually. 17:56:06 Deewiant, yes but where do I run just the fork test. Like I need to run it under valgrind --tool=cachegrind 17:56:20 Deewiant, (for small sizes only of course) 17:56:23 AnMaster: The nice thing about lzop, though, is tat it means your compression is likely IO bound. ; 17:56:27 ;) 17:56:35 pikhq, what about from ramdisks ;P 17:56:56 (where small is something like mycology sized) 17:56:57 AnMaster: Just set up an interpreters.dat with valgrind 17:57:19 Deewiant, that needs to be valgrind --tool=cachegrind --lots-of-other-parameters build_opt_dbg/cfunge 17:57:24 hm 17:57:27 So do that? :-P 17:57:35 You can use runone.pl directly too I guess 17:57:51 Deewiant, okay, and where does that helper fungify need to be? 17:57:55 In path 17:58:03 Deewiant, and how does one compile it? 17:58:08 ghc --make 17:58:16 AnMaster: The speed of LZO is approx. 1/6th that of memcpy. 17:58:20 Deewiant, in the same dir as the .hs file? 17:58:22 that's all? 17:58:25 ghc --make file.hs 17:58:29 -!- MizardX has joined. 17:58:40 fungify.hs:54:7: 17:58:40 Could not find module `Test.ChasingBottoms.TimeOut': 17:58:40 Use -v to see a list of the files searched for. 17:58:41 AnMaster: Well, you need to have the dependencies installed, which you may or may not 17:58:42 Deewiant, any clue? 17:58:51 cabal install chasing-bottoms IIRC 17:59:01 If you lack cabal... blame your distro 17:59:23 bash: cabal: command not found 17:59:24 yeah 17:59:46 nothing matching "chasing-bottoms" either 18:00:00 -!- cal153 has joined. 18:00:26 Deewiant, if I compile it on another system, will it run on this one? 18:00:31 also what the heck is up with ghc on arch: 18:00:46 If it's the same arch and dynamic library versions, it probably will 18:00:46 Targets (1): ghc-6.12.1-4 18:00:47 Total Download Size: 54.21 MB 18:00:47 Total Installed Size: 665.06 MB 18:01:00 That's normal, isn't it? 18:01:01 Deewiant, I have 6.8.2 on ubuntu 18:01:06 sigh 18:01:16 AnMaster: Get cabal 18:01:18 Deewiant, can you provide a static binary of it? 18:01:19 On your ubuntu 18:01:21 the file 18:01:22 AnMaster: x86-64 18:01:27 Deewiant, yes that is fine 18:01:33 it is exactly what I need 18:01:39 tar.us.to:12345 18:02:12 lets try it 18:02:40 ./fungify: error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directory 18:02:41 :/ 18:02:46 :-P 18:02:51 Deewiant, doesn't it support static linking? 18:03:05 To GMP, I don't think so 18:03:08 Since that would violate GPL 18:03:10 IIRC 18:03:15 -_- 18:03:22 Hooray for GPL :-P 18:03:24 Deewiant, wouldn't even using GMP at all do so then? 18:03:30 No, dynamic linking is fine 18:03:44 (Note: I can't remember but I think this was an issue once) 18:04:12 Deewiant, and how can I quickly check that it works. Just running it does nothing 18:04:21 fungify 123 18:04:38 * AnMaster copied /usr/lib/libgmp.so.10 from another computer and is using LD_LIBRARY_PATH 18:04:44 Deewiant, '{ ? 18:04:54 If it outputs something it probably works :-P 18:05:13 right. what a mess though :P 18:06:02 It was originally just meant for my own use but then it turned out to be very handy in fungicide 18:06:11 Deewiant, there is no option to just generate the file? Since I know from experience that running valgrind with LD_LIBRARY_PATH will set will sometimes break all hell lose 18:06:44 AnMaster: If you use runone.pl directly it'll take the program as an argument (i.e. the generated file) 18:06:51 hm 18:07:40 Can't locate BSD/Resource.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ./runone.pl line 6. 18:07:41 eh? 18:07:53 Use the CPAN, Luke 18:08:10 And if your distro doesn't have /that/, take it around the corner and shoot it :-P 18:08:15 is it BSD::Resources? 18:08:40 ah libbsd-resource-perl seems relevant 18:09:15 why is there a libbsd-resource-perl-dbgsym I wonder... 18:09:50 hm it installs a *.so, right 18:10:41 Deewiant, okay this one is more confusing: 18:10:43 "make_path" is not exported by the File::Path module 18:10:43 "remove_tree" is not exported by the File::Path module 18:10:54 File::Path *does* seem to be there 18:11:15 Which version? 18:11:24 Mine is 2.08 18:11:35 eh, trying to find out 18:11:44 cpani File::Path 18:11:47 18:12:15 cpan starts asking me questions instead 18:12:33 Answer it? ;-P 18:12:46 well I don't know them, about build dirs and such 18:13:00 Deewiant, anyway I don't want to end up with non-distro files in /usr 18:13:37 Then set up some kind of site_perl in $HOME, which I would guess is possible 18:13:42 Deewiant, is it libfile-path-expand-perl ? 18:13:58 Deewiant, it seems File::Path is built into perl? 18:13:59 How would I know? It is File::Path 18:14:04 as in, same package 18:14:21 perl v5.10.0 btw 18:14:29 5.10.1 here 18:14:48 Feel free to modify runone.pl if you think that'll be easier :-P 18:15:06 nah 18:15:13 http://search.cpan.org/~dland/File-Path-2.08/Path.pm 18:15:31 /usr/share/perl/5.10/File/Path.pm 18:15:32 wth 18:15:42 there is /usr/lib/perl and /usr/share/perl 18:15:44 INST_FILE /usr/share/perl5/site_perl/5.10.1/File/Path.pm 18:16:10 Deewiant, how wound one tell version from the *.pm file? 18:16:19 I don't know 18:16:26 ah 18:16:29 version is 2.04 18:16:37 at least it says $VERSION = '2.04' 18:16:49 s/$/;/ 18:17:09 Deewiant, bbl, have to rush, will be back in ~1 hour, 20 minutes 18:17:10 I know very little Perl-the-language and practically none Perl-the-community apart from that CPAN typically works very well 18:18:23 AnMaster: You also realize that you don't have to use any of the Fungicide scripts... I typically didn't when playing around with them, I just used time(1) 18:18:39 s/them/the benchmarks/ 18:20:32 -!- uorygl has quit (Quit: leaving). 18:22:22 make_path and remove_tree are File::Path's new names for mkpath and rmtree; they do much the same thing, but with a bit different arguments. 18:23:44 File::Path 2.04 is from 24 Nov 2007, that's not so new. According to its documentation -- http://search.cpan.org/~dland/File-Path-2.04/Path.pm -- it didn't yet have those new variants. 18:26:20 -!- charlls has joined. 18:38:20 -!- ehirdiphone has joined. 18:38:33 Teleparts of? Pseudo-dispatch time. 18:39:10 Yote. 19:01:40 ehirdiphone: How farest thou? 19:01:59 Shitty. 19:02:24 I need to figure out a way to code on this thing. 19:02:50 Jailbreak + terminal.app? 19:04:53 SSH over IRC? 19:05:16 Deewiant: Ow 19:05:17 Although I guess that's not on that thing specifically 19:08:34 -!- cheater2 has quit (Ping timeout: 264 seconds). 19:08:45 -!- cheater2 has joined. 19:10:05 -!- charlesq__ has joined. 19:10:17 Well, the keyboard is an issue. 19:10:48 And considering my language preferences the lack of Greek letters ;-) 19:11:51 :•) it can type €$¥• though 19:11:57 Esy. 19:13:27 -!- charlls has quit (Ping timeout: 258 seconds). 19:26:56 -!- Gregor has quit (Read error: Connection reset by peer). 19:29:13 -!- charlls has joined. 19:30:12 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info). 19:31:51 -!- charlesq__ has quit (Ping timeout: 258 seconds). 19:32:18 -!- charlls has quit (Read error: Connection reset by peer). 19:32:25 Deewiant, oh? I thought the scripts were there to generate something. Otherwise, why would that fungify be needed? 19:32:45 -!- adam_d has quit (Ping timeout: 265 seconds). 19:33:21 in fact I can't find any *,b98 files in there 19:33:27 AnMaster: The scripts in benchmarks/ generate the files run 19:33:32 They're all self-contained 19:33:43 hm 19:33:44 okay 19:33:59 Deewiant, why not use y to get the the value on the command line? 19:34:34 Too complicated :-P 19:34:41 Deewiant, So I run something like: perl fork.b98.pl 123 > fork-123.b98? 19:34:47 Yep 19:35:01 Note that for fork it has to be a power of two; not sure what'll happen if not 19:35:03 but I can't see where fork invokes fungify? 19:35:11 They don't /all/ need it 19:35:15 heh? why? 19:35:26 I mean 19:35:27 Why would they all need it? :-P 19:35:28 the power of two 19:35:32 not the needing of the script 19:35:43 Because it was easy to write it that way 19:36:04 If it's not a power of two it'll probably behave as though it were rounded down to the next power of two... I think 19:36:10 s/next/previous/ 19:36:12 hm the output size of the fork one grows one line per power of 2? 19:36:23 Yeah, something like that 19:37:25 Deewiant, does language::befunge have some huge fixed overhead? Since it was way slower than cfunge until the 65536 graph 19:37:37 Of course it does 19:37:38 It's in PERL 19:37:57 Deewiant, yes but I would have expected a constant factor, not a constant term, which it what it looks like to me 19:38:06 maybe I'm too tired 19:38:17 been up for 15 hours now 19:38:18 The plot is logarithmic, remember 19:38:29 ah 19:38:29 (IIRC) 19:38:43 I always disliked log plots. Don't know why. 19:38:52 maybe because they are so wooden? 19:39:01 Har de har 19:39:54 Deewiant, oh and I think that fork script rounds down to nearest power of two 19:39:58 at least it looks like that 19:40:09 eh 19:40:12 round to nearest? 19:40:15 Yes, that's what I guessed 19:40:22 Oh, nearest? 19:40:34 I'd think it goes down but whatever 19:41:05 Deewiant, no. It is inconsistent. 32767 and 32768 are same size, but 32769 is one larger 19:41:14 and isn't 32768 a power of two? 19:41:21 so rounds upwards 19:41:25 not downwards 19:41:29 Alright 19:41:35 * AnMaster *is* tired 19:41:41 Yeah, that actually makes sense 19:44:16 Deewiant, okay, so the thing to do is to grow it by 2^16 bytes each time right? ;P 19:44:21 that will lead to few reallocs 19:44:35 or maybe 2^24 19:44:39 even fewer reallocations 19:44:58 You're hopeless, you know that? :-P 19:45:07 Deewiant, you know I'm joking right 19:45:08 ? 19:45:16 Yes 19:46:00 Deewiant, I may allow all these as user tunables btw 19:46:38 and then suggest in README that "for optimal performance, these tunables should be carefully tested and optimised for your needs" or such 19:49:00 Deewiant, what do you think about that? 19:49:29 Go ahead? Nobody will tune them :-P 19:49:41 Deewiant, you know iirc ATLAS does something like that 19:49:51 s/ow/ow,/ 19:51:09 -!- ehirdiphone has joined. 19:53:41 Deewiant, how many IPs does ccbi allocate in one go? 19:53:58 2010-04-06 17:24:06 ( Deewiant) CCBI just does a braindead append, leaving the GC to handle it (and everybody who's used D for a while knows that this is a good way to kill performance) 19:54:08 Deewiant, oh I thought that was CCBI1? 19:54:15 Didn't change it in 2 19:54:20 hm 19:54:35 Deewiant, is that a linked list? 19:54:42 Nah, array 19:54:56 Deewiant, high level array that might allocate in chunks internally? 19:55:41 Yeah, the builtin array that does whatever and in practice does something poor 19:56:02 hm 19:56:49 well strange, allocating 32 ips per chunk doesn't change the time very much 19:57:11 about 10 seconds, from 3 minutes, 13 seconds, to 3 minutes, 2 seconds 19:57:14 wtf 20:02:46 also wtf at cpufreq-info: 20:02:48 current policy: frequency should be within 800 MHz and 1.60 GHz. 20:02:50 and I can't change it 20:02:58 as in, changing seems to work but does nothing 20:10:25 Deewiant, Wait, do you append the ip even if it isn't the last one that is forking? 20:10:30 how would that work 20:10:40 I memmove it to the right place 20:11:01 I think I found the issue, and that I need to reverse the order I traverse the ip list in 20:11:36 hm 20:16:11 Deewiant, do you memmove to delete an IP in the middle too? 20:16:20 Yeah IIRC 20:16:56 hm 20:19:39 -!- tombom_ has joined. 20:20:44 Deewiant, okay the issue seems to be the code that basically does memmov 20:20:53 Deewiant, do your list only contain pointers to IPs or such? 20:20:58 that could explain it somewhat 20:21:19 Yes, it does 20:21:22 right 20:21:56 Deewiant, on the basis that for the normal use case I reduce fragmentation and increase locality of reference I store them inline in the list 20:22:02 of course, that backfires for this weird case 20:22:13 -!- tombom has quit (Ping timeout: 268 seconds). 20:22:26 Deewiant, because for smaller cases I found it was faster than storing a list of pointers 20:22:39 How big is one of your IPs? 20:22:51 Deewiant, not sure on the top of my head 20:22:53 let me check 20:22:57 -!- jcp has joined. 20:22:58 s/on/off/ 20:23:57 right 20:24:11 680 bytes according to gdb 20:24:27 most is due to the array of fingerprint stacks being inline in the IPs 20:24:31 gtg, bye! 20:24:33 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info). 20:24:56 Deewiant, this works very well when we have a "realistic" number of IPs. Which would be something less than 10. 20:25:15 maybe I will provide a compile time option for another variant 20:25:45 So 85 pointers' worth; moving that around will obviously be more expensive, yes 20:26:06 Deewiant, for most programs the locality of reference wins over that easily. 20:26:22 I would say that this is a non-realistic test case anyway. 20:27:19 Deewiant, it would have been smaller if only you would have let HRTI have a global state, and SUBR being relative also being global 20:27:46 those add 9 bytes in total (1 x pointer to HRTI data + 1 x bool for SUBR being relative) 20:28:13 Deewiant, so yeah, I'm going to make a "stupidly large" variant a compile time option 20:28:54 You don't have to win on every stupid benchmark :- 20:28:54 P 20:29:09 Deewiant, sure I do. If I make a better funge space it will also be an option 20:30:44 Deewiant, so that gives 2^3 options (32/64, model1/model2 funge space [note: need to think of good names for them], normal/super-sized-benchmark IP list model) 20:30:46 so far 20:31:11 I'm not going to test every silly variant :-P 20:31:20 Deewiant, well, drop 64-bit cells then 20:31:51 that one is always slower, or at least same speed. Sure it sorted above in one table, but both showed same value there, so probably not statistically significant 20:31:52 I'd rather drop 32-bit ones 20:31:57 Deewiant, why? 20:32:05 It's a 64-bit machine... 20:32:13 Deewiant, but 32-bit *cells* are faster 20:32:17 quite obviously 20:32:58 The difference is small enough that I don't really care 20:33:10 $ bzr branch trunk alt_ip_list 20:33:32 Deewiant, hey, in one place it was cfunge-32 - stinkhorn - cfunge-64 iirc 20:33:47 So improve cfunge, not my problem ;-P 20:34:05 Deewiant, I could make 32-bit cells default, and hide 64-bit on the advanced page or such 20:34:59 only reason 32-bit isn't default is to make funge programmers aware of that they can't assume 32-bit in their programs 20:36:02 -!- Gracenotes has quit (Quit: Leaving). 20:36:32 Clearly you should use 8 bit cells and assembly. 20:36:56 (so you can use ah, al, and friends) 20:37:13 ah is slow, don't use that. 20:38:52 pikhq, funge-98 requires 32-bit or more 20:39:19 Deewiant, the text on http://users.tkk.fi/~mniemenm/befunge/mycology.html seems outdated 20:39:45 Whoops, forgot to change the year 20:39:47 Anything else? 20:39:56 Deewiant, well, don't know, is the file the current one? 20:40:03 Should be 20:40:05 the zip to be specific 20:40:14 AnMaster: Fine, fine. Do it on a 32-bit Brainfuck then. 20:40:46 pikhq, yes that is what I use for speed testing 20:40:56 Ah, good. 20:41:37 Deewiant, about mycology 3DSP test: "Loaded and unloaded FPSP, assuming it and its F and P commands will work from now on..." 20:41:39 what? 20:41:43 after you unloaded it? 20:41:50 >_< 20:41:58 Deewiant, typo? 20:42:02 No 20:42:06 then what does it mean 20:42:08 -!- ais523 has joined. 20:42:11 It means that it assumes FPSP works 20:42:12 I can't make sense out of it 20:42:13 hi ais523 20:42:23 hi 20:42:27 It has successfully loaded and unloaded FPSP but didn't test any further 20:42:28 Deewiant, what happens if FPSP is not implemented then? 20:42:35 presumably it reflects on loading 20:42:36 Then it shouldn't have loaded it 20:42:45 Deewiant, and then will it skip the 3DSP test? 20:42:49 Yes 20:42:55 mhm 20:55:09 -!- adam_d has joined. 20:56:51 -!- charlls has joined. 20:57:53 -!- charlesq__ has joined. 20:57:53 Deewiant, I might have to switch to a kernel-like make menuconfig soon ;) 21:01:56 -!- charlls has quit (Ping timeout: 258 seconds). 21:14:38 Deewiant, btw will use my memory pool infrastructure for the large model IP list 21:14:49 -!- adu has quit (Quit: adu). 21:24:01 -!- adam_d has quit (Ping timeout: 248 seconds). 21:45:21 Deewiant, real 0m0.699s 21:45:31 for that fork test (not largest one) 21:45:42 Parameter? 21:45:51 Compare to stinkhorn, it's the fastest on those 21:45:58 let me grep shell history 21:46:10 Deewiant, also note this runs on a 2.26 GHz Core 2 Duo 21:46:10 Just wc -l the file :-P 21:46:23 Deewiant, 17 21:46:39 so 2^16 I guess 21:46:44 since the last line has no forks 21:46:47 Yeah, presumably 21:47:07 or what about trailing newline? 21:47:08 meh 21:47:22 wc -l doesn't count that 21:47:23 Deewiant, anyway, I don't have stinkhorn around 21:47:28 so can't compare 21:47:43 So obtain it? :-P 21:47:48 Deewiant, I allocate 4096 IPs in each chunk. 21:47:54 Deewiant, link? I'm lazy 21:47:54 >_< 21:48:05 code.google.com/p/stinkhorn IIRC 21:48:36 And since building it is such a complicated task: find src -name "*.cpp" -not -ipath "*tests/*" -not -ipath "*win32*" | xargs g++ -o stinkhorn -O3 -march=native -DNDEBUG -fpermissive 21:49:06 Deewiant, I know that's a lot of IPs... This happens because of that the memory pool code was originally tuned for hash funge space 21:49:13 Deewiant, wth 21:49:22 Deewiant, why not a makefile, or even a build.sh 21:49:36 That is my build.sh for it :-P 21:50:10 well, there should be one there 21:50:18 It has a VS solution and project file but you probably don't care about those 21:50:20 what does -fpermissive do? 21:50:27 Make it build 21:50:35 huh? 21:50:50 Deewiant, it errors 21:50:54 -fignore-errors-just-compile 21:50:57 let me pastebin 21:51:08 because it is a HUGE C++ error 21:51:10 Oh, one diff 21:51:14 also it hasn't finished yet 21:51:16 Deewiant, oh? 21:51:23 src/interpreter.cpp line 111, I think 21:51:27 Change const_iterator to iterator 21:51:50 Deewiant, chhm 21:51:52 hm* 21:51:58 no compile errors so far 21:52:18 but why does it swap trash... 21:52:37 Deewiant, oh wait, building all in one go. Bad idea. Per object file is better 21:53:04 if you do it that way for stinkhorn you should gcc -combine and such for cfunge as well ;P 21:53:31 cfunge has a build system, which I use: your problem if it's not optimal 21:54:24 hm 21:55:06 Deewiant, I will write some "profile feedback" build scripts :P 21:55:07 -!- coppro has joined. 21:55:45 -!- augur has quit (Read error: Connection reset by peer). 21:56:11 -!- augur has joined. 22:00:38 Deewiant, some testing indicates stinkhorn has a faster setup time than cfunge. While the difference is near none for large cases 22:00:53 the break-even seems to be around 2^17 threads or so 22:01:12 or perhaps 2^18 22:01:52 it doesn't seem statistically significant at 2^18 though. Sometimes one is slightly faster, sometimes the other 22:01:52 bbl 22:02:58 and then stinkhorn is faster again for a bit, strange 22:03:08 -!- Gregor has joined. 22:03:17 well I believe some code could possibly be tuned 22:03:38 oh I know 22:03:49 I set the pointer array realloc size to 1 again for testing something 22:04:23 Statically. Allocate. Everything. :P 22:04:38 pikhq, a bit hard :P 22:04:50 IP ips[1 << 20]; 22:05:48 har 22:06:01 well the chunk here was for the list of pointers in this case 22:06:24 anyway, growing it with 256 at a time seems to give pretty much the optimum 22:08:44 AnMaster: Yeah, but it'll mean no need to link against malloc! 22:10:35 pikhq, ... har? 22:14:00 Deewiant, oh, stinkhorn doesn't use exact bounds 22:14:05 that explains some of the speed I guess 22:15:46 Deewiant, also: how the fuck did stinkhorn manage http://users.tkk.fi/~mniemenm/befunge/mycology-output/concurrency/stinkhorn.txt 22:16:28 Easily, CCBI used to do that at some (hopefully never released) points 22:16:41 Deewiant, how? 22:16:50 Basically: handle markers for all IPs before executing any instructions 22:16:50 I mean, it ran lots of spaces before 22:16:56 oh I see 22:17:01 Then get screwed if one gets p'd on top of you 22:17:03 cfunge handles it the same way as instructions 22:17:04 :) 22:17:30 just with a "continue with this IP after" flag 22:18:05 hm maybe I should rewrite that, possibly checking that flag every time we call execute_instruction has some severe overhead 22:18:17 there is an obvious alternative of course 22:18:43 Most likely your CPU can branch-predict well enough that the difference for most code is negligible 22:19:04 Deewiant, well, it would need to do that after it returned to main loop 22:19:14 so I doubt it can actually know which one will happen this time very well 22:20:53 -!- adam_d has joined. 22:23:44 -!- tombom__ has joined. 22:24:38 -!- tombom__ has quit (Client Quit). 22:24:40 -!- tombom_ has quit (Ping timeout: 246 seconds). 22:24:49 * AnMaster considers the next cfunge version number. 22:25:10 Deewiant, what about 02010.04 or such? 22:25:19 Why? 22:25:24 long now 22:27:18 as in, april 2010? 22:27:37 -!- MigoMipo has quit (Ping timeout: 252 seconds). 22:27:56 Deewiant, you didn't add efunge to mycology results I see? 22:28:05 -!- MigoMipo has joined. 22:28:14 2010-04-06 17:05:53 ( Deewiant) "There have not yet been any release, first release (0.0.1) is expected in late October or early November (2008)." 22:28:20 Deewiant, I will remove that message 22:28:33 Make a release instead :-P 22:28:44 Deewiant, no time now. 22:30:38 Deewiant, see that page now :P 22:31:06 Still says the same thing, sorry :-P 22:31:10 http://www.ohloh.net/p/efunge 22:31:13 Deewiant, oh there 22:31:16 Deewiant, I was on launchpad 22:32:21 Deewiant, now it doesn't any more 22:34:28 Deewiant, btw I see overall stinkhorn was slower than cfunge? 22:34:39 by quite a bit 22:34:41 Mostly due to the stack, I think 22:34:57 Deewiant, oh? what does stinkhorn do with the stack? 22:35:07 I don't know, I don't delve into sources 22:35:16 Deewiant, then why do you think it is it? 22:35:42 Because it loses very badly in y-rep-n 22:35:52 Deewiant, and wth do you do with your stack: http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/pushpop.b98.html ? 22:36:35 Deewiant, that looks like cheating. I just don't find it plausible 22:36:52 AnMaster: You'll notice the timings behave almost exactly like the ones of horizontal.b98 22:37:01 I.e. it's the file that's the bottleneck, really. 22:37:07 eh? 22:37:15 the file loading?! 22:37:25 Not the loading necessarily 22:37:29 But just traversing it 22:37:34 It is 10 million cells, after all 22:37:38 " Not the loading necessarily"? 22:37:45 as in you load lazily? 22:37:56 No... 22:37:59 oh 22:38:00 misread it 22:39:12 Deewiant, so basically you manage so well because of your funge space? 22:39:24 Most likely, yes 22:39:32 But having a non-shitty stack helps as well (c.f. stinkhorn) 22:39:48 Deewiant, what does y-rep-n do? 22:40:00 ynynyn forever? 22:40:06 y-repeatedly-then-n 22:40:06 well 22:40:09 ah 22:40:15 Deewiant, and yn-rep is what I said? 22:40:18 Yes 22:40:28 Note stinkhorn's total time for all benchmarks is 12888.2 22:40:35 Its time for y-rep-n is 12236.0 22:40:39 heh 22:40:50 Deewiant, ideas: n pops each element? Or it shrinks the allocated stack? 22:40:50 cfunge's is 1.0 / 1.8 (32 / 64 bits) 22:40:57 So if we exclude that 22:41:16 -!- cheater2 has quit (Ping timeout: 276 seconds). 22:41:19 then stinkhorn isn't too bad 22:41:25 stinkhorn is about 5.6 times as fast as cfunge-32 22:41:35 mhm 22:41:46 Deewiant, it doesn't pass mycology and doesn't do exact bounds 22:41:54 without exact bounds cfunge is quite a bit faster 22:42:16 you shouldn't compare apples and pears 22:42:16 Right, it is a bit nonconforming. 22:42:31 cfunge won't be six times faster without exact bounds :-P 22:43:23 Deewiant, more like 150% faster. And sometimes much more (if you write spaces to your "edges") 22:44:24 Deewiant, stinkhorn seems to be missing from last y-rep-n graph? 22:44:40 even though it presumably ran for most of that 22:44:43 before it timed out 22:44:44 timeouts are missing, I don't know why 22:45:08 Noticed it pretty late and haven't looked into it yet 22:45:28 The data should be there, the plotter is just failing. 22:45:48 Deewiant, the ccbi2 0.07 vs. 0.10 for cfunge is probably due to startup overhead for cfunge 22:46:05 I noticed all the memory pools and such does have a constant overhead for very short running programs 22:46:08 Don't bother comparing times below one second. 22:46:15 Seriously, just don't. :-P 22:46:18 :P 22:46:27 Deewiant, I want to be first on the list again you see. 22:46:34 and I'm going to make sure I am 22:46:45 :-P 22:46:58 Deewiant, maybe not for every test 22:47:06 I'll make sure you never are; I'll delay updating the rankings just long enough for CCBI to be in the lead again ;-) 22:47:23 Deewiant, anyway, was the main overhead for cfunge that fork test? 22:47:31 Deewiant, that isn't fair you see 22:47:58 It may've been, I can't remember 22:47:59 -!- augur has quit (Ping timeout: 240 seconds). 22:48:28 That's what the cactus plots are for: you can see that there are only a few benchmarks where cfunge takes a noticeable hit 22:48:43 Deewiant, I wonder why I was so fast at diagdown... 22:48:46 And in the zoomed-in one you can tell that the difference isn't really that big 22:49:03 It's not you being fast, it's me being slow 22:49:46 Deewiant, why are you slow at it then? 22:50:12 A diagonal line is the worst case for an AABB 22:50:18 anyway the thing to do is to expand static area to fill most of that ;) 22:50:24 Deewiant, hm. Sparse matrix? 22:50:38 ? 22:50:45 since it is basically the shape of an identity matrix 22:50:53 aren't there fast ways for such iirc? 22:51:17 Deewiant, also: hollow-square 22:51:18 That's assuming sparse data, which won't usually be the case 22:51:20 I'm fast at that too 22:51:33 s/I'm fast/You're slow/, and yes, I know. 22:51:42 Deewiant, how comes that time? 22:51:48 Same thing. 22:51:56 it isn't diagonal though? 22:52:09 It's still a mostly empty box. 22:52:17 well yes 22:52:51 Deewiant, idea: require a statistical analysis file to be pre-generated 22:52:58 that selects algorithm 22:53:04 >_< 22:53:16 and since it must be pre-generated, it shouldn't be counted to the running time 22:53:23 since it would be a one-time thing for most programs 22:53:52 Deewiant, I was inspired by db engines analysers here 22:54:07 Fortunately Funge interpreters aren't DB engines 22:54:19 Deewiant, why do you do so well at filled square? is all of that square executed? 22:54:31 Yes, it is 22:54:34 aha 22:54:56 horizontal-p? how does that differ from horizontal? 22:55:02 Read.the.page. 22:55:33 the results one? 22:55:57 No, that describes the results, not the benchmarks themselves 22:56:24 hm diagdown-p, why are you faster at that one? 22:56:41 I don't think initial file loading is *that* much more efficient 22:56:53 Beats me 22:57:40 also amusing that rcfunge2 uses more ram for diagup-p at 5000 than at 10000 22:58:17 When the runtime is that small it's just a case of the measurer missing it 22:58:30 hm 22:58:36 Deewiant, try with massif instead 22:58:40 you can't miss it that way 22:58:47 of course you can't profile speed either 22:58:51 And take a 100x performance hit? No thanks 22:58:56 These things can take hours as-is 22:59:00 Deewiant, it is useful for the "runtime is too short" cases 22:59:04 you only need to use it for them 22:59:14 And I'd be measuring different things 22:59:23 well what about additional info then? 22:59:24 One uses /proc/smaps, the other massif 22:59:30 It doesn't matter 22:59:45 Like said, just forget about any differences when the time is less than a second :-P 22:59:57 Deewiant, be happy I didn't continue with bashfunge. You couldn't have profiled it easily, since it invoked awk and sed and what not quite often iirc 23:00:10 and subshells 23:00:16 I'd've just said "counts aren't accurate" :-P 23:00:19 hah 23:00:44 Deewiant, I'm tempted to make an interpreter using sqlite with a disk db for the funge space or such 23:00:50 just to mess up the memory stats 23:01:45 Deewiant, anyway I'm not 15x slower than you if we exclude the forks case 23:02:05 Correct 23:02:12 Deewiant, how much slower am I then? 23:02:21 I don't know 23:02:30 Subtract and divide, it's not difficult :-P 23:02:57 Deewiant, I hope your funge space code is well commented 23:03:04 so I can learn what the hell you do 23:03:10 I hope it isn't 23:03:14 :P 23:03:32 TBH I trust that it's complicated enough that you won't be able to rip it easily 23:03:50 If you do succeed, good on ya then I guess :-P 23:03:57 wc -l space/*.d 23:03:57 3245 total 23:03:59 that is 23:04:11 That's up from maybe a tenth of that previously 23:04:14 like more than 1/3 of cfunge size 23:04:30 iirc cfunge is ~9000 lines of code 23:04:38 or maybe 1000, something like that 23:04:42 err 23:04:43 10000 23:04:46 of course 23:05:48 huh 23:06:05 oh *~ files 23:06:08 that explains it 23:06:28 Language Files Code Comment Comment % Blank Total 23:06:29 ---------------- ----- --------- --------- --------- --------- --------- 23:06:29 Total 112 11941 4914 29.2% 2291 19146 23:06:33 $ wc -l cfunge/trunk/src/**/*.[ch] | tail -n1 23:06:33 14092 total 23:06:38 vs, 23:06:40 Language Files Code Comment Comment % Blank Total 23:06:40 ---------------- ----- --------- --------- --------- --------- --------- 23:06:40 dmd 61 10462 1833 14.9% 2573 14868 23:06:43 hm 23:06:49 Deewiant, you forgot lib 23:06:51 but yeah 23:06:57 lib should be semi-counted only 23:06:57 lib isn't your code is it/ 23:06:58 ? 23:07:09 Deewiant, it isn't mine originally, apart from the mempool stuff 23:07:17 and some of it is heavily modified 23:07:36 but yes, without lib: 23:07:38 Total 98 9052 3546 28.1% 1609 14207 23:07:49 $ wc -l ccbi/src/**/*.d | tail -n1 23:07:50 15249 total 23:08:03 see, more than mine 23:08:05 Oh, and the C wrappers 23:08:07 $ wc -l ccbi/src/**/*.[dc] | tail -n1 23:08:07 15425 total 23:08:19 Deewiant, ? 23:08:26 they aren't here? 23:08:26 NCRS and REXP 23:08:39 are they generated? 23:08:45 They should be in src/ 23:08:48 or is the ccbi zip file outdated? 23:08:51 oh there 23:08:54 didn't saw them 23:08:55 >_< 23:08:56 looked in ccbi/ 23:09:05 btw the mempool stuff: Total 3 240 151 38.6% 71 462 23:09:34 Deewiant, but to be fair some of that includes other files with different defines multiple times 23:09:44 not sure how to count that ;) 23:10:03 (yeah, C lacks templates, sometimes they would be useful) 23:10:05 $ wc -l space.d 23:10:05 125 space.d 23:10:08 CCBI 1.0.2) 23:10:09 20* 23:10:19 heh 23:10:25 So yeah, 25x bump there 23:10:37 Deewiant, when do you switch to hash fallback? 23:10:57 When there're too many boxes 23:11:15 ah, so it is basically like a number of static funge spaces that you create in various places? 23:11:15 -!- oerjan has joined. 23:11:25 based on some heuristic? 23:12:01 Sounds maybe about right 23:12:49 Deewiant, clever, and sounds like it contain plenty of more or less randomly selected constants that have to be fine tuned 23:13:00 -!- cheater2 has joined. 23:13:10 lots of fudge factors basically 23:14:23 Yep 23:14:28 I haven't tuned them at all 23:14:28 do you grow AABBs btw? 23:14:37 http://codu.org/aforteforpiano/12f.ogg 23:15:09 Gregor, bad soundfont? 23:15:20 Perfectly good soundfont. 23:15:24 weird 23:15:27 sounds like a bad mic 23:15:34 -!- adam_d has quit (Ping timeout: 265 seconds). 23:15:50 Gregor, also I didn't like that one very much. Not my type of music. 23:15:58 lol 23:16:11 That's me practicing Chopin for an hour, compressed into one minute :P 23:16:18 Gregor, hah 23:16:25 Gregor, so no soundfont then? 23:16:40 Steinway_IMIS2.2 23:16:42 ah 23:16:49 so midi recording right 23:16:55 Zzz -> 23:16:57 Digital piano + ridiculously fast MIDI playback = lawlz 23:17:08 fluidsynth + ridiculously fast MIDI playback = OK :P 23:17:12 Gregor, heh 23:17:14 Deewiant, cya 23:17:26 Gregor, how do you mean "lawlz"? 23:17:46 My digital piano gets all flustered when you send it MIDI data too fast. 23:18:01 flustered? 23:18:51 sounds anthropomorphic 23:18:59 I've got to restrict my English a bit X-D 23:19:02 `define flustered 23:19:09 -!- charlesq__ has quit (Quit: Saliendo). 23:19:17 * thrown into a state of agitated confusion; (`rattled' is an informal term) \ [13]wordnetweb.princeton.edu/perl/webwn \ * Confused, befuddled, in a state of panic by having become overwrought with confusion 23:19:49 -!- poiuy_qwert has joined. 23:20:02 hmm, perhaps 'virrigt', but that doesn't imply the same kind of agitation 23:21:24 bah, deprecate swedish and teach everyone english, this language is too insignificant to motivate keeping it alive 23:21:52 olsner: Swedish is your native language, innit? :P 23:22:01 it is 23:24:34 That is now a Facebook post with every Swedish friend of mine tagged :P 23:25:02 :D 23:26:29 ANYwho, specifically it drops a bunch of notes and actually occasionally plays the WRONG note when you send it MIDI data too fast. It also drops pedal-offs, so it'll sometimes get stuck in pedal mode. 23:26:35 This is only when you send it data crazy-fast, mind. 23:27:14 doesn't MIDI define ways to cope with devices with limited data rates? are you exceeding the specs? 23:27:26 -!- MigoMipo has quit (Remote host closed the connection). 23:27:34 Idonno, aplaymidi is doing whatever aplaymidi does :P 23:27:57 But like I said, this is only crazy-fast, e.g. http://codu.org/aforteforpiano/12f.ogg 23:31:06 could be on the aplaymidi side though, filling up an input buffer or whatnot 23:38:38 otoh, at 30kbit (which midi appears to be using) you should still be able to send several hundred notes per second 2010-04-07: 00:06:30 -!- poiuy_qwert has quit (Quit: Leaving). 00:09:14 hmm, perhaps 'virrigt', but that doesn't imply the same kind of agitation 00:09:15 no 00:09:19 I know what it means 00:09:28 I just don't know how it applies to a piano 00:09:40 hmm, I just started using flymake-mode in Emacs, and it's amazing 00:09:49 ais523, what is it for? 00:09:59 it repeatedly syntax-checks the code you're working on 00:10:06 Do you have something against my personifying things :P 00:10:10 and syntax errors get highlighted almost immediately 00:10:18 much faster than in any other IDE I've used 00:10:19 warnings, too 00:10:37 I was expecting it to take several seconds, like NetBeans, etc., does 00:11:41 Gregor: no, but the things don't like it 00:12:31 oerjan: YOU MEAN THE PEOPLE 00:13:10 the vitally challenged people 00:14:07 "vitally challenged" is a pretty awesome phrase :P 00:25:04 ais523, C only? 00:25:16 AnMaster: I was using it for Perl 00:25:20 although I'm not sure what langs it works for 00:25:21 ah 00:25:25 hm 00:25:29 I suspect, most of the popular ones 00:25:43 INTERCAL? :D 00:25:49 no 00:25:56 sure? tested? 00:25:58 besides, it doesn't normally have compile-time syntax errors 00:26:06 and sure, read the source to intercal-mode 00:26:08 ais523, ick does? 00:26:18 well 00:26:21 not *syntax* 00:26:23 I guess 00:26:27 AnMaster: it complains on a few things at compile-time, but that's arguably a bug 00:26:28 well sometimes 00:26:41 ais523, what about the wrong dimensionality and such? 00:26:58 run-time 00:27:02 hm 00:27:10 given that dimensionality can change at runtime, how could you do it otherwise? 00:27:13 ais523, it also complains if I feed it /dev/random 00:27:28 what error? 00:27:32 ais523, forgot 00:27:41 maybe it only works on regular files 00:27:42 ais523, something about it not looking like intercal iirc? 00:27:49 oh, wrong extension 00:27:52 /dev/random doesn't end ".i" 00:27:58 ais523, no 00:27:59 I did: 00:28:09 head --bytes 5000 /dev/urandom > foo.i 00:28:11 or such iirc 00:28:46 also it complains about missing files 00:29:33 yep 00:29:40 but flymake, you wouldn't expect to complain about missing files 00:29:47 given that it, you know, checks the file you're working on atm 00:29:50 which presumably exists 00:29:58 anyway what about head --bytes 5000 /dev/urandom > foo.i 00:30:01 it was just garbage 01:07:27 -!- FireFly has quit (Quit: Leaving). 01:08:08 -!- ais523 has quit (Remote host closed the connection). 01:33:09 -!- kwertii has joined. 01:33:57 -!- Gracenotes has joined. 02:22:37 -!- BeholdMyGlory has quit (Remote host closed the connection). 03:51:52 -!- augur has joined. 03:54:33 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 04:16:27 -!- jcp has joined. 05:26:16 -!- oerjan has quit (Quit: leaving). 06:53:05 -!- lament has joined. 07:04:50 -!- lament has quit (Remote host closed the connection). 07:04:55 -!- lament has joined. 07:05:39 -!- Slereah has quit (Ping timeout: 260 seconds). 07:31:35 -!- kwertii has quit (Quit: bye). 07:45:39 -!- Slereah has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:29 -!- oerjan has joined. 08:36:07 -!- lament has quit (Ping timeout: 246 seconds). 08:42:34 pikhq, in #irp: AnMaster: Congrats, you are now uberop. <-- what? 08:54:43 -!- oerjan has quit (Quit: leaving). 09:19:47 -!- FireFly has joined. 09:22:28 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 09:28:10 -!- MigoMipo has joined. 09:43:34 AnMaster: Just a guess, but probably referring what "/msg chanserv access #irp list" should reveal to you. 09:44:22 huh why 09:46:12 -!- adam_d has joined. 09:58:39 -!- tombom has joined. 10:03:44 -!- MigoMipo has quit (Remote host closed the connection). 10:19:19 Deewiant, other change: yn-rep 1000000 reduced from 8.169 to 5.370 seconds on my computer 10:23:30 y-rep-n saw a similar, but not quite as large, speed increase. Didn't test it for quite that large values due to "limited" ram 10:27:10 -!- MizardX has quit (Read error: Connection reset by peer). 10:27:39 -!- MizardX has joined. 11:18:55 -!- chickenzilla has quit (Read error: Connection reset by peer). 11:36:46 -!- chickenzilla has joined. 12:06:56 -!- BeholdMyGlory has joined. 13:12:43 -!- cheater2 has quit (Read error: Connection reset by peer). 13:13:15 -!- cheater2 has joined. 13:39:32 -!- Alex3012_ has joined. 13:40:55 -!- Alex3012 has quit (Ping timeout: 245 seconds). 13:41:06 -!- Alex3012_ has changed nick to Alex3012. 13:45:32 -!- Gracenotes has quit (Quit: Leaving). 14:02:09 -!- MizardX has quit (Quit: reboot). 14:07:57 -!- MizardX has joined. 14:27:52 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 15:06:20 -!- SimonRC has quit (Ping timeout: 246 seconds). 15:09:23 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 15:19:12 -!- tombom_ has joined. 15:22:01 -!- tombom has quit (Ping timeout: 264 seconds). 15:40:14 -!- SimonRC has joined. 16:05:34 -!- cheater2 has quit (Ping timeout: 264 seconds). 16:10:23 -!- Lawlabee-L has joined. 16:10:32 -!- Lawlabee-L has changed nick to Gregor-L. 16:21:37 -!- Slereah has left (?). 17:29:25 AnMaster: Timeouting lines are now visible in the memory-vs-time plots 17:32:22 -!- BeholdMyGlory has joined. 17:37:31 -!- augur has quit (Ping timeout: 260 seconds). 17:38:41 mhm 17:38:54 Deewiant, busy today and tomorrow. I hate deadlines 17:39:34 I hate gnuplot with gigabytes of memory usage 17:40:39 Well, not really; I think I mostly hate awk and/or my disk being so slow that it takes half an hour to generate the plots 17:59:20 -!- MizardX has quit (Quit: brb). 18:06:12 -!- cheater2 has joined. 18:09:35 -!- augur has joined. 18:11:20 -!- Slereah has joined. 18:24:33 -!- augur has quit (Read error: Connection reset by peer). 18:25:10 -!- augur has joined. 18:32:35 -!- augur has quit (Ping timeout: 245 seconds). 18:39:48 -!- augur has joined. 18:43:47 -!- MizardX has joined. 18:48:11 -!- ehirdiphone has joined. 18:48:17 get 18:50:12 put 18:50:13 :-> 18:50:26 swap 18:56:20 -!- oerjan has joined. 18:58:39 73 roll 19:03:30 I <3 Forth 19:04:31 anyway Deewiant, how would you like another contender for Fungicide, written by someone who doesn't demand to know every detail of every benchmark? 19:06:44 Sure, why not 19:06:55 YOU CANNOT HAVE IT 19:07:02 Oh well 19:07:08 Deewiant: Sufficient motivation levels reached; funge time. 19:07:24 Well. On weekends. 19:07:38 -!- tombom has joined. 19:07:52 It should get through Mycology, to start with :-P 19:07:53 -!- tombom_ has quit (Ping timeout: 258 seconds). 19:08:13 Hey, I can do n-dimensional funge /and/ speed: specialise the code based on a co 19:08:21 mpile time parameter 19:08:33 That's what CCBI already does :-) 19:08:41 Now I need a language good enough to do that. 19:08:41 For 1-3 dimensions 19:09:05 Deewiant: dimensions : N+, naturally 19:09:23 Compile-time specialization for an infinite number of dimensions == infinitely big binary :-) 19:09:44 No. You compile it for a certain dimension. 19:10:00 And it produces dimension-specific code. 19:10:01 Meh. 19:10:12 Meh yourself. 19:10:28 Deewiant: Meh. 19:10:41 today is a momentous day. 19:10:49 no iwc update! 19:10:53 Maybe I'll write it in some wonderful Scheme macros that spit out C. 19:10:59 oerjan: WHAT 19:11:07 i know, it's unheard of 19:11:07 oerjan: Huh? Sure there is 19:11:12 No. 2628 2010-04-07 19:11:22 lulz 19:11:26 huh. 19:11:30 Am I in the wrong year or something? 19:11:36 :slowpoke: 19:11:45 oh wait, i'm being an idiot 19:11:56 How unusual. 19:11:59 *facepalm* 19:12:01 >_> 19:18:03 -!- Gregor-L has quit (Ping timeout: 268 seconds). 19:22:04 ehirdiphone: FWIW I don't mind demands except when they've already been met on the site 19:23:34 The naming, of course, is the most important thing. Ascus, shiro, or hyphae? 19:23:46 Or other, ponders I. 19:24:01 Shiro? 19:24:26 It's some thing of mycelium. 19:24:47 Dictionary knew the other two but not that one 19:24:58 WP "Mycelium" 19:25:20 I see 19:25:35 How about "fairy circle" 19:26:08 No X-D 19:26:37 It's shroom-related and distinctive: what could be better? 19:27:19 Shrooms man 19:27:41 How about VEHICLE FOR TRIPPY 19:27:48 If you want that angle, "Jah"? 19:27:58 I 19:28:11 yeah infinite dimensional funge should definitely use a psychoactive mushroom 19:28:13 don't want that angle. 19:28:30 It's not infinite :P 19:28:54 -!- ehirdiphone has quit (Remote host closed the connection). 19:29:14 -!- ehirdiphone has joined. 19:29:22 afk 19:29:33 brb 19:32:05 -!- adam_d has quit (Ping timeout: 265 seconds). 19:39:56 -!- ais523 has joined. 19:47:19 -!- impomatic has joined. 19:47:22 Hi :-) 19:47:38 Yo. 19:48:02 Hi pikhq 19:49:01 Hmm. I wonder how small of a Brainfuck interpreter I could get. 19:49:24 (note: architecture is i386-linux-unknown, with the following programs: shish) 19:50:15 back 19:50:43 http://impomatic.blogspot.com/2009/01/brainf-interpreter-in-redcode.html 19:51:20 There was a contest about 10 years ago to write the smallest Brainfuck interpreter in x86 19:54:53 didn't someone fit one entirely into ELF headers? 19:55:10 Compiler, and not quite. 19:55:28 still, there's a fun article somewhere about someone trying to write the shortest possible ELF Linux binary, that just did return 42; 19:55:37 Same guy. 19:55:39 and they even managed to fit many of the ELF headers into the ELF headers 19:55:43 http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html http://www.phreedom.org/solar/code/tinype/ 19:55:50 Yeah. 19:56:05 ais523: Also the guy who wrote the cgi interval game 19:56:13 yep 19:56:18 and Google's INTERCAL style guide 19:56:24 which implies, indirectly, that he works for Google atm 19:57:18 Aaaaw. The Brainfuck compiler segfaults for LostKng.b 20:02:31 *INTERCAL 20:02:41 I'll have to go very soon. 20:04:55 :) 20:05:06 Bye! 20:05:12 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info). 20:05:16 Gxis 20:09:23 -!- ehirdiphone has joined. 20:09:27 Okay, I have a few more minutes. 20:09:58 Didud d duck cic. C 20:10:48 bye 20:10:50 -!- ehirdiphone has quit (Client Quit). 20:25:46 -!- oerjan has quit (Quit: Now with even more afk). 20:33:59 -!- Oranjer has joined. 20:42:55 -!- adam_d has joined. 20:54:11 -!- Gregor-L has joined. 20:55:38 -!- augur has quit (Ping timeout: 246 seconds). 21:01:28 Why'd you rename shsh -> shish? Or did I misread the first time? 21:02:43 Gregor: Thought that was the name. 21:02:55 I've been reducing the binary size of shish even further. 21:03:04 Would you like the source to it ATM? 21:03:16 Not even a little bit. 21:03:19 http://sprunge.us/HcSN 21:03:24 MUAHAHAH. 21:03:35 Notable features include not depending on libc. 21:03:50 I hope those small* features get inlined. 21:03:55 Grrf 21:04:02 Your f-word overwrote my f-word mid-sentence. 21:04:03 They do. 21:04:58 http://codu.org/aforteforpiano/19e.ogg I can (nearly) play the first page of Nocturne 3 :) 21:05:28 I could probably minimise things further by going into assembly, but, well. The shell is already sitting at 1107 bytes. 21:06:33 The fact that you have an int main suggests strongly that your assertion that it doesn't depend on libc is false. 21:07:02 The glibc-provided entry function does garbage you don't want or need. 21:07:12 dietlibc, actually. But yeah. 21:07:21 I'm going to go copy in a _start and _exit. 21:08:05 Why? 21:08:09 Just replace _start entirely. 21:08:11 Actually. Bah. I'm just going to rename main _start and add _exit. 21:08:16 Exactly :P 21:08:36 Gregor: Copy it in from my "small-libc" directory. Which is where all those *other* functions come from. :P 21:08:52 Ah :P 21:11:07 560 bytes. 21:11:21 You can replace ELF with a.out, can't you? 21:11:24 -nostdlib is such an awesome library. 21:12:10 pikhq: If it's that small, I'd go ahead and take the -Os and hand-optimize it 21:12:13 Erm. Option. 21:12:44 Gregor: Yes, but I'd need to build a new compiler for that. 21:12:58 Or just manually munge the assembly into a.out. 21:13:05 Speaking of, does nasm still support a.out? 21:13:07 pikhq: Alternatively, you could use objcopy like somebody who isn't a moron. 21:13:20 I didn't know about objcopy. 21:13:34 And I didn't no how to phrase that not as an insult ^^ 21:13:39 That's sweetness. 21:15:36 Hrm. Well, it's 32 bytes, but I get an exec format error. 21:15:41 so you *did* how to phrase it as such 21:16:01 pikhq: Most linuxes don't support a.out 21:16:06 Let me go attempt to compile in a.out support. 21:16:12 Yup 21:16:14 Gregor: Yeah, Imma build the module. 21:16:23 And remove ELF support too, who needs it :P 21:16:51 Gregor: No, I mean build the module for my *own* system. So I can test it without building a new kernel. ;) 21:17:00 Oh :P 21:17:30 Let's see if this 32-byte program is, in fact, a full shell. 21:17:36 Well. "Full". 21:18:42 zsh: exec format error: ./shish.1.1 21:18:45 Aaaaw. 21:19:20 Lesse your objcopy line 21:19:40 objcopy --output-target=a.out-i386-linux shish shish.1 21:19:50 Simple enough *shrugs* 21:19:56 So what's shish.1.1 then? 21:20:21 Erm. Different file. 21:20:58 Seems I have to use sstrip to get out the comment section from the ELF file so objcopy will actually... Copy. 21:21:08 And I still get an exec format error. 21:21:57 objdump 21:22:00 file doesn't give wonky results? Maybe your a.out support is borkleborked :P 21:22:04 Okay, then. objdump hates the a.out file. 21:22:15 Contents of section .text: 21:22:15 objdump: out of memory allocating 18446744073709551584 bytes after a total of 0 bytes 21:22:21 :-D 21:22:35 And the ELF file, it refuses to disassemble. 21:22:44 Looks like the size of your .text section is -32 or something 21:22:45 -!- rapido has joined. 21:23:08 Without sstrip, it handles the ELF file correctly. 21:23:18 I'm going to guess sstrip does weird stuff. 21:23:27 It does. 21:23:51 Well, good to know. 21:25:21 Yuh, maybe just strip ... objcopy can also strip out sections if you use enough objcopy-foo. 21:25:36 objcopy --output-target=a.out-i386-linux -S -R .comment shish shish.1 21:25:47 file shish.1 21:25:49 That produces a file that makes objdump report a file of 0s. 21:25:59 shish.1: Linux/i386 demand-paged executable (ZMAGIC), stripped 21:27:31 -!- rapido has left (?). 21:27:48 Well, Idonno :P 21:33:18 -!- augur has joined. 21:35:12 wth 21:35:23 does openoffice actually not support svg??? 21:36:01 nor pdf... 21:36:07 I guess I'll have to do with EPS. Lol 21:37:31 I wonder if you could make Linux support a DOS-COM-like format :P 21:37:44 hm there is svg on my laptop in openoffice 21:37:45 weird 21:38:18 That's nearly a.out. 21:39:53 pikhq: Minus the header ^^ 21:40:30 Gregor, sure. If you a) patch kernel b) write a custom user space loader 21:40:47 -!- augur has quit (Ping timeout: 246 seconds). 21:41:04 or c) use some header + user space loader + the binfmt that allows selecting interpreter from header magic 21:44:37 BTW, it is possible to compile Linux without an executable format. 21:46:57 How useful. 21:56:29 Hmm. Near as I can tell, the Linux support for a.out is a lie. 21:57:11 Given that I've generated an a.out file as close to the "proper" way as I can. 21:57:44 I generated a .o file, then stripped the .comment section, then had ld link and output an a.out file. 21:57:48 argh 21:58:01 why does openoffice drop text when importing svg 21:58:09 and eps it ended up using the preview at all time 21:58:45 Ah well. a.out format appears to have overhead for this program, compared with ELF. 21:59:20 This program statically allocates a lot of stuff. a.out does the static allocation via a series of 0s in the file. 21:59:31 ELF notes the size that's been statically allocated. 22:00:39 ... why do you have any BSS at all? 22:00:46 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 22:01:23 http://qa.openoffice.org/issues/show_bug.cgi?id=49991 <-- aaaaaargh 22:01:43 Gregor: Because. 22:02:21 Though, I could just stick that on the stack and see what size I get. 22:03:40 496 bytes. 22:03:55 Hooray. 22:04:52 STILL TOO BIG 22:09:44 -!- cheater2 has quit (Read error: Connection reset by peer). 22:09:59 -!- cheater2 has joined. 22:12:20 -!- augur has joined. 22:12:35 -!- adam_d has quit (Ping timeout: 245 seconds). 22:13:25 -!- oklofok has joined. 22:14:19 This is smaller than many of the tiny ELF utilities. 22:14:26 And in C. 22:14:52 Not exactly normal C, though. 22:14:52 -!- oklopol has quit (Ping timeout: 252 seconds). 22:24:06 -!- tombom has quit (Read error: Connection reset by peer). 22:24:47 -!- tombom has joined. 22:27:50 It's in C ... for a ridiculous definition of C :P 22:29:07 Hah. 22:29:33 http://sprunge.us/MEcJ 22:29:59 I'm not thinking of better ways to shrink that, short of removing the environment handling. 22:30:26 -!- ais523_ has joined. 22:30:30 -!- ais523 has quit (Ping timeout: 245 seconds). 22:31:10 hmm, I can reboot my computer and reinstall my wireless drivers in the time it takes me to pingout from Freenode? impressive 22:31:11 -!- ais523_ has changed nick to ais523. 22:31:21 well, rebuild and reinstall 22:31:38 I compile my wireless drivers from source as there isn't a binary package for them yet 22:32:04 pikhq: if (*(unsigned*)tokened[0] == 'set\0') 22:35:32 -!- Alex3012_ has joined. 22:37:12 -!- Alex3012 has quit (Ping timeout: 265 seconds). 22:37:21 -!- Alex3012_ has changed nick to Alex3012. 22:43:47 Deewiant: ? 22:44:23 Smaller check for set than four separate tests 22:44:36 Mmm. 22:45:05 And similarly for cd, although you'll need a shift 22:45:22 I... Don't think that works, though. The 'set\0' literal there, that is. 22:45:28 I'll futz with it in a bit. 22:45:41 GCC supports it IIRC. 22:45:59 -!- augur has quit (Ping timeout: 260 seconds). 22:46:07 Mmkay. 22:46:20 -!- augur has joined. 22:46:27 You can always write it out as an integer if you're worried :-P 22:48:08 -!- BeholdMyGlory has joined. 22:52:14 Doesn't seem to work right. 22:52:46 You're gonna run into endianness issues. 22:52:50 Oh, endianness... yeah 22:52:57 'set\0' isn't right. 22:53:03 Yeah, that'd do it. 22:53:37 Since you're assuming x86 anyway it's '\0tes', neh? 22:53:42 -!- tombom has quit (Quit: Leaving). 22:54:17 That said, making the if statements a *single* expression gets it down to 488 bytes. 22:54:33 You compiling with optimization? 22:54:40 Also, & is presumably smaller than && 22:54:41 Yes. 22:54:53 Remember to compare -Os and -O3 too 22:55:15 I have been. -O3 is the second-smallest optimization ATM. 22:55:45 "&" is *larger* than &&. 22:55:47 And if you just care about the binary size, I reiterate that I'd be working on the asm level :-P 22:56:08 -!- coppro has joined. 22:56:15 But I don't wanna! 22:56:20 :P 22:56:22 Meh 22:56:28 I'll go sleep then -> 23:00:32 -!- oerjan has joined. 23:10:44 Okay, 463 bytes. 23:11:17 http://sprunge.us/XUcK 23:12:02 ... Unsigned short? WTF? 23:12:39 Okay, it's shorter that way. 23:12:52 I guess accidents made my code shorter. *shrug* 23:13:42 Ah. But that's incorrect. Doesn't check the null. 23:28:50 -!- ais523 has quit (Remote host closed the connection). 23:31:16 -!- FireFly has quit (Quit: Leaving). 23:54:23 * Sgeo is writing Haskell in his [C++] Data Structures class 23:54:30 Because I'd rather not be doing this 23:54:45 -!- jcp1 has joined. 23:56:05 I write code in class that isn't related all the time 23:57:23 -!- augur has quit (Ping timeout: 260 seconds). 23:59:37 This code is related, just in the wrong language 2010-04-08: 00:03:29 And not mutating anything, obviously 00:12:56 (Haskell is usually the wrong language) 00:13:45 Gregor: No, that's C++. 00:13:58 C++ is ALWAYS the wrong language. 00:14:09 ... Yeah, actually. 00:14:56 Haskell is merely USUALLY the wrong language :P 00:15:03 Lies. 00:15:12 * Sgeo is temporarily a Haskell fanatic 00:15:20 !help addinterp 00:15:23 addinterp: !addinterp . Add a new interpreter to EgoBot. This interpreter will be run once every time you type ! , and receive the program code as input. 00:16:12 In what language is code? 00:16:28 the one 00:16:29 The language specified by 00:16:38 can also be a URL 00:17:35 So can I make an interpreter for my own language, and use THAT interpreter to make antoher interpreter? 00:18:08 not unless Gregor has changed something recently 00:18:19 No meta-stdin. 00:18:37 !help 00:18:37 help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . 00:18:44 !help languages 00:18:44 languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh. 00:18:57 C is a supported language. You're good. 00:20:10 !c printf("Hewwo") 00:20:18 Hewwo 00:21:04 !help userinterps 00:21:04 userinterps: Users can add interpreters written in any of the languages in !help languages. See !help addinterp, delinterp, show | !userinterps. List interpreters added with !addinterp. 00:21:11 !help addinterp 00:21:11 addinterp: !addinterp . Add a new interpreter to EgoBot. This interpreter will be run once every time you type ! , and receive the program code as input. 00:21:28 -!- myndzi\ has joined. 00:21:51 myndzi\: You should either use a different alt nick or make myndzi\ your primary nick :P 00:21:55 myndz-lambda = awesome 00:22:37 * Sgeo is happy to see Haskell in there 00:22:38 !sh ls 00:22:39 interps 00:23:04 !sh ls | fmt -w400 00:23:04 interps lib slox 00:23:15 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100315083431]). 00:23:23 !sh ls interps | fmt -w400 00:23:23 1l 2l Makefile adjust axo befunge bf_txtgen bfjoust boof c-intercal cat cfunge clc-intercal dimensifuck egobch egobf fukyorbrane gcccomp gforth_quit ghc glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl 00:23:42 !haskell getLine >>= purStrLn 00:24:08 !userinterps 00:24:09 Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore chef chiqrsx9p choo cockney ctcp dc drawl dubya echo eehird ehird fudd funetak google graph gregor hello id jethro kraut num ook pansy pirate plot postmodern postmodern_aoler redneck reverse rot13 sadbf sfedeesh sffedeesh sffffedeesh sffffffffedeesh slashes svedeesh swedish valspeak warez yodawg 00:24:20 !sh ls slox | fmt -w400 00:24:20 slox 00:24:26 !gregor wtf? 00:24:26 wtf? 00:24:27 !sh ls -l slox | fmt -w400 00:24:27 /bin/ls: slox: Function not implemented 00:24:46 -!- myndzi has quit (Ping timeout: 264 seconds). 00:25:00 !sh ls -l lib | fmt -w400 00:25:00 /bin/ls: lib: Function not implemented 00:25:06 !sh ls lib | fmt -w400 00:25:07 dcc interp interp.orig 00:25:23 !sh ls lib/interp | fmt -w400 00:25:23 lib/interp 00:25:38 !sh echo lib/interp | fmt -w400 00:25:38 lib/interp 00:25:43 !sh cat lib/interp | fmt -w400 00:25:43 #!/bin/bash 00:26:19 !help; info 00:26:25 !help info 00:26:25 Sorry, I have no help for info! 00:26:27 Even. 00:26:35 Hmm. 00:26:42 !info gregor 00:26:43 EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null 00:26:51 XD 00:27:00 !sh pwd | fmt -w400 00:27:00 /home/egobot/egobot.hg/multibot_cmds 00:27:08 !sh ls / | fmt -w400 00:27:08 bin dev etc home lib lib64 proc tmp usr 00:28:54 !sh ls .. | fmt -w400 00:28:54 multibot_cmds 00:29:05 !sh ls ../.. | fmt -w400 00:29:06 egobot.hg 00:29:33 -!- augur has joined. 00:57:56 * Sgeo vaguely wishes that humans weren't closed-source 00:58:50 oh the code is freely available, it's just that it's written in an esolang 01:04:40 -!- Slereah has quit (Ping timeout: 245 seconds). 01:09:33 -!- Slereah has joined. 01:32:38 -!- augur has quit (Ping timeout: 240 seconds). 01:51:32 Is that like saying that binaries are open-source, they're just written in machine code? 01:52:25 That's precisely like that, yes. 01:54:51 -!- Gracenotes has joined. 01:59:17 Though, if the person in question quite literally did write it directly in machine code, they are entirely correct. 01:59:23 I hate them, but they are entirely correct. 02:01:37 -!- augur has joined. 02:09:42 However, in this case, no one wrote the code. 02:09:49 So the concept of being open- or closed- source is meaningless. 02:10:02 Ahah. 02:10:05 There is no code. There is only Zuul. 02:13:44 -!- BeholdMyGlory has quit (Remote host closed the connection). 02:17:59 -!- Gregor-L has quit (Ping timeout: 258 seconds). 02:27:57 well then, don't cross the streams 02:33:23 -!- jcp1 has quit (Ping timeout: 246 seconds). 02:37:55 -!- olsner has quit (Ping timeout: 258 seconds). 02:43:22 -!- jcp has joined. 02:45:09 !slashes /Be/Bn//Bl/-[-{1}]//B\n/{}]+Be/ /Tn/Tb|0000*|Te/ BpBe Tn 02:45:37 oh wait 02:45:55 !slashes /Be/Bn//Bl/-[-{1}]//B\n/{}]+B\e/ /Tn/Tb|0000*|Te/ BpBe Tn 02:45:55 Bp{}]+Be Tb|0000*|Te 02:48:37 !slashes /Be/Bn//Bl/-[-{1}]//B\n/{}]+B\e/ /Tn/\/T\\t\/Tt\// /T\t/Tb|0000*|Te/ BpBe Tn 02:48:37 Bp{}]+Be 02:50:25 !slashes /Be/Bn//Bl/-[-{1}]//B\n/{}]+B\e/ /Tn/\/T\\t\/Tt\// BpBe Tn 02:50:25 Bp{}]+Be 02:51:18 !slashes /Tn/\/T\\t\/Tt\// Tn 02:51:55 oh 02:53:18 -!- cheater3 has joined. 02:54:21 -!- cheater2 has quit (Ping timeout: 276 seconds). 02:55:36 -!- lament has joined. 02:59:29 * Sgeo should write a Slashes interpreter in Haskell 02:59:43 i think ehird did 02:59:46 Oh 02:59:59 he couldn't make it faster then the perl one, alas 03:00:11 Isn't Perl implemented in Haskell? 03:00:13 (the perl one has issues though with large substitutions) 03:00:28 Perl 6 03:00:36 this is old perl 03:00:41 Sgeo: An early Perl 6 implementation, Pugs, was in Haskell. 03:01:14 *than 03:02:03 Is it too late to try to get involved with Google Summer of Code? 03:02:14 THey're probably looking for people who've actually looked at the stuff 03:04:37 nope; deadline for applications is the 9th 03:05:20 Ok, but don't I need to have some idea of what I want to do, besides just "I'll do what this organization suggests on their GSoC page" 03:05:23 ? 03:09:08 yes you do 03:09:22 socghop.appspot.com 03:10:18 I can't just say "I have never even looked at this code, but I'll try doing this suggestion", can I? 03:10:28 I mean, and get accepted 03:13:15 you can 03:13:29 it might hurt your chances though 03:13:49 make sure to mention your coding experience in the application 03:14:07 ah, I see you over in #gsoc 03:14:20 -!- Gracenotes has quit (Remote host closed the connection). 03:15:45 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 03:16:29 -!- Gracenotes has joined. 03:35:19 -!- cheater4 has joined. 03:36:54 -!- cheater3 has quit (Ping timeout: 240 seconds). 03:37:39 -!- Gracenotes has quit (Ping timeout: 260 seconds). 03:38:16 -!- Gracenotes has joined. 03:43:38 -!- kwertii has joined. 03:47:51 -!- jcp has joined. 04:27:15 -!- Oranjer has left (?). 04:40:33 -!- adu has joined. 04:53:13 -!- olsner has joined. 04:55:28 ..crap 04:55:37 I wanted to study. I did no studying. It is now midnight 05:14:47 You, sir, are a failure. 05:15:37 -!- adu has quit (Quit: adu). 05:15:59 literally, even 05:22:54 -!- oerjan has quit (Quit: leaving). 05:33:06 -!- augur has quit (Ping timeout: 276 seconds). 06:25:52 -!- augur has joined. 06:32:51 http://i.imgur.com/pFyFN.jpg 06:33:30 Sgeo: what abouts it 06:33:51 shouldn't you be sleeping? 06:33:54 who? 06:34:14 augur, the fact that a Chrome window thinks it's an Explorer window 06:34:34 oh, the downloads window? 06:34:46 Downlaods is an explorer window 06:34:55 Hm, that's not obvious, is it 06:34:56 HOld on 06:37:49 http://imgur.com/aWjxb.jpg 06:38:27 Crap, my real name's in that image 06:38:56 you do realize, of course, that had you not said that, I never would have noticed 06:41:12 i know a guy named seth 06:44:29 Sgeo: "seth" you mean? 06:44:46 I thought everyone here knew it anyway 06:44:48 *shrug* 06:44:57 seth is a sexy name 06:45:03 are you sexy, sgeo 07:26:02 -!- lament has quit (Quit: lament). 07:30:41 -!- lament has joined. 07:58:25 -!- tombom has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:49 -!- Sgeo_ has joined. 08:02:41 -!- Sgeo has quit (Ping timeout: 265 seconds). 08:04:04 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 08:17:19 -!- kwertii has quit (Quit: bye). 08:54:19 -!- oerjan has joined. 08:55:49 -!- lereah_ has joined. 08:58:04 -!- myndzi\ has changed nick to myndzi. 09:02:26 -!- adam_d has joined. 09:06:18 -!- MizardX has quit (Ping timeout: 276 seconds). 09:10:52 -!- coppro has quit (Read error: Operation timed out). 09:25:21 -!- lament has quit (Quit: lament). 09:33:29 -!- oerjan has quit (Quit: leaving). 09:52:31 -!- FireFly has joined. 10:34:21 -!- Adrian^L has joined. 11:02:39 -!- adam_d has quit (Ping timeout: 276 seconds). 11:21:45 -!- BeholdMyGlory has joined. 11:23:34 -!- kar8nga has joined. 11:25:35 -!- kar8nga has quit (Remote host closed the connection). 11:50:11 -!- sebbu2 has joined. 11:52:35 -!- sebbu has quit (Ping timeout: 245 seconds). 11:52:35 -!- sebbu2 has changed nick to sebbu. 12:44:55 -!- kar8nga has joined. 12:47:45 "Gregor" is a sexy name :( 13:22:08 -!- pineapple has joined. 13:22:21 -!- pineapple has left (?). 13:23:16 -!- pineapple has joined. 13:23:47 so this was the right channel in the first place, then 13:28:24 This is always the right channel. 13:31:20 -!- MigoMipo has joined. 13:33:10 how many people here are from the UK, and in their 20s? 13:49:23 not me! 13:50:08 not me! 15:07:44 -!- charlls has joined. 15:26:55 -!- adam_d has joined. 15:38:03 -!- charlls has quit (Quit: Saliendo). 16:36:12 -!- lament has joined. 16:56:52 -!- sebbu2 has joined. 16:57:28 -!- charlls has joined. 16:59:32 -!- sebbu has quit (Ping timeout: 240 seconds). 16:59:32 -!- sebbu2 has changed nick to sebbu. 17:06:30 -!- cheater4 has quit (Ping timeout: 276 seconds). 17:06:37 -!- lereah_ has quit (Quit: Leaving). 17:07:03 -!- lament has quit (Quit: lament). 17:12:41 -!- charlls has quit (Ping timeout: 258 seconds). 17:13:25 -!- charlls has joined. 18:01:18 -!- jcp has joined. 18:11:15 -!- augur has quit (Ping timeout: 260 seconds). 18:39:30 -!- augur has joined. 18:53:12 -!- MizardX has joined. 18:55:05 -!- augur has quit (Ping timeout: 245 seconds). 19:09:49 -!- augur has joined. 19:30:55 -!- adam_d has quit (Ping timeout: 245 seconds). 19:45:03 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 19:45:27 -!- rapido has joined. 19:51:38 -!- charlls has quit (Read error: Connection reset by peer). 19:52:28 -!- charlls has joined. 20:06:52 -!- cheater2 has joined. 20:13:07 -!- kwertii has joined. 20:15:36 -!- rapido has quit (Quit: rapido). 20:28:04 -!- augur has quit (Ping timeout: 252 seconds). 20:35:08 -!- augur has joined. 20:48:57 -!- augur has quit (Ping timeout: 276 seconds). 20:58:44 -!- oerjan has joined. 21:01:04 -!- adam_d has joined. 21:01:55 -!- kar8nga has quit (Remote host closed the connection). 21:08:24 -!- augur has joined. 21:20:10 -!- adam_d has quit (Ping timeout: 265 seconds). 21:33:14 i think they are doing something wrong... http://www.hackgreen.co.uk/How_To_Find_Us/how_to_find_us.htm 21:43:10 -!- augur has quit (Ping timeout: 246 seconds). 21:56:10 -!- MigoMipo has quit. 21:58:20 -!- jcp has joined. 22:00:29 -!- sebbu2 has joined. 22:01:10 -!- sebbu has quit (Ping timeout: 264 seconds). 22:01:10 -!- sebbu2 has changed nick to sebbu. 22:07:08 -!- Gracenotes has quit (Ping timeout: 240 seconds). 22:13:13 -!- charlls has quit (Ping timeout: 258 seconds). 22:48:28 -!- charlls has joined. 23:03:04 -!- augur has joined. 23:13:59 -!- Gracenotes has joined. 23:17:44 -!- Oranjer has joined. 23:21:39 -!- coppro has joined. 23:26:16 -!- Gracenotes has quit (Ping timeout: 252 seconds). 23:36:10 -!- tombom has quit (Quit: Leaving). 23:41:57 -!- FireFly has quit (Quit: Leaving). 23:43:07 -!- charlls has quit (Quit: Saliendo). 23:50:04 -!- oerjan has quit (Quit: leaving). 2010-04-09: 00:39:13 -!- Gracenotes has joined. 00:50:40 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:55:14 "It started out like Romeo and Juliet, but it ended in tragedy." 00:55:23 A part of my soul died when reading those words. 00:56:03 Romeo and Juliet ALSO ended in tragedy! that "but" implies no contrast 00:56:11 this is a travesty 00:56:33 I note that Romeo and Juliet started out implying tragedy. 00:56:39 Line 6, wasn't it? 00:57:07 dunno, I've always assumed the actual play is boring so I've never read/watched it 00:57:23 I just know how it ends (everyone dies) 00:57:39 It's one of Shakespeare's weaker plays, to be perfectly honest. 00:57:49 It's just the best-known. 00:58:10 ah, the worst work gets most famous... what else is new? 00:58:11 ... Somehow, as being a major romance, rather than a tale of a couple of overdramatic wangsty teenagers that kill themselves. 00:58:24 hehe, very EMO :P 00:59:01 that is *emo - EMO is just an acronym that happens to be in use at work 01:21:37 "It started out like Romeo and Juliet, but it ended in tragedy." // what moron said this? :P 01:22:22 Many a moron. 01:22:58 The same sort of moron that thinks "starcrossed lovers" means they were fated to be together. 01:23:39 ... And ignores the words "take their life" immediately following. 01:31:56 take their life...to the movies! 01:47:56 -!- augur has quit (Ping timeout: 265 seconds). 02:07:18 -!- Oranjer has left (?). 02:30:16 -!- augur_ has joined. 02:33:30 -!- lament has joined. 02:50:06 What's the language where the or-equal-to things are >= and =< in order to prevent confusion with arrows? 02:54:53 Erlang 02:55:36 Hm. Any others? I think I saw that well before I even heard of Erlang 03:30:13 -!- oerjan has joined. 03:43:16 -!- jcp has quit (Ping timeout: 258 seconds). 03:50:33 -!- Quadrescence has joined. 03:51:22 One of these days, I need to work on my kernel. So I can run shish on it. 03:51:46 Actually. I should just go ahead and make shish in kernel mode and call it a day. :P 03:54:58 pikhq: I've got something new for you to hate! 03:55:01 http://pastie.org/910806 03:57:02 coppro: That is such an awful use of the string literal operator. 03:57:34 pikhq: well, yeah, that's just for testing 03:58:01 BTW, I hate the string literal operator much less than many of the other operators, if only because it's bleeding obvious that you're not using the normal operator. 03:58:39 If void operator ""(const char *c, size_t len) is a valid function, though, I'm going to cockpunch someone on the standards committee. 03:59:22 -!- jcp has joined. 03:59:35 lol 03:59:38 * Sgeo_ needs to learn how to study 04:00:40 pikhq: unfortunately, it'll suffer scoping issue 04:00:42 *issues 04:04:01 -!- myndzi has quit (Ping timeout: 252 seconds). 04:11:29 -!- augur_ has quit (Ping timeout: 248 seconds). 04:13:50 -!- oerjan has quit (Quit: leaving). 04:22:31 -!- adu has joined. 04:26:45 -!- Alex3012 has quit (Ping timeout: 245 seconds). 04:31:37 -!- augur has joined. 04:33:42 -!- Alex3012 has joined. 04:53:03 -!- myndzi has joined. 04:53:44 -!- myndzi has quit (Client Quit). 04:53:48 -!- myndzi has joined. 05:09:57 -!- AnMaster has quit (Ping timeout: 276 seconds). 05:15:16 -!- AnMaster has joined. 05:24:19 -!- oerjan has joined. 05:25:06 today's xkcd is literally side-splitting 05:25:25 So your sides were split, then? 05:25:43 I concur. I often find that xkcd splits the sides of my body. Oft in half. 05:25:51 indeed. 05:25:58 -!- comex has quit (Ping timeout: 264 seconds). 05:26:33 * oerjan hopes that pikhq didn't read it before saying that 05:27:13 -!- comex has joined. 05:27:35 because that would be ironic. literally. 05:27:38 Sadly, I did. 05:27:47 aww 05:27:50 However, I would have reacted the same way. 05:27:56 :D 05:37:08 -!- oerjan has quit (Quit: leaving). 05:43:49 How can it take THIS effen long to load a web page FROM DISK 05:52:59 Well, my Hatetris AI fails badly 05:53:31 Even managed to break the replay functionality 05:56:29 hatetris? 05:56:35 is that some sort of bastet thing? 05:57:02 Yes 05:57:07 Well, better than bastet 05:57:12 Even if it seems a bit repetitive 05:57:29 better is figuratively speaking i guess 05:57:35 qntm.org/hatetris 05:57:40 it turns out it's a little hard to make a good bad tetris algorithm! :) 05:58:05 oh also 05:58:12 i solved stacked odds ;p 05:59:07 interesting 05:59:12 you seem to have implemented some of srs(?) 05:59:35 also lol @ infinite S's 06:00:19 this is kinda cheating ;P 06:02:28 I didn't make it 06:02:51 I'm trying to get it to play against itself, bur I did not make Hatetris 06:03:06 oh 06:03:37 well, it's extremely easy to make a sequence of pieces that's basically unplayable, but it's not very fun 06:03:58 Try to use the S's to your advantage, and see what happens 06:04:03 i know 06:04:10 that's why i said "lol infinite s's" 06:04:13 because i was still stacking them 06:04:17 It's not just s's 06:04:26 I got a line 06:04:27 i know 06:04:46 i got 3 i think, but i lost interest immediately 06:08:44 ok, 5 is easy 06:08:48 but the ai is too lame 06:08:58 My AI is magically making a tower to the top after 3 moves 06:09:11 lol. 06:10:10 i don't think this ai can be exploited 06:10:22 not sure though 06:11:06 because of how it works, any holes you leave will be filled least efficiently 06:11:12 with a two wide pit, it'll alternate s's and z's 06:11:25 it doesn't seem to account for slides though 06:11:36 i wonder if you can do t-spins 06:11:40 t-spin? 06:11:45 though i don't think it'll be easy to make it give you a t 06:11:48 maybe you can twist some other piece 06:11:51 probably a z or s 06:13:24 ah, i understand, i think 06:20:55 My AI is the worst tetris AI ever 06:22:37 http://i.imgur.com/95ew3.png 06:23:23 haha 06:23:31 gj 06:24:03 i suspect that if i can set up a repeating pattern where a rotation will clear a line from what would have been deemed the worst piece, things would work out 06:40:15 o yea, i got 6 06:41:33 ha, i got a t 06:48:15 and i got a z-spin single 06:48:15 :D 06:54:34 Well, my AI's a little smarter 06:54:40 Not that that's saying much 06:54:52 smart enough to get 6? ;p 06:55:03 randomly rolling a horizontal position and an orientation would be smarter than your AI 06:55:11 Smart enough to not put ALL the pieces on top of eachother 06:55:25 The code takes transforms 06:55:32 If it took positions, it would be much easier 06:55:54 [I'm just hooking into the "find the best possible" subsystem of sam512's code] 07:01:01 -!- coppro has quit (Remote host closed the connection). 07:01:49 -!- lament has quit (Quit: lament). 07:01:50 -!- Quadrescence has quit (Ping timeout: 258 seconds). 07:08:06 -!- Quadrescence has joined. 07:10:22 -!- adu has quit (Quit: adu). 07:18:02 -!- Quadrescence has quit (Ping timeout: 265 seconds). 07:28:49 -!- kwertii has quit (Quit: bye). 07:31:04 -!- Quadrescence has joined. 07:48:58 -!- MigoMipo has joined. 07:56:43 -!- zerker has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:12:10 -!- zerker has quit (Quit: Page closed). 08:18:20 -!- MigoMipo has quit (Remote host closed the connection). 08:22:23 -!- adam_d has joined. 08:34:01 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 08:49:26 -!- adam_d_ has joined. 08:51:18 -!- oerjan has joined. 08:52:24 -!- adam_d has quit (Ping timeout: 276 seconds). 09:05:11 -!- tombom has joined. 09:36:13 -!- oerjan has quit (Quit: leaving). 09:55:41 ais523: pingin' yer brain 10:00:30 -!- MigoMipo has joined. 10:01:20 -!- BeholdMyGlory has joined. 10:01:21 MigoMipo: no not you, but thanks for trying 10:01:48 BeholdMyGlory is lexicographically closer 10:02:03 ??? 10:02:17 oklofok: What? 10:04:58 stupid joke, nm 10:08:52 i asked for ais, you came 10:51:45 GUESS WHAT I'M DRINKING 10:51:45 8D 10:52:21 sperm 10:52:43 no 10:52:46 why is everyone saying that 10:52:46 >.< 10:52:49 i am drinking 10:52:50 ... 10:52:52 A WARRIORS DRINK 10:52:53 8D 10:53:10 :D 11:37:12 -!- MigoMipo has quit (Remote host closed the connection). 11:37:29 -!- FireFly has joined. 11:40:44 -!- BeholdMyGlory has quit (Remote host closed the connection). 11:45:24 -!- FireFly has quit (Quit: Leaving). 11:47:07 -!- cheater2 has quit (Ping timeout: 252 seconds). 11:47:14 -!- cheater3 has joined. 11:57:24 -!- Quadrescence has quit (Ping timeout: 265 seconds). 12:04:28 -!- adam_d has joined. 12:06:22 -!- Quadrescence has joined. 12:08:03 -!- adam_d_ has quit (Ping timeout: 276 seconds). 12:12:55 what does "a warriors drink" mean 12:22:51 -!- MizardX has quit (Ping timeout: 276 seconds). 12:43:26 -!- alise has joined. 12:48:42 -!- lereah_ has joined. 12:58:01 -!- tombom has quit (Ping timeout: 264 seconds). 12:58:59 -!- tombom has joined. 13:09:22 -!- oerjan has joined. 13:10:37 Dispatch! 13:10:44 Coinductive data types are Hard. 13:11:01 why is everyone saying that <-- i think i can say, with some confidence, that it's your own damn fault. 13:12:04 alise: what is a coinductive type 13:12:20 Quadrescence: basically it's like an inductive data type except it can be infinite. 13:12:27 of course there is a lot more technical detail behind it, and there are restrictions 13:12:35 for instance you cannot say foo = foo, but you can say foo = cons 1 foo 13:12:37 example? 13:12:43 I see 13:12:47 (there has to be a constructor; although there can be some wrapping around a constructor) 13:12:53 and recursing over them is restricted 13:13:04 it's mostly coq making this bit hard though :P 13:13:55 in coq coinductive types have the awesome side effect that proofs can be infinite... 13:14:30 sounds kind of not cool 13:14:43 not literally infinite like, on disk 13:14:52 I know 13:14:55 but like you can prove things about infinite data types using the recursion mechanism... 13:14:55 ""infinite"" 13:14:59 (of course it's safe recursion...) 13:15:02 which is nice 13:15:13 Quadrescence: whatever you say zeilberger 13:15:36 -!- tombom has quit (Read error: Connection reset by peer). 13:16:00 alise: No, I mean ""infinite"" as in NOT REALLY INFINITE but QUOTE infinite UNQUOTE 13:16:10 anyway zeilberger is the coolest ever <3<3<3 13:16:22 -!- tombom has joined. 13:17:22 damn finitists! 13:17:32 :D:D:D:D:D:D 13:17:40 I am a finitist 13:17:47 just sayin 13:18:09 HEY DUDE, WHAT IS THE CARDINALITY OF [0,1} 13:18:11 ]* 13:18:40 74 and one half 13:18:49 That is not a lot 13:18:54 that's what she said 13:18:58 I expected at least a kilobyte 13:19:08 yeah well i'm a hyperfinitist 13:20:47 lereah_: what are you doing with that } there 13:21:08 typoing 13:24:24 -!- Quadrescence has quit (Ping timeout: 265 seconds). 13:24:25 alise: early escape today? 13:24:49 Nope; just not so tired as I normally am. 13:36:16 -!- Quadrescence has joined. 13:54:08 -!- tombom_ has joined. 13:56:49 -!- tombom has quit (Ping timeout: 264 seconds). 13:57:16 -!- tombom__ has joined. 13:58:50 -!- Quadrescence has quit (Ping timeout: 245 seconds). 13:59:47 -!- tombom_ has quit (Ping timeout: 268 seconds). 14:02:00 -!- Quadrescence has joined. 14:05:38 05:33:10 how many people here are from the UK, and in their 20s? 14:05:40 not me also! 14:05:43 ais is 14:08:54 alise is in her 60s 14:09:47 in dog years. or thereabouts. 14:09:52 * oerjan runs away 14:17:52 -!- Gracenotes has quit (Ping timeout: 246 seconds). 14:25:13 alise: yeah... but ey's not here 14:25:37 a nomicker? 14:25:42 ? 14:25:59 Spivak pronouns tend to be used most by nomic players. 14:26:05 Admittedly we usually use e instead of ey. 14:26:06 i suspect SimonRC as well 14:26:19 oerjan: of playing nomic? 14:26:24 probable 14:26:40 oh 14:26:40 no, of being in the uk and in his 20s 14:26:41 20 uk 14:26:47 26 14:26:49 he is in the uk and 20s seems likely 14:26:55 and... no, not nomic 14:27:14 You should. :) 14:42:35 -!- Alex3012_ has joined. 14:45:07 -!- Alex3012 has quit (Ping timeout: 265 seconds). 14:45:09 -!- Alex3012_ has changed nick to Alex3012. 14:58:41 http://esolangs.org/forum/kareha.pl/1192820791/ ;; this is exactly what i want to write my funge in 14:58:46 too bad it isn't, you know, released 15:09:09 * alise muses over the name of his funge 15:09:34 If I named it hyph, I couldn't stand to lose the ligature. 15:09:46 Which is pretty out if I use any sort of low-level language. 15:09:59 Shiro just makes me think of Japanese. 15:10:10 And ascus... well... "An ascus (plural asci; Greek for "skin bag") is the sexual spore-bearing cell produced in ascomycete fungi." 15:11:08 Perhaps ethanol. 15:12:24 hey guys 15:12:25 http://en.wikipedia.org/wiki/Metamonad 15:12:51 http://en.wikipedia.org/wiki/Teliospore; telia/telium? 15:13:02 http://en.wikipedia.org/wiki/Basidium; basidi(um|a)? 15:13:04 -!- oerjan has quit (Quit: I never m). 15:13:12 *basidium/basidia, for clearness 15:13:15 oerjan: :D 15:14:43 telia just makes me think of tequila (my objections don't have to be rational). 15:15:01 Basidia is on the long side; basidium jumped off the Cliff of Long. 15:15:13 So maybe I should stick to the hyphae/shiro/ascus trilogy. 15:16:11 Well, pronouncing hyphae just makes me think of hyphy, and then I want to jump off a bridge. 15:16:44 Also, my mouth doesn't seem to enjoy pronouncing shiro... but then, I really don't want to name my funge interpreter "skin bag". 15:18:43 "This user has never left the Northern Hemisphere." -- interestingly, this also implies you've either immigrated from the southern hemisphere to the northern and then stayed there, or that you also have never left the southern hemisphere :) 15:18:51 I've never left the Northern, Southern, Eastern or Western hemispheres! 15:50:39 hang on... 15:50:48 what are the other 2 hemispheres called? 15:51:03 -!- lereah_ has quit (Quit: Leaving). 15:52:24 What do you mean? Land/water hemisphere? 15:52:33 umm... 15:52:45 I am confused now. 15:53:33 "rotate" the earth such that you're looking at it, such that you can see the "seams" of both the north/south and east/west hemispheres, and you're looking straight at the intersection 15:53:44 what is the hemisphere that you can see called? 15:53:50 also s/can/can't/ 15:55:02 colloquially the "front" and the "back"... but i wondered if they had official names 15:56:39 did that make sense? 15:57:39 if not: take a carving knife down the +90 and -90 meridians 16:07:36 not all the hemispheres have a name (the earth has *infinite* hemispheres) 16:27:42 alise: Why not dust off your previous funge attempt 16:29:03 Deewiant: You think it had basically any code? No. :) 16:29:22 yiyus: infinite, are you sure? 16:29:37 Deewiant: Besides, I want to be some sort of contester as far as speed goes, so out goes Haskell. 16:30:39 alise: I was thinking that it might get you kick-started a bit so that you don't have to spend a week figuring out a name and then another figuring out a language and another figuring out directory structure or whatever you're wont to do next 16:30:50 alise: an hemisphere is a half of an sphere, and you can cut it through infinite planes 16:30:57 yiyus: well, yes, but... that;s the other "logical pair" 16:31:25 Deewiant: I haven't weeks! Hopefully I will start coding today. 16:31:26 pineapple: I don't know of any names for them 16:31:38 Language is leaning towards C, though detest it I do. 16:31:58 If you want the æ you can use D ;-) 16:33:06 *If you want the and uncountable billions of years of suffering, you can use D. 16:33:17 Well yes, there's a tradeoff 16:34:08 I don't know why you haven't given up on D. :) 16:34:20 It would be nice to have Schemeish macros so that I can define my n-dimensional fungespace. 16:34:28 I guess nobody actually uses dimensions above two, though. 16:34:41 CCBI2 is such a metaprogramming mess that it'd be insane to switch over at this point 16:35:32 I have some test cases for trefunge which I guess is a "use" 16:36:09 There is some sort of editor written in Trefunge, but I don't care. 16:36:22 Yes, that's the only "actual use" I know of 16:36:28 Or can recall at this moment 16:37:53 And unefunge is basically identical to befunge, isn't it? 16:38:18 It's as identical to befunge as trefunge is :-P 16:38:41 What errors arise from interpreting Unefunge as one-line Befunge code? 16:38:48 All possible? 16:38:53 Really? 16:38:56 p should pop one coordinate, not two, for example 16:38:59 So 22+ behaves differently? 16:38:59 Ah. 16:39:06 Anything that messes with vectors changes 16:39:09 Now how much actual Unefunge code is there? 16:39:14 Zero that I know of 16:39:19 I don't even have test cases for it :-P 16:39:38 Also, you guys need to write documentation for how Befunge stuff actually works. 16:39:38 Mostly because I trust that if my shit works for >1 it works for 1 16:39:48 What do you mean? 16:39:53 Since the specification appears to be less of an accurate descriptor of Befunge than, say, the toilet paper I used this morning. 16:40:13 Mycology tries to be helpful in that regard 16:40:13 *description 16:40:28 Right, but it doesn't say "do this", just "ha ha you did this specific thing wrong. do this instead" :-) 16:40:51 ("do this" `isInfixOf` "ha ha you did this specific thing wrong. do this instead") == True 16:41:35 == True? A pointless expression if I ever saw one. 16:41:47 Anyway, Mycology requires you to first make the errors. 16:41:54 The readme of Mycology explains some of the hairier non-fingerprint stuff 16:42:21 Assigning every instruction to initially do nothing should work decently well 16:42:50 Apart from not telling me anything at all. 16:43:04 But, okay. I suppose the best place to start is indeed Fungespace? 16:43:12 Mycology should then usually tell you "BAD: foo did bar instead of baz" 16:43:28 How can it do that if all instructiosn do nothing? 16:43:36 If you want the æ - the what? 16:43:37 *instructions 16:43:44 Your code is expected to create the function run(code) where code is a Befunge-98 source. The code argument will be a string. Lines are separated by "\n". 16:43:44 http://www.curseforge.com/contests/3-befunge-98/ 16:43:46 that's some contest 16:43:51 do you think they realised? 16:44:15 http://www.curseforge.com/contests/3-befunge-98/entries/cyrnus/ I somehow doubt this passes Mycology 16:44:18 Well for example if I do 01g and expect to get 2 and you instead do nothing, I'll say "BAD: I got 1 instead of 2" 16:44:29 alise: Hey, that's new. 16:44:32 Deewiant: Not if the output instruction does nothing. 16:44:42 alise: what's the "gimmick" to your funge? 16:44:47 -- This is a mostly standard compliant non-concurrent Befunge-98 interpreter 16:44:50 http://www.curseforge.com/contests/3-befunge-98/entries/vaeyl/ 16:44:51 alise: Well, you can do the obvious ones. 16:44:55 pineapple: It's just Yet Another Befunge-98 Interpreter. 16:45:08 Deewiant: Okay. :P 16:45:23 so why is the (i'm not pasting it again, damnit) ligature important? 16:45:33 Because I want to name it hyph\ae. 16:45:41 Or shiro, or ascus. But probably not ascus. 16:45:43 aaah 16:45:53 alise: Read the readme: sanity.bf expects 0123456789.@ to work, IIRC 16:46:02 Deewiant: Okay, okay, I'll download Mycology. 16:46:09 and there was me thinking of a funge language that uses it as an instruction 16:46:28 * Deewiant runs those others through Mycology just for fun 16:47:07 I am a preminent Befunge implementer, and wrote the hyph interpreter. 16:47:12 ok... that's a rather gross idea: 16:47:17 Gah, except they only define the run() 16:47:19 what if a funge could fork? 16:47:48 pineapple: It can; t. 16:47:55 Deewiant: Trivial wrapper to do, surely. 16:47:58 'alise: And ascus... well... "An ascus (plural asci; Greek for "skin bag") is the sexual spore-bearing cell produced in ascomycete fungi."' <<< how about just 'skin bag'? 16:48:03 oklofok: :D 16:48:14 alise: i don't mean befunge itself, but a befunge variant 16:48:18 First entry: vaeyl. Doesn't get through the Befunge-93 area. 16:48:21 GOOD: p modifies space 16:48:21 Unknown command 16:48:26 (Unknown command repeated ad infinitum) 16:48:34 Deewiant: :D 16:48:49 like putting a retarded kid in a wheelchair through a military obstacle course 16:48:59 Makes me wonder if any of these do the stuff that's even quite clearly explained in the spec correctly 16:49:42 It might actually be that it can't handle \r\n 16:49:46 what's going on? 16:49:47 eminate would be a nice interpreter name 16:49:58 I'll be nice and try a nuxified one 16:50:02 oklofok: some kids wrote some "befunge-98" interpreters in lua for some contest 16:50:04 they suck lol 16:50:24 Yeah, much better 16:50:42 vaeyl dies due to k not working as expected, unsurprisingly enough 16:51:01 GOOD: 0k^ doesn't execute ^ 16:51:01 BAD: 1k[ turns left at [ 16:51:01 BAD: 4k # does nothing and hits # 16:51:01 BAD: 2k ;;;5 does nothing and hits 5 16:51:01 BAD: 2k# jumps once from k 16:51:03 GOOD: ak47k$ leaves 3 fours on stack 16:51:06 BAD: 2k6 leaves 2 sixes on stack 16:51:12 I mean, the last /is/ kind of unexpected. 16:51:25 :D 16:51:29 how many should it leave? 16:51:33 three 16:51:48 right because 2k executes 6 twice, then moves onto 6 16:51:56 Right 16:52:08 so nkx, assuming x doesn't fuck with the ip or similar shenanigans = x^(n+1) 16:52:12 wolftankk is either damn slow or buggy; 20 seconds and counting and it hasn't printed anything 16:52:27 alise: Unless n is zero 16:52:33 XD 16:52:38 Deewiant: It's better to leave TRDS-related surgery until after I've got something working, yeah? 16:52:45 Very yeah 16:53:21 I still have a comment in my TRDS impl saying essentially "I don't know wtf to do in this case but this hack seems to work for all existing programs, maybe it's right, maybe not" 16:53:25 I like the idea of program surgery. 16:53:35 There should be some sort of new-age non-textual editor based on program surgery. 16:53:38 (That dates from my firstish implementation of TRDS and still stands) 16:53:45 Okay, wolftankk isn't doing anything 16:54:35 where are these interps and why do they exist WHAT'S GOING ON 16:54:43 DEATH 16:54:46 DEATH IS ALL-SURROUNDING 16:54:55 jerry did pretty well 16:55:04 BAD: 0k^ executes ^ at ^ 16:55:12 Come on! That's explicitly in the spec 16:55:19 BAD: 101-{} doesn't leave stack top as 0 and next as 1 16:55:19 BAD: fedcba0{05-} doesn't leave 15 on stack 16:55:23 That latter one is a rare sight 16:55:54 Hell, I'm not sure that anything that got that far has triggered it previously 16:56:06 It doesn't have a corresponding GOOD so I mostly forget it's there 16:56:19 101-{} should leave stack as 1 -1? why not 1 0 16:56:24 err reverse those 16:56:26 :P 16:56:41 isn't {} nop? 16:56:45 Because read the spec or Mycology's readme :-P 16:56:51 No it's not 16:57:03 oh okay i must remember it wrongly then 16:57:12 Anyway, jerry failed at i somehow 16:57:18 shoulThe directions were generated in the order 16:57:19 d have pushed (60, 119) as Va 16:57:19 ? was met 33 timesThe directions were generated in the order 16:57:19 lua: /home/deewiant/arst.lua:654: bad argument #1 to 'char' (invalid value) 16:57:19 i haven't used 98 features like ever, just read the spec once 16:57:27 I think it managed to find a t somehow 16:58:34 cyrnus fails at k as did vaeyl 16:59:11 So hey, their votes actually reflect how well they did in Mycology :-P 16:59:33 Perhaps cumulate would be a good name. 16:59:34 Except cyrnus should be a bit lower because it doesn't have SGML spaces (not tested yet but visible in the output) 16:59:43 Grr, I really want a decent name. 16:59:45 -!- BeholdMyGlory has joined. 16:59:50 CCBI and cfunge and RC/Funge are shit names. 16:59:55 :-D 17:00:02 What's in a name 17:00:31 The name is the thing! 17:00:32 That which we call a Befunge-98 interpreter by any other name would execute as sweet 17:00:41 The thing is the name, modulo our human vision. 17:00:45 But non-humans do not use Befunge! 17:01:06 What's a "good" name to you 17:01:16 alise, working on a funge interpreter? 17:01:19 Yes. 17:01:21 CCBI is from the days when I just called every idea an acronym because I couldn't think of anything 17:01:38 -!- benuphoenix has joined. 17:01:46 Memorable, short, easily pronounceable (I am aware this one is subjective), no icky connotations, and sthetically pleasing. 17:01:54 The last one is subjective too; shock and horror. 17:02:06 alise, don't say "easily pronounceable" to anyone from Finland 17:02:11 that is a *really* bad move 17:02:15 :-) 17:02:19 :-D 17:02:23 "Aseroe" and "mutinus" are nice possible names... 17:02:30 but they're just really obscure funge geni 17:02:31 alise, how do you pronounce them? 17:02:37 *genera 17:02:44 hm 17:02:52 AnMaster: Ass a row and mutin- (ala "mutiny") us. 17:02:58 Ass a row is admittedly not the most pleasant thing to say. 17:02:59 hm 17:03:01 :-D 17:03:11 I may be wrong about their pronunciations: I'm just guessing. 17:03:18 The genus name is derived from the Ancient Greek words Asē/αση 'disgust' and roē/ροη 'juice'. 17:03:18 alise, yeah, hardly better than "as a column" 17:03:22 Disgust juice, ass a row! 17:04:07 http://botit.botany.wisc.edu/toms_fungi/images/mut6.jpg <- mutinus 17:04:09 btw, I'm unlikely to have much time for funge during the next few weeks. Probably not until the summer. 17:04:10 i suck at this 17:04:12 alise: Why does pronounceableness matter for a Funge interpreter, it's not like anybody will ever talk about it 17:04:25 You don't get people talking aloud in your head on IRC? 17:04:29 alise: You even have a logo! 17:04:37 No, I don't really subvocalize 17:04:41 Not only a logo, a phallic logo! 17:04:41 You don't get people talking aloud in your head on IRC? <-- no? 17:04:42 Well, not much 17:04:56 I'm pretty sure everyone who reads has some sort of voice, because it's just the interpretation of the word. 17:06:19 nah 17:06:30 Maybe I'll call it descartes, from the cordinates 17:06:31 when reading books perhaps 17:06:47 That'd be lahey 17:07:08 alise, that begs for a fingerprint ESCH! 17:07:30 (from MC Escher obviously) 17:07:41 Why? 17:07:44 Deewiant: Heh, true. 17:07:52 How is Lahry intended to be pronounced? 17:07:54 *Lahey 17:07:58 alise, that does weird geometry 17:08:06 Deewiant, btw, who *was* Lahey? 17:08:16 AnMaster: Can't remember 17:08:20 alise: Can't know 17:08:24 Presumably some guy on a mailing list who generalised Fungespace. 17:08:29 Presumably 17:08:36 ah yes that sounds familiar 17:10:52 The problem with funge names is that fungi are basically [...] gross. 17:10:57 :-) 17:11:07 varies 17:11:19 -!- benuphoenix has quit (Quit: leaving). 17:12:02 alise, what about http://en.wikipedia.org/wiki/Amanita_muscaria ? 17:12:19 That mushroom has smegma. 17:12:24 http://upload.wikimedia.org/wikipedia/commons/3/31/Amanita_muscaria1.jpg pretty, no 17:12:30 --was honestly my first reaction. 17:13:00 you must have a dirty mind? 17:13:09 No, that's what it really looks like you see. 17:13:32 not really 17:13:46 alise, and it is one of the more common toxic mushrooms iirc 17:13:50 at least in Sweden 17:16:41 alise, what about chanterelles? (Interwiki indicates that is the English name for them) 17:16:53 Whatever. 17:16:54 I always found them ugly 17:17:03 weird 17:17:13 I don't like their taste. But ugly? nah 17:17:51 Reishi is a nice name but I don't feel like the connotations. 17:18:00 Zomg miraculous chinese health. 17:18:10 You and your connotations :-P 17:18:17 yes 17:18:17 -!- FireFly has joined. 17:20:07 is shi death or something in japanese 17:20:10 alise, as far as I can tell from http://en.wikipedia.org/wiki/Reishi#Lingzhi_research_and_therapeutic_usage it *may* actually work. At least it looks like some studies suggest it may have some beneficial properties 17:20:17 don't care 17:20:21 :p 17:20:26 alise, don't care about? 17:20:27 Just like your interpreter, it may actually even work ;-) 17:20:36 Deewiant, :D 17:20:40 pikhq: your time to shine 17:20:50 oklofok: It is also four 17:21:15 (And probably a bunch of other things) 17:21:58 Commandment. 17:22:07 Ugh, I wish there was a good fast language. 17:22:16 Don't we all 17:23:17 alise, you know a lot of plants do have medicinal uses, or had before we started synthesising the active compounds? (Of course, a lot of other plants turned out to be less beneficial ;P) 17:23:28 i wish python wasn't as fast, there's no challenge 17:23:36 eh... 17:23:40 AnMaster: Of course. Aspirin. 17:23:48 alise, that is a famous example yes 17:23:53 Penicillin 17:23:57 and that 17:24:00 and there are quite a lot of other ones 17:24:03 But, still, google reishi: http://www.google.co.uk/search?q=reishi&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-GB:unofficial&client=firefox-a 17:24:05 -!- tombom_ has joined. 17:24:14 "Cancer/Reishi". Er, no. 17:24:19 "Reishi Qi Booster". Er, no. 17:24:19 alise: Google CCBI? 17:24:28 Deewiant: I do not have to be shit at naming just because you are :) 17:24:34 Meh 17:25:45 alise, err, actually that link I gave before, seems to cite some studies indicating there *are* such effects. However, I lack the expertise (and access to journals) to check the sources it cite. 17:25:55 just trying to get a balanced view here 17:25:58 They scientifically measured qi? 17:26:00 Ha. 17:26:12 alise, nah, it was "Laboratory studies have shown anti-neoplastic effects of fungal extracts or isolated compounds against some types of cancer. In an animal model, Ganoderma has been reported to prevent cancer metastasis,[10] with potency comparable to Lentinan from Shiitake mushrooms.[11]" 17:26:40 The site it is on is not so reassuringly reputable: 17:26:43 "Red Reishi (Ganoderma Lucidum), commonly known as Ling Zhi in Chinese, is a herbal mushroom known to have miraculous health benefits." 17:26:47 "# When it is taken regularly, it can restore the body to its natural state, enabling all organs to function normally." 17:26:50 alise, that quote was from wikipedia 17:26:54 I know. 17:26:59 wich of course isn't reputable 17:27:01 I'm saying that whatever the studies it has a connotation. 17:27:12 I meant the site the Cancer/Reishi page was on. 17:27:20 alise: Meh, now you got me thinking about renaming CCBI, too. Just pick a name and be done with it :-P 17:27:28 Deewiant, I like the current name 17:27:32 what's wrong with it? 17:27:34 Deewiant: You should name it to something with no more than one capital letter. 17:27:43 alise, why? 17:27:44 AnMaster: Says the one who picked the name "cfunge". 17:27:51 alise, yes and? 17:27:54 -!- tombom__ has quit (Ping timeout: 260 seconds). 17:27:57 I fail to see what is wrong with cfunge too 17:27:59 Not exactly a name of stunning eloquence. 17:28:05 maybe not 17:28:09 AnMaster: Not: Googlable, pronouncable, æsthetic 17:28:11 but a good and solid name still 17:28:32 Deewiant, I can pronounce CCBI quite okay. The double C is a slight issue however 17:28:44 Deewiant, that it isn't googable is a larger problem 17:28:45 It's still four syllables 17:29:06 Deewiant, how do you pronounce SCSI? 17:29:15 See see bee eye. Crappy pronunciation. 17:29:26 I heard it something like that wikipedia suggests: "scuzzy" 17:29:28 Basically this all comes down to a matter of findability, and sthetics. 17:29:42 AnMaster: Well yes, it has that pronunciation. 17:29:43 The former is objectively measurable; and some people have the latter, some people don't. 17:29:51 CCBI doesn't, and isn't very amenable to one. :-P 17:29:53 I don't see AnMaster as a particularly sthetic person. 17:29:54 Deewiant, but it isn't spelled like that 17:29:56 I mean 17:30:04 there is no vowels in SCSI. 17:30:10 err wait 17:30:13 apart from the I 17:30:14 that is 17:30:19 Yes, you don't /have/ to pronounce CCBI as four separate letters 17:30:21 CCBI also has just one 17:30:24 Deewiant: You can pronounce CCBI as "suzuby". 17:30:27 Deewiant, that was my point 17:30:29 Just like you don't have to pronounce SCSI as such 17:30:31 The z is like the z in "scuzzy". 17:30:32 alise, nice 17:30:40 Deewiant: You wouldn't want to, though. 17:30:42 AnMaster: But my point was that there isn't a very nice such pronunciation of it :-P 17:30:49 alise: Yep 17:30:59 alise, actually in Swedish jargon I believe SCSI is pronounced more like "skassi" (that is spelled in Swedish) 17:31:16 we don't have that "buzzing" z-sound in Swedish 17:31:51 (and the sk would be quite similar to sc in the English variant) 17:32:19 Deewiant, SCSI -> scuzzy isn't a very "obvious" pronunciation to me either 17:32:19 "buzzing" == voiced 17:32:25 How do you onomatopise the sound a bee makes? 17:32:30 bzzz 17:32:34 alise, "surr"? 17:32:35 In Swedish. 17:32:37 alise: do you like MAKE ROOM FOR MAH SHROOM as a name 17:32:39 AnMaster: Surr?! 17:32:45 Surr in Finnish too 17:32:48 alise, not pronounced like it would be in English at all 17:32:49 That's shit. 17:33:05 alise, we have a completely different u sound, and quite a different r sound 17:33:10 alise: Your r's are shit, so :-P 17:33:19 yeah what Deewiant said 17:33:28 Do I have a rhotic accent or not? I forget. 17:33:31 And is that good or bad? :P 17:33:37 :-D 17:33:38 Deewiant, ever heard someone from Skåne pronounce the letter r? 17:33:40 people are boring and unreachable elsewhere, let's try this one 17:33:41 find_consts(f, inputs, g) := for k = 0 to infinity { n_0_loop: for n_0 = 0 to infinity { for n = n_0 to infinity { for i in inputs { if len(trace(f(inputs(i)))) > k*g(n) then continue n_0_loop }; return (n_0, k) } } } } 17:33:45 what does this do 17:34:02 oklofok, what language? 17:34:05 Stuff 17:34:08 pseudocode 17:34:14 hm 17:34:17 there's a good reason for that 17:34:18 yeah what Deewiant said 17:34:23 i can explain notation if you like 17:34:51 oklofok, no I already found out what it does. I was coming to the same conclusion as Deewiant, he was a bit quicker than me though. 17:35:07 stuff is correct, but not specific enough 17:35:13 It looks like it does just what it says, I can't think of any clearer way of expressing that 17:35:14 Gah, someone just name my funge. 17:35:20 Deewiant, :D 17:35:21 alise: mehfunge 17:35:22 right but what consts 17:35:30 Deewiant: Fuqoo. 17:35:30 what are f, inputs and g 17:35:30 AnMaster: I'm serious 17:35:35 Note: oo is pronounced u. 17:35:48 alise: Funqoo 17:35:53 Fungoo? 17:35:55 Gooey-Funge 17:36:06 oklofok: I don't know, they could be anything as far as I can tell 17:36:08 Deewiant: there's a very short explanation for what it does 17:36:10 FUNKu 17:36:10 alise, Hydnum coralloides 17:36:13 \\\\\\\\ 17:36:14 it looks nice 17:36:19 http://en.wikipedia.org/wiki/File:Dsc04896-Hydnum-coralloides.jpg 17:36:21 oklofok: What's trace? 17:36:49 trace(f(x)) runs f with arg x and trace provides a trace of this run 17:36:54 like what f did 17:37:00 Ookay 17:37:15 actually the explanation would be nicer if i change it a bit... 17:37:23 oklofok, then how is the trace formatted? 17:37:24 So it's some kind of big-O thing 17:37:30 yeah 17:37:30 -!- Alex3012 has quit (Read error: Connection reset by peer). 17:37:35 oklofok, since it seems to take the length of the trace.... 17:37:38 Looking for the appropriate constants 17:37:51 is it the length of a string of it? Or the length of the trace in number of steps? 17:37:51 the program f's time complexity is O(g), and you look for the invisible constants 17:38:02 Yep, something like that 17:38:20 It'd help if it weren't on one line but yeah, I can see that :-P 17:38:31 yes, probably 17:38:33 ah, hm yes that seems to make some sense 17:38:35 somewhat 17:39:22 a = -1; for i = 0 to infinity {a = -a}; print a^2 17:39:51 (...don't take offense, that wasn't meant as a challenge, i just wrote it for some reason) 17:40:37 alise: You do realize you don't need a name to code 17:40:46 Deewiant: Sure I do: namespaces 17:40:52 alise: "placeholder" 17:40:58 Deewiant: Ew. 17:41:09 You and your æsthetics, again 17:41:30 alise: You can also code a reasonable deal without using namespaces 17:41:48 aesthetics are the best ethics 17:42:15 Deewiant: yeah but meh 17:42:15 well is 17:42:17 :P 17:42:40 -!- atrapado has quit (Quit: Ex-Chat). 17:42:41 alise, what language btw? 17:42:58 alise: I'll just think back to my statement about you taking weeks before you get started :-) 17:43:11 Deewiant, 80% of that is deciding the name 17:44:37 I just code something that does a bit of what it should. Then I start doing proper version control, extend the program a bit, then I decide I need a non-collection-of-bad-hacks build system, then I code some more and so on 17:44:54 alise, what would you have called a short utility program for finding duplicate files? 17:45:04 I guess you wouldn't have picked the one I did: find_dups 17:45:11 That's more like a function name than a project name. 17:45:14 I'd call it duplicates. 17:45:19 $ duplicates foo.txt 17:45:22 what? 17:45:35 What what 17:45:36 it recurses through dirs. 17:45:42 $ duplicates foo/ 17:45:44 So what? 17:45:53 yeah but what would it even *do* on a single file 17:46:02 AnMaster: xargs foo.txt | duplicates 17:46:08 xargs < foo.txt* 17:46:10 you do something like ~/bin/find_dups images porn ;) 17:46:15 Or whatever, gah 17:46:17 I fail at xargs 17:46:26 Deewiant, yes completely 17:46:34 xargs duplicates foo.txt maybe 17:46:40 No 17:46:44 xargs duplicates < foo.txt 17:46:48 argh typoed that 17:46:51 heh 17:46:58 xargs is hard ;-P 17:47:02 Deewiant, but yes that has some downsides when you hit the argument list limit. Since it needs to know *all* the files to compare 17:47:09 I mean, you want to find all dups 17:47:17 so if you get one file at a time it is fairly useless 17:47:46 Deewiant, and I hit the allocation limit on cmd line args. Which on linux is based on something in ulimit nowdays 17:48:18 AnMaster: Which is why "duplicates foo.txt" instead of xargs 17:49:24 alise, btw http://en.wikipedia.org/wiki/Agaricus_bisporus 17:49:37 -!- tombom_ has quit (Ping timeout: 246 seconds). 17:49:42 Deewiant, right. But then you need to provide a list of those in there 17:49:57 Deewiant, like find huge_dir -type f > foo.txt 17:50:03 Yes, and that was the implication from the start 17:50:09 meh 17:50:44 Deewiant, there are some small theoretical advantages with not doing it 17:50:59 Sure 17:51:01 I agree that it is fairly irrelevant for practical purposes 17:51:17 but consider disk cache. The program uses stat() to read the file sizes 17:51:25 so it doesn't have to check as many files against each other 17:51:30 it only need to check those with the same size 17:52:03 if you process a large enough nested dir tree, the file info and such may no longer be in disk cache 17:52:20 which they are likely to be after just getting a listing of all files in the dir you are working on 17:52:49 Deewiant, so theoretically, and depending on how the filesystem stores the file metadata, recursing in the program can be faster ;P 17:53:05 I very much doubt it matters practically though 17:53:52 Meh, I'll just call it funge for now as a placeholder. 17:53:54 Now to decide language :P 17:53:57 haha 17:53:58 XD 17:54:11 alise: Use C as a placeholder 17:54:22 alise, you know, "funge" is a bad name. It could look like an attack on other implementations. Like trying to steal the show 17:54:27 not that I suggest that is the case 17:54:32 just that it may *look* like that 17:54:36 AnMaster: You really think I'll name it that? 17:54:37 AnMaster: It's a placeholder 17:54:47 I said "placeholder"; please look up words in the dictionary before talking about them in future. 17:54:52 yes but placeholders has a tendency to stick 17:54:53 AnMaster: Besides, stinkhorn used to be called befunge98... 17:54:57 Deewiant, heh 17:55:02 Deewiant: C is a pretty bad placeholder, considering it's nitty and gritty :P 17:55:09 alise: :-P 17:55:30 Seriously, I'd write it in C-Scheme in a heartbeat. 17:55:41 C-Scheme? 17:55:51 that sounds interesting 17:56:15 alise, what is C-Scheme? 17:56:28 http://esolangs.org/forum/kareha.pl/1192820791/4 17:56:28 google gave me just "Scheme for C programmers" and such 17:56:45 Full thread including first post with broken BBCode: http://esolangs.org/forum/kareha.pl/1192820791 (nothing interesting really apart from /4) 17:57:59 where is the current implementation? 17:58:15 In your dreams 17:58:15 Obviously nowhere, it's just some random forum post ffs. 17:58:25 Thus "I'd write it in" not "I'll write it in". 17:58:28 alise, "All of the above works. It's a pretty damn easy thing to write." fooled me 17:58:45 AnMaster: "Exists" != "released" 17:58:56 Deewiant, well yes. I was considering that. 17:59:00 Of course it's easy to write. 17:59:06 alise, so first step: Implement C-Scheme 17:59:08 "So I've written some really basic parser in Scheme which you pass a list of s-expressions and from that it produces C code." 17:59:09 Simple. 17:59:13 AnMaster: And /that/ is the task I don't want to do. 17:59:18 See how this works? 17:59:23 hah 18:01:51 I mean, I can't use C directly. The thing doesn't even have proper strings. 18:02:00 C++! 18:02:17 * Deewiant ducks 18:03:25 alise, it isn't like Funge uses a lot of strings. A few yes, but not many 18:03:56 I thought we were talking about C-Scheme 18:04:10 eh? 18:04:16 not about "funge"? 18:04:18 2010-04-09 19:58:42 ( AnMaster) alise, so first step: Implement C-Scheme 18:04:19 2010-04-09 19:58:49 ( alise) AnMaster: And /that/ is the task I don't want to do. 18:04:23 2010-04-09 20:01:27 ( alise) I mean, I can't use C directly. The thing doesn't even have proper strings. 18:04:28 The last one was for funge. 18:04:32 Darn. 18:04:35 Deewiant, [can't use it for funge] pretty obviously 18:04:59 I just couldn't connect requiring strings and Funge. 18:05:10 alise, idea: call it 0"egnuf">:#,_@ 18:05:10 Well, it's just such an inconvenient language. 18:05:13 I hate allocating memory. 18:05:16 Hate it, hate it, hate it. 18:05:28 I just couldn't connect requiring strings and Funge. <-- indeed 18:05:36 I found it improved performance by a veritable crock 18:05:43 Deewiant: A crock of shit? 18:05:44 Deewiant, what did? memory allocation? yes 18:05:52 manual such for funge 18:05:53 definitely 18:06:11 funge really doesn't gain very much from a GC most of the time 18:06:25 alise: A crock of performance, obviously 18:06:36 Allocating memory in the large, yes; but for tiny temporary structures? 18:06:50 Fortunately there's this thing called the stack :-P 18:07:32 TBH I'm still worried that using "new" in some tiny temporary structures is messing up my performance because Tango's GC is so shit 18:07:55 Well, fuck Tango. 18:08:13 Not many alternatives :-) 18:08:32 Of course "shit" is relative 18:08:37 ~D is an alternative. 18:08:38 It's decent enough most of the time 18:08:53 alise: Like said, not any more ;-P 18:09:05 Well, you suck rabies. 18:09:14 Actually, I don't 18:09:16 Maybe I should use ML and compile it with MLton or something, but ML is crufty. 18:09:22 Deewiant: OR DO YOU? 18:09:29 I'm fairly sure I don't 18:09:34 OCaml? 18:09:49 Ugly, but maybe preferable to C by your standards 18:09:50 If ML is crufty, what do you think my opinion of OCaml is? 18:10:06 Better than that of C? 18:10:16 That thing is like Cruft Central in Cruft Town, in Cruftaska, "State of the Cruft", in the good old United States of Cruft. 18:10:30 How about Factor 18:10:43 ~D is an alternative. <-- "about D"? 18:10:44 Ehh, no. 18:10:49 or is it a weird smiley? 18:10:49 AnMaster: "not". 18:10:53 lern2asciilogic 18:11:02 alise, oh ¬ 18:11:13 alise, try altgr-shift-` 18:11:19 ¤ 18:11:19 that is the dead key ` 18:11:27 Deewiant, that is shift-4 for me 18:11:29 ¤ 18:11:31 For one, I have no dead keys. 18:11:31 4 18:11:35 For two, my alt-gr key is an alt. 18:11:37 Deewiant, shift-4 is 4? 18:11:39 For three, no. 18:11:41 Yep 18:11:47 Oh, I know! 18:11:48 Deewiant, weird 18:11:50 I'll write it in MYTHRYL! 18:12:15 what the heck is that? 18:12:18 heh 18:12:24 It sounds like a fantasy parody 18:12:27 One of our favourite language scapegoats: http://mythryl.org/ 18:12:33 It's like ML but shittier! 18:12:55 alise, worse than "Plain English"? or whatever the name was 18:12:59 Er, no. 18:13:02 But Plain English isn't functional. 18:13:05 well no worry then 18:14:09 Wow, Mythryl has "stipulate X herein Y end", which is the same as "Y where X end". 18:14:23 Stupefying. 18:15:32 #define stipulate 18:15:36 #define herein where 18:15:43 #define end 18:15:43 Wrong. 18:15:45 Read my sentence again. 18:15:48 Haskell == Mythryl 18:15:53 Oh, darn 18:15:58 Meh 18:15:59 It's just, the terminology :D 18:15:59 Deewiant, oh darn what? 18:16:06 I flipped it 18:16:17 heh 18:16:34 basically i want something like c that can manage memory and has a nicer syntax 18:16:36 something with := in it. 18:16:49 alise, presumably you would dislike this mushroom too? http://en.wikipedia.org/wiki/File:Agaricus_bisporus_%28Cup_mushroom,_doubled%29.jpg 18:16:56 Not that I can see anything wrong in it 18:17:03 AnMaster: You don't find that gross in any way? 18:17:10 alise, no? why would it be? 18:17:18 trees fuse together too sometimes 18:17:34 Look at it - like, with your eyes. 18:17:51 it's nature. I'm not a biology student, but when younger I was quite interested in biology. Spent a lot of time out in nature. 18:18:30 you know, forests, travelling by foot. And even seeing the day star! 18:18:50 alise, but no I don't see anything gross. 18:18:55 It's unusual certainly 18:18:56 For one, take your condescending "I'm-in-touch-with-nature" out back and shoot it. For two, I'm not dissing the mushroom, I'm just saying it looks gross. 18:19:18 alise, what I was saying was "I *was* in touch with nature" 18:19:23 I'm not saying I still am 18:19:34 the "travelling by foot" bit put me off nowdays 18:19:35 Just as condescending. 18:19:40 the mushroom does not look gross 18:19:43 puts* 18:19:48 The mushroom is SEXY! 18:19:52 what? 18:20:22 what the *hell* are you seeing in it. Heck you don't need ink blots.... 18:20:35 you just need a mushroom, and not even eating it. 18:20:57 So thinking eating a mushroom is sexy is OK? :P 18:21:19 alise, I have no idea. I'm not a psychologist. 18:21:26 alise, btw http://en.wikipedia.org/wiki/File:Champignons_Agaricus.jpg 18:21:35 now don't say that is gross too 18:21:58 or http://en.wikipedia.org/wiki/File:BoroughMarketMushrooms.jpg 18:22:19 alise, I agree http://en.wikipedia.org/wiki/File:Jreishi2.jpg looks gross though 18:25:25 Deewiant: Gah, you're right; I'm stuck on language. 18:25:33 alise, why not haskell? 18:25:34 There are no /good/ languages. Why not? 18:25:44 AnMaster: Haskell sucks :P Okay, it doesn't suck, but it's too slow for this. 18:25:44 alise, you praised haskell before 18:25:46 And it has warts. 18:25:56 alise, okay. Agda then? 18:25:57 Coq? 18:26:02 CoqFunge 18:26:26 I bet there isn't a befunge98 implementation in agda before 18:26:35 befunge93 *maaaybe* but also unlikely 18:26:40 Agda is most certainly /not/ anything more than a research tool. 18:26:41 oklofok: "Shi" is the number 4. 18:26:47 oklofok: "Shin" is death. 18:26:48 alise, and? 18:26:54 It's been proved inconsistent several times -- admittedly those are usually fixed quickly -- 18:27:08 and it's basically a mathematical research vehicle with no programming conveniences. 18:27:15 alise, what about coq then? 18:27:20 pikhq: Eh? Isn't "shin" "new"? 18:27:23 Coq could do it if not for the fact that, you know -- BEFUNGE IS TURING COMPLETE, and all Coq programs terminate. 18:27:28 Plus, again, there's very little programming facility. 18:27:42 alise, but befunge is not in practise TC. It may run forever though 18:27:48 so that is indeed an issue 18:27:49 See the latter. 18:28:03 true 18:28:05 Coq/Agda are not appropriate tools for this task in the slightest. 18:28:10 Deewiant: Also true. 18:28:28 pikhq: I.e. I maintain that "shi" == death 18:28:30 Deewiant: Though, "shin" is only "new" in compounds. 18:28:58 -!- tombom_ has joined. 18:29:06 pikhq, Deewiant: what language? 18:29:15 Nihongo 18:29:15 AnMaster: Japanese. 18:29:15 AnMaster: Japanese. 18:29:21 pikhq, okay 18:29:23 Deewiant, what? 18:29:27 日本語 18:29:43 Deewiant: Strictly speaking, it's more that "shini" is "death" and it gets elided to "shin". 18:29:57 alise, are the shelves adjustable in the first one? 18:30:02 AnMaster: Har har har. 18:30:03 (sorry for that one) 18:30:09 "shini" I've only seen in compounds myself :-P 18:30:31 Deewiant, you speak Japanese? 18:30:37 Very little 18:30:39 heh 18:30:42 Understand a bit more 18:30:45 more than I do certainly 18:30:52 君が勉強するはずと思う。 18:31:04 pikhq, the degree sign is usually at the top 18:31:17 AnMaster: Good thing that's a period, then. 18:31:18 Read kana/kanji, not at all any more (used to know the kana decently) 18:31:29 (yes I'm being silly I know) 18:31:46 Dude, you don't remember kana? That sucketh. 18:31:53 * AnMaster threatens Deewiant using a kata instead 18:32:12 No, what sucketh is that I don't know of any decent kana->romajifier :-P 18:32:40 Thou shalt not use romaji for Japanese. 18:32:43 http://nihongo.j-talk.com/kanji/? :-P 18:32:43 But anyway, at least wiktionary agrees with me on the shi thing so I must be right 18:33:04 Awesome 18:33:07 It sucketh no more 18:33:10 I just googled for it. 18:33:14 "kana to romaji" 18:33:15 there is only one good reply from pikhq to what Deewiant said 18:33:19 (汝はローマ字を使わなくては行けない。) 18:33:20 * AnMaster hopes he uses it 18:33:22 meh no 18:33:28 I'll do it for him then 18:33:29 alise: It's probably newer than my previous Google 18:33:40 Deewiant, shi-t 18:33:53 AnMaster: Hah. 18:33:56 (where is oerjan btw?) 18:34:12 pikhq: Yeah, well, it's easier than learning the kana :-P 18:34:14 (I can't stand the pressure of doing this) 18:34:27 Deewiant: Which is a two day project. 18:34:44 Basically what I'm saying is you suck and are illiterate in Japanese. :P 18:34:45 That must be repeated once a month 18:34:52 Deewiant: I knew it existed ~2007 18:34:53 I agree, I am 18:34:54 or thereabouts 18:34:59 Or... You could just keep learning Japanese. 18:35:11 Like, read stuff in it. 18:35:12 pikhq, but why? 18:35:22 Yeah, but that's, like, work :-P 18:35:27 what use do you have for it? 18:35:32 TO UNDERSTAND ANIME AS IT WAS TRULY INTENDED TO BE UNDERSTOOD, AS A VIABLE ARTISTIC WORK 18:35:36 obviously 18:35:38 :D 18:35:43 AnMaster: Well, if he wants to actually speak Japanese. 18:35:56 alise: Dude, anime is only slightly less niche in Japan than it is here. :) 18:35:56 pikhq, oh? Did he? 18:35:58 I guess then 18:36:28 If he doesn't desire that, than, well. He'll just continue not speaking it. :P 18:37:33 pikhq: From what I gather it's more than slightly less niche. 18:37:35 Yes, that's pretty much my expectation. :-P 18:38:10 alise: With the exception of a few works that have gotten popular, it's pretty much seen as "that thing severe geeks enjoy". 18:40:02 I thought it was a multimillion industry or something? 18:40:54 Turns out there are a lot of geeks 18:41:11 Yes... What's popular is absurdly popular. 18:41:27 pikhq, isn't pokemon in anime style or something iirc? for example 18:41:41 Pokemon, for instance, is absurdly popular amongst children. 18:41:42 or at least some pokemon movies or whatever 18:41:59 pikhq, yes and isn't there some zdragonball or something? 18:42:02 Most of the popular anime are for children, really... 18:42:25 Dragonball Z was based on a popular manga; the show was not as well-remembered. 18:42:28 http://pastie.org/911859.txt?key=x3j8viguq8vwfm5prgwo8q A list structure, and two map functions, in an imaginary language that's something vaguely unlike C. 18:42:40 pikhq, can't tell the difference. Since I'm *not* such a geek I guess 18:42:56 AnMaster: Manga are comic books. 18:43:02 pikhq, ah okay 18:43:19 Which *aren't* all that niche. 18:43:36 huh 18:43:42 zdragonball, it's compressed. 18:43:50 dragonball.Z 18:43:51 Well, right, maybe I was misremembering what was niche or not. 18:43:59 I do distinctly remember that manga is relatively mainstream. 18:44:01 fizzie: It deserves it. 18:44:08 It is. 18:44:13 As we know, all anime is really for children anyway, and only geeks with no social life watch it. They're usually perverted, too. 18:44:22 btw looking at wikipedia's article on anime, http://en.wikipedia.org/wiki/File:Modernanime.jpg <-- I certainly couldn't tell that the second column, second image from the bottom was anime 18:44:26 some of the other ones were quite easy 18:44:27 Also tentacles are involved, I know that much! 18:44:35 alise: Not all anime is for children. Oh, lord no. 18:44:48 pikhq: You just say that because you have no life. 18:44:55 (P.S. I may be trolling you.) 18:45:08 pikhq: Do you recognize that top-left one from AnMaster's? I think I do but can't put my finger on it 18:45:26 Deewiant: Dead Leaves. 18:45:32 Deewiant: You could have read the description. 18:45:37 Okay, then I didn't 18:45:37 That was a positively *fucked up* movie. 18:45:39 don't call it mine. It is on wikipedia simply. 18:46:00 alise: Oh, he actually linked to the page and not the pic; I just automatically clicked on the pic and then forgot 18:46:02 It is the devil! No! I shall not be associated with it! Aaaaah! 18:46:34 alise, nah, I just don't want it to tarnish my trademark ;P 18:46:35 That also reminded me that I really should re-watch Lain some day 18:46:59 Remember: AnMaster® 18:47:08 AnMaste® 18:47:14 AnMaster. Does what it says on the tin. 18:47:19 :D 18:47:24 Your search - ® - did not match any documents. 18:47:24 wth 18:47:27 google fails 18:47:33 surely wikipedia will have an article on it 18:47:50 The Lain picture wasn't very instantly recognizable. (At least to someone who has only seen it once quite a long time ago.) 18:48:10 No, not very. 18:49:10 alise: That pastie: see, now you're inventing languages instead of implementing funge 18:49:15 Deewiant: I KNOW 18:49:26 Deewiant: SAVE ME!!! 18:49:34 alise: http://gcc.gnu.org/ 18:49:53 I'd rather hang myself with a crisp made out of rotten marshmallows. 18:49:59 Which would, incidentally, be a rather interesting task. 18:50:00 http://clang.llvm.org/ if you're the more adventurous type 18:50:24 Join us now and shaare the software 18:50:30 You'll be free, hackers, you'll be, freeeeeeeee 18:50:31 alise: Whatever happened to "leaning toward C"? :-P 18:50:36 Deewiant: I realised C sucked. 18:50:47 Did you forget that everything sucks? 18:50:59 yeah but some things suck less 18:51:15 So just put everything on the suck-scale and take the max 18:51:25 Or min, whichever 18:52:10 Or just forget the whole writing-a-program idea since it's quite clear you won't be getting very far ;-P 18:52:21 AFK for a bit -> 18:52:41 -!- alise_ has joined. 18:52:54 So just put everything on the suck-scale and take the max 18:52:54 Or min, whichever 18:52:54 I can't consider every language. 18:52:54 Ping. 18:53:39 That didn't go so very well, given the just-before-your-join AFK for a bit -> 18:53:44 Your timing, it is not optimal. 18:53:52 * Sgeo_ has a Data Structures assignment 18:53:59 :-) 18:54:05 Implement a stack, and implement a queue 18:54:14 Sgeo_: How difficult. 18:54:18 The stack is so.. easy in Haskell, the queue only slightly less so 18:54:26 You don't say. 18:54:34 It's not technically the mutable structures they want though 18:54:36 alise_, the assignment is in C++ though 18:55:23 fizzie: You provide me with encouraging language suggestions. 18:55:31 alise: Forth. 18:55:55 fizzie: I love Forth, but... no. 18:55:59 -!- alise has quit (Ping timeout: 258 seconds). 18:56:10 Glass? 18:56:18 I love Glass, but... no. 18:56:25 HQ9+ 18:56:37 18:56:40 There was that one thing, the name of which I always forget. 18:56:46 " " HQ9+, "... ". 18:56:55 fizzie: Describe it? 18:57:23 "Deewiant: So just put everything on the suck-scale and take the max" <<< what if the lattice of languages w.r.t. sucking is not a complete lattice?!? 18:57:37 then the sup is not a language! 18:57:41 *might not be 18:57:46 It looked a bit like English prose, and you had some sort of objects or classes or such named after famous people, at least in examples or something. 18:57:58 oklofok: clearly I'd just flesh out whatever language it returned 18:58:04 by picking from less-optimally-nonsucking languages 18:58:15 fizzie: Shakespeare? 18:58:21 Ork? 18:58:29 What's Ork? 18:58:59 It was probably Ork I was thinking about. 18:59:13 I was writing something in Ork, and kept naming things after mathematicians. 18:59:27 Or physicists. 18:59:29 Or something. 19:00:28 Right, there was the class "mathematician", and I was trying to instantiate all objects of it using names of thematically appropriate mathematicians, and it was taking a long time to come up with suitable ones. 19:00:39 :-D 19:00:47 Sounds like my predicament. 19:02:16 Oh, right; I did a class for bitwise operations called "logician" to compute CRCs in Ork, and had to think of logicians. 19:02:23 When a checksum computer is to initialize a number: 19:02:23 I have a logician called Frege. 19:02:23 Frege is to lsb result. 19:02:23 There is a mathematician called Laplace. 19:02:23 Laplace's first operand is result. 19:02:25 I like the lang. 19:02:32 Frege, Tarski, O'Connor. 19:02:47 It probably says something that I put Russell O'Connor on that level. 19:03:49 Oh, and Goedel of course. 19:04:05 Peirce. 19:04:44 Sgeo_: Those are very easy data structures. 19:05:08 oklofok: ... it probably is a complete lattice. 19:05:27 Deewiant: I find that really funny and I don't know why 19:05:29 oklofok: Given that it's finite and all. 19:05:30 (what you just said) 19:05:34 XD 19:05:39 :) 19:05:39 Deewiant: Just so you know, the AI competition deadline is today; I guess you weren't going to do it? 19:05:42 but... 19:06:03 for instance C could be considered the union of C_k where k is the size of bytes 19:06:08 and anyway 19:06:08 fizzie: I was going to a long while ago and then I missed the signup-deadline and decided not to 19:06:19 there must be parametrized language families 19:06:21 Incidentally, the lecture slides for that course are poor at best 19:06:39 so what if say we had k-dimensional funges as separate languages, and k+1 was better than k 19:06:49 then clearly at least that sublattice wouldn't be complete 19:07:12 oklofok: You assume a nonsensity 19:07:35 what nonsensity 19:07:53 Deewiant: Even the old lecturer -- whose slides they are -- was mostly using the book's slide-set last year. I don't really know what the lectures this year have been like. 19:07:54 I assume that parametrizable languages can be thunk of as one language 19:08:14 pikhq, I know 19:08:21 I just don't feel like writing C++ 19:08:29 fizzie: I don't know about the lectures themselves either 19:08:39 Deewiant: no, because you will have to choose the parameters. 19:11:06 Deewiant: 26 submissions so far out of 52 groups. But there's still some three hours to the deadline. 19:11:13 http://clang.llvm.org/ if you're the more adventurous type <-- really? It works quite well in my experience 19:11:26 [*] for certain values of work 19:11:49 yeah but some things suck less <--- ah, go! 19:11:50 Gah, I'm being flooded 19:11:55 Deewiant, with what? 19:11:57 Deewiant, water? 19:11:58 wine? 19:12:01 GAH 19:12:01 IP packet? 19:12:04 Deewiant: More stuff more stuff! More stuff! 19:12:10 IRC text lines? 19:12:15 I assume that last one. 19:12:23 -!- Gracenotes has joined. 19:12:23 oklofok: You can't be the one choosing them since we're looking at implemented ones 19:12:45 fizzie: Aye, there'll probably be another 15 at least soon enough 19:12:50 so if one program implemented both haskell and C, would you say haskell = C? 19:12:55 AnMaster: "for certain values" being the adventurosity 19:13:08 Deewiant's like a batch system! You submit a comment, it ends up in his processing queue, then a reply comes a lot later. 19:13:10 or is it that two languages are different iff they can be separated by implementation 19:13:19 that is, there's a language that only implements one 19:13:34 The latter 19:13:41 ah 19:13:42 (Obviously ;-P) 19:13:44 well i guess that makes sense 19:14:09 fizzie: Yes. 19:14:32 so okay 19:15:04 the space of all programs now has a topology with as basis the open sets {L | I implements L} 19:15:05 AnMaster: "for certain values" being the adventurosity <-- yes, but |values| has increased with time 19:15:14 anyway 19:15:18 alise_: why not Go? 19:15:37 AnMaster: But it's still less than GCC's 19:15:42 AnMaster: "dunno" 19:15:45 don't feel like using go 19:16:21 fizzie: I also have something with a deadline for 23:59 that I've yet to finish 19:17:12 alise_, that rhymes 19:17:13 nice 19:17:32 Deewiant: That's no problem; the effective AI competition deadline is actually 00:05 tomorrow. 19:18:03 alise_: BitC? 19:18:34 It's a bit of a pipe-dream project. And the author disappeared to work for the Evil Empire for a while. 19:18:38 Deewiant, bah, you have more time left still than I had earlier today 19:18:48 and I sent it in with just half an hour to go 19:18:58 Difference is that I'm being flooded 19:19:09 Deewiant, so ignore irc? 19:19:09 Deewiant: Yet you keep reading. 19:19:10 I did 19:19:17 BitC? 19:19:23 I just closed irc client, having bouncer on logging 19:19:32 alise_, what? the BitC author? 19:19:34 I'd rather procrastinate 19:19:37 AnMaster: Yes. 19:19:40 and evil empire = Microsoft? 19:19:41 Same guy as the Coyotos guy. 19:19:42 Yes. 19:19:47 huh 19:19:53 alise_, that explains why it became inactive 19:19:58 Yes; he's back now though. 19:20:17 alise_, but won't MS sue him if he ever writes anything open source basically? 19:21:07 No? 19:21:14 He doesn't work for Microsoft any more. 19:21:22 well, he saw their code... 19:21:28 some of it at least 19:24:05 // Gregor can't spell ... 19:24:05 #define ORK_instanciate ORK_instantiate 19:24:06 nice one 19:24:10 from ORK source code 19:24:16 * AnMaster looks at Gregor 19:24:31 * Sgeo_ googles 19:24:38 Sgeo_, try ORK esolang 19:24:40 BitC isn't an esolang? 19:24:42 it is on codu anyway 19:24:48 Sgeo_, .... of course not 19:24:49 AnMaster: Believe it or not, Microsoft's legal department isn't *that* crazy. 19:25:01 AnMaster, I didn't know what it was until I googled it! 19:25:05 pikhq, I'm leaning towards "not" 19:25:05 ;P 19:25:19 http://james-iry.blogspot.com/2008/07/java-is-too-academic.html 19:25:29 Deewiant, what? *clicks link* 19:25:35 AnMaster: He couldn't work on WINE or ReactOS, but that's mostly a CYA manuever. 19:25:56 Deewiant, is it sarcastic? 19:26:01 I hope it is 19:26:15 I'm not your personal sarcasm-detector 19:26:18 pikhq, CYA? 19:26:30 Deewiant, then who is? 19:26:38 I'm not your secretary either 19:26:46 Deewiant, then what are you? 19:27:21 A member of the set people \ { AnMaster's sarcasm-detector, AnMaster's secretary } 19:27:27 AnMaster: Cover Your Ass 19:27:33 -!- coppro has joined. 19:27:37 Deewiant, heh 19:27:47 pikhq, aha 19:28:34 Of course it's sarcasm you nitwit. 19:28:36 He's a functional programmer. 19:28:54 * alise_ wonders whether writing p->q as pq is nice or just horrible. 19:29:05 p /\ q = (pqr)r 19:29:09 p \/ q = (pr)(qr)r 19:29:24 alise_: How's the funge 19:29:38 :)))) 19:29:40 pick a lang 19:29:46 Pick a card, any card. 19:30:10 alise_: We've got Python and Perl but not Ruby or Tcl 19:30:18 Deewiant: how's the deadlines 19:30:30 oklofok: How do you like them apples? 19:30:30 I'm working on it in the background 19:30:38 Deewiant: Ruby yeck, Tcl yeck 19:31:08 alise_: You asked me to pick a lang, not you 19:31:15 Why ask if you'll reject 19:31:20 What was wrong with Haskell? 19:31:23 Speed 19:31:36 Abuse unboxed types! 19:31:40 Speed, the need for. 19:31:44 Of course it's sarcasm you nitwit. <-- you are a good sarcasm detector. But I would prefer Mk.2, where they fixed some major bugs, such as: irritating wooosh sound no longer produced, no longer applies irony or sarcasm itself, fixed bugs that could cause flamewars 19:31:52 Sgeo_: Let me guess: "yeck" 19:31:58 fizzie: are you being a bot? 19:32:12 oklofok: I am channeling the spirit of fungot, yerrrs. 19:32:13 A bot, the being of. 19:32:13 fizzie: fnord) f(x, y) type requires that ruby extension allowing you to see which way it is. 19:32:23 alise_: See, fungot recommends ruby too 19:32:24 Deewiant: they look exactly identical here.) 19:32:39 alise_, okay what about scheme? 19:32:39 Well, or then it just can't tell the difference between ruby and other languages 19:32:39 Isn't Ruby also considered slow? 19:32:46 AnMaster: Not fast 'nuff. 19:32:48 alise_, prolog? 19:32:49 Sgeo_: Shh ;-) 19:32:59 alise_, oh you want fast? I know the perfect language then 19:33:01 alise_, VHDL 19:33:10 alise_: I think ML was your best idea yet 19:33:10 or Verilog 19:33:22 VHDL == hardware stuff? 19:33:28 Erm, simulation of hardware stuff? 19:33:38 Deewiant: Perhaps. 19:33:38 Sgeo_, what exactly is your question? 19:33:43 Deewiant: I don't really... know ML, though. 19:33:50 alise_, anyway, why not VHDL 19:33:56 AnMaster, trying to figure out if my vague recollection is correct 19:33:57 alise_: So learn? 19:34:08 Sgeo_, it is a language for programming FPGAs and such in 19:34:10 *gasp* Something alise_ doesn't know! 19:34:18 of course you can simulate it too 19:34:19 Deewiant: Yeah, but... 19:34:26 Deewiant: I want something /fast/ fast. 19:34:27 I just got handed a project to write an anti-virus engine in Python, which I don't know, within a month, one week of which I'll be away 19:34:31 alise_, asm! 19:34:42 alise_: Haven't you heard of writing fast-fast things in C/asm? 19:34:44 If there was a compiler that basically did whole-program specialisation... now that would be cool. 19:34:46 Deewiant, what? 19:34:48 I imagine simulating it is slower than just writing C 19:34:49 Deewiant: So don't. 19:34:56 Yeah but not fast fast fast. 19:35:09 Of course, with an FPGA [programmable hardware, I guess?], it would probably be faster than C 19:35:13 Sgeo_, perhaps. Useful for testing it. Running under a debugger is slower than not doing so as well often 19:35:17 alise_: I meant, take the bits that need to be fast-fast instead of fast and do them in C/asm 19:35:24 You know, polyglots. 19:35:25 Stalin is supposed to be faster than C, or at least that's what they claim. :p 19:35:28 Does alise_ have an FPGA? 19:35:35 Deewiant: Oh, I'm not that obsessed enough. 19:35:49 fizzie: Yes, well, restricted R4RS designed for numerical code -- writing a Funge in that sounds fun. 19:35:54 * Sgeo_ tends to value sanity over speed 19:35:56 Deewiant, Hm? Is C with inline asm really a polygot? 19:36:15 I thought polygot required it to work completely free standing in each languae 19:36:19 language* 19:36:29 like: perl foo works and so does python foo 19:36:30 polyglot: containing, or made up of, several languages. 19:36:31 or whatever 19:36:39 It's a word. 19:36:48 Deewiant, what about a polygot in the sense I described? 19:36:50 what is that called 19:36:54 1. polyglot -- (having a command of or composed in many languages; "a polyglot traveler"; "a polyglot Bible contains versions in different languages") 19:36:55 A polyglot. 19:37:07 Deewiant, well I don't want to include C with inline ASM 19:37:20 http://svichet.files.wordpress.com/2009/05/pinocchio-paradox.jpg 19:37:23 oops 19:37:30 It is relatively easy for an inexperienced developer to produce code that simulates successfully but that cannot be synthesized into a real device, or is too large to be practical. 19:37:31 something like gcc foo.c -o foo working the same as as foo.c 19:37:33 would fit 19:37:43 but not C with inline ASM 19:38:05 Does alise_ have an FPGA? <-- he could in theory get one? 19:38:11 *she 19:38:17 Remember your nick-pronouns. 19:38:45 Can things like video cards be made with VHDL? 19:38:47 It is relatively easy for an inexperienced developer to produce code that simulates successfully but that cannot be synthesized into a real device, or is too large to be practical. <-- well sure. 19:38:48 yeah the one nick that tells you gender and you ignore it 19:39:23 actually, gender(nick-alise) = augment(male, pronouns = pronouns(female)), whereas gender(person-behind(nick-alise)) = male 19:39:26 it's quite complicated 19:39:52 Sgeo_, I'm no expert but I think some components would probably not be. For example the physical card wouldn't be. Nor would the fan (duh). Probably not the video memory either 19:39:57 alise_: Additionally it has been established that you is girly. 19:40:00 the rendering stuff could 19:40:03 in fact it has been done 19:40:09 hardware ray tracing and such 19:40:31 When will hardware ray tracing be commercially and cheaply available? 19:40:42 fizzie: Furthermore, we have found, following intense thought, introspection and discussion, that the best course of action for the board to take is to resolve that you is been found to be girly. 19:40:59 yeah the one nick that tells you gender and you ignore it <-- yes because to me he is mentally still ehird 19:41:27 so... if someone asks you what alise's nick is 19:41:30 you'd say ehird? 19:41:44 oklofok, I would say his current nick is alise_ 19:41:55 AnMaster: well, don't say "he"; it's rude. 19:42:00 -- says the rudest person in here. 19:42:19 -!- Sgeo_ has changed nick to Sgeo. 19:42:25 hm separate, non-linked nickserv accounts 19:42:27 interesting 19:42:40 same goes for tusho 19:42:50 alise_, did you know about /ns group? 19:43:09 Unknown command: ns 19:43:12 ;-) 19:43:14 Deewiant, /quote then 19:43:18 your irc client fails 19:43:21 not my fault 19:43:30 Is that really a failure? 19:43:30 (it *is* a server side alias) 19:43:44 Deewiant, well, no. It is a feature, Like every other bug. 19:43:58 Now you're being snarky. 19:43:59 of course in this case it is more likely to be a misdirected feature in fact 19:44:13 /quote 19:44:25 Deewiant, "snarky"? *googles* 19:44:34 Um, why didn't this work: /quote privmsg #esoteric /quote privmsg #esoteric /quote privmsg #esoteric 19:44:41 http://www.urbandictionary.com/define.php?term=snarky gives it as "A word that should be googled to find the definition as per direction from Dane Cook. It means short tempered or irritable." but I don't think that is true 19:44:54 Sgeo: You're giving too many parameters to "privmsg" there. 19:44:55 /quote privmsg #esoteric /quote privmsg #esoteric 19:44:59 (urbandict was the top hit) 19:45:01 AnMaster: if I considered the identities to be one in the same, I would group them. 19:45:14 You want something like /quote privmsg #esoteric :/quote ... there. 19:45:15 Sgeo, add the : where it should be 19:45:16 Sgeo: you forgot the : 19:45:21 alise_, heh 19:45:26 alise_, yeah you are complex 19:45:26 AnMaster: Why heh? 19:45:33 alise_, see above ^ 19:45:36 /quote privmsg #esoteric :/quote privmsg #esoteric 19:45:43 I don't get what you mean. 19:45:54 /quote privmsg #esoteric :/quote privmsg #esoteric 19:45:56 /quote privmsg #esoteric :/quote privmsg #esoteric :/quote privmsg #esoteric 19:45:57 alise_, "above: opposite of below"? 19:46:00 Didn't work either 19:46:03 AnMaster: What? 19:46:05 Sgeo, it did 19:46:18 Sgeo, just your client doesn't echo what you send that way 19:46:23 since irc doesn't echo 19:46:30 it is up to the client to do so 19:46:38 alise_, see above ^ 19:46:40 I don't get what you mean. 19:46:43 alise_, "above: opposite of below"? 19:46:56 alise_, what is it you don't get there ;P 19:47:53 You're being deliberately annoying & obtuse./ 19:47:58 s/\/$// 19:48:11 alise_, yes 19:52:39 Deewiant: Anyway, do you mean SML by ML? 19:52:51 Any-ML 19:52:55 (NEML) 19:53:28 I should MAKE NEML! :P 19:54:04 Pronounced either Enny Emmel or Enn Ee Emm Ell 19:54:11 The best thing is that they both sound the same! 19:54:48 I'd pronounce it nemmul anyway 19:59:19 alise_: this is ur fave song right http://www.youtube.com/watch?v=WeSj7rdKrKE 20:00:12 what 20:03:43 Deewiant: SML is tempting, except for that I don't see how I'd (a) manage memory in it, nor (b) write an efficient fungespace in it. 20:03:56 -!- Tritonio_GR has joined. 20:04:07 alise_: Write your Funge-Space in C and the rest in SML? 20:04:24 Deewiant: Functional languages typically interact badly with C; and I'd rather not touch C, like, at all. 20:04:39 Almost everything interacts well enough with C 20:05:22 You're wrong there. 20:05:39 alise_: And really, (a) and (b) are premature optimization. Get your shit straight first and then wring all the speed you can out of it 20:05:42 Maybe I should just write it in Oberon. 20:05:43 -!- alise_ has left (?). 20:05:45 -!- alise_ has joined. 20:05:48 Deewiant: But, but Fungicide. 20:06:08 Fungicide won't do you any good if you can't get through Mycology 20:06:14 True. 20:06:24 Bleh. 20:06:37 Most likely you're going to have to semi-rewrite it at some point anyway if you're planning on doing it properly :-P 20:06:48 Keyword semi... 20:06:58 Still... SML /does/ have the perfect module system... 20:07:02 Put Fungespace in that... 20:08:11 lol, from an SML benchmark: 20:08:12 fun C f x y = f y x 20:08:21 we're so fast we put combinators in our benchmarks and don't even fucking care! 20:08:28 (it was just an implementation of GoL) 20:08:44 To be fair, if the compiler can't optimize away flip it's rather poor :-P 20:09:02 True. And MLton is a whole-program optimising compiler that produces slippin' good code. 20:09:37 Someone oughta write Befunge in Prolog. :-) 20:09:54 There are some Prolog fanatics that won't program in anything else. 20:12:53 Eh. 20:13:09 Deewiant: Writing a Mycology-passing interpreter is not really that hard, is it? Since you guys have figured out most of the work. 20:13:54 It shouldn't be particularly difficult, no. 20:14:04 So I can always write an ML one then write one in another language. 20:14:14 Quite. 20:14:58 Mycology? 20:16:06 Sgeo: Deewiant's comprehensive Befunge wondersuite of tests & trinkets. 20:16:37 Deewiant: Oh, I maybe should've mentioned; I found a rather amusing Octave bug recently, http://savannah.gnu.org/bugs/index.php?29465 20:16:48 Being a preliminary Befunge-93 examination, a compleat & well-regarded Befunge-98 crunch-suite of all the odds & ends one expects in the Befunge-98 business, & a test suite of that most feral of fingerprints, TRDS. 20:17:19 fizzie: That's odd indeed :-P 20:21:16 byebye, be back soon 20:21:51 -!- alise_ has quit (Remote host closed the connection). 20:25:25 You're wrong there. <-- indeed. For example Brainfuck doesn't 20:25:36 and what about the old LISP machines? 20:25:59 A few examples against an "[a]lmost everything" does not me a wrong make 20:26:20 Deewiant, true. Was that mathematical "almost all"? 20:26:52 Deewiant: You *could* reformulate it as something like "if it interacts well with some other language, odds are good it does it well with C", though. (I'm sure there's exceptions to that, too, but it didn't say "all".) 20:27:21 Deewiant, also I don't think my lawn mover interacts well with C 20:27:32 (you forgot to restrict yourself to programming languages) 20:27:36 fizzie, what about VHDL? 20:27:50 AnMaster: What does it interact well with, then? 20:28:06 fizzie, memory circuits perhaps? 20:28:11 That's not a language. 20:28:14 fizzie, true 20:28:24 fizzie, what about verilog? I have no idea if you can mix them 20:28:50 but presumably you can use two FPGAs one programmed in VHDL and one in Verilog and make them communicate 20:29:42 Yes, well, that's a bit of a different thing. You could have two separately running programs written in different language that communicate over a pipe; I wouldn't quite say that's some FFI-like integration. 20:29:53 true 20:29:59 fizzie, it could be RPC though 20:30:04 which is kind of similar 20:30:24 fizzie, for FPGAs that would be like a co-processor I guess 20:31:37 If you want a real exception, I'm sure there's some low-levelish languages that "interact well" with assembly -- letting you do inline asm and such -- but don't have any special convenience features for interacting with code written in C. (Not that it typically would be very difficult if you can do inline asm.) 20:31:48 heh 20:33:37 You could also claim that Java interacts better with C++ than C, because writing JNI bits is syntactically a bit less ugly for C++, though the difference is not large. 20:34:06 fizzie, does JNI allow you to call unmodified C++ code? 20:35:22 No. Well, yes. Well, it depends on what you mean by that. JNI methods need to be specifically written to be callable from Java, but of course you can call unmodified C++ code from them. But it doesn't quite work so that you could use C++ bits without some manual glue. 20:35:48 Though I wouldn't be surprised if someone's written automation for that alread.y 20:36:21 fizzie, I mean something like calling something in libc or libstdc++ from java with no in-between C/C++ wrapper 20:37:12 Well, no, it doesn't do that. 20:37:12 fizzie, there are after all several ways to do FFI. One is to give you a special C API to interface with the app you want. The other one is to allow describing the foreign function completely in the non-C language. 20:37:21 I don't know which is most common 20:38:04 I think C# and such does the latter 20:38:21 at least I remember using a extremely low level opengl wrapper in C# once 20:38:33 Haskell uses the latter, right? 20:38:48 not sure about python, does it provide the latter as well as the former? 20:38:52 I know it provides the former at least 20:39:01 Actually, Python does provide the latter 20:39:03 erlang provides mostly the former. 20:39:04 See the ctypes module 20:39:20 Sgeo, ah never used that. Only used the C API for embedding python 20:39:42 * Sgeo wonders if Half-Life will work on this machine 20:40:14 Sgeo, you know that is no VR right? 20:40:15 ;P 20:40:42 lol 20:41:13 Gforth has a FFI that's close to the latter part, with a twist. You declare C functions using the "c-function" word, but it also allows you to use "\c" prefix in front of a line to write actual C code. Then it uses gcc to compile all \c lines and wrapper functions (using the usual gforth stack-passing conventions and such) for each c-function declaration, so that you can start to use those just like Forth words. 20:41:49 heh 20:42:41 fizzie, I don't require the latter to provide a 100% mapping of weird C types. Managing a majority of the cases is enough to be considered valid for that category 20:42:42 It's a bit kludgy, like everything else there. 20:42:48 "In order to work, this C interface invokes GCC at run-time and uses dynamic linking. If these features are not available, there are other, less convenient and less portable C interfaces in lib.fs and oldlib.fs. These interfaces are mostly undocumented and mostly incompatible with each other and with the documented C interface; you can find some examples for the lib.fs interface in lib.fs." 20:43:00 (for example: handling structs but perhaps not intricate details of padding related to bitfields) 20:43:17 (or not supporting varargs) 20:43:38 (at least on x86_64 iirc varargs can be somewhat gnarly) 20:43:59 (even llvm doesn't support it without manual help from the code gen, as is done by C compilers) 20:45:33 WHY DOES STEAM KEEP CRASHING? 20:46:27 Maybe you need a some sort of safety valve there? 20:46:57 lol 20:47:41 The Visual Studio debugger is complaining about uncaught exception, but Steam's still working 20:47:46 If I respond, Steam will die 20:47:47 Try adding something like a http://upload.wikimedia.org/wikipedia/commons/d/d7/Proportional-Safety_Valve.jpg (disclaimer: I have no clue about steam engineering, but it looks impressive enough.) 20:49:25 I wonder if it has something to do with IE8 20:50:17 Try adding something like a http://upload.wikimedia.org/wikipedia/commons/d/d7/Proportional-Safety_Valve.jpg (disclaimer: I have no clue about steam engineering, but it looks impressive enough.) <-- tag it with "should be svg" ;) 20:52:22 Here's another silly problem: the third monitor I have is 1280x1024 tft, rotated 90 degrees; for some reason it can't remember xrandr settings right, so I need to "xrandr --screen 2 --output DVI-0 --rotate left" manually. 20:52:22 After I do this, the region on the left side that normally lets the mouse cursor pass through to other screens is not updated, so only the 1024 upper pixels let the mouse go through; the lowest 256 are a wall. 20:52:22 Whenever I have the mouse on the lowest part of that screen, I always get it stuck there for a moment before remembering to go up a bit before trying to leave the screen. 20:53:31 fizzie, heh 20:53:35 fizzie, that's crazy 20:53:54 I should've made the bot description field in the AI tournament participant submission form non-optional; again out of the 32 bots only 7 have bothered to give any sort of description as to what they've done. 20:54:02 And one of those 7 is just "well..." 20:54:15 fizzie, haha 20:54:35 And one is "War... War never changes.", a Fallout reference; the name of the bot is "ydinsota", which is Finnish for "nuclear war". 20:55:00 And in fact they seem to be spectacularly un-descriptive for the most part. 20:55:10 "Canada is a bot that fights fair, no dirty tricks." 20:55:24 "King Hippo": "I have my weakness. But I won't tell you! Ha Ha Ha!" 20:56:07 And "Beware of the wombat!" 20:56:17 fizzie, is the last one a reference? 20:56:37 Well, it's a reference to the bot name, which is "Wombat". 20:56:48 ah 20:56:52 Together they might be referring something else, not sure. 20:57:07 fizzie, "beware of the dog" I guess 20:57:24 * L6 WOMBAT (Weapon Of Magnesium, Battalion, Anti-Tank), a British recoilless rifle 20:57:24 * Women's Mountain Bike and Tea Society (WOMBATS), a cycling group founded by Jacquie Phelan 20:57:24 * Worldwide Observatory Of Malicious Behaviors and Attack Threats, an FP7 research project on cyberattack data gathering and threat analysis [1] 20:57:24 * Waste Of Money, Brains And Time, usually referred to a project. An example is the $99 PC from the movie The First $20 Million Is Always the Hardest. 20:57:33 Wikipedia's acronym expansions for WOMBAT. 20:57:44 It could be that last one. :p 20:58:05 http://llvm.org/docs/ReleaseNotes.html#whatsnew <-- release is scheduled for 12 April, so they don't have a lot of time to fix that up in 20:58:36 Fix what? 20:58:57 Deewiant, that they have no newlines in there for example? 20:59:18 "New SSAUpdater and MachineSSAUpdater classes for unstructured ssa updating, changed jump threading, GVN, etc to use it which simplified them and speed them up. Combiner-AA improvements, why not on by default? Pre-regalloc tail duplication x86 sibcall optimization New LSR with full strength reduction mode The most awesome sext / zext optimization pass. ? The ARM backend now has good support for ARMv4 20:59:18 backend (tested on StrongARM hardware), previously only supported ARMv4T and newer. Defaults to RTTI off, packagers should build with make REQUIRE_RTTI=1. CondProp pass removed (functionality merged into jump threading). " and so on 20:59:21 and the * ... 20:59:26 under most entries 20:59:35 Oh, you just meant that page 20:59:38 Deewiant, well yes 20:59:46 I thought you were referring to it for the release date 20:59:59 Deewiant, nah they are on the main page 21:00:23 MST3k time 21:00:31 MST3k? 21:00:46 The release date is somewhat in fluctuation anyway 21:00:50 Since there are unfixed regressions 21:00:51 also I just found a new use for a laptop screen. To somewhat block/reduce the noise of a cd drive behind it 21:01:28 (desktop cd/dvd drive whines slightly when playing a cd, even at the low speeds of audio CDs) 21:01:36 (especially annoying for audio cds) 21:01:43 Deewiant, hrrm 21:03:18 Deewiant, link to those? 21:03:20 My DVD drive does not "whine slightly" when playing audio CDs; it makes quite a lot of noise. I've just flac'd our very few audio CDs so that I don't need to actually play them. 21:03:44 fizzie, except that would be more than all my harddrives together I calculated half a year ago 21:03:59 the average compression radio of flac seems to be ~50% for classical music 21:04:23 Mystery Science Theater 3000 21:04:41 AnMaster: See llvm-dev mailing list... 21:04:51 Deewiant, link to that ;P 21:04:55 I don't have a link 21:05:06 I don't use the archives 21:05:15 It's around 50% for our non-classical music too, but like I said, we have a very small set of CDs. 21:05:16 If you just want the bugs, Google llvm 2.7 blocker or something like that 21:05:30 ah you subscribe to it 21:05:30 heh 21:05:35 No, I use gmane 21:05:43 well that have a link too 21:05:45 Over NNTP 21:05:57 Deewiant, you know that is almost like gopher 21:06:00 in rarity 21:06:04 NNTP? 21:06:05 (You can stick 2000 reasonable-sized audio CDs on a terabyte drive, though; they seem to be around half a gig each here.) 21:06:08 Not really 21:06:10 I didn't even know they *had* nntp 21:06:15 NNTP is a lot more common than Gopher 21:06:16 Deewiant, well, for anything but usenet 21:06:21 Maybe 21:06:22 and usenet is still somewhat more common yes 21:06:56 Our school's student association has their own newsserver which is commonly used for at least job offers and the like 21:07:11 It does have a web frontend these days, though. 21:07:30 http://llvm.org/bugs/show_bug.cgi?id=6586 <-- just one? 21:07:37 that is still open 21:08:07 Yeah, the situation improved in the past few days 21:08:26 ROFL. One of the rifts on "Invasion of the Neptune Men" had something like "Featuring Santa" 21:08:31 It used to be used quite a lot for actual studying-and-course-news stuff, but nowadays there's only one officially sanctioned web-bortal way of communicating. 21:08:35 Guess where Santa lives according to Futurama.. 21:08:43 (Which, of course, doesn't let the students post anything...) 21:09:06 Many courses still refer to their NG but nothing ever gets posted 21:09:12 fizzie, web-bortal? 21:09:16 wep-bortal 21:09:31 Deewiant, not WPA these days? 21:09:33 AnMaster: "The study and teaching portal Noppa". 21:09:42 fizzie, well, I meant the spelling 21:09:48 Oh. 21:09:50 "The study and teaching bortal Noppa" 21:09:58 Well, it is "a handy tool for both students and lecturers", so who am I to argue. 21:09:59 Deewiant, yes 21:10:10 a handy bool yes 21:10:15 either true or false 21:10:29 Admittedly the RSS feeds of newsposts is a good feature, as are the email notifications; but it's all so unidirectional. 21:10:31 law of excluded middle is always in effect there 21:10:46 fizzie, newsbosts you mean 21:10:55 and botifications 21:11:12 Yes, why not. 21:11:24 :D 21:11:41 err I mean :b of course 21:12:11 Also it sends the email notifications with the poster's email as the SMTP sender, so every time I make a newspost, I get a bounce from one guy's over-quota mailbox. 21:12:56 Actually that was last year; this year I get a "Unable to deliver message to the following recipients, because the message was forwarded more than the maximum allowed times." bounce, it seems. 21:13:28 fizzie, hah 21:13:51 fizzie, so it didn't deliver any message? 21:13:57 or just to some? 21:14:09 (I mean, did it list every one in that list?) 21:14:17 No, just the one broken one. 21:14:26 The other students presumably get their messages just fine. 21:14:59 Or maybe not! 21:15:01 did you try contacting IT support? 21:16:18 Deewiant: I did get a real reply to the newspost from another student, so at least one other person got their message. 21:16:28 Maybe he was the only one 21:16:40 You don't know! 21:16:58 And the mail-loopy address is not one of our university's; it's some custom email address. Nobba lets you register whatever you want as the ebb-bmail address there. 21:17:06 Or is that "abbress"? 21:17:15 fizzie, baddres 21:17:18 err 21:17:20 baddress 21:17:21 even 21:17:21 babbles 21:17:23 bad dress 21:18:06 which reminds me, I should transfer those lecture notes pictures from my phone over bluetooth sometime soon 21:18:07 32 returns from 52 groups now that it's ~45 minutes until deadline. 21:18:17 Deewiant: Did you finish whatever it was you were doing? 21:18:27 Yes, a bit less than an hour ago 21:18:33 * AnMaster waits for anyone to ask how those are related 21:18:38 Good, good; just thought I'd remind. 21:18:43 :-) 21:18:51 AnMaster: A lecturer in a bad dress? 21:18:55 fizzie, no 21:18:56 Incidentally, this was the third of three such exercises 21:19:12 The first time around I did it a day or two early and then forgot to return it until a day after the deadline 21:19:30 Fortunately the course personnel were nice and didn't deduct any points 21:19:53 Anyway, it is thus clearly a better idea to do stuff immediately before the deadline 21:19:55 I did one coursework thing a month before deadline, then forgot to return it and returned it a day late. 21:20:04 fizzie, bad dress → badly dressed people → university in general → you → panoramas → images → lecture notes 21:20:05 Yep 21:20:16 fizzie, convoluted yes 21:20:48 "badly dressed people → university in general" is a bit of a leap. 21:20:59 fizzie, well, CS people then 21:21:08 You stereotypist. 21:21:14 I'm not a badly-dressed person :( 21:21:34 fizzie, well I'm a CS student myself. I'm not badly dressed if the average isn't I guess. 21:21:51 Gregor: Which reminds me: I chose your hat a few days back, did you abide? 21:22:00 Deewiant: I always abide. 21:22:07 Awesome 21:22:18 http://www.facebook.com/photo.php?pid=30595531&l=c65d70c86e&id=1055580469 <-- my usual style of dress 21:22:29 AnMaster: We had two very well-dressed folks from the Finnish equivalent of your Piratpartiet talking on the "law in network society" course just yesterday. Admittedly they weren't CS students, though. 21:22:30 Makes me wonder about your profession 21:22:48 fizzie: Did they say anything interesting? 21:22:56 Makes me wonder about your orientation (sexual)! 21:23:00 -!- kar8nga has joined. 21:23:07 You wonder about the strangest things 21:23:33 And wonder them in oddly-parenthesized ways. 21:24:06 fizzie, law students tends to be *very* well dressed 21:24:15 Deewiant: Well, they said the same things what they always say, which I guess are interesting but not exactly novel if you've heard them before. It was one of the authors of that freely-available book, http://www.barrikadi.fi/pamfletit/jokapiraatinoikeus-0 (Finnish only). 21:24:33 Gregor: Which reminds me: I chose your hat a few days back, did you abide? <-- which one? 21:24:33 AnMaster: They weren't exactly law students, either. One of them was a student of history, and I have no idea what the other one was. 21:24:41 Right. 21:24:43 I like his fezes 21:24:56 I can't actually remember :-S 21:25:09 Deewiant, he has so many weird ones ;) 21:25:15 I remember I tried to pick an abnormal one but I can't remember what I settled on 21:25:31 AnMaster: fezzes* 21:25:46 Fezi 21:25:48 :P 21:25:55 Fezzies. 21:25:58 X-D 21:25:59 fizzies 21:26:04 Deewiant, ah 21:26:06 There's only one of those. 21:26:28 fizzie, no. Sometimes I have seen fizzien here too 21:26:40 There's quite many places on the interwebs that sell "bath fizzies". 21:26:44 :-D 21:26:48 * AnMaster prefers to read the word as fizzien rather than fizzie n 21:26:54 I want a bath fizzie >: ) 21:27:21 Gregor, what do you actually do for work 21:27:31 Hmm, what happened today O_o 21:27:32 Gregor: We've been partial to such products from Lush (lush.com), but I'm not sure if they have them around your neighbourhood. 21:27:43 60 packages to upgrade 21:27:43 Deewiant, try clog? 21:27:50 oh that 21:27:55 Deewiant, be careful. soname change 21:28:04 AnMaster: I guess I'm a research scientist. 21:28:08 soname? 21:28:20 iirc that is the name for 21:28:36 libfoo.so.1 vs libfoo.so.2 21:28:59 Gregor, ah that explains it. Those kinds of hat would only work at university ;P 21:29:12 hats* 21:29:14 libdrm or what being the actual change? 21:29:48 AnMaster: More generally I'm a doctoral student, but that's not what I do "for work" :P 21:30:33 Gregor, I vote for this attitude on said day: http://codu.org/hats/BrownFedora-sm.jpg 21:30:33 ;) 21:30:57 choosemyhat.com is for hats, not attitudes :P 21:31:00 Deewiant, libdrm? 21:31:07 Deewiant, iirc it was some kerberos stuff 21:31:19 at least ssh broke during the upgrade with some error about old soname krb thing not found 21:31:25 I just saw libdrm go up a version number 21:31:31 And most other things go up a release number 21:31:32 Deewiant, well maybe that too 21:31:49 Deewiant, well libkrb messed up for me for a bit there 21:32:07 Gregor, still, that is an awesome attitude on that picture :P 21:32:18 I don't appear to have libkrb installed 21:32:29 Deewiant, huh, here it is a dep of sshd? 21:32:56 heimdal did go up a version number 21:33:02 I thought you meant a package by that name 21:33:05 Deewiant, well it is libkrb 21:33:10 libkrb5 even 21:33:16 didn't remember exact name 21:33:22 /usr/lib/libkrb5.so.26 is owned by heimdal 1.3.2-1 21:33:25 it was .25 before 21:33:29 meaning ABI breakage generally 21:34:06 Argh 21:34:10 Deewiant, what? 21:34:17 Now catalyst depends on openssl-compatibility which only exists for i686 21:34:23 Required By : alpine cvs evolution-data-server gnome-vfs gtk2 kdelibs libcups librpcsecgss libtirpc neon openssh smbclient 21:34:30 Deewiant, what the heck is catalyst? 21:34:33 Deewiant, and: file a bug 21:34:50 catalyst is AMD's display driver 21:34:54 pacman -Ss catalyst 21:34:55 I doubt I need to 21:34:56 returns nothing? 21:34:59 It's in AUR 21:35:02 oh okay 21:35:10 Deewiant, file a comment on that page then so it can be fixed still 21:35:11 It was dropped from community last summer IIRC 21:35:43 AnMaster: There's a comment on openssl-compatibility already 21:35:46 http://aur.archlinux.org/packages.php?ID=36308 21:35:57 okay 21:36:03 Unsurprisingly enough 21:36:05 can't see why a display driver needs openssl 21:36:25 Except the md5 seems wrong 21:36:38 mhm 21:36:47 Or it's using the wrong one 21:36:50 I don't think my CARCH is set 21:36:54 I've had problems with that before 21:37:48 AnMaster: Any idea where the $CARCH comes from into a PKGBUILD? 21:39:01 Bloody catalyst updates... I hate having to always mess with the PKGBUILDs 21:39:53 I need to install the OpenGL bits (I think that's what they are) into the 32-bit chroot but it doesn't quite work cleanly since it installs all bits by default, some of which depend on xorg and the kernel (both of which aren't present in the chroot...) 21:40:13 Deewiant, eh. No idea 21:40:37 So typically: mess with the PKGBUILD, doesn't work since I missed something. Try again, having lost the changes made last time. Repeat a couple of iterations until it installs. 21:40:41 Deewiant, doesn't it use split kernel/user space drivers? 21:40:52 Just one package 21:42:32 Deewiant, ah, nvidia drivers splits it 21:42:37 and iirc there are lib32 ones even 21:43:20 Argh, and the damn pacman update made me lose the changes without even getting a chance to try the PKGBUILD once 21:43:34 Deewiant, what? 21:43:43 Deewiant, trying what pkgbuild? 21:43:47 catalyst's 21:43:56 The one I'm manually deleting stuff from 21:44:18 how did pacman make you lose it? 21:44:39 pacman update changed PKGEXT from .pkg.tar.gz to .pkg.tar.xz 21:45:27 Deewiant, yes and? 21:45:29 I think the pacman that was trying to upgrade the catalyst was still using .tar.gz while the pacman used to create the package used .tar.xz 21:45:35 can't you use the old ones still? 21:45:44 Anyway, it complained about not finding a .tar.gz when it had made a .tar.xz 21:45:55 FATAL: Could not open /lib/modules/2.6.33-deewiant/modules.dep.temp for writing: No such file or directory 21:45:58 Yay, it worked 21:46:02 Deewiant, did it? 21:46:05 Yes, it did 21:46:13 FATAL is usually a bad indication 21:46:14 I know there's no modules.dep in the chroot, doesn't matter :-P 22:24:57 Deewiant: The game is on: http://www.cis.hut.fi/htkallas/ai-2010.txt 22:25:03 Deewiant: Might be more interesting if you were participating. :p 22:25:49 And if one of those were mine. :-P 22:25:57 I like the NPEs 22:26:22 Those results always come fastest. :p 22:26:28 :-D 22:26:49 NPE? 22:27:03 AIARCH: RED player crashed: Uncaught exception: java.lang.NullPointerException 22:27:18 heh 22:27:28 fizzie, they didn't test it very well? 22:27:40 fizzie, how fast is that report updated? 22:27:42 Most likely. Will be interesting to see if it crashes all other games. 22:27:52 It's a cron job, once per hour. 22:28:11 fizzie, how long is one game permitted to run? 22:28:14 The "E P" in the result table is supposed to read "BLUE PLAYER" vertically, it just gets clipped a bit. After all 45 bots have been seen, the table'll be quite a bit larger, then it'll fit. 22:28:27 One hour of thinking time for both participants. 22:28:38 I'm running 33 games simultaneously, though. 22:28:51 (11 quad-core workstations, 3 simultaneous matches each.) 22:29:11 fizzie, so it is in user time? or user + sys? 22:29:20 Wall clock time on random people's workstations? :-P 22:29:31 Deewiant, that would be unreliable 22:29:31 Deewiant: No, RLIMIT_CPU time. 22:29:50 man: warning: /usr/share/man/man3x/ulimit.3.gz: ignoring bogus filename 22:29:50 man: warning: /usr/share/man/man3x/ulimit.3p.gz: ignoring bogus filename 22:29:50 man: warning: /usr/share/man/man3x/ulimit.3p.gz: ignoring bogus filename 22:29:50 huh 22:29:50 Meh, CPU time sucks, you can't parallelize 22:29:55 * AnMaster wonders what the heck that is 22:30:03 AnMaster: That's been going on a while. 22:30:10 Dunno what it is either. 22:30:25 Deewiant: You can't parallelize anyway, the Java security policy for the tournament mode is an all-deny one, so it won't let you create any threads. :p 22:30:50 $ pacman -Qo /usr/share/man/man3x/ulimit.3.gz 22:30:50 /usr/share/man/man3x/ulimit.3.gz is owned by man-pages 3.24-1 22:30:52 fizzie: Meh! 22:30:53 $ pacman -Qo /usr/share/man/man3/ulimit.3.gz 22:30:53 /usr/share/man/man3/ulimit.3.gz is owned by man-pages 3.24-1 22:30:55 huh 22:31:17 Deewiant: What would you need threads for, anyway, except to get some annoying nondeterminism in your move-search? 22:31:34 Searching multiple branches simultaneously, of course 22:31:43 fizzie, what does it allow then? Some standard library funcs I presume? 22:32:00 But the point is that I need to be able to run multiple matches simultaneously, otherwise I'll be here all week. 22:32:03 "Some" as in almost all of the vast Java standard libs 22:32:11 Sure, sure 22:32:21 Yes; IO in general is not allowed, though. 22:32:45 I've special-cased the System.out/.err streams to discard writes so that it won't crash if someone leaves some "debugging printfs" in. :p 22:32:48 Deewiant, fizzie, ooh I just got an idea for the future version of this. When quantum computers become commonplace that is 22:33:00 And you could do some "user-space" (well, inside-vm) threads, though I wouldn't want to start guessing how much overhead a Java implementation of that would have. 22:33:48 fizzie, doesn't java implement it's own user space threads then? 22:33:52 by default I mean 22:34:03 * AnMaster points out things like erlang does 22:34:13 By default I think Java threads are done using platform threads, pthreads on posixy things and so on. 22:34:18 Though that's just my guess. 22:34:27 well erlang uses m:n basically 22:34:29 In any case you can't use those because of the security policy. :p 22:34:36 mapping it on a number of system threads called schedulers 22:34:47 Updated the report, now there's enough games in the table so that the "blue player" text is visible too. 22:35:09 synaesthesia seems to be doing pretty well so far. 22:35:13 fizzie, what is Ti? 22:35:23 Result table: (Bl = blue wins, Re = red wins, Ti = tie) 22:35:30 oh there 22:35:31 above 22:35:38 had scrolled down a bit too far to see it 22:35:53 fizzie, does it say how long each game ran for? 22:36:17 fizzie, what does AIARCH stand for? 22:36:22 AnMaster: In the actual results report, yes; not in this plaintext status report. 22:36:58 Report generated at 2010-04-10 00:33:03. <-- you should have waited 30 seconds 22:37:20 It's not such a bad time now, either; aa:bb:ab, after all. 22:37:53 I guess I could actually add game length in wall-clock time, e.g. in parentheses after the move count. 22:42:36 fizzie, how long does that report take to generate? 22:42:42 fizzie, why does it need to be a cron job 22:42:49 I mean it could be push on game finished 22:43:05 fizzie, or you could provide live coverage :D 22:43:11 like webtv or such 22:44:12 1 2.00 0.09-2.00 1.7 jaautio (+1, =0, -0) 22:44:12 2 1.73 0.86-1.86 0.5 synaesthesia (+9, =1, -1) 22:44:15 also that looks weird 22:44:28 fizzie, why doesn't the second one score higher than the first? 22:44:44 It's normalized by the number of games played so far. 22:44:48 hm 22:44:50 okay 22:44:57 The first one has won all its games, while the other one has losses too. 22:45:10 The "0.09-2.00" is the range of possible scores still achievable for that bot. 22:45:12 the first one played far fewer 22:45:22 Well, so far. 22:45:39 well yes 22:45:51 The order is not exactly "fair"; it starts with all matches of the bot that happened to be first on the list. 22:45:58 -!- alise has joined. 22:46:13 fizzie, didn't you have two older non-participating bots during previous years? 22:46:18 As for updating more often, there was some problems with sqlite's locking; I write each move of each game (and with 33 simultaneous games, there's quite a lot of those coming in) into a sqlite db, and the report-generation reads the same file. So I have the cron-job do a filesystem-level "cp" copy of the database file and then generate the report on that; it might not be quite safe for the report-generation, but at least it won't dist 22:46:19 urb the actual tournament progress. 22:46:28 so i learned about a new grammar formalism last night 22:46:39 I haven't added those in yet; I'll run the "official" games first, then the nice-to-know extras later. 22:46:50 ah 22:46:53 And there were seven non-participating ones last year, I think. 22:47:01 fizzie, seven ones? 22:47:03 huh 22:47:04 Top-5 from 2008, one from the Scheme era, and the randombot. 22:47:09 ah 22:47:38 The report seems to have autoupdated now. 22:47:39 fizzie, are they still in java btw? 22:47:44 Yes. 22:47:54 oh wait you said java security above 22:47:54 meh 22:47:59 This time there weren't even any non-Java JVM languages, I think. Or at least no-one has asked about it. 22:48:03 fizzie, didn't you talk about switching to python? 22:48:03 its called "sewing grammars" 22:48:12 fizzie, and is that allowed? 22:48:24 hah, people are finally ignoring augur entirely 22:48:30 alise shut your face :| 22:48:32 AnMaster: It is, though it's not exactly supported by the course. 22:48:36 augur, ssssh, keep quiet, we are following http://www.cis.hut.fi/htkallas/ai-2010.txt 22:48:39 it is in progress 22:48:52 ;P 22:48:53 I think we've just found the #esoteric equivalent of the Super Bowl 22:48:58 alise, :D 22:49:10 "suxbot"; that's an optimistic name. 22:49:35 alise, we just need fizzie to switch to postgresql so it can query real time updates 22:49:44 since sqlite locking yeah has it's problems 22:49:59 AnMaster: And they switched some programming courses from Java to Python, but I see no reason to do so for this tournament. Not that I trust Java's sandbox, but running arbitrary Python code sounds even worse, at least without some additional complicating layers of isolation there. 22:50:15 chroot 22:50:17 fizzie, jyton? 22:50:39 or whatever it was called 22:50:40 jython 22:51:38 which one was ironsomething? 22:51:38 oh .NET 22:51:38 -!- kar8nga has quit (Remote host closed the connection). 22:51:51 fizzie, how comes that table at the top is mostly white? 22:51:54 I mean 22:52:04 you said many games were played at once? 22:52:19 but does it run synaesthesia against all the other ones first? 22:52:24 rather than in a random order? 22:52:47 fizzie, what is that n that must be positive btw? 22:52:52 (as RED) WINS against suxbot: 53 moves, AIARCH: BLUE player crashed: Uncaught exception: java.lang.IllegalArgumentException: n must be positive 22:52:53 in there 22:54:18 fizzie, any estimate on how long it may take? 22:54:32 fizzie, also another idea: bot announcing the progress in here 22:54:33 ;P 22:55:16 Deewiant: chroot is not exactly a non-root operation. I've been doing this with about ~no support from the Officials. 22:55:42 Same goes for a real SQL server; I'd use one if they had it conveniently installed, but I don't exactly want to install PostgreSQL in my home directory. 22:55:54 "I love games, even though I am not very good at them. Chess, and even Checkers, are way too complicated, so my favorite is the "children's" game Connect-Four." 22:55:55 --Zeilberger 22:56:04 it's because they haven't found a finite perfect chess AI yet 22:56:08 fizzie: You can always request it 22:56:33 Deewiant: I'd really rather not bother them; they seem overworked enough as-is. 22:57:00 Is you guys' university good? I should come and terrorise you. 22:57:31 Surprisingly, that first sentence is actually the correct way to phrase that with "you guys". 22:57:35 "about ~no" 22:57:43 didn't alise define ~ to be ¬ before? 22:57:50 AnMaster: no law of the excluded middle; it's not the same as "about" 22:57:52 Actually I should come and terrorise you anyway 22:57:53 so I guess you had full support from them fizzie 22:58:27 alise, ah but I use classical logic and consider LEM perfectly fine most of the time. 22:58:42 alise, I'm not constructivist 22:58:43 Yeah, but you're an anti-computer whorebag. 22:58:45 So there. 22:58:50 alise, what? 22:58:56 how does that follow? 22:59:03 THE FOUR-COLOUR THEOREM DIN'T GET PROVED WITH DOUBLE NEGATION BEYOTCH 22:59:08 WE CONSTRUCTED US SOME DAMN FINE MAPS 22:59:20 alise, well yes and? 22:59:21 AND WE COMPUTED THE FUCK OUT OF THEM! 22:59:27 I never said constructivist methods doesn't work 22:59:50 http://www.swfme.com/view/1046212 oh my god the pain 22:59:57 I just think that non-constructive ones are fine as well. 22:59:58 As for the IRC bot announcing results, we did talk about that on the course channel last year, I just completely forgot about it; I did mention it not 15 minutes ago. It would probably be better to put it on the course channel instead of here, though. 23:00:13 fizzie, could be on both 23:00:24 fizzie, and there is a course channel on freenode? or elsewhere? 23:00:34 IRCnet presumably 23:00:38 AnMaster: I don't want to try adding multi-server support in a Funge-98 bot. (What, so I should write it with something else?) 23:00:41 Deewiant, why? 23:00:45 IRCnet, and it's mostly Finnish. 23:00:50 Because that's where things tend to be 23:00:50 That's where all our course channels are. 23:01:01 Force of tradition and all. 23:01:09 fizzie, also it should be possible with an external multiplexer currently 23:01:27 AnMaster: Incidentally, if you want to see all bots that should appear in the report sooner or later, http://www.cis.hut.fi/htkallas/ai/list.cgi has a list. 23:01:29 I thought IRCnet was next to dead? 23:01:35 ehird@dinky:~$ mlton 23:01:36 MLton 20070826 (built Fri Oct 05 23:09:43 2007 on yellow) 23:01:40 $ 23:01:43 I /may/ be needing a REPL some time, MLton. 23:01:55 alise, what is mlton? 23:02:03 AnMaster: 74955 concurrent users isn't actually "dead". 23:02:10 fizzie, what with it lacking services and so on 23:02:11 A whole-program optimising Standard ML compiler that produces uber-efficient code. 23:02:12 MLton is a compiler, not an interpreter 23:02:20 Deewiant: So's SBCL; it has a REPL. 23:02:25 Admittedly SBCL doesn't do the whole-program magic. 23:02:26 Shush 23:02:35 REPLs are below the dignity of something as awesome as MLton 23:02:39 Still; MLton is incompatible with other MLs to some degree, so I don't feel good about using another interpreter as a REPL. 23:02:48 -!- jcp has joined. 23:02:52 alise, write it in the common subset? 23:03:07 AnMaster: There is no "common subset", some implementations just suck at the standard. 23:03:17 The servicelessness is a matter of choice, not a sign of deadness. Though certainly it has gotten a bit quieter lately. 23:03:22 And OS interaction will always be slightly untransportable from one implementation to another without strict standardisation. 23:03:33 Deewiant: STALIN is cooler than MLton. 23:03:42 The http://irc.netsplit.de/networks/top100.php user-count rankings still put it as the largest real IRC network; for obvious reasons I don't count QuakeNet. 23:03:47 STALIN just takes your code and beats the fuck out of it and spits out superhumanly good C. 23:03:51 Fuck yeah. 23:03:53 alise, well follow the standard then, excluding the parts that very few support? 23:03:54 as in 23:04:02 a reasonably widely supported subset 23:04:04 You know what, I've decided that talking to AnMaster is fruitless. 23:04:10 At least right now. 23:04:11 alise, why? 23:04:20 Because you keep saying the same stupid thing. 23:04:42 (I'm not sure why the top-100 page doesn't list freenode, though; the top-10 page does.) 23:04:47 no you don't even make sense 23:04:52 now* 23:05:07 fizzie, has any bot hit 2 so far? 23:05:12 fizzie, I mean 23:05:18 when the results are finished for a given year 23:05:27 Anyway, I think with MLton I could approach the speed of cfunge using the same implementation techniques. 23:05:39 fizzie, oh btw is there any perfect play in that game? 23:05:59 AnMaster: None of the officials, but the 2008 winner got a perfect score in the 2009 tournament. 23:06:02 alise: Only approach cfunge? Psh. :-P 23:06:08 Doing sane macroptimisation like Deewiant... I could easily surpass it. 23:06:14 Deewiant: I said "using the same implementation techniques". 23:06:15 fizzie, heh 23:06:22 And no, the game's not solved. 23:06:26 alise: Yes, you did. Psh. 23:06:36 If you're essentially implementing retarded algorithms, then you can't beat retarded inline ASM. 23:06:51 Deewiant: What, you think MLton regularly beats microprofiled ASM? :-) 23:07:05 alise, anyway what with the t issue fixed now in cfunge it is way closer 23:07:08 You think AnMaster's asm is any good? ;-) 23:07:15 Deewiant, I don't use much asm 23:07:15 at all 23:07:17 .... 23:07:21 Deewiant: No, but I think he's tried every possible string of ASM to find the fastest. 23:07:22 "much at all"? 23:07:41 I may need to poke at cfunge and see what it's doing. Maybe beat it into a pulp. :P 23:07:46 I think cfunge is pretty shitty code TBQH. 23:08:10 Deewiant, as in, one function, the one that fills the static funge space. Which uses SSE non-temporal stores to avoid a rather large "read block into cache first" hit 23:08:29 when it fills it with the space pattern for empty 23:08:33 alise: Yes, but I'm curious. 23:08:35 "Hey, let's implement ber-nave algorithms. Now, let's unroll the fucking loops! Oh shit it doesn't match the standard. Let's copy from CCBI. Now: ASM time!" 23:08:44 Knuth would weep. 23:08:49 alise, you are just silly you know 23:09:04 alise, "Oh shit it doesn't match the standard." hasn't happend so far like that 23:09:05 ber-nave -- now there's a loanword amalgamation you don't see every day. 23:09:19 and they aren't 23:09:21 AnMaster: considering I've heard you just copy from CCBI when your shit is broken I disagree entirely 23:09:42 alise, that is an exaggeration 23:09:43 anyway, I don't care what you think as I already know you think cfunge is a perfectly innocent well-implemented, well-optimised non-CCBI-copy 23:09:51 it's none of these things but I don't really care what you think 23:09:55 like... at all 23:10:15 I have based my code on CCBI in two fingerprints, that is all basically: TURT and 3DSP. Because at the time I implemented those I didn't know very much of the underlying theory 23:10:23 like matrix math for 3DSP 23:10:28 Dude, fastcall really doesn't do that much, especially compared with better implementation. :P 23:10:54 pikhq, which variant of fastcall btw? 23:10:59 Oh, and it does *fuck-all* on inlined-functions. 23:11:28 pikhq, in gcc? well I generally use clang these days 23:11:30 so no idea 23:11:48 AnMaster: It *cannot* do anything for inlined functions. 23:11:56 pikhq, anyway I mainly target x86_64. It isn't like the inline asm is even used for x86 23:12:29 fastcall means "pass the arguments in registers". A static inline function means "this function is essentially a safe macro." 23:12:31 pikhq, well, that would depend on register allocation. After all inlining means copying the code for it. So fastcall would simply not apply to the inline usages 23:12:50 Yes. And I'm saying fastcall on a static inline function cannot do anything. 23:12:51 I wish ML didn't call its numbers "reals". 23:12:54 They're not really reals. 23:12:57 BUT YOU STILL DO IT. 23:12:59 pikhq, so it isn't really relevant except to the cases where it is emitted as a call 23:13:00 Call them "fakes" :P 23:13:08 Which it shouldn't be. 23:13:09 pikhq, the compiler is free to not inline static inline 23:13:27 AnMaster: Test. Your. Damned. Optimisations. 23:13:48 pikhq, Oh I certainly profiled that attribute. You think I don't profile? 23:14:11 note: AnMaster found a 0.0001s difference and thought that it was obviously his genius, not acceptable margin of error 23:14:27 pikhq, over average of 200 runs (if I remember the numbers correctly, was over a year ago) there was a 4% speedup on average iirc 23:14:50 ... fastcall on functions *without arguments*? 23:14:56 Wherein you were testing on Mycology or some such 23:15:00 It is literally impossible for that to do anything. 23:15:00 AnMaster: Cargo cult, hells yeah 23:15:17 Put the line in, run run run, wow it's faster, 4% on a program that runs almost immediately anyway! 23:15:20 This is clearly a GOOD THING! 23:15:22 pikhq, hm? It may have slipped on some such function by mistake I guess 23:15:29 pikhq, it would simply have no effect there then 23:15:57 pikhq, for example editing of code can leave such things remaining for example 23:16:27 Yes, but it still sucks. 23:16:49 pikhq, what does? An __attribute__ that happens to have no effect? 23:17:07 Yes. 23:17:12 well now I guess you sound like alise in code aesthetics 23:17:31 (btw since I think personal attacks are just irritating he is now on ignore) 23:17:40 Oh, please; because we have taste and don't just leave meaningless cruft around that will later be defended with "it makes it go faster" we're Apple-loving beauty freaks. 23:17:42 It's like having "0;" all over the place. 23:17:55 pikhq, perfectly fine. Esoteric too. 23:17:59 somewhat 23:18:02 Sure, it *doesn't do anything*, but that doesn't make it not *ugly*. 23:18:05 Personal attacks, yeah, those things that I did none of. 23:18:10 pikhq: why are you wasting your time? 23:18:13 pikhq, what about IOCCC then? 23:18:23 he doesn't even understand what a personal attack is 23:18:27 AnMaster: IOCCC is about making the ugliest, most unreadable code. 23:18:48 AnMaster: Unless you are actually trying to do that, STOP DOING THINGS THAT MAKE CODE HARDER TO READ FOR NO BENEFIT. 23:19:19 pikhq, well then I suggest you complain at ais for C-INTERCAL next time he is here 23:19:27 it's C code is sometimes quite wonderfully weird 23:19:46 pikhq, unreadable doesn't even begin to describe many parts of ick 23:19:50 pikhq: AnMaster likes to defend his code's inadequacy by half the time pointing out that LOL ESOTERIC, and the other half talking about how much he values coding standards. 23:20:03 Do you think you can reason a man out of a position he did not reason himself into? 23:20:13 pikhq, yet I haven't heard you complain about that yet. 23:20:16 AnMaster: You have fastcall on functions without arguments *everywhere*. 23:20:36 That there is *retarded* and cargo cult programming. 23:20:40 pikhq, no. I'm quite sure I don't. 23:20:54 Would you like me to start listing them? 23:21:03 pikhq, plus actually it did more than just fastcall at one point. 23:21:07 might be good to know 23:21:10 bool fungespace_create(void); 23:21:13 of course it could be cleaned up 23:21:15 void fungespace_free(void); 23:21:22 pikhq, those used to take argument 23:21:27 so I guess I forgot to update there 23:21:37 pikhq, feel free to submit a patch 23:21:56 I don't consider it high priority 23:22:00 instructionPointer * ip_create(void); 23:22:03 there are other more important issues 23:22:11 ipList* iplist_create(void); 23:22:34 pikhq, those two never took argument as far as I can recall, so accident there I guess. 23:22:41 funge_stack * stack_create(void); 23:22:52 pikhq, but listing them won't help with anything 23:22:57 what is the point of doing so 23:23:10 better submit a patch if you care that much 23:23:40 void sysinfo_cleanup(void); 23:23:43 -!- tombom_ has quit (Quit: Leaving). 23:23:52 pikhq, took a parameter before 23:23:54 also as I said 23:24:02 this listing is completely and utterly pointless 23:24:11 genxWriter genxNew(void); 23:24:22 Okay, screw the list. 23:24:24 pikhq, anyway, what I plan to do next is test the new speed up for the fork benchmark better. Then push it 23:24:26 after that 23:24:29 new funge space 23:24:34 probably 23:24:35 Suffice it to say *every single (void) function is fastcall*. 23:24:50 pikhq, see above though 23:24:55 pikhq: genx isn't even AnMaster's code -- clearly he's fucked with it to break it 23:24:56 pikhq, you obviously didn't read 23:25:01 pikhq, plus actually it did more than just fastcall at one point. 23:25:04 that line to be specific 23:25:23 AnMaster: EEEEW. 23:25:30 pikhq, what? 23:25:49 make sense 23:26:06 A macro that implies that it's just for fastcall doing more than that? 23:26:17 I'm taking away your C license. 23:26:24 pikhq, well it did something else for speed. I don't remember what 23:26:33 MOAAAAAAAAAR SPEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEED 23:26:35 I'm not sure if it was ever comitted 23:26:39 or not 23:26:45 Oh, also. 23:26:45 committed* 23:26:45 FUNGE_ATTR_FAST static inline void discard_line(void) 23:26:57 alise: Speaking of suxbot, did you see how much it crashes?-) 23:26:57 pikhq, that one also used to take a parameter 23:26:58 so again 23:27:07 AnMaster: ITS STATIC INLINE. 23:27:15 fizzie: I didn't. Heh. 23:27:16 FASTCALL DIDNT DO ANYTHING WHEN IT DID. 23:27:18 pikhq, yes, but it was used in more than one place before 23:27:24 reallysuxbot: int main(){*0} 23:27:24 in fact 23:27:29 I think it still is 23:27:54 Believe it or not, GCC will still inline the shit out of static functions. 23:27:55 pikhq, there is nothing that guarantees something *will* be inlined just because of "static inline" 23:28:06 pikhq, well it didn't for me before 23:28:25 pikhq, just FYI. Complaining about frame size when some verbose parameter was on iirc 23:28:27 AnMaster: What I'm saying is you, sir, do cargo cult programming. 23:28:33 And that you should stop it. Stop it now. 23:28:59 pikhq, and I'm saying that isn't true. Due to a number of factors mentioned above 23:29:30 -!- FireFly has quit (Quit: Leaving). 23:29:37 AnMaster: "I'm too lazy to remove useless lines of code" 23:29:43 pikhq, also I would be interested in seeing you criticising the unreadable code of ick next. That is the very least I expect from you 23:29:46 really 23:29:55 This is the sign of someone who should not be allowed near machinery more complex than a wheel. 23:30:02 pikhq, ^ 23:30:18 pikhq, next time ais is here I suggest 23:30:21 I'm sure he will like it 23:30:31 iirc the convickt code is especially bad 23:30:41 AnMaster is an expert at logical fallacy. 23:30:53 Doood 23:30:56 Wheel's are AWESOME 23:31:03 pikhq, the code for threaded intercal using setjmp()/longjmp() is also quite horrible 23:31:05 Have you ever really thought about just how brilliant the wheel is? :P 23:31:08 AnMaster: ick sucking does not mean that you have cause to suck. 23:31:09 It just means that ick also sucks. 23:31:23 pikhq, but you should certainly go complain to ais about this? 23:31:24 no? 23:31:36 And I'm going to go poke around at CIntercal. 23:31:41 pikhq: Difference: ick sucks on /purpose/. 23:31:43 It's esoteric C. 23:31:49 AnMaster's code isn't interesting-esoteric, it's just shit-esoteric. 23:31:52 also, *C-INTERCAL 23:31:55 pikhq, iirc the yuk code (debugger) was also quite messy 23:32:00 Oh, ick is *meant* to be unreadable? 23:32:15 pikhq, well, so is parts of cfunge. 23:32:15 pikhq: Well, its parser uses Perl idioms to pay homage to CLC-INTERCAL. 23:32:18 Well, then. AnMaster, your point is "ick is meant to suck therefore I can get away with sucking." 23:32:20 That's basically some of the fun :-) 23:32:33 AnMaster is just lying, his code isn't interesting-shit, it's just shit that he can't write properly so he falls back on the esoteric excuse 23:32:38 Heard it all before 23:32:38 What could be fun: C implementation that complies with the standard. Except that all the undefined and implementation defined behavor would be really funky. 23:32:43 -!- Tritonio_GR1 has joined. 23:32:50 Which can be reduced to "I'm a terrible programmer. Fuck you." 23:33:17 Ilari: AKA a DS9K implementation 23:33:21 Ilari: DeathS- what Deewiant said. 23:33:48 pikhq, unreadable code fits right into cfunge I feel. Consider the quite horribly unreadable macro stuff in lib/libghthash that double includes files to do something like C++ templates in C 23:33:59 quite a nice piece of unreadable code I feel 23:34:17 -!- Tritonio_GR has quit (Ping timeout: 258 seconds). 23:34:17 pikhq, well worth checking out if you like unreadable code! 23:34:22 Say, 17 bit chars, 34 bit shorts, 51 bit ints, 68 bit longs and 85 bit long longs. Or something even more crazy. 23:34:43 -!- oerjan has joined. 23:34:47 Ilari, doesn't char have to be a power of two in C99? 23:34:54 FUNGE_ATTR_FAST FUNGE_ATTR_NOINLINE FUNGE_ATTR_COLD FUNGE_ATTR_NORET static void print_features(void) 23:34:58 GAH WHAT IS WRONG WITH YOU 23:35:05 THE DUMB IT HURTS 23:35:09 -!- augur has quit (Ping timeout: 268 seconds). 23:35:19 -!- adam_d has quit (Ping timeout: 265 seconds). 23:35:22 yay I'm breaking your mind! 23:35:25 I'm surprised pikhq hasn't noticed cfunge before now. 23:35:31 Doesn't cold override fast there? 23:35:40 Deewiant: No. 23:35:48 It was truly the one thing that made me realise that AnMaster was irretrievably insane. 23:35:51 "cold" just means that it won't be stuck in the "hot" section. 23:35:59 Deewiant, the fast one could be dropped. 23:36:00 Thanks for the info! ... not 23:36:06 FUNGE_ATTR_COLD? 23:36:17 FUNGE_ATTR_HAWT 23:36:20 AnMaster: This is not the "holy fuck that's crazy" reaction that you get to say, Malbolge. 23:36:36 This is the "holy fuck THAT IS RETARDED I HATE YOU" reaction that you get to, say, LOLCODE. 23:36:47 AnMaster: I don't think there are more requirements than integer number of bits at least 8. 23:37:01 pikhq, did you look at the double include in that file I mentioned? 23:37:10 pikhq, but yes that FUNGE_ATTR_FAST should be removed 23:37:14 apart from that it looks fine 23:37:28 FUNGE_ATTR_NORET is to allow error checking anyway 23:37:32 Hmm, "mlton foo.sml" isn't terminating. 23:37:36 does the optimiser even use it? 23:37:37 Oh, now it is. 23:37:39 That was slow. 23:37:43 AnMaster: NOINLINE. In a static. Void. Function. That is only called once. 23:37:48 alise: But now it's fast! 23:37:59 Deewiant: Yes! It prints "Hello, world!" in 0.002 seconds. 23:38:00 This is "fuck you, optimiser, I'm going to make you do soemthing dumb". The attribute. 23:38:06 pikhq, correct. But why fill up the cache line for the "normal" path of code execution ;P 23:38:08 Amazing. 23:38:20 alise: Imagine! It probably would've taken 0.004 if it'd've compiled it in only half a second 23:38:26 AnMaster: Uh... 23:38:27 pikhq, after all it is for printing some info about the binary 23:38:28 Benchmark. 23:38:43 I DEMAND TO SEE BENCHMARKS JUSTIFYING EVERY SINGLE STUPID OPTIMISATION YOU HAVE MADE. 23:38:45 Deewiant: Of course, OCaml and Haskell both compile faster into similarly-performing binaries (OCaml beating Haskell by a lot). 23:38:52 Or 17 bit chars, 34 bit shorts, 51 bit ints, 85 bit longs and 119 bit long longs... 23:38:54 alise: Yep 23:39:08 17 bit chars, ew 23:39:10 Deewiant: SML/NJ, too. 23:39:11 pikhq, well, you are not my employer. So that you have to do yourself 23:39:28 alise: Don't go backpedaling on the language choice, now 23:39:36 AnMaster: Premature optimisation is the root of all evil. 23:39:36 And of course the canonical character set is is something totally whcky. 23:39:37 like anyone would pay AnMaster to code 23:39:39 At least when I write ugly code, I admit that the code is ugly 23:39:39 I'd pay him not to code 23:39:42 Deewiant, 17 bit char sounds fantastic 23:39:47 * Sgeo wonders if he's ever written nice code 23:39:49 Your code is filled with premature optimisation. 23:39:49 Deewiant: SML/NJ is Standard ML too, you know :P 23:40:01 pikhq, did you look at the double include stuff? 23:40:04 Thus, your code is made of evil. And not the enjoyable kind. 23:40:07 AnMaster: Where? 23:40:07 pikhq, yes or no? 23:40:14 alise: That's fine, OCaml and Haskell aren't ;-P 23:40:15 *Where*? 23:40:21 pikhq, I mentioned it above. *unreadability* WAS A GOAL 23:40:29 pikhq: lib/libghthash 23:40:31 pikhq, An express goal yes 23:40:33 AnMaster: *Where*? 23:40:39 pikhq, if you don't read what I say *shrug* 23:40:44 pikhq, I mentioned it above 23:40:45 AnMaster: I missed it. 23:40:49 pikhq: lib/libghthash 23:40:50 pikhq, your loss 23:40:56 I just saw "did you look at it in that file I mentioned?" 23:41:09 your loss I'm afraid 23:41:22 but yes Deewiant told you 23:41:27 lib/libghthash is a directory, AnMaster. 23:41:28 and you ignored that too 23:41:34 pikhq, yes but it affects the files in there 23:41:35 wow AnMaster is so pissy 23:41:36 most of them 23:41:36 it's kinda funny 23:41:40 :D 23:41:43 it's like i can feel him actually getting angry behind the screen 23:41:44 AnMaster: Uh... 23:41:48 so cute. 23:41:52 What the hell is your *point*? 23:42:03 pikhq, that unreadability *is* a goal sometimes in cfunge 23:42:05 "Files from there are double included"? 23:42:13 Darke is once again active in B 23:42:35 pikhq, the *_priv.h ones are included more than once to emulate C++ templates basically 23:42:39 as I SAID ABOVE 23:42:43 You've failed at *that* goal, too. Your code is just bad enough to make me think you're dumb. 23:42:45 your loss for not reading it 23:43:16 You want unreadable code? 23:43:26 pikhq, .. if you aren't going to read what I say anyway 23:43:29 a,b,c;main(z,i)char**i;{h:a=!a,b=!b;g:(b-1)[1[i]]>b[i[1]]?a^=a,c=(b-1)[1[i]],1[i][b-1]=i[1][b],b[i[1]]=c,b=&b[(void*)1]:(b=&b[(void*)1]),!b[i[1]]?:({goto g;}),a?:({goto h;}),b=!b;j:putchar(b[1[i]])[(void*)(b=&b[(void*)1])],1[i][b]?({goto j;}):putchar('\n');} 23:43:30 I'm not going to say anything 23:43:34 pikhq, heh nice 23:43:39 *That's* unreadable code. 23:43:43 pikhq, so it is. 23:43:51 Sgeo: wrong chanenl 23:43:53 *channel 23:44:00 pikhq, looks familiar? 23:44:00 I'm looking at hash_table_priv.h ATM. 23:44:08 coppro, alise isn't in ##nomic for some reason 23:44:16 pikhq, well I didn't write the hash library. 23:44:21 pikhq, but I adapted it 23:44:32 Looks cargo-cultish. 23:44:47 pikhq, to the specialisation (because at that point a 50% speed increased showed up, that was before static funge space) 23:45:00 pikhq, maybe. I don't know what part would be 23:45:09 * Sgeo 's done.. well, not cargo-cultish, but superstitious stuff before 23:45:38 pikhq, but please go bash ick next. Because a lot of it's unreadability is on the same level as this 23:45:46 now I'm going to bed. Night 23:45:50 Oh, the static inline fast-ness. 23:46:14 pikhq, actually I'm going to keep it. Because it does no harm. 23:46:31 There was one line, that I couldn't figure out why, but I left it in [or left it uncommented], because I thoguht it was related to crashinexss 23:46:34 now night → 23:46:37 and so, on that day, new heights of pure idiocy were reached. 23:46:52 I'm going to litter my code with "0;"! 23:46:55 HOORAY! 23:47:03 It does nothing so WHATS THE HARM? 23:47:04 i'm gonna start tagging all my functions static inline __attribute__((noreturn)) 23:47:07 even the ones that return 23:48:06 Also, AnMaster: double-including a header file so you can redefine the macros used for it? 23:48:11 Yeah, that's fairly mundane. 23:48:19 -!- oklofok has quit (Read error: Connection reset by peer). 23:48:24 Not "unreadable", not "clever". Just mundane. 23:48:41 -!- oklopol has joined. 23:48:52 you figured out how to twist the c preprocessor to do something actually useful as opposed to what it usually does (make code more confusing)! 23:48:53 ESOTERIC! 23:49:57 * Sgeo should write a language 23:51:04 Hm 23:51:15 newlanguage : functionalprogramming :: glass : OOP? 23:51:31 Sgeo: So, Lazy K. 23:51:36 *logicprogramming 23:51:36 moar esoteric 23:51:40 Wait, I think Unlambda has it covered. Or Lazy K, which I never heard of 23:51:55 Lazy K would be better without the multiple-syntaxes gimmick. 23:52:02 alise: It would. 23:52:16 The SKI-subset is what should be kept. 23:53:15 I'm not *completely* sure on why you hawk on the static-inline-fastness so much, since it does at least have a theoretical chance of having an effect -- good or bad -- if the function happens to be not inlined for some reason. 23:53:36 As opposed to the no-arg thing, I mean. 23:54:01 They're ridiculously tiny functions, and it is very unlikely for them to either not be inlined or have the fastcall-thing matter. 23:54:08 * Sgeo wants to write a .. relational DB language or something. Code and runtime stored in Database table 23:54:10 *tables 23:54:32 I tried to do something similar before, but iirc, it was never-implemented crap 23:54:47 Or maybe I only think it's crap because it was from a while ago 23:55:11 It seems that he just went through and fastcalled everything. 23:55:28 What's a fastcall? 23:55:31 MLton supports continuations via callcc and throw. 23:55:31 MLton has a facility for saving the entire state of a computation to a file and restarting it later. This facility can be used for staging and for checkpointing computations. It can even be used from within signal handlers, allowing interrupt driven checkpointing. 23:55:33 I think I'll like this language. 23:55:53 Isn't that more of an implementation thing than a language thing, having stuff stored in a DB table? 23:56:09 Sgeo: "fastcall" is an alternate C calling convention that sticks arguments in registers. 23:56:24 ugh, prolog handles arithmetic so shittily 23:56:32 It probably doesn't work with most FFIs, does it? 23:56:39 Not cleanly. 23:57:02 Are there any other reasons not to use Fastcall? 23:57:19 Not the standard calling convention. 23:57:41 Has some limitations on what arguments your function can take. 23:57:58 Makes me cockpunch you for using it everywhere. 2010-04-10: 00:01:01 With the FFI issue, it seems it would be bad to make public API functions use fastcall 00:01:10 -!- augur has joined. 00:01:36 Windows has 3 or 4 different calling conventions in its public API, BTW. 00:02:10 It's a bit of a microsoftism, in the sense that I think GCC got it to be compatible with MS __fastcall. Though I'm not entirely sure of the history. 00:02:11 o.O that sounds.. annoying 00:02:42 ugh, being sick sucks :( 00:03:47 coppro, feel better soon 00:04:26 I certainly hope so :/ 00:05:03 coppro, there's a possbility you won't? :( 00:05:24 well, I've been fighting this damn thing on and off for two weeks 00:05:46 coppro, see a doctor? 00:05:56 have; says it 00:05:59 *says it's just a cold 00:06:06 feels like just a cold too 00:06:43 As long as it really IS just a cold 00:07:22 It's... CANCER 00:08:17 that would seriously suck :( 00:09:28 why do I hate myself? 00:09:56 It's from all that copprophilia. 00:10:58 * pikhq groans 00:12:32 no sane human being could possible want to do what I am doing right now... therefore I am insane 00:12:46 but logical. 00:13:05 coppro: what are you doing? 00:13:19 playing IWBTG 00:13:22 :-) 00:13:40 -!- Tritonio_GR1 has quit (Read error: Connection reset by peer). 00:14:15 coppro: that's only valid classically, I think 00:14:42 okay... I've made it past the up-falling apples 00:14:48 pfft, that's easy 00:15:12 now for the clouds :( 00:15:24 wimp, that part of the game is easy 00:15:49 lol 00:18:05 it would be nice to have a logical operation that didn't need parenthesising 00:18:11 like with nand you still need delimiters of some sort 00:18:12 you must be using some dictionary I don't know of 00:18:26 coppro: More vitamin D? :-> 00:18:26 but if we had an operation where we could specify either left or right associativity 00:18:38 and have it stand in for all our operations 00:18:51 then we could just say a logical expression is a list of variables and quantifiers, pretty much 00:20:03 i tihnk that's impossible though :( 00:20:04 *think 00:28:57 * Sgeo despises seeded grapes 00:29:16 what about seeded bananas? 00:29:54 How ARE you supposed to eat these damn things?!? 00:30:20 -!- augur has quit (Ping timeout: 276 seconds). 00:31:11 Me: Can I just swallow the seeds? Dad: No. Me: What will happen if I do? Dad: Nothing 00:31:19 -!- augur has joined. 00:36:21 that sounds like a problem with your dad, not the seeds. 00:36:37 i suggest sending him in for repairs. 00:36:49 pi - sqrt(pi)^2 = -0.0000000000000008881784; this thing really shouldn't be called "real" 00:37:07 oerjan, so, does that mean I should just eat the damn seeds? 00:37:08 unreal arithmetic 00:37:27 if you want to 00:39:25 on the flip side, i vaguely recall a long time ago my dad said one _should_ eat the cores of apples. i also vaguely recall recently reading apple seeds _are_ poisonous. 00:40:41 Apple seeds contain trace amounts of cyanide 00:40:49 but they are undigestable in any case 00:40:53 -!- MizardX has joined. 00:41:06 * Sgeo finds a video called "how to eat seeded grapes properly" 00:41:22 saved by the internet :D 00:42:15 Not that helpful 00:42:25 He goes over what DOESN'T work 00:42:53 * oerjan vaguely recalls when he had seeded grapes, he just ate the damn seeds 00:42:58 http://www.associatedcontent.com/article/961122/how_to_eat_nonseedless_grapes.html 00:43:31 i think chewing the seeds was a bit mixed experience, though 00:43:50 Nonseedless, what a nice way to put it. Why not unnonseedlessless? 00:44:14 Maybe "how to eat seedy grapes" would have had the wrong connotations. 00:44:35 Sgeo: lawl wtf 00:44:50 I ate "non-seedless" grapes for years, we grew them in our back yard :P 00:44:55 The proper way to eat them ... is to eat them :P 00:45:09 Including the seed>? 00:45:42 This is so complicated for Sgeo! 00:45:48 And how /do/ you open a banana anyway? 00:46:14 hm i've heard there's been some recent progress on banana opening technique 00:46:24 as in, the way i've always done it is not the best 00:46:39 alise: Sledgehammer. 00:46:46 the problem with the monkey technique is that... I forget 00:46:51 there's something wrong with it, anyway 00:46:53 Heavier the better. 00:47:00 so i'd stick to what you're doing 00:47:14 (i usually make a small break by the stem, then unwrap) 00:47:48 alise: it's probably messy or something 00:48:04 http://www.flickr.com/photos/philgyford/4505748943/sizes/o/ 00:48:04 | 00:48:04 /< 00:48:07 they're _monkeys_ after all 00:48:14 thank you, myndzi 00:48:45 What's wrong with eating the peel, exactly? 00:48:54 (Not that I eat banana peels) 00:49:36 alise: they shouldn't use 100%, that looks unprofessional and makes us think they grew up in north korea or something 00:50:08 i expect it's somewhat stringy? 00:50:35 also probably covered in pesticides 00:51:33 I don't think monkeys care about pesticides so much 00:51:55 probably why they're endangered. 00:53:07 wait, he actually suggests blowing the seeds out of your mouth 00:54:17 i guess it goes with the outside recommendation from earlier. 00:54:36 this seems ill-adapted to norwegian conditions. 00:54:53 Completely tangential, but: http://forums.mtgsalvation.com/attachment.php?attachmentid=104059&stc=1&d=1270799424 RoE is going to be awesome. 00:55:32 Steam, for the moments where it worked, showed RoE in My games, as a trial thing 00:55:40 Too bad I can't get Steam to not crash 00:56:50 Sgeo: Rise of the Eldrazi? 00:57:04 pikhq, not sure 00:59:15 pikhq: indeed! 00:59:43 * coppro thinks he'll actually be playing at the prerelease 01:00:24 augur: i thought your comment about grammars was more interesting than the conversation around it 01:00:34 :x 01:00:38 sewing grammars! 01:02:26 yes that one 01:02:36 its quite interesting 01:02:46 wanna hear about them? :x 01:02:52 NO 01:03:04 i was just leaving, give me a there line explanation (short lines) 01:03:09 *three 01:03:44 ok here goes 01:03:57 okay i won't count that as one cuz i like you. 01:05:03 a sewing grammar consists of two sets of n-dimensional string vectors like (where 0 is the empty string); one set is the basis, the other is the rules. 01:06:22 vector concatenation is what you expect, e.g. + = . the vector language of the grammar is just the basis closed under right-concatenation with the rules 01:06:57 e.g. b + r0 + r1 + ... for b in the basis, and r0, r1, ... in the rules 01:07:13 the string language is the set of strings generated by applying some function to the members of the vector language 01:07:58 i'm sorry we'll have to ignore that last line, you went over quota 01:08:03 :P 01:08:04 :P 01:08:29 so just as an example, take the classic non-CF language a^n b^n c^n 01:08:48 taken 01:09:03 that has no solutions for n > 2. i know this! 01:09:14 let the basis be just <0,0,0>, and let the rules be just , and let the string-generating function be f = xyz 01:09:35 yeah 01:09:47 <0,0,0> + + + ... is , obviously. 01:09:54 obviously 01:10:03 or take a^n b^m c^n d^m 01:10:17 and <0, b, 0, d> 01:10:26 let the basis be <0,0,0,0> and let the rules be and <0,b,0,d> 01:10:27 yep. 01:10:29 and there you go. 01:10:48 i wish we had more courses about grammarness 01:11:07 or take the word duplicate language ww for w in {a,b}* 01:11:18 for all letters 01:11:22 B = <0,0>, R = , 01:11:23 :) 01:11:41 sewing grammars: pretty easy. 01:12:05 also i find it intriguing, what can you express with it? 01:12:10 now, how you get more traditional CF languages i dont know. 01:12:10 i guess depends on f 01:12:28 the paper i learned about them from just addressed these kinds of phenomena 01:12:37 for palindromes, just make f reverse the latter one 01:12:37 balanced nested parens, for instance? no clue. 01:12:53 i think that's why they let you have a function and not just concatenation in the end 01:12:59 true. the problem with having f as a non-concatenative function is that it could be almost anything 01:13:08 sure 01:13:17 that's why "i guess depends on f" 01:13:21 yeah 01:13:23 anyway 01:13:27 go to sleep oklopol. :p 01:13:38 well not so much sleep as algebra 01:13:43 well, maybe sleep too 01:14:14 thanks for showing me the ways of sewing ~~~> 01:20:24 algebra! 01:23:57 algae bras 01:36:58 Huh, Caml was developed to implement Coq. 01:37:17 ML, on the other hand, originated in LCF (later HOL, Isabelle, etc.). 01:37:20 Proof war! 01:45:37 alise: thats rather interesting 01:46:32 Making a language in order to implement a language? 01:47:00 Sgeo: it makes sense 01:47:12 well, proof systems are really complex 01:47:18 indeed 01:47:20 so you want an expressive functional language to do it in 01:47:40 so actually making caml then making coq is way less effort in the long run than e.g. writing coq in c 01:47:46 (and longer-lasting bitrotwise) 01:47:54 Why not Haskell? 01:48:05 or some other language. i imagine that imperative languages might be useful for some sorts of logic 01:48:48 -!- BeholdMyGlory has quit (Remote host closed the connection). 01:49:46 Sgeo: didn't exist at the time 01:49:51 + not very performant, 01:49:55 + personal taste 01:49:58 but yeah, this was way before haskell 01:50:00 late 80s early 90s 01:51:21 haskell debuted 5 years after caml, just fyi. caml: 1985, haskell: 1990 01:51:46 Should I attempt to learn O'Caml? 01:52:06 yes. 01:52:25 i need a name for a language phenomena 01:52:29 anyone care to help? :X 01:52:35 well, its not really a language phenomena 01:52:52 Any way to avoid tutorials that assume I've never seen a functional language before? 01:52:53 its a formal property of certain kinds of grammars, but it relates to linguistic phenomena 01:54:46 Any reason to learn O'Caml when I know Haskell 01:55:20 Sgeo: diverse perspective. 01:55:46 Sgeo: O'Caml has objects. 01:55:59 You can drink the OOP coolaid. 01:56:06 Koolaid, too. 01:56:19 * augur drinks pikhq's Koolaid 01:56:48 http://www.post-gazette.com/pg/10099/1048991-67.stm?cmpid=newspanel1 I'd drop TV in a heartbeat 01:57:10 i have a TV. 01:57:11 augur: you mean the phenomena of using -a plural nouns in the singular? 01:57:12 I mean, I almost never turn on a TV, I use Hulu. If it came down to Hulu vs. rest of the Internet, I would drop Hulu 01:57:13 its connected to my PS2. 01:57:30 oerjan: no. i presume you mean "data" as a singular? 01:57:30 -!- Oranjer has joined. 01:57:33 s/Hulu/Hulu and .. other means of watching shows/g 01:57:39 augur: and, _phenomena_ 01:59:13 well, its work pointing out that both of those words are loan words, and so its invalid to say that it's an -a plural. it's merely an irregular plural, english has no class of -a plurals as an actual class of the language, they exist only epiphenomenally as an artifact of the source language. 01:59:38 second, "phenomena" is an accepted, tho less common, singular form of the word 01:59:59 third, "data" in many dialects is a mass noun (like milk), hence "the data is" ~ "the milk is" 02:00:54 I still prefer "the datum is". 02:01:14 But, then, I'm a nerd who thinks English isn't complex enough. :P 02:01:29 english morphology isnt complex, this is true 02:01:46 but then, neither is latin or greek, in the grand scheme of things. 02:04:42 but english has plenty of complexity syntactically 02:04:55 if you want some introductions to this complexity, i would be happy to provide. :) 02:05:18 Sure, why not? 02:05:56 :o 02:06:08 my favorite example is extraction islands and parasitic gaps 02:07:23 :O 02:07:31 so you can do these things like extract sub-elements, right 02:07:32 for instance 02:07:45 John saw [the man] ==> [the man] that John saw ___ 02:07:51 To add two floats together you need to use a different operator, +. (note the trailing period). 02:07:54 That sounds fun 02:07:57 :( 02:08:07 and you can do it from both subject and object position 02:08:18 [the man] saw John ==> [the man] that ___ saw John 02:08:29 but you can only do it once 02:08:32 so for instance 02:09:25 [the man] saw [the woman] ==> [the man] that ___ saw [the woman] ==> ... ==> John saw [the man] that ___ saw [the woman] =/=> [the woman] that John saw [the man] that ___ saw ___ 02:09:48 pikhq: make sense? 02:10:13 not the why behind it, but just the fact of the matter 02:10:38 What's with the ;; thing? 02:10:56 augur: o.O 02:11:01 what? 02:11:03 Sgeo: stop trying to learn ocaml. 02:11:07 it's not a very good language 02:11:20 That's about it. 02:11:26 but, also, don't diss things like that; they're design choices 02:11:34 pikhq: i presume you understand roughly what im showing with "John saw [the man] ==> [the man] that John saw ___" 02:11:35 yes? 02:11:48 Yeah. 02:12:31 and i presume you get what i'm showing with "[the man] that the woman saw ___ ==> John saw [the man] that the woman saw ___" 02:12:32 yeah? 02:12:57 "o.O" is not a reaction of not understanding. 02:13:07 oh ok :p 02:13:15 its an expression of "thats fucking weird"? 02:13:43 Yes. 02:13:51 want some more weirdness? :) 02:14:22 Sgeo: ignoring syntactic ugliness is a prerequisite for learning ocaml 02:14:47 John saw [the man] before he met him ==> [the man] that John saw ___ before he met him 02:14:52 but 02:15:10 well no lets say not "met him" but "met the woman" 02:15:32 John saw the man before he met [the woman] =/=> [the woman] that John saw the man before he met ___ 02:15:35 English's syntax is crazy when you actually think about it. 02:16:11 to some degree. its quite well behaved, but it has a bunch of bizarre phenomena. this one actually is apparently a universal phenomena of language, but 02:16:13 Hm. Should I switch to speaking Lojban? 02:16:23 so you see how that last one is weird? 02:16:39 Yeah. 02:16:39 you cant extract out of an adverbial clause "before he met the woman" 02:17:25 ok now watch this 02:17:44 suppose that john saw the woman before he met that same woman 02:17:46 now: 02:18:00 [the woman] that John saw ___ before he met ___ 02:19:39 whats up with that, huh 02:20:11 if you extract out of the main clause object position, having the gap in the adverbial object position is no longer bad 02:21:24 the examples of that sort of thing multiply when you look at the different positions for the different gaps. 02:24:53 -!- zzo38 has joined. 02:25:47 Can you write a music using Bohlen-Pierce notes? 02:26:28 what is a music. 02:28:13 Bohlen-Pierce music is music that the notes follow 3^(n/13) instead of 2^(n/12) 02:28:42 your grammar is horrible 02:28:47 I think I heard of that! 02:28:59 on my local college radio station, I believe 02:29:02 that or NPR 02:30:31 zzo38: sorry about that, i got augur wound up by criticising _his_ english 02:30:44 Your Englishes all are sucks. 02:30:44 it's all my fault, really 02:30:58 oerjan: yes only my english was grammatical, and you're not a native speaker. ;) 02:31:20 augur: hasn't prevented me from correcting native speakers before 02:31:33 I think anarchy golf is broken (it is now maintenance?), did I break it by setting the PID too much? 02:31:41 Oerjan speaks better English than many a native speaker. 02:31:54 well writes 02:31:57 Well. At least types it. No idea how well he speaks it out loud. :P 02:31:57 true, but it DOES mean that your judgments are not reliable. your book knowledge might be, but your judgments are not. 02:32:43 augur knows english when he sees it. also, pornography. 02:32:51 :) 02:32:57 its true tho 02:33:03 Do most people NOT know pornography when they see it? 02:33:17 you can have exquisite book knowledge of english, but your intuitions about english will never match a native speakers 02:33:19 "There are all these naked people putting their body parts into each other in this picture ... what's going on?" 02:33:23 the same is true for any language 02:33:28 augur: Dude, all that's merely a matter of how much correct English he's seen. Of course, hardly any non-native speaker is going to be exposed to the foreign language as much as a native speaker is... 02:33:42 pikhq: no, it doesnt matter how much correct english he's seen 02:33:54 I don't like to watch pornography 02:34:09 there are certain things that are not possible for a non-native speaker to get, for some reason. 02:34:29 at least not without extreme attention given to the issue in question 02:35:26 * Sgeo goes to play some Worms 02:35:42 its a difference between knowledge of facts of the language, vs knowledge of the procedure that resulted in those facts 02:36:24 native speakers possess procedural knowledge that is independent of the particulars, and hence they can produce judgments for arbitrary expressions 02:36:43 can this procedural knowledge ever be taught to a non-native speaker? 02:36:53 -!- oerjan has set topic: DO NOT FEED THE AUGUR | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:36:54 second-language speakers, on the other hand, learn things as facts about particular words or constructions 02:36:59 Oranjer: Yarly 02:37:03 Oranjer: some of it can, some of it cant. 02:37:12 we dont actually _understand_ the procedural knowledge, so 02:37:18 Some of it can, some of it Kant. 02:37:54 -!- augur has set topic: DO NOT FEED THE AUGUR | /augur eats oerjan | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:38:05 yipe 02:38:14 Let's go back to porn :P 02:38:22 -!- augur has set topic: DO NOT FEED THE AUGUR | /augur eats oerjan out | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:38:25 Or is that what you mean tby "eat" 02:38:27 Hahaha 02:38:29 Win. 02:38:34 ;) 02:38:46 i aims to please 02:40:05 -!- oerjan has set topic: Topic closed by the moral police | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:40:17 -!- augur has set topic: Topic closed by the moral police | fuck the police | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:41:05 -!- Gregor has set topic: Topic closed by the moral police | fuck the police | (pics or it didn't happen) | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:42:07 -!- augur has set topic: Topic closed by the moral police | fuck the police | (pics or it didn't happen) | http://www.motherrussiasdaughters.com/images/euro-pornstars/euro-babe_2.jpg | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:42:34 I like the dagger style :P 02:42:50 Also, you came up with that link in a distressingly short amount of time :P 02:43:22 google images: "police uniform sex" 02:43:22 you think i just said augur knows his pornography for no reason, do you? 02:43:34 i know my google-fu, more accurately. 02:43:38 IIRC, that's not HIS pornography :P 02:43:43 OR SO YOU CLAIM 02:43:45 decidedly not. 02:43:53 sorry, the "his" was a typo 02:44:04 actually it wasnt 02:44:05 or misremembering, rather 02:44:07 its just a different his. 02:44:15 argh 02:44:33 english lets you say "I know my X" to mean "I know a lot about X" 02:44:53 as opposed to meaning "I know the X that belongs to me" 02:45:07 similarly for other possessive pronouns. 02:45:16 I was just riffing off the ambiguity :P 02:45:41 * augur riffs off gregor's ambiguity 02:45:43 ;o ;o ;o 02:46:03 * Gregor rips off augur's ambiguity 02:46:18 :x 02:46:22 hot 02:46:32 Did I say "ambiguity"? 02:46:35 I meant "clothes" 02:47:25 Can we go back to English now? X-P 02:47:43 also consider pied piping 02:48:23 ofcourse its considered bad form to strand your prepositions, eg "who(m) are you talking to" vs. "to who(m) are you talking" 02:48:50 but in some cases, you have to do more than just move the preposition along with the WH phrase 02:48:53 Oh pffft. 02:48:58 To consider that bad form is quite outdated. 02:49:09 true, but it was an example of pied piping 02:49:11 Gregor: hey, i was trying to subtly get us _away_ from English, here. and failing miserably. 02:49:19 To whom is it that you are speaking? 02:49:21 where you bring the extra but (the preposition) with you 02:49:27 but consider 02:49:32 This is the kind of language up with which I cannot put. 02:49:33 hot piping pies 02:49:36 "john was shocked by a book about joan of arc" is acceptable, but if you want to ask who the book is about 02:49:46 "who was john shocked by a book about" 02:49:48 this is pretty horrible 02:49:59 and it doesnt get better by pied piping the preposition: 02:50:06 "about who was john shocked by a book" 02:50:07 also horrible 02:50:13 but if you take the whole NP its fine: 02:50:16 A book about Joan of Arc John was shocked by; to whom it is that you are speaking is John. 02:50:18 "a book about who shocked john" 02:50:19 Police police police police police police police. 02:50:21 dammit s/hot piping/piping hot/ 02:50:26 Gregor: XD 02:50:35 Police, in Buffalo 02:50:39 HAWT BEASTIALITY 02:50:40 we,, sorry, "a book about who was john shocked by" 02:50:44 a ni way 02:50:47 i'ma go now 02:50:53 see you cool dudes tomorrowz 02:50:58 alise: see you 02:51:14 -!- alise has quit (Quit: Leaving). 02:51:36 "john read about about joan of arc" 02:51:52 =?=> "who did john read a book about" 02:52:08 =?=> "about who did john read a book" 02:52:20 whomsoever 02:52:22 =/=> "a book about who did john read" 02:52:40 so here youve got pied piping that is _bad_ 02:53:05 noone understands this phenomena/on either 02:53:43 The famous Dr. Daniel Noone understands most everything. 02:54:00 its true 02:55:55 Daniel Noone is an ancestor of Noonien Soong 02:56:06 Booh hiss at Trek references :P 02:56:16 you should see this paper im working on 02:56:24 Boo hiss at working on things. 02:56:25 >_> 02:56:34 my example sentences are all star trek references 02:56:54 specifically, instead of using the classical example "brutus stabbed caesar", i have "worf stabbed gowron" 02:57:02 insted of "a small brown dog" its "a small brown targ" 02:57:26 Ow. 02:57:27 My brain. 02:57:30 I needed that for thinking. 02:57:41 thinking is overrated. 02:58:18 Druhhhhhhh 02:58:49 I invented how to make up Pokemon Red on 8x8 ASCII only display with 7 buttons it works fine 02:58:55 ive decided that im going to use example sentences, in a series of papers, such that if you collected the example sentences together in order of appearance 02:59:12 they actually outline a plot of an episode of some random scifi show 03:00:46 OK, I like that idea a bit 03:00:58 * Gregor sobs silently to himself in the corner. 03:02:06 my intention is to make the sequence of sentences unassuming, so that you wouldnt realize whats going on unless you're astute 03:02:13 seq 100 1100 > /dev/dsp 03:02:24 e.g. using farscape, babylon 5, firefly, efc, etc. 03:02:27 less well known scifi 03:02:55 that way, if someone comes up to you afterwards and indicates that they recognize the story, you've discovered a fellow nerd 03:03:00 and made a new friend 03:03:32 augur: Yes I suppose that helps. But first you have to figure out the best way to make the example like that 03:03:41 s/friend/stalker/ 03:03:43 its not that hard 03:03:49 Gregor: theres a difference? 03:03:53 But gimme a minute! 03:03:58 Damn, you put another line in there. 03:04:01 Ruined my nonsense zinger.' 03:04:07 :) 03:04:15 i aims to displease 03:04:31 Basically, you aim to alter net pleasure. 03:04:42 Once I was testing some computer and I typed in: yes > /dev/dsp 03:04:56 * Gregor does that :P 03:05:05 Well that's unpleasant. 03:05:32 You can type yes yyyyyyy to make it lower pitch 03:05:40 The more "y" you add, the low pitch 03:06:38 is this in bash? 03:06:45 Sure. 03:07:43 thats useless 03:08:15 allit does is loop printing yyyyyyy 03:08:16 :| 03:08:29 But you can put > /dev/dsp 03:08:36 oh ok 03:08:36 And then it will sound 03:08:54 permission denied! D: 03:09:01 whats /dev/dsp 03:09:31 I think you might also be able to use > /dev/audio or | aplay -t raw 03:09:31 42nd notes. Just calculated that. Friggin' Chopin. 03:09:45 -!- lament has joined. 03:09:55 ah well, im on a mac so 03:10:13 Dood, they're the 7-tuplets of triplets! WTFWTF *boom* 03:10:15 Use the equivalent mac command, I don't know what it is 03:10:20 neither do i :D 03:10:34 Doesn't Mac have OSS? 03:10:36 Probably "yes" is the same, though 03:10:44 Gregor: have you implemented the theory in Generative Theory of Tonal Music yet? 03:11:01 augur: Nope! 03:11:07 lame 03:11:08 do so! 03:11:12 augur: I've chosen to implement my fingers onto this piano instead. 03:11:20 o ok 03:26:29 -!- oerjan has quit (Quit: Later). 03:32:42 -!- zzo38 has quit (Remote host closed the connection). 03:34:42 -!- Oranjer1 has joined. 03:35:34 -!- Oranjer has quit (Ping timeout: 264 seconds). 04:06:25 -!- augur has quit (Ping timeout: 264 seconds). 04:14:00 -!- augur has joined. 04:27:45 -!- lament has quit (Quit: lament). 04:35:02 -!- Oranjer has joined. 04:37:58 -!- Oranjer1 has quit (Ping timeout: 264 seconds). 04:40:30 -!- Quadrescence has quit (Ping timeout: 245 seconds). 04:43:00 -!- Quadrescence has joined. 04:47:44 Would it be entirely wrong to say that a VM is an interpreter for machine code? 04:50:14 no 04:55:58 -!- oklopol has quit (Read error: Connection reset by peer). 04:56:20 -!- oklopol has joined. 05:04:26 -!- Alex3012 has joined. 05:08:33 -!- augur has quit (Ping timeout: 276 seconds). 05:10:09 -!- oerjan has joined. 05:11:53 -!- oklofok has joined. 05:12:27 -!- oklopol has quit (Ping timeout: 276 seconds). 05:15:19 -!- Guest_126 has joined. 05:15:45 -!- Guest_126 has quit (Quit: Disconnected from OpenPilot Forums). 05:28:10 -!- augur has joined. 05:32:51 -!- Oranjer has left (?). 05:33:01 -!- Quadrescence has quit (Ping timeout: 252 seconds). 05:42:41 -!- Quadrescence has joined. 05:43:17 -!- lament has joined. 05:47:49 -!- lament has quit (Client Quit). 05:57:44 -!- oerjan has quit (Quit: leaving). 07:58:25 -!- oerjan has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:08:16 -!- kar8nga has joined. 08:12:43 -!- gm|lap has joined. 08:21:01 -!- Gracenotes has quit (Remote host closed the connection). 08:58:00 -!- jcp has quit (Ping timeout: 276 seconds). 09:07:37 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 09:16:29 -!- oerjan has quit (Quit: leaving). 09:29:14 -!- kar8nga has quit (Remote host closed the connection). 09:38:27 -!- lament has joined. 10:10:55 -!- Gracenotes has joined. 10:22:40 -!- tombom has joined. 10:44:45 -!- lament has quit (Quit: lament). 11:18:03 -!- augur has quit (Ping timeout: 260 seconds). 12:02:03 -!- adam_d has joined. 12:05:36 -!- gm|lap has quit (Quit: ilua). 13:03:24 -!- adam_d has quit (Ping timeout: 240 seconds). 13:12:09 -!- BeholdMyGlory has joined. 13:15:53 -!- Tritonio_GR has joined. 13:19:09 -!- alise has joined. 13:20:34 Good morning! 13:28:20 Cool, G(12) > G_64 where G = goodstein function. 13:28:25 -!- Quadrescence has quit (Ping timeout: 245 seconds). 13:28:31 Admittedly it has a rather more complex definition. 13:29:18 -!- Quadrescence has joined. 13:29:21 -!- Quadrescence has quit (Changing host). 13:29:21 -!- Quadrescence has joined. 14:07:00 http://upload.wikimedia.org/wikipedia/commons/1/15/Champernowne_CF.png the champernowne constant has a pretty fucked up continued fraction 14:07:05 that last term isn't even the complete one 14:09:03 -!- kar8nga has joined. 14:48:18 * alise plays with Prolog 14:54:54 coool 15:07:43 -!- oerjan has joined. 15:11:26 wow symbolic differentiation in prolog is like... stupidly fucktardedly easy 15:11:56 d(X, X, 1). 15:11:57 d(X, Y, 0) :- \+ X = Y. 15:11:57 d(U+V, X, A+B) :- d(U,X,A), d(U,V,B). 15:11:57 d(U*V, X, (U*A) + (V*B)) :- d(V,X,A), d(U,X,B). 15:11:57 d(U/V, X, (V*A) / (U*B) / (V^2)) :- d(U,X,A), d(V,X,B). 15:11:57 d(U^V, X, (V*(U^(V-1))) * A) :- d(U,X,A). 15:12:18 err omit that X,Y,0 line I just added it and it messes things up 15:12:31 ?- d(x^2, x, R). 15:12:32 R = 2*x^ (2-1)*1. 15:12:53 foo(X,R) :- d(X^2,X,E), R is E. 15:12:53 ?- foo(34, R). 15:12:53 R = 68. 15:15:48 what's \+ ? 15:16:26 \+ X succeeds iff X fails 15:16:27 but ignore that line; it breaks stuff 15:16:27 I need to condition on X being a symbol 15:16:34 otherwise every differentiation gets the extra possibility R = 0 15:16:40 because of what your variables could be 15:16:44 heh 15:16:44 ?- d(X*Y,Y,X). 15:16:45 X = 1, 15:16:45 Y = 1*** ; 15:16:45 X = ** * 1+** * 1, 15:16:45 Y = ** * 1+** * 1 ; 15:16:46 ERROR: Out of local stack 15:16:49 (where ** represents "anything") 15:16:54 so 1*** is 1*something 15:17:14 (i.e. "what values for X and Y make the derivative of X*Y over Y equal to X?") 15:18:00 I like how we use the fact that arithmetic isn't automatically evaluated to return a symbolic expression, but we can then easily numerically evaluate it 15:18:06 because it's just the tree structure of prolog arithmetic 15:18:41 i think your U^V is wrong 15:18:46 btw if you use UPPERCASE VARIABLES as the variables for d it enumerates all the possible cases for the variable and the result... which is often not what you want 15:18:51 unless V is a constant 15:19:04 d(x^x, x, R) otoh will give you the expression 15:19:06 oerjan: yes... 15:19:12 I need to figure out how to express is-constant 15:19:26 oerjan: I think I can express it as: "V does not mention the variable" 15:19:36 no, you just need to use the multivariable chain rule properly :) 15:19:55 yeah but i'm lazy 15:20:47 and this is nice and short 15:20:57 d(U^V) = V*(U^(V-1))dU + ln U * U^V * dV 15:21:48 Fiine. 15:22:17 oerjan: but log is floating-point in prolog :( 15:22:20 oh, wait, that's only if you evaluate it 15:22:24 so the symbolic result will be precise 15:22:28 ha! this is perfect 15:22:53 oerjan: I hope that prolog uses the same precedence as your expression 15:22:57 (I really suck at operator precedence) 15:23:05 I know I have redundant parens in 15:23:09 (U*A) + (V*B) 15:23:13 and I think in (V*A) / (U*B) 15:23:44 oerjan: that rule broke my system 15:23:58 you can do d(X^2, X, R) 15:24:01 but not d(x^2,x,R) 15:24:38 you lack a rule for constants 15:25:18 also, division has a bug, should be (V*A - U*B) / (V^2) iirc 15:25:36 er right 15:25:39 i suck at mentally parsing things :( 15:25:54 hm or is that the wrong sign... 15:26:13 that is right i think 15:26:45 term_variables(+Term, -List) 15:26:45 Unify List with a list of variables, each sharing with a unique variable of Term.47This predicate used to be called free_variables/2 . The name term_variables/2 is more widely used. The old predicate is still available from the library library(backcomp). The variables in List are ordered in order of appearance traversing Term depth-first and left-to-right. See also term_variables/3. For example: 15:26:46 i'm unsure of the order of the terms 15:26:46 :))) 15:26:47 that sounds helpful 15:27:08 oerjan: i just looked it up that's right 15:27:12 ok 15:27:33 dammit, term_variables only works for UPPERCASES 15:27:42 -!- tombom_ has joined. 15:28:00 well of course, those are the variables, duh 15:29:01 yes 15:29:05 but I support differentiation on littles too 15:29:07 :P 15:29:08 d(X, Y, R) :- atom(X), \+ X = Y -> R is 0 ; R is 1. 15:29:20 (you can do this as two, shorter rules but then d(x,x,R) says R = 1 and then false which is irritating) 15:29:28 so will your ^ rule work now? 15:30:35 well i don't know why it didn't work the first time, how do you encode it? 15:30:44 -!- tombom has quit (Ping timeout: 276 seconds). 15:32:34 -!- adam_d has joined. 15:34:16 d(U^V, X, V*(U^(V-1)) * A + log(U) * U^V * B) :- d(U,X,A), d(V,X,B). 15:36:52 looks right to me 15:36:55 food -> 15:39:30 oerjan: it works at the expense of totally breaking things 15:39:41 because I basically have to add the default rule that d(x) = 1 15:42:15 oerjan: also at the expense of, you know, not actually giving correct results 15:43:24 but you _already_ have d(X,X,1) 15:45:31 nope 15:45:34 just changed things: 15:45:40 constant(X, Y) :- number(X) ; atom(X), \+ X = Y. 15:45:40 d(X, Y, R) :- constant(X, Y) -> R is 0 ; X = Y -> R is 1. 15:46:05 ?- d(x^2,x,E). 15:46:05 E = 2*x^ (2-1)*1+log(x)*x^2*0. 15:46:10 that *0 is fucking everything up 15:46:16 paren issue? 15:46:53 um that's correct, that term is supposed to cancel out when the exponent is a constant 15:47:24 (log(x)*x^2*0) 15:47:32 + has lowest precedence 15:49:00 then how come foo(n,R) = 0 for all n? given 15:49:05 foo(X,R) :- d(X^2,X,E), R is E. 15:49:09 or is your rule in addition to the previous one? 15:52:02 what rule 15:52:18 what do you mean by "all n" 15:52:55 if you evaluate foo(3,R), say, then of course you are doing d(3^2, 3, E) which is nonsense 15:53:19 you cannot substitute values until _after_ you have differentiated with a proper variable 15:54:23 this worked before though :) 15:54:27 with the other rules you can use uppercase vars too 15:54:58 only by luck. if you differentiated 3*x at x=3 it would break 15:55:53 hmm, right 15:57:10 -!- FireyFly has joined. 15:57:56 oerjan: but prolog has no function to substitute lowercase atoms does it? 15:58:44 i don't know, but i'm sure you can write one 15:59:26 that's a shame though I thought it was so awesome :( 15:59:26 oerjan: mind - 15:59:29 upper case i more efficient since it's essentially in-place update 15:59:34 d(X^2,X,E) with no constraints on X (e.g. argument) should work 15:59:40 it enumerates all the possible input pairs and output expressions 15:59:42 *is 15:59:53 ?- d(X^2,X,E). 15:59:54 X = ** ^ 2, 15:59:54 E = 1 ; 15:59:54 E = 2*X^ (2-1)*1+log(X)*X^2*0 ; 15:59:54 X = ** + **, 15:59:55 E = 2* (** + **)^ (2-1)* (1+1)+log(** + **)* (** + **)^2*0 ; 15:59:57 X = ** + **, 15:59:58 E = 2* (** + **)^ (2-1)* (1+ (1+1))+log(** + **)* (** + **)^2*0 16:00:27 eek :D 16:00:46 oerjan: writing a substitution function probably won't be so easy, as i have to handle variadic stuff 16:00:53 prolog should just be LOGICALLY CURRIED :))) 16:01:12 also i didn't say there _wasn't_ a function to substitute lowercase atoms, i said i didn't know 16:01:44 fuk currying 16:01:49 oerjan: i looked and couldn't find one 16:02:02 oh wait, d only ever generates function expressions with two arguments 16:02:03 convenient 16:02:07 and the function is always constant 16:03:21 * alise wonders why subst(X, X, Y, Y). 16:03:21 subst(F(A,B), X, Y, F(A2,B2)) :- subst(A,X,Y,A2), subst(B,X,Y,B2). 16:03:21 doesn't parse 16:03:23 the second line in particular 16:03:49 oerjan: I wish you could do it for uppercase vars it'd be a lot prettier 16:04:25 -!- FireyFly has changed nick to FireFly. 16:04:27 um why can't you 16:04:47 because you can't bind X 16:04:47 or wait 16:04:48 can you do 16:04:56 d(X^2, X, E), X is 34, R is E. 16:04:56 ? 16:05:04 sure 16:05:16 *X = 34 16:05:24 iirc 16:05:28 hmm problem is that generates the correct result /but/ 16:05:43 then it says it has more terms 16:05:44 and going on loops 16:05:46 (trying every other number to see if it's 34) 16:06:40 the problem is d/3 tries to substitute values for X 16:06:42 apart from that it works 16:06:53 ah you can just put ! after 16:06:58 foo(Xv,R) :- d(X^2, X, E), X = Xv, R is rational(E), !. 16:07:28 ?- foo(pi, R). 16:07:28 R = 6.28319. 16:07:29 (I removed the rational()) 16:07:39 still, it seems cleaner to do it with x 16:07:45 because then we can do more symbolic jiggery-pokery 16:08:43 still, this is awesome 16:08:49 imagine how awkward it would be in C :-) 16:09:08 alise: Which prolog do you use? 16:09:16 SWI 16:09:20 thought so 16:09:33 I might play with prolog a little more today. I haven't in so, so long 16:09:39 gprolog sort of doesn't feel terribly prologish to me and i think has weird names for some procedures I use intuitively 16:09:45 all the ones that aren't gprolog or SWI just seem really 90s 16:09:49 (or completely dead) 16:09:55 (or tied to some stupid platform) 16:10:15 sisctus is probably fine i've never tried it though 16:10:15 alise: you may want to start with d(X, Y, Z) :- var(X), !, something... 16:11:09 define something :P 16:11:47 that thing with constant above, perhaps 16:12:01 so unify the two? or two separate ones? 16:12:09 if I unify them then d(x,x,E) won't work 16:12:11 (nor d(x,y,E) 16:12:11 ) 16:12:31 anyway constant(X, _) always fails if X is a var 16:12:34 because X is neither a number nor an atom 16:13:00 alise: well rewrite the case anyway, the point is _not_ to substitute the first argument ever 16:13:10 d(X, Y, A) :- var(X), !, X = Y -> A = 1. 16:13:11 d(X, Y, A) :- constant(X, Y) -> A = 0 ; X = Y -> A = 1. 16:13:14 is that acceptable? 16:13:23 i mean I'm not quite sure what you want it to do 16:13:31 oh hm 16:13:40 well i guess 16:13:58 constant(X, Y) :- number(X) ; atom(X), X \= Y. 16:14:01 is this the function at risk of substituting? 16:14:43 the risk of substituting is in _all_ the d clauses for specific functions 16:15:03 i see 16:15:03 whenever you pass an (upper case) variable as the first argument 16:15:09 but I'm stil not sure what you want me to do!! 16:15:11 *still 16:15:40 i want you to prevent that substitution by doing a check for the first argument being variable, then cutting and handling it specially 16:16:01 yes -- but specially how? 16:16:09 Cutting is lame 16:16:12 do you want to break that d(X^2, X, E) generates all the possible in/out pairs? 16:16:16 if so, I hate you and all your children 16:16:33 oh in that case move along, nothing to see here :D 16:16:42 :-D 16:16:42 i thought that was a bug 16:17:34 lol 16:17:37 no that's awesome 16:17:52 I still need to figure out how to write 16:17:54 subst(F(A,B),... 16:17:57 without syntax erroring 16:18:33 there is a predicate for breaking up terms into head + list of arguments 16:18:44 but you can't pattern match? 16:18:45 super fucking lame :( 16:18:55 anyway oerjan since when are you a prologer? 16:19:10 very barely 16:19:21 "very barely" is not a time. 16:19:42 although for a long time i guess. i'm not quite sure, may have been already in high school 16:19:55 Gregor: It is very barely a time. 16:20:08 (that i found a book on it. i'm pretty sure i didn't have an actual implementation) 16:21:18 Evaluate Expr. Although ISO standard dictates that A=1+2, B is A works and unifies B to 3, it is widely felt that source-level variables in arithmetic expressions should have been limited to numbers. In this view the eval function can be used to evaluate arbitrary expressions.53The eval/1 function was first introduced by ECLiPSe and is under consideration for YAP. 16:21:19 widely felt my ass 16:21:26 (LULZ INNUENDO) 16:23:42 Why Father Widely ... whyyyyyy 16:23:48 :D 16:23:58 oerjan: hmm I dislike your exponential rule because there is no precise evaluation for log in Prolog 16:24:03 because it has no precise irrational type 16:24:15 maybe I should reinstate my other one only for the case where V is constant 16:24:55 perhaps. 16:26:25 or just accept that the world is imprecise 16:27:01 aha 16:27:05 Term =.. [Funtor|Args] 16:27:08 *Functor 16:28:57 ?- subst(x^(x-x), x, y, R). 16:28:57 R = y^ (y-y) ; 16:28:57 false. 16:28:57 yay hooray 16:29:07 -!- MigoMipo has joined. 16:30:52 ?- subst(2*(x-y) + 0, x, flower, E). 16:30:52 E = 2* (flower-y)+0 ; 16:30:52 false. 16:30:52 ?- subst(2*(x-y) + 0 + (x*log(x/y)), x, flower, E). 16:30:52 false. 16:30:56 ok, so I need to handle single arg functions too :P 16:32:03 i'm thinking that prolog would make an excellent CAS 16:34:37 * alise wonders how you're meant to do a map in prolog 16:36:37 I was hoping it'd be something awesome, like 16:36:48 member(X, L), Y is X+1, assert(member(Y, L2)) 16:36:51 A YouTube video that I left in a tab overnight spontaneously decided to start playing 16:42:35 oerjan: is it healthy to try and remove "foo ; false" things? 16:42:36 like you get the one right result then a false 16:42:42 I'm trying to change my code to stop it 16:44:30 um 16:45:55 i don't know whether that is possible. 16:46:31 it is if you fuck with your code a lot :D 16:46:32 "I've tried to teach people autodidactism, but I've realized they have to learn it for themselves." --shapr 16:46:44 false is what afaiu what you get when there _are_ no more results 16:47:04 oerjan: well yeah 16:47:16 but i mean if you tweak your program so that prolog thinks that there cannot be any more results 16:47:18 (as opposed to maybe there might be) 16:47:20 it doesn't bother to prompt 16:47:23 so you get no falses 16:47:30 oh. 16:47:41 well i guess that's just a matter of adding cuts... 16:48:27 yeah :P 16:49:16 but then you need to be careful not to ruin your actual wanted multiple results 16:49:27 yeah 16:49:38 urgh, i shouldn't have defined a map function 16:49:40 bugs everywhere 16:49:44 how am i meant to dooo this 16:49:48 manually recursive function?# 16:50:20 i don't know 16:51:48 ?- d(x^2, x, E), subst(E, x, 42, E2), R is E2. 16:51:49 E = 2*x^ (2-1)*1+log(x)*x^2*0, 16:51:50 E2 = 2*42^ (2-1)*1+log(42)*42^2*0, 16:51:50 R = 84.0 ; 16:51:50 false. 16:51:50 yay! 16:52:03 this is beautiful 16:52:25 Making an Algebra system in Prolog? 16:52:52 well 16:52:52 i just implemented differentiation :P 16:52:53 but yeah i suppose i might do that 16:53:19 constant(X, Y) :- number(X) ; atom(X), X \= Y. 16:53:21 d(X, Y, A) :- constant(X, Y) -> A = 0 ; X = Y -> A = 1. 16:53:21 d(U+V, X, A+B) :- d(U,X,A), d(U,V,B). 16:53:21 d(U*V, X, (U*A) + (V*B)) :- d(V,X,A), d(U,X,B). 16:53:21 d(U/V, X, (V*A - U*B) / (V^2)) :- d(U,X,A), d(V,X,B). 16:53:22 d(U^V, X, V*(U^(V-1)) * A + log(U) * U^V * B) :- d(U,X,A), d(V,X,B). 16:53:24 alise: can I see your diff program? 16:53:28 is that it? 16:53:29 Quadrescence: yes, see above :P 16:53:30 yes 16:53:50 is subst() a predefined func? 16:53:55 ?- d(x^(x/2), x, E). 16:53:55 E = x/2*x^ (x/2-1)*1+log(x)*x^ (x/2)* ((2*1-x*0)/2^2). 16:54:02 Quadrescence: it doesn't handle functions other than those enumerated so it's not "production ready" 16:54:05 i'll show the whole file 16:55:40 http://pastie.org/912899.txt?key=f9lcfe9rul5yb1kzk4czg 16:55:48 if you evaluate symbolically like in foo2, the only cuts you need are the two in subst 16:55:57 (otherwise everything has one more potential result which always fails) 16:56:00 that's just aesthetics though 16:56:06 more convenient when using the REPL 16:56:10 for foo you really do need the ! though 16:56:18 otherwise it loops forever trying every number and failing because it isn't Xv :-) 16:57:12 Quadrescence: you can also use this procedure to do a (really crappy) "search" for derivatives: 16:57:13 ?- d(X*Y, X, Y). 16:57:14 X = ** * 1, 16:57:14 Y = 1 ; 16:57:14 X = ** * 1+** * 1, 16:57:14 Y = ** * 1+** * 1 ; 16:57:15 ERROR: Out of local stack 16:57:26 (** meaning "anything that follows the rules of the function", I think) 16:57:45 also d would be better if it accepted any expression that doesn't mention the variable as constant but it doesn't 16:58:15 still, despite its flaws i think it shows just how awesomely awesome prolog is 16:58:55 Quadrescence: If I were trying to make this actually useful for anything I'd start by, say, making the code handle function compositions and then doing cases for sin and the like 17:00:03 -!- Alex3012_ has joined. 17:00:08 also it makes some assumptions... 17:00:11 ?- d(x/x, x, E). 17:00:12 E = (x*1-x*1)/x^2. 17:00:15 like x is not 0 17:00:48 alise: Yeah, I am aware, jeez what do you take me for, sum kinda idoit??? 17:00:54 and really there should be a simplification function so that it says things like "-1" instead of "(x*0-1*1)" 17:01:00 Quadrescence: aware of what? 17:01:40 alise: idk 17:01:44 okay :P 17:02:10 -!- Alex3012 has quit (Ping timeout: 245 seconds). 17:03:48 -!- Alex3012 has joined. 17:04:03 He's Alex ... 17:04:05 FROM THE FUTURE 17:04:11 (1002 years in the future) 17:04:42 Dun dun DUNNNNNNNNNNN 17:04:53 he's come here to investigate why civilization collapsed 17:05:36 unfortunately the people in 3012 don't understand cosmic irony 17:06:06 It takes more than 1000 years to rediscover cosmic irony. 17:06:13 yeah 17:06:32 (It does not, however, take 1000 years from an apocalypse to discover time travel) 17:06:33 -!- Alex3012_ has quit (Ping timeout: 265 seconds). 17:06:36 1003 years to be exact. 17:07:39 Gregor: depends how deep the apocalypse 17:08:23 I don't know that I've ever heard apocalypi described in terms of depth ... 17:09:06 well you need to remove all knowledge that could be used to rebuild civilization fast... 17:11:35 `addquote I don't know that I've ever heard apocalypi described in terms of depth ... 17:11:50 146| I don't know that I've ever heard apocalypi described in terms of depth ... 17:14:55 [[ N*Sync is the best band ever! => For all bands xx, N*Sync is better than band x (or, x=N*Sync). A quick listen can easily show this statement false.]] 17:16:25 [[ A buggy line from a song (Everybody Loves My Baby, Jack Palmer and Spencer Willson, 1924): Everybody loves my baby; My baby don't love [anybody] but me. => For all persons x, x loves my baby. For all persons y, if my baby loves y, then y is me. If true, one can conclude the speaker is his own baby, and is narcissistic. ]] 17:16:29 this is the best page about basic quantifiers ever 17:17:18 -!- oerjan has quit (Quit: leaving). 17:28:15 ?- d(x^x^x,x,E), subst(E, x, 42, E2), R is E2. 17:28:16 ERROR: Out of global stack 17:28:17 a deficiency 17:29:04 although that's just in is 17:29:15 so you could fix it by substituting, e.g. something better at arithmetic :P 17:29:25 (given a few dozen oodles of memory naturally) 17:29:33 still stack overflows suck 17:30:38 (other operations merely cause overflow) 17:56:28 -!- Tritonio_GR has quit (Quit: Leaving.). 18:00:19 oh lol ** doesn't mean anything 18:00:22 it means infinite :D 18:00:29 nesting 18:04:59 -!- oerjan has joined. 18:05:26 heh, zeilbeger would so approve of using prolog to do stuff 18:05:44 it's proved if you ran "seq(N), \+ prop(N)" for a while and it hasn't spit out a counterexample 18:14:03 oerjan: apparently var(X) is very unsound 18:14:04 logic-wise 18:14:22 and \+ plus copy_term/2 plus ! can express var/1 18:14:34 so cut really is quite insidious... 18:14:40 yeah 18:15:29 quite obvious really (that var/1 is unsound; \+/1, copy_term/2 and !/0 doing var/1 is new to me) 18:15:40 foo(X) :- var(X), X=1, then foo(X): X = 1, but foo(1) fails 18:15:52 although 18:15:53 why would you need copy_term... 18:15:58 oerjan: i don't know, but oleg said it 18:16:05 are you going to question oleg? 18:16:11 "With var/1, logic programming becomes programming in inconsistent logic." <-- well prolog /is/ turing complete... 18:16:19 Prolog's built-in negation predicate \+/1 is just as dangerous as var/1: indeed, negation can express var/1 in one line: 18:16:20 vr(X) :- \+ \+ (X=0), \+ \+ (X=1). 18:16:22 oh 18:16:24 oerjan: i see 18:16:26 \+/1 18:16:26 OR 18:16:28 copy_term/2 18:16:29 OR 18:16:30 !/0 18:16:34 can all express var/1 on their own 18:16:37 now THAT is scary! 18:16:51 well i knew \+ could be expressed with ! and fail 18:17:06 Prolog's built-in negation predicate \+/1 is just as dangerous as var/1: indeed, negation can express var/1 in one line: 18:17:08 vr(X) :- \+ \+ (X=0), \+ \+ (X=1). 18:17:08 Only a variable can be, alternatively, unified with two distinct atoms (e.g., 0 and 1). The double-negation is symptomatic. The evaluation of ?-vr(X). succeeds with the answer X=_G180 (the variable X remains unbound). Goals vr(0), vr(1), vr(2), vr([0]), and vr([X|Y]) all fail. 18:17:08 In the above example, the cause of unsoundness is obvious: the negated goal \+ (X=0) binds an existing free variable. This is called ``floundering''. Some Prolog systems report a run-time warning or an error in this case (floundering is not decidable statically). SWI Prolog, which is used for all tests here, lets floundering go undetected. 18:17:14 \+ X :- X, !, fail. 18:17:15 so basically negation makes prolog consistent 18:17:16 hah! 18:17:20 \+ X . 18:17:49 and what use is prolog without negation... 18:17:51 ok, some use, but not that much 18:18:39 and yeah fail can express it 18:18:54 oerjan: you do not even need ! I think? 18:18:57 nt(X) :- X -> fail ; true. 18:19:04 so basically I'm learning that 99% of prolog is inconsistent 18:19:11 What's terrible about expressing var/1 on one line? 18:19:20 Sgeo: var/1 makes prolog's logic inconsistent 18:19:27 Oh 18:19:31 For uniformity, we use the name vr/1 and define it here as the alias to the built-in var/1. We first ask the question if there is a value of X that makes foo(X) derivable from the current database of rules and facts. The Prolog system says yes and gives one such value, 1: 18:19:32 ?- foo(X). 18:19:32 X = 1 18:19:32 Yes 18:19:32 ?- foo(1). 18:19:34 No 18:19:36 If we verify the answer and check if indeed foo(1) is derivable from the current knowledge, we get the answer no. With var/1, logic programming becomes programming in inconsistent logic. We cannot generally trust any results. 18:19:51 The well-known elegant implementation of lambda-calculus in Prolog relies on copy_term/2. Because of that, copy_term/2 is the least objected to. Alas, copy_term/2, too, expresses var/1, also in one line: 18:19:52 vr(X) :- copy_term(X,0), copy_term(X,1). 18:19:56 Finally, cut, by itself expresses var/1: 18:19:56 noteq(X,X) :- !, fail. 18:19:56 noteq(_,_). 18:19:56 vr(X) :- (noteq(X,0), !, fail); (noteq(X,1), !, fail); true. 18:19:59 What does var do? 18:20:44 var(X) succeeds iff X is a free variable; X remains unbound 18:20:47 so e.g. var(X) but not var(1) 18:20:53 alise: -> ; can be defined with ! as well. i sort of think of ! and fail as more primitive. 18:20:56 which lets us distinguish whether we're searching for instances of X 18:20:59 or checking if 1 satisfies it 18:21:02 in foo(X) :- ... 18:21:03 oerjan: true 18:21:13 That.. doesn't sound that useful 18:21:14 I've just been tihnking of -> and ; as language constructs 18:21:15 *thinking 18:21:54 Although I guess when it comes to functions that return stuff through a free variable or something, it's a nice sanity check 18:21:54 ais523: brain ping 18:22:15 Sgeo: it's basically for practical purposes 18:22:27 like, you want to avoid pathological really-high-complexity behaviours 18:22:35 when prolog tries searching 18:33:02 so now I'm on a prolog kick :P 18:33:22 prolog-funge? 18:39:52 Deewiant: I considered that momentarily: but the slowness would be unbelievable. 18:40:03 And, besides, it's not really suited for that. 18:40:11 You never solve any constraint problems in Befunge. 18:41:11 So how's the ml-funge doing 18:43:07 It turns out I only work on things that take my fancy at this very second :) 18:43:33 Bah :-P 18:43:47 Deewiant: Well, hey, give me motivation. :P 18:45:12 You get to beat AnMaster at speed? I don't know. 18:46:01 Deewiant: You did that with D, and Tango at that. 18:46:11 And Tango is possibly the worst code ever. 18:46:19 No challenge at all :) 18:46:34 Tango is pretty good IMO 18:46:50 The issues are mostly in the GC (which does not originate in Tango) 18:47:13 And my workaround for that was to use C malloc/realloc/free :-P 18:52:17 -!- augur has joined. 19:00:08 -!- Tritonio_GR has joined. 19:07:48 -!- b3n4dd1 has joined. 19:12:48 -!- lament has joined. 19:13:43 -!- jcp has joined. 19:15:10 -!- oklofok has changed nick to oklopol. 19:17:31 -!- b3n4dd1 has left (?). 19:31:58 -!- augur has quit (Ping timeout: 264 seconds). 19:32:35 -!- lament has quit (Quit: lament). 19:38:17 -!- aschueler has joined. 19:41:50 oerjan: do you know if there is a predicate that will let me check if a certain thing is a predicate of a certain arity? 19:41:58 say I'm given foo/1, could I say foo-is-a-predicate-with-arity-1? 19:42:17 like as a test 19:42:27 ispredicate(X) :- predwitharity(X, 1) 19:42:53 ("barely", he said) 19:43:26 i distinctly recall SWI had an index 19:43:27 -!- coppro has joined. 19:43:46 and predicates organized by subject 19:44:58 yeah but it's hopeless to look up :) 19:45:07 i keep finding almost-but-not-quites :(( 19:47:11 -!- Tritonio_GR has quit (Ping timeout: 260 seconds). 19:49:37 -!- Tritonio_GR has joined. 19:50:36 http://www.swi-prolog.org/pldoc/doc_for?object=section%282%2c%274.14%27%2cswi%28%27%2fdoc%2fManual%2fexamineprog.html%27%29%29 19:56:25 alise: ^ 19:57:29 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 19:57:35 find(x) := { ircsay("oerjan: " x "?"); awaitreply() } 19:57:55 i actually stumbled upon that page before though :-D 19:58:05 though i don't see that it has what i want? 19:58:17 current_predicate? 19:58:35 ah 19:58:37 current_functor 19:58:43 oh, predicate would work better 19:59:04 so: 19:59:13 current_predicate(X/N), current_functor(X, 1). 19:59:14 well 19:59:15 X/1 19:59:37 oh, then current_functor is redundant 19:59:57 you'd think 20:00:21 ?- forall(predicate_, P, forall(empty, X, call(P,X))). 20:00:21 true. 20:00:39 forall P:A=>Prop : forall X:Empty : P X 20:00:47 where empty(_) :- fail. 20:00:51 predicate_(X) :- current_predicate(X/1). 20:00:52 and 20:00:55 forall(S,X,P) :- \+ (call(S,X), \+ call(P)). 20:01:22 you can also use forall(requirements,foo) where all variables are substituted -- this is built into SWI and so you can sweep the evil negation under the carpet 20:01:40 then: 20:01:41 ?- forall(predicate_(P), forall(empty(X), call(P,X))). 20:01:42 true. 20:03:10 nice that we have such reasoning tools in a "dumb" constraint solver 20:03:37 Deewiant, you might want to update the fungicide page btw. I pushed the alternative IP list thing. Still, to really become faster I need a new funge space. But that will have to wait for a bit due to lack of time for something as complex. 20:03:43 hmm wait isn't forall(S,X,P) :- \+ (call(S,X), \+ call(P)). exists 20:04:02 AnMaster: Maybe make a release? 20:04:21 Deewiant, no time currently. I don't think I will make one very soon. 20:04:32 messing around with sf.net, freshmeat and so on takes some time 20:06:09 Deewiant, does fungicide test stack stack begin/end much? If not that might be interesting 20:06:21 (forall x, P) = (~exists x, ~P), so if \+ (call(S,X), \+ call(P)) is exists x:S, P 20:06:24 then forall is... 20:06:33 \+ \+ (call(S,X), \+ \+ call(P)) 20:06:56 lol I can prove that there exists an element of the empty set such that false but not that forall elements of the empty set... 20:07:06 maybe i should just use forall 20:07:43 Deewiant, remember the alternative IP list needs to be explicitly enabled. Since it turned out to use more memory for "normal" programs 20:08:01 How much more? 20:08:45 Deewiant, it is due to larger constant basically. For large number of threads it is insignificant 20:09:00 wait no 20:09:03 \+ (call(S,X), \+ call(P)) 20:09:03 How much more? 20:09:04 is right 20:09:10 "there is no example of S such that not-P" 20:09:15 but I think it may hit 500 kB extra due to creating a pool to allocate from 20:09:19 something around that size 20:09:43 plus a small increase since it uses pointers. So 4 or 8 bytes extra per IP 20:09:48 depending on pointer size 20:09:51 ?- forall(empty, X, (X, \+ X)). 20:09:51 true. 20:09:52 You haven't even measured the difference and you're making it a compile-time optional optimization? Sigh... 20:09:52 heyhey, it works 20:10:09 Deewiant, I have measured it. I just don't remember the values off the top of my head 20:10:24 In any case, less than a megabyte... 20:10:40 I would love to see AnMaster's perfect OS. Actually, no, I really wouldn't 20:10:41 Seems pointless to leave it an option 20:10:43 s/$/./ 20:11:07 Deewiant, yes. And on my pentium3 system (which is where I test 32-bit x86) it was measurably slower on "few threads" programs 20:11:26 hmm well 20:11:28 used life.bf to test with 20:11:38 ~20% slowdown 20:11:49 (\+ \+ foo(X)) is exists X such that foo(X) 20:11:55 example, 20:11:58 exists_true(X) :- bool(X), X. 20:11:59 20% for one bigger memory allocation? Makes no sense 20:12:01 Deewiant, on my core 2 duo it wasn't measurably slower for life.bf 20:12:11 \+ \+ \+ \+ foo(X) = forall foo(X) then :-) 20:12:16 Deewiant, correct, but I suspect cache effects 20:12:40 which doesn't work 20:12:45 eh what I have works 20:12:50 Deewiant, since it wasn't measurable on a core 2 duo, some cache or branch prediction effect seems likely 20:12:58 If you're worried about old small-cache processors lump it in some kind of EMBEDDED_SETTINGS :-P 20:13:14 Deewiant, well, my desktop is still a sempron 20:14:08 Deewiant, the systems I test on are: pentium 3 @ 996 MHz (x86), Sempron 3300+ @ 2 GHz (x86_64), Core 2 Duo @ 2.26 GHz (x86_64) 20:14:56 cache sizes are: Sempron: 128 kB, Pentium 3: 256 kB, Core 2 Duo: 3072 kB 20:15:03 that is according to /proc/cpuinfo 20:15:11 I don't know if the last one is per-core or not 20:15:24 there is one such line for each core, so it may be 20:16:10 I don't think it is 20:16:22 anyway, since those are the ones I have available I'm not surprised if your results doesn't match mine. Especially not for the Pentium 3 box 20:16:35 does pentium 3 even do branch prediction? 20:17:41 The original Pentium did branch prediction 20:18:02 in my experience my pentium 3 box seems to gain a lot more from profile feedback compilation than the newer systems do. 20:18:26 perhaps it's predictor is cruder 20:19:03 If you had a Pentium 4 it'd probably gain even more, since they can take over a 100 cycles to recover from a misprediction :-P 20:19:21 Deewiant, alas I don't have one any more. One day it's heat sink wasn't enough 20:19:30 it was *charred* when I opened the case. 20:19:36 :-) 20:23:02 -!- augur has joined. 20:23:57 http://www.youtube.com/watch?v=DQV8jUpjRm0 MINDRAPE TIME 20:25:44 anyway another good reason to make the new one an option is that it isn't as well tested yet. 20:26:53 Deewiant, anyway a test like {}{}{} possibly both with some data to copy and with no copy might be interesting. I assume ccbi2 will be fast with it? 20:27:33 also perhaps a {-rep-}-rep that is {{{{{{{ ... }}}}}}} 20:27:39 like y-rep-n I guess 20:29:09 Deewiant, memory wise I know cfunge will use a lot on that, since with 32-bit cells the initial funge stack is 4 pages + a few bytes to keep track of stack top, stack array size and such 20:30:16 speed wise it shouldn't do too bad. CCBI1 will probably do extremely badly, CCBI2 I have no idea. the interesting bit will be watching rcfunge[12] and language::befunge 20:31:28 oerjan: whoa 20:31:32 oerjan: my differentiator integrates too 20:31:41 well sort of... 20:31:47 ?- d(E, x, x*0+2*1). 20:31:48 E = x*2 ; 20:31:48 false. 20:31:48 ?- d(E, x, 2). 20:31:48 false. 20:31:49 (there is some more optimisation I could do on memory allocation if it would turn out to be required, but I haven't seen any such cases yet) 20:31:55 -!- alise has left (?). 20:31:58 -!- alise has joined. 20:32:06 i expect that to be rather unreliable :D 20:32:17 oerjan: naturally; it will only accept inputs in the exact form that it outputs 20:32:19 oerjan, ? 20:32:27 oerjan, who was that to? 20:32:31 me 20:32:37 YOU WILL NEVER KNOW 20:32:42 darn 20:32:50 oh alise I expect. 20:33:05 NO ONE EXPECTS ALISE 20:33:16 heh 20:33:32 oerjan, nice monty python reference. 20:33:46 LIES 20:33:59 -!- Alex3012_ has joined. 20:34:22 ?- d(E, x, 1/x*x^ (1/x-1)*1+log(x)*x^ (1/x)* ((x*0-1*1)/x^2)). 20:34:23 E = x^ (1/x). 20:34:24 JUST LIKE A MAGIC 20:35:06 Deewiant, why did you make the lines dashed in the memory graphs? the light blue cfunge-32 was hard enough to see against the light grey background as it was before. Now it is near impossible 20:35:24 rcfunge2 is even harder to see 20:35:30 he wanted the graphs to be dashing, obviously 20:35:35 oerjan, hah 20:36:45 -!- Alex3012 has quit (Ping timeout: 276 seconds). 20:36:47 -!- Alex3012_ has changed nick to Alex3012. 20:38:28 AnMaster: Because previously some lines were identical 20:38:41 hm 20:38:47 Deewiant, select more visible colours then? 20:38:57 I do not select the colours, gnuplot does 20:39:07 * alise adds - differentiation 20:39:30 d(U+V, X, A+B) :- d(U,X,A), d(U,V,B). 20:39:30 whoops, spot the bug 20:39:40 Deewiant, can't you give it a colour scheme by some command line option or something iirc? Also I think it selects for white bg, not gray bg 20:39:50 which may cause the default to be suboptimial 20:39:52 AFAIK I can't 20:40:11 And yes, it does, but it unfortunately also sets a transparent bg on the svgs, which I haven't looked into fixing 20:40:21 gnuplot> help colornames 20:40:23 [...] 20:40:26 See `set palette`, `linestyle`. 20:40:46 Deewiant, seems you can. 20:41:03 Set palette looks complicated. 20:41:34 Deewiant, so it does 20:42:18 Deewiant, on the other hand, gnuplots docs generally looks complex. Due to being quite verbose I guess. 20:42:49 * alise adds sin, cos, log differentiation... 20:45:07 Deewiant, but yes, with sane colours for that background (and probably ones that work reasonably for white too, you might want to view it directly, I do when firefox decides to make it small) non-solid lines is indeed better. 20:45:18 but the current colours are piss poor. 20:45:52 For postscript I had a sed that replaced a yellow (yellow on white! completely invisible) in the .ps with an earlier-used colour (which was fine for dashed) 20:46:09 Deewiant, hm. 20:46:22 Deewiant, you could do sed for svg too 20:46:24 Do you have issues with other colours than the cyan? :-P 20:46:56 Deewiant, well, the one for rcfunge2 is even worse than the one for cfunge-32, 20:47:42 Deewiant, plots/horizontal-p.b98/10000000/line-memtime.svg show some rcfunge-like effects for ccbi2 it seems? Any idea why? 20:47:43 Ah right, that yellow. 20:47:56 Deewiant, no rcfunge1 is yellow 20:48:12 Deewiant, stinkhorn is quite bad too 20:48:17 the colour I mean 20:48:26 Right, that yellow is the one I meant. 20:48:39 IMO the rcfunge2 one is fine 20:48:47 but yeah: cfunge-32, rcfunge2 and stinkhorn are near invisible. (well not rcfunge2 when it goes up/down/up/down) 20:49:06 I can see rcfunge2 very clearly :-P 20:49:06 Deewiant, this is on my desktop display 20:49:09 let me try my laptop 20:49:16 it has worse colour reproduction 20:49:19 But yes, monitors and eyes vary so meh 20:49:40 well depends on angle of viewing 20:49:50 my desktop monitor has pretty wide viewing angle 20:49:53 That too, yes 20:49:56 much wider than my laptop 20:50:16 All in all colours in SVGs should be selectable by the web browser just like they are for text :-P 20:50:31 Lenovo didn't waste money on two things at least: the built in speakers and the screen 20:50:47 Deewiant, eh? 20:51:10 text in HTML* 20:51:13 Deewiant, oh btw, that red of ccbi1 is of varying width on my laptop 20:51:17 unlike on my desktop 20:51:38 as in, it is thinner when it goes horizontally than when it climbs 20:51:53 http://pastie.org/913291.txt?key=lbuqu2b1boebwbep7707iq woot 20:51:58 what fun toys. 20:52:00 Deewiant, could be due to higher DPI in the laptop perhaps? 20:52:04 well, toy, singular. 20:52:05 Deewiant, or older firefox 20:52:22 AnMaster: It looks such here. Don't know why, don't really care. 20:52:25 oh, look: foo no longer works. 20:52:28 I don't really care, though 20:52:36 Deewiant, hm 20:52:58 http://pastie.org/913294.txt?key=mef5jrherk5iytbbn98kyg 20:53:11 Deewiant, any idea about that rcfunge-ish allocation pattern for ccbi2 in plots/horizontal-p.b98/10000000/line-memtime.svg though? Something related to the gc? 20:53:18 (I assume you use the gc in some parts still?) 20:55:07 Deewiant, btw in the table below it indicates it ran more runs with ccbi2 than with cfunge? why? It doesn't seem to be "run as many times as possible until timeout" because it doesn't add up to the timeout 20:55:16 both cut off way below that 20:55:21 Have you read the rankings page? 20:55:21 seems unfair :/ 20:55:31 Deewiant, yes but I don't remember anything about that bit 20:55:36 Read it again. 20:57:48 yay my derivative works for a complex expression... well 20:57:51 with a large margin of error 20:58:04 3015981 ~= 3.01298e+06 20:58:09 Deewiant, not mentioned on the main rankings page(?) I'm talking about the "ran" column for individual problems sizes for a given problem- 20:58:13 s/-$/./ 20:58:40 Deewiant, like the last table at http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/horizontal-p.b98.html 20:58:41 Right, it's under "Measurements" on the Fungicide page 20:59:03 Deewiant, you said the *rankings* page just a few lines ago 20:59:10 not odd I couldn't find it then 20:59:22 Yes, my mistake 21:00:11 "If the time was less than a minute, it is run once more. This result is discarded. (A sort of cache-cleaning thing between the memory and time measurements.) Then, ten time-measured runs are performed." 21:00:29 Yes and? 21:00:32 eh, why only the disarcd-run for that. Why not for the larger sizes too? 21:00:39 Because it'd take forever 21:00:58 Deewiant, did that discarded run change the timing at all btw? 21:01:01 If it takes 3 hours to run I'm not going to run it three times just to watch it timeout 21:01:03 timings* 21:01:23 Maybe a bit 21:01:31 Can't remember, may not've looked at it 21:02:28 should have tested that before IMO. Seems silly to do it without any indication of that it is actually needed ;P 21:03:17 It seems sensible since there are likely some cache effects due to the memory-measuring process 21:03:21 Deewiant, anyway, yn-rep and y-rep-n will be a bit faster too now than what is shown in the rankings 21:04:03 I decided to it before finding out that some things take eons to run 21:04:12 hah 21:04:15 -!- lament has joined. 21:04:21 So then I dropped it for the longer times 21:04:33 Why is there porn in the /topic, by the way? 21:04:46 weird 21:04:48 Why would there ever not be? 21:05:01 Deewiant, well that would be ccbi1, rcfunge, language-befunge and pyfunge? 21:05:03 I don't know, it just hasn't always been there 21:05:07 (not the pron, no) 21:05:26 I guess stinkhorn for the y stuff too 21:05:29 It's either my fault or augur's fault :P 21:05:35 It's augur's 21:07:41 AnMaster: Re. the jittery memory allocation it could even be seeing something in the middle of a realloc 21:08:10 But no, can't obviously say for sure what it's about 21:08:41 if I use cut to stop my program erroring, that's bad isn't it :-) 21:08:56 augur put the pornographic material in the topic in response to the fuck the police 21:09:43 Deewiant, true 21:09:54 alise: I was about to say that I knew that and then I made the connection 21:10:19 -!- AnMaster has set topic: Topic closed by the moral police | fuck the police | (pics or it didn't happen) | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 21:10:26 :-) 21:10:39 (after all there are minors in here) 21:10:53 poor innocent minors 21:11:10 http://pastie.org/913294.txt?key=mef5jrherk5iytbbn98kyg 21:11:11 (yes I saw that about moral police, I saw the irony in that before I did the topic change) 21:11:20 whoops 21:11:27 oerjan, yes, like ehird. Very innocent. 21:11:36 oerjan, what was that? 21:11:45 accidental right click 21:11:50 it looks more like ehird's coding style to me 21:11:58 oerjan, *right* click? Not middle click? 21:12:11 it's what putty uses 21:12:23 oerjan, you can change that in the putty settings 21:12:28 to be the usual middle for paste 21:12:50 See, but it's my fault because I put "(pics or it didn't happen)" there :P 21:12:59 oerjan: wait what did you change? 21:13:00 oh 21:13:07 oerjan, I always found anything else confusing back when I used putty 21:13:10 AnMaster: how does it look like my coding style? 21:13:14 it's how you're meant to write prolog 21:13:16 i don't have a middle button. in fact i don't even have a mouse here 21:13:33 oerjan, what then do you have without three buttons? 21:13:48 can't be a laptop, they have three buttons too nowdays don't they? 21:13:49 a trackpad 21:14:24 oerjan, hm, my thinkpad has three mouse buttons. Wait actually it has three buttons on the upper set (meant for use with the trackpoint) but two for the lower set (meant for use with the touchpad) 21:14:33 never noticed that before 21:14:34 -!- augur has quit (Ping timeout: 264 seconds). 21:14:36 middle /mouse/ button 21:14:49 I guess it is because I hardly ever use the touchpoint 21:14:49 AnMaster: so how is it my coding style :)) 21:14:52 err 21:14:56 touchpad 21:15:03 that was an interesting mix up of the words 21:16:25 -!- Alex3012 has quit (Ping timeout: 265 seconds). 21:16:29 I don't think I'm going to unignore alise after yesterday. For a long time. This way the channel is a lot nicer. 21:16:39 oh i remember 21:16:52 because of all those... "personal attacks" 21:16:56 Plus he doesn't seem to speak so much nowdays, so I don't seem to be getting the "missing half convo" bit 21:16:58 :) 21:17:09 doesn't speak so much? Because I'm fucking imprisoned monday-to-friday? 21:17:15 You complete and utter asshole. 21:17:30 And the obligatory condescending smiley face... 21:17:39 what a fucktard. 21:17:55 Deewiant, btw, it looks like nothing hit the memory limit. Is that correct? 21:17:59 alise: You've only been ignored since yesterday, so it seems he's talking about today. 21:18:14 AnMaster: IIRC yes 21:18:40 Deewiant: "He doesn't seem to speak so much nowadays" -- that seems more like a general statement to me. 21:18:51 Deewiant, I wonder if with longer timeout, ccbi1 might have hit it. 21:19:04 alise: Maybe, but the half convo thing could only happen today. 21:19:07 Not that I am particularly interested in discussing the broken reasoning of an idiotic asshole. 21:19:15 Deewiant: Well, you only get half-convo things if I'm actually there to talk. 21:19:16 AnMaster: Of course with longer timeout a lot of things could've hit it :-P 21:19:18 Less me, less half-convos. 21:19:21 Less issue with ignoring me. 21:19:24 That is how I parsed it. 21:19:34 Deewiant, well, only those who ended due to timeout obviously 21:19:52 did a lot of things do that? The graph on the main page shows them as non-completed doesn't it? 21:20:28 Yes. 21:21:02 hm 21:21:29 Deewiant, was cfunge and ccbi2 the only ones to not time out on any tests? It looks from the graph like stinkhorn timed out on a few 21:21:42 but not from the table below where it says it ran 74 21:22:07 There's a "maximum time" column, you know 21:22:09 Deewiant, which one is wrong, or alternatively: why are they different? 21:22:18 And "ran" is described immediately above the table 21:22:21 Deewiant, what is time ratio btw? 21:22:39 Ratio to minimum; I was hoping that was obvious 21:22:44 Deewiant, and why are there multiple time ratio columns? 21:22:55 I was hoping that was obvious too; one for total, one for max 21:23:02 Deewiant, well it wasn't 21:23:11 perhaps wider lines between to group them+ 21:23:14 s/+/?/ 21:24:02 Deewiant, shouldn't total time say timeout as well? 21:24:18 No, it just adds the timeout value 21:24:27 So that they can still be compared 21:24:35 hm okay 21:25:18 from mycology results page: 21:25:25 "In Mycology terms, both 1.27 and 2.02.00 are unfortunately limited by their mistreatment of form feeds: as far as I can tell, they are considered to terminate the file in Befunge mode, when they should be ignored. (Perhaps they increment the z-coordinate even in Befunge?)" <-- iirc yes that was what happened 21:25:29 when I checked it 21:25:36 don't remember for sure 21:26:07 Deewiant, does mycology check that the trefunge instructions reflect in befunge btw? 21:26:38 Hmm, I don't think it does 21:27:01 Deewiant, maybe it should. It could lead to some amusing results with some interpreters I bet 21:27:20 of course, rcfunge just *might* do the right thing there. 21:27:36 I doubt it would, with the current limited set 21:27:45 Deewiant, hm? 21:27:46 Rc/Funge-98 would die due to the form feed first anyway 21:27:55 And I'm pretty sure the others all handle it correctly 21:28:18 Deewiant, well you could test it before the form feed. Didn't you say you were using { and } to make the fingerprint tests position independent? 21:28:34 Yes, the fingerprint tests, but not everything 21:28:39 hm okay 21:28:54 And yes, I could, but why bother? :-P 21:28:59 true 21:29:08 Deewiant, what other interpreters do trefunge as well? 21:29:30 Of decent ones or of all? :-P 21:29:41 Deewiant, of ones currently listed on mycology page 21:29:51 CCBI and Rc/Funge-98 21:30:09 Deewiant, I kind of miss the old wider-than-browser-even-when-maximised table 21:30:20 It's still there in the old results :-P 21:30:34 * AnMaster goes there for nostalgia 21:30:46 rc 1 or 2? 21:30:49 Both 21:30:55 both what? 21:30:55 it seems mkry still has handed over the project. 21:31:01 maybe he is dead after all :/ 21:31:05 oh to alise? 21:31:10 AnMaster: Whoops, there goes a half conversation! 21:31:12 Tricky things those. 21:32:32 Deewiant, anyway, when will you update the fungicide results for cfunge wrt. the fork test 21:32:52 When you'll make a release, mayhap 21:33:02 Deewiant, "mayhap"? I need more definite than that 21:33:12 THIS IS IMPORTANT TO MY BUSINESS 21:33:21 Toss me a few euros and I'll do it tomorrow morning 21:33:26 Deewiant, har 21:33:33 ...but my business has no money 21:33:59 Deewiant, I might make a release tomorrow if I have some time left over then 21:34:19 I presume you will do it then at least during the next weekend 21:35:14 but it shouldn't take long now. Some tests indicate it is slightly slower than stinkhorn at fork now. And yes a new funge space is the next major thing I will do. No idea when 21:35:27 Deewiant, oh and I bet efunge would get timeout from it. So pointless to test that even 21:44:42 -!- kar8nga has quit (Read error: Connection reset by peer). 21:48:09 -!- oerjan has quit (Quit: Good night). 21:59:02 -!- Oranjer has joined. 22:02:46 -!- Oranjer has left (?). 22:23:34 -!- Oranjer has joined. 22:25:20 Ugh. And now I would need sound over network... :-/ 22:26:07 I don't have available speakers and volume is not enough for wireless headphones... :-/ 22:31:57 Ilari, eh? 22:32:05 "and volume is not enough for wireless headphones"? 22:32:23 Ilari, as in, the music is so faint it can't be heard over bluetooth or what? ;P 22:33:00 Ilari, however, both pulseaudio and jack have network parts 22:33:05 also plain alsa 22:33:21 The volume is so low (and mixer master / mixer PCM is at max) that playback isn't stable. 22:33:24 I never tried that though, was going to use jack but never had time for it 22:33:33 Ilari, that sounds weird 22:33:42 Ilari, why would it not be stable over bluetooth 22:33:59 does it shut down when there is no music or something? 22:34:13 and then have a significant start up time? 22:34:15 These headphones need certain minimum volume for stable playback. Yes, it shuts down otherwise. 22:34:29 Ilari, don't you have any wired headphones? 22:34:46 I guess all wired headphones are broken... 22:35:14 It starts up again very fast. What is nastier is that if it shuts down on weak signal, headphones will blast static at high volume. 22:35:15 http://alsa.opensrc.org/index.php/Network http://wiki.audacityteam.org/wiki/Recording_audio_playing_on_the_computer#Using_the_ALSA_PCM_file http://www.alsa-project.org/main/index.php/Matrix:Module-aloop 22:35:18 those links may help 22:35:38 the last one is only needed for some hardware 22:35:48 basically those without a mixer capture option 22:35:52 Of course, if signal is too weak, it won't start up again. 22:36:12 Ilari, stupid that it blasts static like that 22:36:16 I wouldn't use them at al.l 22:36:19 at all* 22:36:23 sounds dangerous 22:36:39 It starts up again very fast. What is nastier is that if it shuts down on weak signal, headphones will blast static at high volume. 22:36:41 yeah that happened to me 22:36:46 then i realised that they just sound like fuzz anyway 22:36:47 Ilari, you could also increase the sound volume of course that you transmit with. What produces the sound? 22:36:48 and stopped using them 22:37:57 -!- impomatic has joined. 22:40:04 Boxx looks interesting http://web.archive.org/web/20080319024539/boxx.origincode.com/docs.php 22:42:22 impomatic, yay, light gray on white bg 22:42:25 :/ 22:42:36 oh wait, it is light gray on *lighter* gray 22:42:38 even worse 22:42:46 basically unreadable page 22:43:21 Haven't you got a bookmarket to fix readability? 22:44:40 impomatic, no? I use firebug in those cases 22:44:47 but I'm not interested enough 22:44:52 :-) 22:51:29 Hmm... Got somewhat stronger signal. Don't know if it is powerful enough. :-/ 22:51:48 -!- MizardX has quit (Ping timeout: 276 seconds). 22:55:17 Ilari, stronger signal? 22:55:25 as in kill -SIGUSR1? 22:55:40 oh wait 22:55:43 that was music 22:55:50 * AnMaster confused Ilari with impomatic 23:06:02 -!- MigoMipo has quit (Remote host closed the connection). 23:10:55 -!- jix has quit (Ping timeout: 245 seconds). 23:17:33 -!- jcp has joined. 23:19:19 -!- FireFly has quit (Quit: Leaving). 23:21:00 -!- jix has joined. 23:39:13 -!- tombom_ has quit (Quit: Leaving). 23:41:04 -!- Tritonio_GR1 has joined. 23:43:40 -!- Tritonio_GR has quit (Ping timeout: 258 seconds). 2010-04-11: 00:03:34 -!- Alex3012 has joined. 00:04:49 -!- augur has joined. 00:11:45 -!- adam_d has quit (Ping timeout: 276 seconds). 00:14:27 -!- Tritonio_GR has joined. 00:16:35 -!- Tritonio_GR1 has quit (Ping timeout: 246 seconds). 00:22:52 iPhone OS 4.0: multitasking++ folders++ threaded mail++ book thing++ ultra-draconian restrictions basically outlawing writing your application in anything other than objective-c at any step(!) in the development process--------------------------------------------------------------------- 00:22:53 swing and a miss 00:23:05 -!- comex has quit (Ping timeout: 276 seconds). 00:23:19 Wait, wait, wait 00:23:28 -!- comex has joined. 00:23:30 You can't use, say, Haskell to generate Objective-C code? 00:24:11 Correct.\ 00:24:36 alise: Objective-C, C, or C++. So. The crap languages. 00:24:47 Sgeo: indeed 00:24:55 pikhq: well good luck calling the objective-c iphone apis from c/c++ 00:25:00 without using the objc message send functions directly 00:25:16 i may just throw away my iphone 00:25:17 alise: True. 00:26:12 although this makes me really want an ipad, as much as I really know I don't want one: http://www.touchpress.com/ 00:26:53 it's an ebook, no, it's a fact explorer, no, it's a data sheet, no, it's a database with computation! 00:26:57 alise: They also ban "Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited" 00:27:07 How would they KNOW? 00:27:09 must. make. myself. hate. 00:27:10 This bans... Cross-platform C libraries. 00:27:19 Sgeo: Do you want to try their patience? And because of the structure of the code. 00:27:23 Not patience. 00:27:24 Whatever. 00:27:39 Sgeo: You submit your code to them, and they sign the resulting binaries if it's to their liking. 00:28:12 What is the POINT of forbidding even generated code, as long as the generated code is readable enough? 00:29:03 Sgeo: Lockin. 00:29:41 That latter restriction about compatiblity layer sounds like pure lock-in anyway. 00:29:45 "Oh, you want to develop for the iPhone? Well fuck your efforts to develop for anything else." 00:29:50 pikhq: hm? 00:29:52 no, you submit binaries... 00:29:55 afaik 00:30:02 alise: Ah. 00:30:11 they'll just do heuristics on the machine code, most likely 00:30:23 easy enough I'm sure: unless it's a simple to-gcc compiler 00:30:29 that optimises heavily enough to erase runtime stuff 00:30:36 and detecting libraries will be easy 00:31:05 Ilari: They did this in response to Adobe making a Flash compiler targeting iPhone OS. 00:31:09 * Sgeo is considering buying a T-Mobile G1 and putting an AT&T card in it, to avoid contracts 00:31:26 So people could make apps in Flash and stick it on the iPhone. 00:31:34 alise: They also ban "Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited" <-- who are they? 00:31:36 AT&T? Why would you want to be with that network? 00:31:47 pikhq: don't tell AnMaster, he's the one making a big deal about ignoring me 00:31:51 alise, because that's what we're currently using, and my dad doesn't feel like switching 00:31:52 AnMaster: "Apple". 00:31:55 pikhq: bah 00:32:03 pikhq, oh for ipod? 00:32:05 err 00:32:07 lol fail 00:32:07 iphone* 00:32:07 AnMaster: Also, you're a retard who doesn't pay attention to anything. 00:32:14 Sgeo: They /dislike people using their network connection, and blame them for their bad performance/. 00:32:18 pikhq, no I have ehird on /ignore 00:32:20 that explains it 00:32:25 alise is the name. 00:32:30 respect it or stfu. 00:32:44 AnMaster: ... The topic in question is fairly well-known by now. 00:32:54 pikhq, I don't really care about apple products 00:33:02 alise, not a chance in hell of convincing my dad to switch, though 00:33:10 He's of the "It's good enough for now" opinion 00:33:32 Sgeo: well, you cannot buy a T-Mobile G1 without a contract. Besides, you don't want a G1: they can only run old versions of the OS and are very slow. 00:33:47 If you really want to, get a Google Dev Phone: a G1 without contract. But it's much more expensive. 00:33:51 pikhq, if I started talking about advanced flight aerodynamics and helicopter simulation, would you follow me then? Unless you share that special interest or work within the area, I doubt it 00:34:01 Hm 00:34:11 I'd buy a Nexus One, but it's expensive without contract 00:34:13 same thing really, I'm not very much interested in apple 00:34:24 * Sgeo wants "cheap without contract" 00:34:34 Preferably Android, not iPhone 00:34:35 Sgeo: And I want a pony. 00:34:43 Go to Finland; their phones are mostly without-contract. 00:34:54 iPhone, cheap? Ha! The non-contract 3G S is about $700 or so. 00:34:54 Sgeo, do you need a smartphone? 00:35:05 AnMaster, I want one 00:35:08 Of course he needs a smartphone, otherwise he could just buy any old crud for $3.50 00:35:13 ah 00:35:41 Sgeo, an IQ 100 phone isn't too expensive ;P 00:35:59 * AnMaster has a "nokia 3120 classic", which isn't even symbian. 00:36:08 I think it is S40 or such. Not sure 00:36:18 it has java and flash though, no touch screen 00:36:23 Thanks for telling us about /your/ phones, AnMaster: we care. 00:36:39 In fact, it is very relevant to the discussion as dumbphones are comparable in every way to smartphones and have a direct link as far as advice goes. 00:36:56 * Sgeo has a RAZR :/ 00:37:00 RAZR? 00:37:11 oh motorola 00:37:30 Sgeo, clamshell, don't they easily break? 00:37:42 This one has survived many falls 00:37:52 razr that's oldschool 00:38:27 Sgeo, no I mean in the hinge due to wear when opening it and such 00:38:40 AnMaster, *shrug* 00:39:24 Sgeo, I had a clamshell model before. Some old Ericsson. It had problems in the hinge after some time 00:40:05 Sgeo, ah yes: http://en.wikipedia.org/wiki/Ericsson_T28 00:40:26 it still had an antenna sticking out at the top 00:40:39 why did they remove them btw? 00:41:29 ?- \+ (nat(N), \+ (N+N =:= 2*N)). ;; I wish this terminated 00:41:32 Does the Dev phone cost less than Nexus One? 00:42:00 I had some clamshell Siemens phone (actually two of them). Both died in the same way (just suddenly didn't start / charge). 00:42:10 Sgeo: contractless? dunno 00:42:17 on contract all phones will be cheaper than dev 00:42:17 "It was probably best known as the first phone that used Lithium polymer batteries.[1]" huh? I never knew that 00:42:25 Sgeo: note that the dev phone, not only is it expensive, but seriously the g1 is shit 00:42:33 you can only use an old version of the OS, and it is very slow 00:42:42 Hm 00:43:06 alise, are you SURE that the T-Mobile G1 can't be had without a contract for cheap? 00:43:31 The Nexus One is available without a contract. 00:43:56 Gregor, it's expensive 00:44:10 Yup, that's the nature of phones in the US. 00:44:43 -!- Gregor has set topic: Topic closed by the moral police | fuck the police | (pics or it didn't happen) | (so it didn't happen then?) | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 00:45:13 Sgeo: I am sure. 00:45:18 Difference between Droid and Droid Eris? 00:45:36 No idea. The Droid apparently has some serious shittiness issues. 00:45:48 Oh? 00:45:49 Eris has been axed, it seems. 00:46:07 Yes; I don't recall what exactly but I remember some criticisms of the Droid as it basically being tatty and badly-made. 00:46:22 Honestly I'd just splash out for the Nexus One, as it isn't on contract at all. 00:46:33 And you can buy it ready for AT&T. 00:46:56 And, well, it's the latest and greatest, so you won't be disappointed. 00:47:03 The tough part is convincing my dad to pay $529 00:47:08 It's $529, which is an alright price for a brand-new unlocked phone. 00:47:10 Sgeo: Well, yeah. 00:47:16 A dip into the piggy bank might help... 00:47:18 Yup, that's the nature of phones in the US. <-- import from EU? 00:47:37 AnMaster: l o l 00:47:46 of course shipping may be more 00:47:50 And my understanding is that if I buy Nexus One for AT&T, even though it's "unlocked", it will only work with AT&T 00:48:03 Sgeo, how is that "unlocked" then? 00:48:11 Sgeo: the reason contractless phones are not cheap is because they subsidize the phones if you buy them alongside contracts 00:48:32 * AnMaster has a contractless phone 00:48:41 AnMaster: network setups vary from provider to provider; it may not work with providers that do not have the infrastructur 00:48:43 +e 00:49:29 coppro, huh? isn't that standardised? 00:49:34 AnMaster, Sgeo: Although all American networks use the same GSM bands, they use different 3G bands, so the 3G still won't be compatible. 00:49:51 If the phone just supported all 3G bands, it would work on all networks. 00:49:57 coppro, eh. what about those "dual band" phones and such? 00:50:30 The Nexus One is tri-band over GSM and tri-band over 3G, but that's not sufficient to cover all the necessary bands. 00:50:30 err 00:50:31 Gregor, ^ 00:50:45 It would have to be sinc-band :P 00:50:51 Gregor, "sinc"? 00:50:58 I have this huge urge to write a program to generate theorems. 00:51:07 Five 00:51:13 heh 00:51:32 Gregor, who needs 3G anyway ;P 00:51:48 Now that Sprint has _4G_! 00:52:03 it does? 00:52:13 iirc there is 4G by Telia in some parts of Stockholm 00:52:15 Claims to anyway *shrug* 00:52:26 "First nationwide 4G network" 00:52:34 Gregor, but what I was aiming at was GSM + EDGE 00:52:39 that may be GPRS 00:52:42 works fine for me 00:52:53 Sprint is a totally different technology, not GSM or related. 00:52:58 It's CDMA (?) 00:53:00 it's like 640 kB. Enough for everyone. 00:53:18 "No one will ever need more than 640K of " 00:53:46 Gregor, basically, I have this when using my phone for data traffic: http://en.wikipedia.org/wiki/EDGE 00:54:44 I guess that Sprint 4G is WiMax or something related (and that Telia 4G is LTE or something). 00:55:07 Ilari, I have no idea 00:55:40 Ilari, google seems to indicate it is LTE 00:55:43 * Sgeo is somewhat scared he might end up dropping the phone 00:56:17 "* On December 14, 2009, the world's first publicly available LTE service was opened by TeliaSonera in the two Scandinavian capitals Stockholm and Oslo." 00:56:22 says Wikipedia 00:57:03 My dad has suggested the possibility of just getting an iPod Touch 00:57:22 -!- augur has quit (Ping timeout: 252 seconds). 00:57:46 Actually, current LTE is pre-4G (AFAIK, no official specs on final actual 4G yet). 00:57:59 I was talking to someone on the bus, and he had a Nexus One. He complained about the keyboard. I tried it. The only thing that I disliked about it was that when I turned the phone to the side, there was a bit of a delay 00:58:13 And I prefered the keyboard in the turned-to-the-side mode than regular 01:00:04 What's the main language for Android dev.? Java? Can I develop in Haskell? 01:02:07 java. 01:02:10 sort of. 01:02:25 you can do stuff in haskell then do the ui in java, with tweaking, and you can write whole programs in e.g. python with android scripting environment 01:02:36 Sgeo: ipod touch has no mobile internet 01:02:48 * alise tries to wrangle prolog into spitting out algebraic identities 01:02:58 alise, I know, and that would really really suck 01:03:33 it would 01:03:36 the ipod touch is near-useless 01:04:01 Currently, it seems like the plan is to just get me Intenet access on my current phone 01:04:11 s/phone/plan/ 01:04:18 Which would be needed anyway for the Nexus One 01:04:32 So I need to convince my dad to spend $529 extra :/ 01:04:37 I can chip in maybe $150 01:06:36 What's the main language for Android dev.? Java? Can I develop in Haskell? <-- can't you do native nowdays iirc? 01:06:54 So I need to convince my dad to spend $529 extra :/ <-- wth? 01:07:03 Sgeo, internet is expensive there 01:07:08 AnMaster, I want a Nexus One 01:07:30 He's def. going to give me Internet access one way or the other 01:07:39 Sgeo, is that $529 per month on the plan? 01:07:43 or what? 01:07:54 AnMaster, $529 total for the Nexus One 01:07:57 oh 01:07:58 I see 01:08:03 that makes a LOT more sense 01:11:32 i'm trying to make prolog spit out algebraic identities just by making a bunch of rules id(A,B) 01:11:55 but the problem is that prolog tries to give me tons of examples for the variables in A and B where it fits as opposed to saying "yes, true for 'enm all" 01:11:56 *em 01:22:04 Is there any kind of insurance in case my phone breaks or gets lost or stolen? 01:25:58 apart from the police? no 01:26:13 well my identity printer keeps printing A+-A=0 again and again and again :( 01:27:20 i'm trying to make it print shallow (less than a certain number of nested applications), non-A=A, identities :( 01:29:04 I have a terrible track record when it comes to phones 01:29:25 Although I can get my email address engraved on it, so 01:43:46 why is this stupid code not parsing... 01:48:16 How vulnerable is the Nexus One to breaking, compared to the RAZR? 01:48:17 oh 01:48:21 Sgeo: I don't know. 01:48:38 It's less "tough", probably, because it has heavy complex electronics, not just thin lightweight plastic. 01:48:46 But on the other hand it will have a thicker coating. 01:49:05 Just try not to drop it. I've dropped my iPhone a few times and it's been fine, but never from much of a distance and not really onto hard concrete. 01:49:11 They're solid things, smartphones, generally. 02:02:49 I would really like to write a computer algebra system in Prolog. 02:03:17 Although really I'd need to add some sort of nested application syntax, so that I could write: 02:03:33 ...well, things, without a bunch of sequential existentials 02:04:05 Say g[x,f[x,y,z],z] = f(x,y,z,R), g(x,R,z,R2) or something. 02:04:14 Where R2 is automatically the "result parameter" of a function if you do e.g. 02:04:25 f[x] := foo[x,bar[x,x],x] 02:04:33 which would translate to 02:04:56 f(X, R) :- bar(X, X, R1), foo(X, R1, X, R). 02:05:02 still, I don't like the []s 02:07:43 * Sgeo offered to pay $300 from his own money 02:08:11 Hmm, this would also generalise to variables: 02:08:34 x := f[x,y,z] => x(R) :- f(x,y,z,R). 02:08:49 Although with side-effects it'd have to be more. 02:15:25 Can I run Marketplace applications in the Android emulator? 02:18:33 I don't know. Look it up? 02:19:37 * Sgeo will just try it 02:26:34 * alise wonders how best to write the function [true,true,true,false,true,true,false,false,false,...] => [3,2] in Prolog 02:27:04 i.e. unary "true"s form a number, then false is a list separator; two falses in a row end the list 02:45:28 Emulator took a while to start 02:48:41 I want F: list nat -> Boolfuck 02:48:44 such that 02:48:49 * Sgeo wonders how to fake multitouch 02:49:15 forall n in xs, eval_with_some_appropriate_input_method (F xs) n = xs[n] 02:49:48 (use parallel processing with timeout; basically, generate tons of boolfuck programs until they generate the first length(xs) terms correctly for those inputs, then return it) 02:50:34 If my phone actually starts ringing, I'll scream 02:50:46 ring ring 02:50:47 ring ring 02:52:27 It's impossible to use the notifications thing like this 02:52:42 are you using the latest os version? 02:52:45 i.e. the one on nexus one 02:52:53 or does it only do the ugly old ui one 02:53:01 i'm considering buying a nexus one now 02:54:06 It's the latest OS version, but I think the Nexus One is a bit modified, and I'm not sure how to get it on here 02:54:12 is it 2.1? 02:54:12 eclair? 02:54:14 if so cool 02:54:16 and i don't think you can 02:55:05 Sgeo: btw the nexus one has some slight colour issues -- can't find a link right now -- but basically 02:55:28 some (pathological) greyscale images can produce dull colours due to the way the screen works (basically silly subpixel magic to boost resolution) 02:55:42 side-effect is that text is less sharp than on the Droid, despite having a "higher" resolution (not if you compare by the same metric) 02:55:49 but somehow I doubt you'd notice it, were you not looking 02:55:55 and in every other way the nexus one is better 02:56:15 Sgeo: besides...the nexus one has a fucking 1ghz cpu 02:56:49 I think offering to pay $300 of it with my own money is helping convince my dad 02:57:06 Just wish it wasn't effectively locked into AT&T 02:57:14 you will be able to crackunlock it :P 02:57:28 Sgeo: btw if you are expecting the on-screen keyboard to be nice for long periods of time -- say ircing for more than 15 minutes -- 02:57:36 you will (probably) be disappointed 02:57:47 I mean, I get fed up with the iPhone keyboard and it's better than Android's 02:57:53 if you have patience it should be fine though 02:58:01 but what i'm saying is... you're not going to write emails on this thing 02:58:05 It's better than typing with what the RAZR has 02:58:10 quite 02:58:21 but when you have a smartphone you want to do MOAR 02:58:31 I actually got to play a bit with a Nexus One 02:58:43 Talked to someone who goes to my school while we were on the bus 02:59:38 hmm... droid vs nexus one: droid's keyboard is a tiny tiny thing, don't like it; droid only has 2.0 for now (2.1 soon); droid only has 550 mhz vs 1ghz (!); apparently droid's actual making is a bit flimsy; droid has 256 megs of ram vs 512; text is noticably sharper on droid, doesn't have the colour issues the nexus one does 02:59:50 (the droid screen is pretty amazing -- 265 dpi!) 03:00:07 so basically if you care about the screen a lot go droid, but if you care about having an actually nice phone go with the nexus one 03:00:08 Locked-into a contract is apparently not an option 03:00:12 besides 03:00:14 only verizon has droid 03:00:21 and... verizon suck donkey balls 03:00:31 More than AT&T? 03:00:40 yes. 03:00:45 verizon are the ultimate suck - and I'm not even in the us 03:00:50 they brand the phones with their name and such 03:00:57 -!- Alex3012 has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.2/20100316074819]). 03:00:57 I get the impression that Sprint is the best network 03:01:05 but they're CDMA like verizon, not GSM 03:01:09 so less phones support 'em 03:01:35 Sgeo: oh the nexus one display is OLED, that's awesome 03:02:00 I think the only other real option is iPod Touch 03:02:00 get it, /anything/ that causes any sort of profit for OLED producers is a good thing 03:02:11 ipod touch isn't really an option if you want to actually do smart things with your phone 03:02:25 Which is not QUITE as bad as it sounds because there are a LOT of wifi hotspots near where I live 03:02:26 But still 03:03:52 if you like xkcd, xkcd has a droid and says the screen is the most orgasmic thing ever created 03:04:04 if you like xkcd you're retarded 03:04:24 How long does it take an Android phone to power down? o.O 03:04:34 "These issues aside, Im really happy with my Droid. The screen is incredible, its much faster and easier to use than the G1, and I wouldnt trade away the physical keyboard and persistent SSH for anything." 03:04:39 Sgeo: Who powers down a smartphone? 03:04:41 There's a lock button. 03:04:55 -!- Alex3012 has joined. 03:05:14 alise, what about temporarily preventing calls from being received? 03:05:28 Um, how do I stop the emulator from shutting down? 03:05:46 stopping calls from being received is pressing hang up whenever someone tries to call. 03:05:54 or turning on aeroplane mode or analogous :P 03:06:04 * Sgeo currently uses airplane mode 03:06:31 Sgeo: Android bug, be warned: "# Sometimes, when arranging home screen icons, you feel sad and youre not sure why." --xkcd 03:06:39 lol 03:06:53 "# Sometimes the GPS stops getting locks on satellites until the phone is rebooted. (This may be related to the GPSStatus app, installed to avoid this kind of thing.) To be fair, satellites are very small and far away, so you can hardly blame it for having trouble." 03:06:57 http://blog.xkcd.com/2010/02/08/android-bug-reports-songs-rovers/ --etc 03:07:25 "# Sometimes an Android user will think they hear someone say their name, but theyre not sure, so they say Yes?, but then it turns out it was something else." 03:07:29 "# Occasionally, when swiping the lock sideways to unlock the phone, the lock button images are rotated by 90 degrees. This is probably connected to your Jabber server somehow." 03:07:35 I could go on; it's the funniest thing xkcd has written in years. 03:09:36 * Sgeo clicks the emergency call button 03:09:58 * Sgeo dials a non-emergency number 03:10:16 "Call not sent, ******* is not an emergency number!" 03:10:54 * Sgeo is so glad that this thing can't make actual calls 03:11:06 Because if it could, I just accidentally prank-dialled 911 03:11:31 It thinks 999 is not an emergency number 03:12:18 So, after putting in the wrong pattern 5 times, it forces you to wait 30 seconds 03:13:11 -!- songhead95 has joined. 03:13:13 "911 " "...beep...beep..." "Uh, sorry, wrong number. " 03:13:19 I meant to dial 495398459911. 03:18:44 * Sgeo still can't see a way to access the Marketplace from the emulator 03:18:51 It does have Internet access, though 03:24:32 -!- dslex has joined. 03:24:57 -!- dslex has left (?). 03:27:56 -!- BeholdMyGlory has quit (Remote host closed the connection). 03:28:17 " The certificate is used only to establish trust relationships between applications, not for wholesale control over whether an application can be installed. The most significant ways that signatures impact security is by determining who can access signature-based permissions and who can share user IDs." 03:28:18 -!- songhead95 has quit (Read error: Connection reset by peer). 03:29:05 Sgeo: http://www.displaymate.com/Nexus_iPhone_ShootOut.htm 03:29:10 that's just the disply 03:29:23 note that the bad assessment of nexus one is based on the perspective of someone who really cares about displays 03:29:45 I would rather just get something not restrictively locked down 03:30:21 for instance: 03:30:26 (protip: nothing) 03:30:57 "Buy the phone without service and insert your own SIM card. Includes a Nexus One phone case, wall charger, and USB cable. Free shipping in the continental US." 03:30:57 Android's locked down? 03:30:59 not locked down at all 03:31:06 Sgeo: dude i'm talking about the nexus one 03:31:10 which runs... android 03:31:23 Two versions of the device are currently offered. Both versions support four GSM radio frequencies (850/900/1800/1900), but the supported 3G/UMTS bands will differ depending on the version selected. When ordering, you'll be able to select either of the following devices: 03:31:24 * 3G coverage on networks that use the 850 MHz, 1900 MHz, and 2100 MHz frequency bands (recommended for use on AT&T in the US) 03:31:24 * 3G coverage on networks that use the 900 MHz, AWS, and 2100 MHz frequency bands (recommended for use on T-Mobile in the US) 03:31:24 all it is is 03:31:29 the bands the two use are different 03:31:32 I meant, locked down in terms of installable software 03:31:42 so the AT&T one will get better coverage with AT&T 03:31:46 it'll still WORK with t-mobile 03:31:49 just not as well for hardware reasons 03:31:55 Sgeo: howso 03:32:00 nexus one has marketplace 03:32:05 and you can install your own package files 03:33:05 Users are able to gain root privileges on the device by unlocking its bootloader using the fastboot command "fastboot oem unlock."[46] Unlocking the bootloader allows the user to install other firmware images that give the user root access. Obtaining root privileges enables a user to override protected operating system features, install arbitrary software, and enable internet tethering to share the phone's 3G network connection via a wireless LAN, among 03:33:07 other things.[47][48] Upon running the fastboot command, the user is presented with a Google-created screen stating that unlocking the bootloader will void the warranty.[49] The popular CyanogenMod build of Android has already been released for the device.[50] 03:33:17 so you can even get root on it in an official way 03:34:00 Sgeo: so... 03:34:23 alise, that's why I'd really rather have Nexus One than iPhone 03:34:44 I never once pushed iPhone 03:34:54 http://www.displaymate.com/Motorola_Droid_ShootOut.htm ;; more dissing of nexus one display 03:34:56 I never suggested that you did 03:35:03 I'm just telling you that the Nexus One display isn't very good 03:35:13 and if you care about that sort of thing, like you want really crisp text... get the droid if you can 03:35:22 otherwise get the nexus one as it's better in other ways 03:35:28 Contract == no deal 03:35:32 Dad's rules, not mine 03:35:41 http://www.displaymate.com/Nexus_Droid_ShootOut.htm ;; nexus vs droid 03:35:58 well you can get unlocked droid... 03:36:01 motorola milestone 03:36:09 but you'd have to import it i think 03:36:12 from europe 03:36:38 How much would that cost? 03:36:48 I'm looking it up now 03:36:52 and apparently milestone is gsm, so it'd work on at&t 03:37:16 eh apparently it's tuned for t mobile bands 03:37:48 nah you'd have to import... 03:38:12 Sgeo: well it's $552 in the uk 03:38:20 so find somewhere that ships to US and add shipping cost... not pretty 03:38:21 go for nexus 03:38:29 you probably use a shitty computer display and don't care 03:38:45 The keyboard is what makes me lean to Droid very slightly 03:38:58 Don't care so much about display 03:40:22 http://www.displaymate.com/Motorola_Droid_ShootOut_files/image004.jpg droid 03:40:23 http://www.displaymate.com/Motorola_Droid_ShootOut_files/image003.jpg nexus 03:40:28 (of course much smaller IRL) 03:40:36 if you are fine with that ... then it just comes down to keyboard 03:40:43 if it's only very slightly .. just get nexus 03:40:50 getting milestone would be a bitch and it would be very experimental and unsupported 03:41:04 The biggest problem really is cost 03:41:13 besides, nexus is pretty 03:41:14 droid is ugly 03:41:21 Sgeo: well importing milestone would cost you top dollar 03:41:35 nexus is the cheapest you will get a contract free android phone 03:45:50 Deewiant: Maybe I can write the funge in ATS. 03:46:00 REDDIT SEZ IZ LIKE ML BUT WITH SPEEEEEEEED 03:46:12 alise, just choose a language 03:46:24 German 03:46:28 Even BASIC is a better choice than no choice. 03:49:28 Hm. What's the lock button on Nexus One? In this emulator, it's the Hangup button, but Nexus One doesn't have a hangup button as far as I know 03:50:21 Pattern lock thingy decided to just ignore me 03:51:07 Power down button also works 03:55:10 -!- elmo77 has joined. 03:56:58 -!- elmo77 has quit (Read error: Connection reset by peer). 04:02:13 -!- lament has quit (Quit: lament). 04:02:51 [[I hate that indentation algorithm; can't I tweak it? 04:02:52 Ah, yes, of course, but this manual will not tell you how.]] 04:02:53 Umm... fuck you too? 04:04:31 Docs for what? Some Prolog thing? 04:05:40 -!- Oranjer has left (?). 04:09:36 Sgeo: sml mode for emacs 04:09:46 Deewiant: I'm trying to formulate a signature for a fungespace module 04:09:48 So far I have 04:09:53 type fungespace 04:09:54 val blank : fungespace 04:09:54 val get : fungespace * coords -> int 04:09:54 val put : fungespace * coords * int -> unit 04:10:01 What other operations do you think I'll find useful at first? 04:10:28 A bounds-calculating method? 04:10:39 That's two coords, right? Min and max. 04:12:15 The Alarm Clock just crashed 04:17:36 Deewiant: BTW, do you think Judy Arrays would work well for fungespace? 04:20:23 What's a Judy array? 04:21:20 http://judy.sourceforge.net/ 04:21:41 It's 4:21; I have to go outside and do stuff tomorrow. 04:21:43 Should I bed myself? 04:22:43 I think I confused the fake accelerometer 04:22:56 * Sgeo slaps alise for being awake 04:23:06 i'm not a norn 04:23:12 can you make masochistic norns i wonder 04:23:41 Ye.. actually, hm. Maybe have "pain" decrease for normally painful activities 04:23:44 Or would that not count 04:24:08 Make an increase in pain correspond to an increase in pleasure, as opposed to any negative variables. 04:26:15 pain, as a drive, is, in and of itself, a negative variable 04:26:47 Although we could make high concentrations of the chemical equate to low input to the brain 04:27:17 I... think 04:27:20 Anyways, go to sleep 04:28:37 k 04:28:40 bye 04:35:25 -!- Sgeo_ has joined. 04:36:09 -!- alise has quit (Ping timeout: 258 seconds). 04:38:08 -!- Sgeo has quit (Ping timeout: 240 seconds). 05:02:13 -!- wareya has quit (Ping timeout: 246 seconds). 06:02:28 -!- wareya has joined. 06:11:06 -!- oerjan has joined. 06:12:40 -!- jcp has changed nick to id_est. 06:13:06 -!- id_est has changed nick to jcp. 06:13:59 -!- jcp has changed nick to id_est. 06:15:24 -!- id_est has changed nick to jcp. 06:43:10 -!- augur has joined. 06:58:49 -!- augur has quit (Ping timeout: 265 seconds). 07:01:55 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 07:10:58 -!- wareya has quit (Ping timeout: 264 seconds). 07:22:45 -!- oerjan has quit (Quit: leaving). 07:52:06 -!- wareya has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:18:35 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100315083431]). 08:18:52 -!- Tritonio_GR has quit (Ping timeout: 258 seconds). 08:21:08 -!- augur has joined. 09:50:49 -!- tombom has joined. 09:59:17 -!- FireFly has joined. 09:59:23 -!- FireFly has quit (Changing host). 09:59:23 -!- FireFly has joined. 10:00:17 -!- EgoBot has quit (Ping timeout: 276 seconds). 10:00:17 -!- HackEgo has quit (Ping timeout: 276 seconds). 10:07:50 -!- kar8nga has joined. 10:15:11 -!- HackEgo has joined. 10:18:56 -!- ellisonch has joined. 10:19:28 -!- HackEgo has quit (Ping timeout: 252 seconds). 10:30:20 -!- HackEgo has joined. 10:35:48 hello. can anyone point me towards a reMorse specification or set of programs? possibly even an interpreter? Particularly for the reMorse2.- variant. I've found the article on the esolang wiki, but the link to the spec is broken and there are no sample programs. 10:36:07 -!- Alex3012 has quit (Max SendQ exceeded). 10:38:40 -!- Alex3012 has joined. 10:42:44 -!- HackEgo has quit (Ping timeout: 246 seconds). 10:47:03 hm 10:47:51 ellisonch, tried waybackmachine or such? 10:48:10 http://web.archive.org/web/*/http://members.tripod.com/rkusnery/remorse.html 10:48:17 maybe something useful there? 10:48:41 http://web.archive.org/web/20080403122701/http://members.tripod.com/rkusnery/remorse.html seems useful for example 10:50:54 I added that link to the page on the wiki 10:51:53 ellisonch, hope that helps 10:56:46 ellisonch, finding an interpreter may be harder, unless there is one at http://esolangs.org/files/ 10:56:53 which doesn't seem to be the case 10:57:30 (And I doubt waybackmachine has that. Very often it doesn't even have the images of the page...) 11:06:34 -!- kar8nga has quit (Remote host closed the connection). 12:43:13 -!- MizardX has joined. 12:46:38 -!- BeholdMyGlory has joined. 13:15:17 -!- myndzi has quit (Ping timeout: 276 seconds). 13:35:18 ^source 13:35:18 http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 13:43:45 AnMaster: Hey, cfunge locks up on fungot 13:43:45 Deewiant: what on earth did you figure out that 13:43:57 fungot: top 13:43:57 Deewiant: dammit. what happens 13:44:18 fungot: Starts eating up all my memory and eventually has to be killed due to using some 7.5 gigabytes 13:44:19 Deewiant: pythonesque list? when length is wanted? somewhere in between, i will alter the style sheet 13:44:26 Don't know about that. 13:45:14 -!- alise has joined. 13:45:26 alise: Don't know enough about Judy arrays to be able to say. 13:45:43 Deewiant: They're 256-tries. Basically. 13:45:57 What's an n-trie 13:45:57 For hashtables; though I'm sure you could tweak what number they are. 13:46:10 http://en.wikipedia.org/wiki/Trie? :P 13:46:12 http://judy.sourceforge.net/doc/10minutes.htm 13:46:15 I know what a trie is 13:46:17 ^ I found this quite helpful 13:46:46 Deewiant: I gather it means the nodes are chars 13:46:52 So evidently... yeah 13:47:15 Apparently they're quite good at hash tables, and you can just initialise them to NULL, and also they're good for sparse stuff. 13:47:18 Which gets me interested... 13:47:56 I'd say that being good for dense stuff is more important 13:48:09 True. 13:48:25 Judy_hashing.pdf 13:48:26 How to use Judy to create a scalable hash table with outstanding performance and automatic scaling, while avoiding the complexity of dynamic hashing. 13:48:27 http://judy.sourceforge.net/examples/index.html 13:48:32 http://judy.sourceforge.net/examples/Judy_hashing.pdf 13:49:39 I don't feel bothered to read that stuff through properly right now; if it looks good to you, give it a shot :-P 13:50:11 Deewiant: That .pdf is just two pages long. 13:50:18 And the 10 minute intro is mostly fluff ;-) 13:51:22 Well, it looks like a decent hash table :-P 13:52:10 Right, but Judy doesn't do hashing at all by itself. 13:52:20 I think you'd use two nested Judy arrays, each with a one-wod key. 13:52:25 And I think it's optimised for that sort of thing. 13:52:32 Still, what's the expanded acronym of the thing you use, so I can look it up? 13:52:58 Basically, just an array of boxes 13:53:14 It's my own Funge-specific thing, so it doesn't have much of a name :-P 13:54:22 AABB or whatever? 13:54:33 Axis-aligned bounding box 13:54:38 I.e. a box. 13:54:57 I just used that because it sounds a bit fancier than "Box" :-P 13:55:57 Okay. 13:56:11 So are all the boxes a fixed size or something, and you just allocate them around wherever changes? 13:56:20 No, dynamically sized 13:56:22 I should probably read the code. 13:56:26 Deewiant: Decided how, roughly? 13:56:50 For easy cases like file loading it's the smallest box in which the file fits :-) 13:57:23 (Which is a poor solution for sparse files, which shows up in Fungicide as a loss to cfunge) 13:58:17 Why would that be a loss to cfunge, not you? 13:58:29 A loss of CCBI to cfunge 13:58:34 Anyway, I didn't ask about the special cases ;-) Mind, I'm just curious: I'm unlikely to use your system because I'm an experimenter at heart. 13:58:35 I.e. CCBI loses 13:58:37 Deewiant: Ah. 13:59:09 All cases are more or less special 13:59:35 The default case, for a p into an unallocated location, is a 17*17 box centered there 14:06:39 s/2 :: ((A,B,C)?, ((A,B)?, (A,C)?)?)? 14:06:40 s(X, lam [(Y, lam [(Z, R) :- Y(Z,R1), X(Z,R1,R)])]). 14:07:44 Yes. 14:08:19 :-) 14:08:32 The problem with adding higher-order predicates to Prolog is that it gets fucking ugly. 14:08:38 This would be better: 14:08:39 s/2 :: ((A,B,C)?, ((A,B)?, (A,C)?)?)? 14:08:39 s X \(Y, \(Z,R) :- Y(Z,R1), X(Z,R1,R)). 14:08:45 but requires currying to work, which it can't 14:08:48 (because you can't return values) 14:11:12 rat(A/B) :- B \= 0, gcd(A,B,1). 14:11:20 prolog won't allow you to enumerate all rationals with this definition :(( 14:19:07 Does INTERCAL have any multithreading kind of things? 14:20:05 Where's ais when you need him 14:25:37 yes 14:25:48 it's lock-step and not multi-cpu, and it makes no fucking sense, but it has it, yes 14:26:13 So how does it work 14:26:55 Nobody has any clue. 14:27:05 Read the C-INTERCAL manual? 14:27:13 http://c.intercal.org.uk/manual/vd89dqoq.htm 14:27:57 http://c.intercal.org.uk/manual/tigcnnv0.htm#Multithreading-using-WHILE ;; addition using multithreading, fuck yeah 14:28:27 Alright, nexting stacks are per-thread 14:28:33 That's what I wanted to know :-) 14:28:51 What on earth are you doing? 14:29:00 Implementing ICAL 14:29:54 Down with the cfunge machine! Fuck yeah! 14:30:01 Deewiant: Wait, isn't it IFFI? 14:30:10 The one you're thinking of is 14:30:17 Deewiant: Well, do that one. 14:30:22 No. :-P 14:31:13 Deewiant: I hate you, and your family. 14:31:41 Naw, you're just saying that 14:31:53 I don't even know your family, so I have no qualms with hating them. 14:32:13 I find no docs for IFFI, FWIW. 14:32:25 I think it's in either cfunge or C-INTERCAL source tree. 14:32:38 Or, you know, the ther. 14:32:47 AnMaster: Hey, cfunge locks up on fungot <-- what? 14:32:47 AnMaster: *sigh* i must be doing it 14:32:57 AnMaster: Just that. 14:33:02 WHAT IS THE MEANING OF THIS 14:33:04 $ cfunge fungot-load-freenode.b98 14:33:04 RAW >>> :leguin.freenode.net NOTICE * :*** Looking up your hostname... <<< 14:33:04 ^C 14:33:05 Deewiant: or no responses at all, but the outfile only has the parameters that led to the current sub. maybe fnord can just happen in the usa 14:33:18 Deewiant, huh? Doesn't happen with ccbi? 14:33:22 Nope. 14:33:22 * AnMaster wonders what broke recently then 14:33:39 Deewiant: I've started working on my MLfunge -- finally -- and then I realised that it doesn't have hash tables and I'll have to implement them myself. http://pastie.org/914048.txt?key=jjvwhv7j8jfnuzq32ppumw 14:33:40 Woe is I. 14:33:56 AnMaster: probably your hacks around being slow as fuck 14:34:03 alise: Why hash tables? :-) 14:34:09 hm wget http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 doesn't work 14:34:10 AnMaster: it's the 1cfa paper, irc bot? 14:34:16 as in 14:34:17 html 14:34:20 * AnMaster opens in browser 14:34:23 http://git.zem.fi/fungot/blob_plain/HEAD:/fungot.b98 14:34:24 Deewiant: i suppose if i coded it in java 14:34:30 fungot: No, that really wouldn't help. 14:34:30 Deewiant: as long as you are. thanks, krystof.) a variety of things for cmpauxmd.o. i 14:34:44 Deewiant: Because I thought "oh, this will be dumb and simple". 14:35:02 If I used Standard ML of New Jersey, I could use hash-tables; but MLton is a more conservative implementation. O'Caml has them, too. 14:35:03 Deewiant, first line of cfunge -v pleaase 14:35:06 please* 14:35:07 alise: You can use whatever trees they provide (surely they do provide?) 14:35:09 so I know what options you used 14:35:13 AnMaster: Latest bzr, any options 14:35:19 But currently: cfunge 0.9.0 [+con +trace +exact-bounds +ncurses p:64 c:64] 14:35:20 Deewiant, any options? 14:35:22 ah 14:35:29 Deewiant, did you use the new ip list or not? 14:35:32 As in, I tried all relevant permutations 14:35:33 Both 14:35:36 huh 14:35:38 Deewiant: Here's the types in the Basis Library of Standard ML: (strictly speaking, even this is optional!) http://mlton.org/BasisLibrary 14:35:46 Both 32 and 64, both new IP list and not, both concurrent and not 14:35:52 I don't think I tried without exact bounds. 14:35:53 They do provide a slight SML/NJ compatibility layer -- though not with this -- and the MLton structure, which has a hashing function: 14:35:56 http://mlton.org/MLtonStructure 14:36:01 Deewiant: Apart from that, nope. 14:36:12 Deewiant: Remember, SML was designed to have very precise formal semantics. 14:36:14 alise: Heh. Have fun. 14:36:17 Adding anything to the language makes this a harder task. 14:36:30 I didn't remember because I didn't know. 14:36:33 So the strategy is pretty much "provide the fast basic structures, let the user implement the rest". 14:36:39 I'm not very familiar with the MLs. 14:37:19 Deewiant: Well, that was the whole point: it originated as a tactic-writing language in a theorem prover. Later, it became generalised as a language to define languages in: and you want your code-specification of a language to be precise, so the SML standards do the hard part, i.e. providing a rigorous formal semantics. 14:37:35 Deewiant, it locks up deep inside libc here 14:37:45 Deewiant, in the SOCK stuff 14:37:49 Does it also eat up tonnes of memory for you? 14:37:50 which I haven't changed recently at all 14:38:01 Deewiant: Talking to me or AnMaster? 14:38:08 Anyway, I could always use... Mythryl. :-) 14:38:09 alise: AnMaster. 14:38:12 no 14:38:26 it just times out connecting 14:38:35 AnMaster: I had to kill it because it made my machine swap at over 7 gigs 14:38:46 Deewiant, well, can't reproduce yet 14:38:56 Deewiant, how does your fungot-load-freenode.b98 look? 14:38:56 AnMaster: i selected ' trigger' for my cgi script running somewhere? 14:39:08 Deewiant: In fact, I don't even see a function to adjust the size of an array. 14:39:26 AnMaster: Right; you need to put in the IP for leguin.freenode.net (or whatever works I guess) since orwell is down now 14:39:31 aha 14:39:36 I imagine they are expecting that it will usually cause a reallocation anyway. 14:39:50 alise: heh. 14:40:16 Deewiant: http://www.standardml.org/Basis/array.html <-- the entirety of the array functions 14:40:31 Deewiant, hm 14:40:32 brb 14:41:26 -!- tombom has quit (Ping timeout: 258 seconds). 14:42:07 Deewiant: I wonder if I could use some sort of tree to partition up fungespace. 14:42:16 You could. 14:42:20 Say we have a 256x256 space; then there would be a tuple of 0-128 and 128-256. 14:42:34 Inside the former, 0-64 and 64-128. 14:42:45 Look into quadtrees. :-) 14:43:26 Deewiant: Still, it sounds like it'd be quite inefficient. 14:43:35 Deewiant, it locks up but it doesn't grow very fast the ram usage at least 14:43:43 as in, less than a mb in several minutes 14:43:57 how long did it take for you to fill up that ram? 14:44:10 About 10-20 seconds maybe 14:44:18 Could be due to some other settings 14:45:00 Deewiant, I think I know one way it could happen for you but not me: 14:45:01 (gdb) bt 14:45:01 #0 0x000000000040e104 in stack_pop (stack=0x0) at /home/arvid/src/own/cfunge/trunk/src/stack.c:142 14:45:15 spot the weirdness 14:45:24 AnMaster: stack=0x0 :-) 14:45:31 Deewiant, indeed. 14:45:42 AnMaster: http://pasteit.ghost1227.com/1340 may or may not help in causing it. 14:45:45 Deewiant: Hmm, so it's not per-coordinate; you get NW/NE/SW/SE. 14:45:58 I need to implement this so I'm trying to get my head around it :-) 14:46:09 I think I want tuples, not arrays; nested tuples. 14:46:11 So 14:46:11 hm I wonder why it locks up in the file output code btw 14:46:18 I mean, why is it writing a file 14:46:28 type quadtree = Leaf of int | Branch of quadtree * quadtree * quadtree * quadtree 14:46:41 alise: If I understand what you mean by per-coordinate, I think you might want k-d-trees 14:46:52 also why didn't the assert trigger, it is compiled with asserts.. 14:46:53 Deewiant: I don't want per-coordinate, though; quadtrees sound absolutely fine. 14:46:57 They're probably pretty fast, right? ... Right? 14:47:07 IIRC stinkhorn uses octrees 14:47:19 And it's faster than cfunge, so yeah :-P 14:47:35 -!- tombom has joined. 14:47:39 Octrees? 14:47:44 How would that help for 2D? 14:47:57 Dunno, maybe it's trefunge-generic 14:48:26 Hmm, Stinkhorn actually implements Trefunge; I'd forgot about that 14:48:35 okay it is writing to a filename called "" 14:48:46 which indicates something is indeed quite wrong 14:49:07 Okay, no 14:49:10 warning: -3 doesn't do anything yet 14:49:16 -!- kar8nga has joined. 14:49:25 alise: So I guess the Funge-Space is there at least in part but not everything is :-) 14:49:29 Deewiant: Well, octrees would actually help for 2d right? Less traversals. 14:49:49 "Haskell, on the other hand, has a magnificently expressive type system. It has dependent types" wot 14:49:59 alise: I suppose, but how to split a 2D space like that? (I don't know, maybe it's easy and/or obvious) 14:50:16 * alise makes some drawings 14:50:56 fizzie, there? What revision of cfunge is fungot currently running on? 14:50:56 AnMaster: " subject matter" is a perfectly good solution out there that was also my computer science class, but i 14:51:40 Deewiant: Eh, I can't draw it. 14:51:44 But basically, I'd make the regions cone-shaped. 14:52:09 alise: And you think the sines and cosines involved in that are fast?-) 14:52:19 Deewiant: Touche. 14:52:24 Quadtree it is. 14:52:38 I have no idea how to expose pattern-matching in SML, so let's just assume I can. 14:53:11 Deewiant: Hmm, I really want a mutable quadtree; if I just have a functional one, then I have to update every parent to update a child. 14:53:14 -!- MigoMipo has joined. 14:53:17 (I'm sure Okasaki would have some magic trick to avoid this.) 14:55:10 Deewiant, unable to reproduce, lockup yes, memory trashing no 14:55:23 and the stack thing didn't happen again weirdly enough 14:55:29 Well start with the lockup 14:55:42 binary revision search then 14:59:33 strangely enough it happens with older revisions too 14:59:43 * AnMaster looks at older fungot revisions 14:59:44 AnMaster: yes. you should get " fnord that doesn't seem to 15:00:36 fungot seems to suggest it's a stringmode bug 15:00:36 Deewiant: i think ti's are pretty nice though. have fun. :) that has it's advantages 15:02:00 Deewiant: My build system will be rather simple: MLton doesn't support incremental compilation :-) 15:02:18 Deewiant, hm 15:02:53 Deewiant, I'm trying to find last working revision of both fungot and cfunge but failing to do so 15:02:53 AnMaster: stuff like new! miracle! space-age! are getting overused. why move if it's that camera we're talking about 15:03:08 AnMaster: Maybe it never worked and it's still running on Rc/Funge-98 15:03:10 And has not many special compiler options; all optimisations are aggressively done always. 15:03:12 Deewiant, what data files does it need to have created? 15:03:19 Deewiant, har. I ran it before I know 15:03:22 Deewiant: I'm pretty sure fizzie did switch it over to cfunge. 15:03:23 AnMaster: I don't know; I just ran it from scratch 15:03:38 AnMaster: With CCBI it connected and started ponging and such, with cfunge it hung. 15:05:16 Deewiant, well it is bouncing between a ^ and a o. The o is not in the original source as far as I can tell 15:05:23 it *could* of course have been written there. Hard to tell 15:05:50 wait, I'm looking at the wrong fungot file in the editor 15:05:50 AnMaster: about odd and even streams are in general very cool.... :) is it possible for there not to be 15:06:24 well no it isn't there in the one it is running either 15:07:03 AnMaster: Notice that the fungot.b98 is loaded at 0,100 15:07:03 Deewiant: it's a recursive verb. ' void main() char x input; fnord main() tweak 15:07:10 Deewiant, oh right... 15:08:42 huh 15:08:56 pratchett.freenode.ne 15:08:56 pratchett.freenode.ne 15:08:56 >31g :3g':-#^_ 1+ 15:08:56 >:3g:#v_ > 15:09:02 I don't think that is correct 15:09:06 from dumping funge space 15:10:04 CCBI doesn't even end up in that code 15:10:08 indeed 15:10:21 It doesn't hit that ^, at least 15:10:23 I guess SOCK read/write buffer is wrong 15:10:37 somehow 15:19:50 no it isn't SOCK code as far as I can tell 15:19:54 just fungot itself 15:19:55 AnMaster: ' fnord /a/b/ /a/b/ /a' layout would make better graph out of those pin boxes, you know 15:20:09 that keeps writing that line over and over 15:20:10 Wow, MLton is truly dog slow. 15:20:58 I figured out why though. 15:20:59 It has to compile the entire standard library every time. 15:21:04 Since it's whole-program. 15:21:49 Error: quadtree.sml 15.5. 15:21:50 Syntax error: replacing INCLUDE with EXCEPTION. 15:21:52 You can't just do that! 15:22:19 hm 15:22:46 Deewiant, I'm unable to find last working revision of either cfunge or fungot. I need to ask fizzie when it gets here what revision fungot is currently running on 15:22:47 AnMaster: or the continuum hypothesis is likely to get this. i assume diamondie has stolen some fnord plutonium from a brazilian nuclear facility.), sieni_. he 15:25:19 Deewiant, even very old versions show this behaviour now 15:26:46 Deewiant, my best guess is that the new(ish) ircd-seven ircd that freenode switched to some time ago trigger some bug due to the extra lines sent at connect, and that fizzie fixed that locally but haven't pushed yet, or that it doesn't affect his specific setup 15:27:00 Works in CCBI :-P 15:27:10 (Could easily be a CCBI bug of course) 15:27:14 Deewiant, we handle stuff like STRN somewhat differently 15:27:15 Deewiant: Wait, how do quadtrees grow in size? 15:27:23 Oh, easy. 15:27:27 You make all the references null by default. 15:27:28 like on negative arguments and such 15:27:40 Right? 15:28:05 alise: I'm not sure what exactly you're asking 15:28:08 Deewiant, it isn't SOCK that is copying those lines as far as I can tell from debugger, it is fungot itself that copies them for unknown reason 15:28:08 AnMaster: ( i want shivers to release his new loop macros......) on time 1. then we can just make a copy 15:28:29 Deewiant: Well, I'm just asking how a quadtree handles a potentially ""infinite"" (very big) structure 15:29:20 alise: Well, it just keeps on subdividing... 15:29:27 Right. 15:29:36 I guess I just don't understand how I'm meant to traverse a quadtree given (x,y). 15:29:59 Each node is associated with a point 15:30:06 I get that. 15:30:10 You check where your (x,y) is wrt that point 15:30:18 I just don't get how you do non-diagonals since it's NW/NE/SW/SE 15:30:18 If it's NW, you go to subtree 0 15:30:27 How can I check where it is? 15:30:29 Well, just pick something 15:30:45 E.g. if the y coordinates are equal it's always in the N 15:30:46 Eh? 15:30:57 Check where what is? 15:31:04 Deewiant, even with your loading file I can't trigger the memory usage problem you mentioned 15:31:22 Shrug. 15:33:01 ah wait, now I can. How strange. But much slower than you described... 15:33:12 Deewiant, I know why it does that now for you. It keeps executing e forever 15:33:16 so yes stack would grow 15:33:31 type 'a subtree = 'a quadtree ref option 15:33:32 And my machine is that much faster, so yes :-) 15:33:36 A subtree is a quadtree ref option. XD 15:33:41 Deewiant, that would be because of the different server name 15:33:43 AnMaster: About 300 megs a second IIRC 15:33:46 it still keeps copying it all the time 15:33:57 Deewiant: So basically, 15:34:00 datatype 'a quadtree 15:34:01 = Leaf of 'a 15:34:01 | Branch of 'a subtree * 'a subtree * 'a subtree * 'a subtree 15:34:08 where a subtree is either NULL, or a pointer to another quadtree. 15:34:17 alise: Your Branch needs a point 15:34:23 Deewiant, I can't debug this without a known good revsion. And there are none. Yet fungot is running here. We will have to wait for fizzie to get here 15:34:24 AnMaster: ack. don't put a subject there, it was such great fun that i just found it, thanks 15:34:26 Really? 15:34:34 Deewiant: So does that mean that we can turn a leaf into a branch? 15:34:40 alise: How will you know where you are otherwise? 15:34:45 So, basically, a leaf is just a special case of a branch where all the references are NULL. 15:34:46 Deewiant: Oh, I see. 15:34:58 Deewiant, I have a deadline tomorrow for something at university, no time to look more into this issue now 15:34:58 And yes, basically like so 15:35:08 (release won't happen today) 15:35:12 alise: But I don't think there's any point in turning a leaf into a branch ever 15:35:15 I could be wrong. 15:35:19 datatype 'a quadtree = Branch of coords * 'a * 'a subtree * 'a subtree * 'a subtree * 'a subtree 15:35:21 Deewiant: Oh, okay. 15:35:29 But how would you get to a leaf if the coords are both the same? 15:35:34 Go a certain predefined direction? 15:35:36 Hmm? 15:35:39 Seems saner to have it all in the one constructor. 15:35:45 Say you're at a branch and its (x1,y1) = your (x,y). 15:35:48 But all it has is four subtrees. 15:35:54 How do we get the value at this point? 15:36:07 -!- oerjan has joined. 15:36:10 Like said, just pick a consistent way of doing it 15:36:20 E.g. equal x = east and equal y = north 15:36:23 no, pick two! 15:36:23 So in that case you'd go northeast 15:36:26 Or whatever 15:36:29 Deewiant: Okay. 15:36:33 and then northeast would be a leaf 15:36:38 There may be more clever solutions :-P 15:36:50 * alise includes coords in the quadtree and specialises it to machine words. 15:36:55 No point in lying about this code's generality. 15:38:22 Deewiant, oh just one thing. it is STRN related probably 15:38:25 Deewiant: Hmm, so if we move in a direction where the pointer is NULL, we should allocate a new quadtree and attach it to the current one. 15:38:30 since it is written there by STRN P 15:38:46 So what I actually need is a quadtree option ref. 15:38:57 i.e., a pointer to either NONE or SOME quadtree. 15:40:13 http://pastie.org/914126.txt?key=jbijawyvc0juty7ocqj8g I think this is it. 15:40:20 But how on earth would I do exact bounds like this...? 15:44:19 I like Standard ML. 15:45:14 Hm, what was that about fungot. 15:45:15 fizzie: is the fact that i'm trying to think of it 15:46:31 fizzie, basically fungot ends up overwriting itself with server name 15:46:31 AnMaster: i guess linux does it for you than do it yourself. once you're happy with it, to see how you proceed and what that's about 15:46:39 fizzie, in current cfunge and older cfunge. 15:46:48 so I'm unable to find a known good revision 15:46:50 which is absurd 15:47:10 fungot, thus I want the exact revision that fungot in here is running on 15:47:10 AnMaster: if a fnord of a 15:47:21 or that you push any local changes that fixes it 15:47:39 fungot, exact revision of cfunge that is 15:47:39 AnMaster: hehe yeah, was really killing the conversation). try the latter after the list of include files for interpreter.c?) implemented in scheme 15:48:34 Hmn. I have just the "cfunge" binary on the server it's running on; that reports "0.3.2" with -v. I'll try to find where I built it. 15:48:43 ouch 15:48:44 that old 15:48:47 fizzie, Basically the P at the line >:3g:#v_ >\ :0\3p 31g >3G 05g5+0\P v 15:48:57 ends up overwriting the entire program 15:49:01 with the server name 15:49:04 fizzie, I have no idea why 15:49:24 Hrm. 15:49:27 and I have looked back until summer 2009 for a working revision 15:49:30 of cfunge 15:50:50 (I'm sure Okasaki would have some magic trick to avoid this.) 15:50:53 zippers 15:51:08 I have a directory with the name "cfunge_r462"; that might be the exact revision. 15:51:20 I really haven't had the occasion to update. 15:51:23 okay lets try it 15:51:45 oerjan: yeah i know about zippers but how would they apply here? i don't exactly understand them :P 15:51:49 ^source 15:51:49 http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 15:51:50 fizzie, I think it worked on later revisions too for a long time, possibly until freenode changed to the new ircd 15:52:25 r462 works 15:52:28 now lets bisect this 15:52:40 alise: you keep your structure as your current cell with a pointer to the parent, where the parent does _not_ contain a backlink 15:53:01 oerjan: i see. do you think it would help for this case? 15:53:02 That irc-message splitting part of the fungot code is probably about the oldest thing there, I really haven't touched it in a while. 15:53:03 fizzie: after a very small amount of writing to memory overflow!!! 15:53:26 alise: well you don't need to change the parent to change the current cell 15:53:38 oerjan: what about mutating the parent? 15:53:40 e.g. the subtree 15:53:41 s 15:54:00 although you now need to restructure things to move to a new current cell 15:54:12 My quadtrees are either a leaf containing a pointer to a word, or a branch containing an (x,y) pair of coordinates, and four pointers to NONE | SOME quadtree. 15:54:36 alise: the zipper requires a new datatype for quadtrees with holes, essentially 15:54:38 Hmm, I could actually make leaves not be pointers and just mutate their parents to do it. 15:54:43 That sounds icky though. 15:55:31 I don't think you can do mutually recursive data types in SML... 15:55:35 oerjan: explain? :D 15:55:39 (where the hole can be one of the four directions i think) 15:55:48 alise: isn't that type rec or something 15:55:57 datatype quadtree 15:55:58 = Leaf of word 15:55:58 | Branch of coords * subtree * subtree * subtree * subtree 15:55:58 and subtree = quadtree option ref 15:56:02 Recursive types work fine; mutually, however... 15:56:05 ("and" is not valid there) 15:56:20 oh? sounds unreasonable. 15:56:41 hm okay bisection shows it is between 551 and 581 now 15:56:49 The P on that particular line is supposed to be hit only when processing a ":"-starting command option (something like the :msg part in :servername PRIVMSG #foo :msg), and it should put the text "msg" on line.. 7, in that case. 15:57:16 oerjan: yeah i'm sure there must be a way to do it 15:57:31 also i'm having to repeat my transparent data types in the module and in the structure 15:57:32 irritating 15:58:49 oerjan: ah it is because and implies a data type there not an alias 15:59:01 alise: hm i think ocaml used and there 15:59:18 (Hrm, I guess the same P is in fact used to put non-:-starting command options there too.) 15:59:51 * oerjan doesn't actually know SML 15:59:54 I'd just type out quadtree-option-ref if it weren't so darned verbose. 15:59:57 oerjan: nor do I 16:00:27 hm r578 16:00:30 * AnMaster looks at the diff in it 16:00:50 " Make stringbuffer_finish() optionally return string length. Make use of this feature in FILE, PERL, STRN and TURT." 16:00:53 huh 16:01:01 Ba-bam, an optimization breaks the day 16:01:06 Deewiant, no code cleanup 16:01:10 Darn 16:01:12 :-P 16:01:21 Deewiant, because the old was quite a mess of buggy strlen() and such 16:01:28 But at least it worked! 16:01:32 I'd just make things abstract except I want pattern-matching on trees. 16:01:33 so since the thing already *had* the string length I just made use of it 16:01:40 Deewiant, sure, but that is what bisection is for :P 16:03:02 fizzie, do you use any of these from STRN: G S 16:03:08 if so, which ones 16:03:36 alise: if you think of your datastructure as a tree graph, a zipper is mostly just rerooting the tree at a new node 16:03:55 oerjan: so in your completely professional opinion do you think it'd beat pointers? 16:04:02 alise, apparently, Droid's getting 2.1 16:04:12 Sgeo_: can you do verizon? 16:04:17 No 16:04:29 alise: for speed? heck no. 16:04:35 oerjan: righty ho then 16:04:38 oerjan: i also meant for elegance 16:04:41 Sgeo_: then ignore it 16:04:56 16:05:12 Sgeo_: compared to the razr I doubt you will be anything less than outstanded by the Nexus One: it is one of the best phones around in every way apart from the display. 16:05:24 and dammit, it's pretty. 16:05:28 i want one. 16:05:41 (as a general rule, _all_ my value judgements can be assumed fake, when i'm even willing to give them) 16:05:50 alise, I'll probably stop being outstanded the instant I accidentally drop it on the ground :/ 16:05:50 and it has a freaking 1ghz processor 16:05:53 Or lose it somewhere 16:05:57 hm since you use FILE too I guess it could be causing issues 16:06:00 Sgeo_: they're tough beasts 16:06:09 they're not made out of random bendable plastic you know 16:06:10 Tougher than the RAZR? 16:06:14 the only issue with dropping them is height 16:06:17 AnMaster: Probably I use at least STRN's G. 16:06:21 if not much height, then the thickness protects it 16:06:25 if much height the weight works against it 16:06:31 unless you're very tall, or very VERY clumsy 16:06:33 you should be fine 16:06:42 alise: well with all the extra data types it's not really that elegant if you don't insist on purity... 16:06:52 AnMaster: I'm not sure if I use S for anything much, except perhaps in the ^save stuff. 16:07:10 Sgeo_: http://www.engadget.com/photos/google-nexus-one-unboxing-and-hands-on/#2573676 <-- porn 16:07:12 fizzie, so S is used? I'm trying to figure out what exact change broke this you see 16:07:34 AnMaster: This is why you should've committed that as five separate changesets ;-) 16:07:52 AnMaster: Don't you have some sort of tracing thing that could show you which fingerprint commands were invoked during the run? 16:08:06 http://www.engadget.com/photos/google-nexus-one-unboxing-and-hands-on/#2573691 http://www.engadget.com/photos/google-nexus-one-unboxing-and-hands-on/#2573676 http://www.engadget.com/photos/google-nexus-one-unboxing-and-hands-on/#2573655 16:08:10 Sgeo_: you know yo uwant one :P 16:08:10 okay it is the G code 16:08:11 *you want 16:08:23 alise, did I mentioned I got to play with a Nexus One a bit on Thursday? 16:08:24 alise: also if you do a lot of non-local changing (like with get/put), then zippers probably get awful 16:08:27 Deewiant, you mean one for STRN G one for STRN S and so on? 16:08:30 Sgeo_: yes. 16:08:42 oerjan: true. 16:08:44 AnMaster: I was thinking one per fingerprint 16:08:44 Deewiant, well I can actually manually revert the lines changed 16:08:48 Deewiant: with a quadtree you only store the root right? 16:08:51 and traverse each time 16:08:54 and it seems to be STRN G that is causing issues 16:08:55 or do you move with the IP? 16:09:10 alise: You can't move up a quadtree, so you don't have much choice 16:09:19 http://www.blogcdn.com/www.engadget.com/media/2010/01/nexus_shot_main.jpg nexus one has a nice camera 16:09:19 * AnMaster adds a assert(strlen(s) == len); 16:09:21 Deewiant: right 16:09:32 * AnMaster adds the header for assert too 16:10:05 Hm. When it's locked with a pattern, there's an Emergency Call button. How likely is it that it will accidentally be pressed -- does the touchscreen respond to non-skin? 16:10:14 okay length 11 vs. length 10 16:10:16 how weird 16:10:39 it contains the nick of the thing. 16:10:50 strange then ccbi didn't pick it up 16:10:53 alise: there's nothing preventing you from keeping a zipper even if the leafs are mutable, might make moving IP faster 16:11:01 err 16:11:03 not ccbi 16:11:05 I mean mycology 16:11:15 the extra char seems to be a null one 16:11:17 (or equivalently, a stack of subtrees up to the top) 16:11:24 AnMaster: Do the Mycology UNDEFs change between those two revs? 16:11:31 Deewiant, let me test 16:11:39 (when it's mutable you don't need those holes i should think) 16:12:06 Deewiant, actually I can't easily, since this revision is so old it will hit END in current mycology nowdays 16:12:10 I think 16:12:29 You can just replace the first column of Mycology with v until the STRN test 16:12:37 ah good idea 16:12:42 oerjan: I can't, you can't move up in a quadtree 16:12:43 * Sgeo_ wonders if anyone takes "A peek inside the neural network" seriously 16:12:56 *inside 16:13:11 Deewiant, it hits the assert just before the line: GOOD: G works 16:13:13 alise: well you could also _make_ parent links 16:13:16 in the new one 16:13:20 Oh well 16:13:24 * AnMaster tries with the strlen() call 16:13:42 Deewiant, no UNDEF there no 16:13:57 Deewiant, what I believe will happen is that there will be an extra \0 byte in the newer version 16:13:59 below 16:14:04 Deewiant, perhaps you don't check for that :P 16:14:20 Evidently not 16:14:30 * Sgeo_ wants to get his engraved with his email address 16:14:35 In case I do end up losing it 16:14:50 Deewiant, actually I'm not sure that is what it will result in. That statement is based on logical reasoning about the code. I haven't dumped the stack 16:15:24 Anything that'd result in anything extra is probably not checked 16:15:28 My dad think it's possible for someone to work around the pattern lock. alise, unless you suggest otherwise, I'm under the impression that it's difficult [requring gaining root access], but possible 16:15:30 -!- adam_d has joined. 16:15:43 It might check one cell backwards and forwards but probably not more 16:15:49 huh wait a second. Is strlen() number of chars *excluding* the ending \0? 16:15:52 (And not necessarily even that much if I was too slow) 16:15:57 AnMaster: Yes, of course. :-P 16:16:07 Deewiant, hm I think that may be the issue 16:16:19 It's the length of the string: the length of "foo" is 3, not 4. 16:16:22 I need to check that though so I don't introduce new bugs 16:16:46 Sgeo_: Pattern locking is just for your convenience, I think. 16:16:50 Sgeo_: It should be not so hard to crack anyway. 16:16:58 Sgeo_: It's not difficult. 16:17:12 You hold down the trackball when booting to enter the bootloader, enter a line, say "yes I'm okay with no warranty", and it's done. 16:17:33 Deewiant: So wait, you know how the directions represent different combinations of same/different X/Y? 16:17:34 now I wonder where to fix it. And since this value is used in lots of places calling that code, what will break and what hides other bugs 16:17:36 alise: btw you might look at the infinite tree with mutable leafs i made for implementing Malbolge Unshackled >:) 16:17:36 hm 16:17:44 Deewiant: When you move in different-direction, the coords always increase, right? 16:17:45 alise: Say what now? 16:17:53 Deewiant: Hey, it's not my fault you said that. 16:18:00 oerjan: that sounds nice -- link? 16:18:03 alise: I've no idea what you're saying, I think 16:18:07 alise, does it keep track of its waranty status? I wonder if it's possible to overwrite it >:) 16:18:14 Deewiant: I have no idea how you use quadtrees 16:18:19 Sgeo_: That is called breaking the law. 16:18:27 And I am sure that Google could find out, if you gave them the phone... 16:18:47 I jailbroke my iPhone on its first day. 16:18:53 Chillax, warranties don't matter. 16:19:21 okay wth 16:19:22 alise: What part of using quadtrees are you thinking about now 16:19:26 My dad thinks that since it's "new", it would be a bad idea to get it, because of potential problems 16:19:27 fixing it broke mycology 16:19:27 Deewiant: I just don't understand how four directions map to coordinates of 2D space. 16:19:50 Deewiant: Currently, I'm writing a function coords * direction -> coords; you feed it the coordinates of the current branch you're on, and the direction you're expanding the quadtree in. 16:19:53 It gives you the coordinates the new tree should have. 16:19:58 I am not sure how it should do this. 16:20:20 Sgeo_: My dad says. My dad says. My dad says. If he's just looking for excuses not to get it you'll either have to buy it yourself or not get it. 16:20:36 Tell him that there are regular updates to the entire phone software. 16:20:39 alise: I think that's implementation-dependant i.e. you can do what you like 16:20:40 Maybe that'll "fool" him. 16:20:50 alise: One easy(?) way of doing it would be start out with the central node at (0,0) 16:20:57 I.e. root node 16:21:09 Deewiant: So then south = decrease x, north = increase x, west = decrease x, east = increase x? 16:21:10 Hardware is probably what he's mostly concerned about. I did tell him that the software's been around for a while 16:21:11 So then the space you're working in is nicely bounded on all sides 16:21:13 alise: http://oerjan.nvg.org/esoteric/Unshackled.hs 16:21:20 Although this uses the newest version of it 16:21:25 Deewiant: What about when the coordinates of the branch you're on match the ones you are trying to look up? What direction then? 16:21:29 All the others are taken. 16:21:38 Sgeo_: Well... no answer then. 16:21:44 alise: For example, yes; but you can't just increase by one (or you can, but the new tree will have all but one branch overlapping with the previous (I think?)) 16:21:49 oerjan: Is it fast-in-theory? 16:22:01 Deewiant: And this is where I totally stop understanding what you're trying to say. :-) 16:22:21 alise: Quadtrees are about splitting the space into four parts whenever you need increased granularity 16:22:22 alise, there are PDF readers for Android, right? I think I saw one or two 16:22:30 alise: So you start with zero points and a root at (0,0) 16:22:32 Sgeo_: Presumably. The browser can probably handle it. 16:22:38 The iPhone certainly has always been able to. 16:22:47 alise: Then you add a point (1,1) so you make the SE node a leaf with that value 16:22:57 So S = increase X, E = increase Y. 16:23:01 alise: Up to you. 16:23:03 Deewiant: What about the VALUE at this point? 16:23:08 datatype quadtree 16:23:08 = Leaf of word ref 16:23:09 | Branch of coords * subtree * subtree * subtree * subtree 16:23:13 The word? 16:23:13 We're looking up (1,1), which has already been inserted. 16:23:17 We move southeast, and get to (1,1). 16:23:20 But there are only four subtrees. 16:23:22 Which is a Leaf. 16:23:24 Each of them /changes/ the coordinates. 16:23:27 Deewiant: What? 16:23:28 alise: i don't know, although it _does_ keep a next pointer for easy incrementing 16:23:33 alise: At this point, it's a Leaf. 16:23:35 Deewiant: What about when I want to move to (1,2). 16:23:41 alise: I was getting to that. 16:23:42 Deewiant: You said I'd never have to change a leaf into a branch. 16:23:58 alise: Maybe I was wrong: hang on, let me work through this. 16:24:11 alise: i mostly linked to it because it's evil ;) 16:24:17 oerjan: fair enough then 16:24:19 alise: So you're inserting (1,2) and all you have is a branch with three empty subtrees and one leaf at (1,1) 16:24:25 oh wait I found it 16:24:29 Deewiant: And a dog. 16:24:33 alise: What you need to do is subdivide the SE area into four parts 16:24:46 Deewiant: Right. But if I do that, then where goes the value at (1,1)? 16:24:48 alise: The SE area at this point is (0,0) through (2^32-1, 2^32-1) 16:24:48 It still displays the Emergency Call button, even when there's no SIM card 16:24:54 alise: (Assuming 32 bit words) 16:25:01 All four parts in the SE area are already taken up by subtrees. 16:25:05 So the value at (1,1) has nowhere to go. 16:25:09 Wait, can it actually use the nearest carrier it can find for emergency calls? 16:25:24 alise: So you make a new tree, with root at the midpoint, (2^31, 2^31) 16:25:31 alise: (± 1) 16:25:38 Deewiant: *Now* I am confused. 16:26:18 alise: You replace the SE branch of your (0,0) with that tree 16:26:30 alise: But you're still screwed, because (1,1) and (1,2) are both in the NW node of (2^31, 2^31) 16:26:34 alise: So you continue subdividing 16:26:44 I think at this point I should find a nice article. With pictures. 16:26:44 alise: Until you get to a point where they go into different nodes 16:27:03 Deewiant: Doesn't that end up creating an unholy amount of subdivisions? 16:27:07 alise: There are lots of java applets and the like for this :-) 16:27:18 alise: Max depth O(log n) 16:27:24 alise: Not unholy, no. 16:27:54 alise: If you have one word per leaf, you will end up using a lot of space, though; the standard recommendation is to switch to an array at some point, I think 16:28:02 Quadtrees seem like such a functional data structure; shame they need to be imperative to work nicely. 16:28:14 Deewiant: Bleh! 16:28:24 Do they? 16:28:27 This just keeps getting hairier at hairier. 16:28:33 Deewiant: Well, they have nice diagrams. 16:28:35 *and 16:28:42 I wonder how big the arrays should be; 80*24/ 16:28:43 *? 16:28:51 alise: But do they need to be imperative? The arrays don't have to be. :-P 16:29:05 Deewiant: Well, if you update a node you have to update the branch it's in, and the branch that's in, and so on. 16:29:10 also I should when I have time review the code to see what happens if you get a literal zero byte into the buffer. I suspect it may miscount then 16:29:14 alise: True enough 16:29:22 alise: You probably want square arrays since each node is square, btw. 16:29:34 however I don't think it is possible for that to happen in most places. Certainly not in the two places it is used in STRN 16:29:37 Deewiant: So, basically, these algorithms are going to be hellishly ugly. 16:29:53 alise: Data structures tend to be a bit hairy. 16:30:10 Deewiant, pushing fix for the STRN case at least 16:30:31 Deewiant: Not their pure forms. 16:30:43 What I really need to do is hire Okasaki and make him write this for me. 16:31:53 alise: No, their pure forms tend to also be. :-P 16:32:01 You're hairy. 16:32:13 * Sgeo_ doesn't want his Gmail Contacts in his phone 16:32:28 At least, until I have a chance to clear out my contact list 16:32:52 For some reason I just plain like the "you can't comb a hairy ball smooth" phrase. 16:33:37 Sgeo_: Tough shit, Android is all Google, all the time. :-) 16:34:10 AnMaster: Awesome, thanks. 16:34:11 Deewiant, actually the real issue was that the code was returning actual string length. Not length to first zero byte in case you managed to manually get a zero byte into it. 16:34:45 Deewiant, probably all code using it should be reviewed, in most cases, like reading data from a file, treating \0 as nothing special is actually the correct behaviour 16:34:54 Deewiant: Why do you want to run fungot, anyway? 16:34:54 fizzie: especially if you want to make heavy use of it, haven't eaten anything else either. :)): we create hierarchies all the time 16:34:55 (this code is used in the fgets thingy for FILE too) 16:35:01 Deewiant: So, I understand all of it apart from the recursive subdivision. 16:35:01 (and a few other places) 16:36:27 -!- fungotCCBI has joined. 16:36:35 -!- fungotCFUN has joined. 16:36:41 Benchmark time! 16:36:59 Deewiant, until I get a new fungespace in place I wouldn't be surprised if ccbi is faster 16:37:08 and that won't happen soon 16:37:24 fizzie: Maybe you can think up of some bf/ul slowness 16:37:46 ^bf +[.] 16:37:46 ... 16:37:51 !bf +[.] 16:37:57 well what prefix does it use Deewiant ? 16:38:03 ] 16:38:05 ]bf +[.] 16:38:05 ... 16:38:05 ... 16:38:12 But, erm 16:38:19 well from here fungotCFUN was just slightly faster at that 16:38:20 AnMaster: ok i get it well enough to predict what the most common one 16:38:20 Deewiant, ^ 16:38:31 ]bf +[>+] 16:38:34 Something that takes no time at all is pointless 16:38:37 ]bf +[.] 16:38:37 ... 16:38:37 ... 16:38:49 AnMaster: Please stop with that one. 16:38:56 Deewiant, oh? 16:39:06 Yeah, that is annoying. 16:39:06 does your client try to treat it as CTCP ? 16:39:07 AnMaster: It gives me four lines of "requested unknown CTCP" every time. 16:39:13 mine doesn't 16:39:20 Not mine. 16:39:20 ]bf ++[.] 16:39:20 ... 16:39:20 ... 16:39:20 It's a bit noisy anyhow. 16:39:22 then 16:39:23 there 16:39:23 It displays a lot of boxes. 16:39:25 that is better 16:39:26 anyway 16:39:40 I notice the cfunge one is consistently faster 16:39:49 I notice they are consistently of identical speed 16:40:08 Deewiant, I notice that consistently CFUN one returns just a tiny fraction of time before the CCBI one 16:40:17 I ignore such fractions. :-P 16:40:28 Deewiant: You could just test an infiniloop, the timeout cutoff counts executed bf cycles. 16:40:30 If it takes no time it's not a benchmark. 16:40:32 ]bf +[] 16:40:34 ...out of time! 16:40:34 ...out of time! 16:40:47 How many cycles is the cutoff? 16:40:58 That got a different second in my timestamps, but it didn't take very long either. 16:41:04 ]ul (foo)S 16:41:04 foo 16:41:05 foo 16:41:12 This phone is going to be in place of getting a new computer 16:41:18 There's the awfully slow underload proggie, but I've forgotten it. 16:41:21 hm a slow ul one might be better 16:41:31 I should probably kill my bittorrent uploads to limit network lag 16:41:41 Deewiant: ^bf stops after executing aaaaaa***** bytecode ops. 16:41:44 ]help 16:41:50 ]commands 16:41:55 ]show 16:41:56 err 16:41:59 what was the command 16:42:01 to list all 16:42:02 ^show 16:42:02 echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble 16:42:04 hm 16:42:09 Probably no commands defined. 16:42:10 maybe those doesn't have any 16:42:19 ^show fib 16:42:19 >+10>+>+[[+5[>+8<-]>.<+6[>-8<-]+<3]>.>>[[-]<[>+<-]>>[<2+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<3-[>+<-]]]]]]]]]]]+>>>]<3][] 16:42:23 ^help 16:42:23 ^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool 16:42:26 If you start with an empty state file, there aren't any. But none of those is very slow. 16:42:38 ]def fib bf >+10>+>+[[+5[>+8<-]>.<+6[>-8<-]+<3]>.>>[[-]<[>+<-]>>[<2+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<3-[>+<-]]]]]]]]]]]+>>>]<3][] 16:42:38 Defined. 16:42:38 Defined. 16:42:48 hey guys 16:42:48 fizzie, wait, does it handle the compressed one there? 16:42:50 ]fib 16:42:50 ................... ... 16:42:50 ................... ... 16:42:52 err 16:42:57 ... 16:42:59 ^fib 16:42:59 0.1.1.2.3.5.8.13.21.34.55.89.144.233.377.610.987.1597.2584.4181.6765.10946.17711.28657.46368.75025.121393.196418.317811.514229.832040.1346269.2178309.3524578.5702887.9227465.14930352.24157817.39088169.632459 ... 16:42:59 http://www.w3.org/MarkUp/html3/mathscripts.html ;; once upon a time, there was a element in HTML that actually rendered summation signs and stuff 16:43:02 I guess not 16:43:14 you could write 16:43:15 Deewiant, not my fault it can't read it's own output 16:43:26 ∑_k = 1_^n^ k 16:43:32 for sum k=1 to n, k 16:43:41 alise, did any browsers actually support it? 16:43:45 ]ul (xxxx):*:*:*:*:*:*:*:*:(~~)(:^)^ 16:43:46 fizzie, btw why that [] at the end of the fib program? 16:43:48 Sgeo_: who knows 16:43:50 That should take a while. 16:43:50 it's awesome 16:43:56 wish it worked 16:43:58 fizzie, doesn't it time out quickly? 16:44:11 Example - the integral from a to b of f(x) over 1+x 16:44:12 ∫_a_^b^{f(x)1+x} dx 16:44:12 which can be rendered on a fixed pitch text-only medium as: 16:44:12 b 16:44:12 / f(x) 16:44:12 | ------- dx 16:44:14 / 1 + x 16:44:16 a 16:44:19 The example uses { and } as shortrefs for and respectively. This is used for invisible brackets, stretchy delimiters and integral signs, and placing one thing over another. The shortref characters "_" and "^" are used for subscripts and superscripts respectively. 16:44:22 this is hot 16:44:23 fizzie: No CPU usage, at least. 16:44:26 No, because the Underload interp also counts executed instructions, and the instructions get slower when there's a long string. 16:44:39 Deewiant: Whoops, I forgot a : there, I think. :p 16:44:55 But it's still a bit fast; I'll refine it a bit, just a moment. 16:45:04 ^ul (xxxx):*:*:*:*:*:*:*:*:(~~)(:^)^(end)S 16:45:04 end 16:45:06 yeah 16:45:27 ]ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(~~)(:^):^ 16:45:28 ...out of time! 16:45:28 ...out of time! 16:45:41 ^ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(~~)(:^):^ 16:45:42 ...out of time! 16:45:44 It's still pretty fast. 16:45:53 indeed 16:46:01 also Deewiant has a monster computer iirc 16:46:08 some 7 or 8 GB RAM iirc 16:46:09 Ideally it should take >10s on your fungot :-) 16:46:10 Deewiant: i'd rather my scotch straight up. no scheme system still actively maintained ( although a bit different 16:46:12 You can't make the string longer without running out of stack; but it'd probably be better to have two long strings to swap instead of just one. 16:46:21 I'll try to cook up something that does that. 16:46:54 * Irene Gargantini: An Effective Way to Represent Quadtrees. Commun. ACM 25(12): 905-910(1982) 16:46:58 does anyone have an acm account? oerjan? 16:47:16 Gregor, where is egobot? and hackego? 16:47:26 There was once an HTML 3.0 draft, with a section titled HTML Math, suggesting relatively simple markup for some basic mathematics. But its all history; the draft expired in 1995. (There was also an earlier idea about HTML+, which would have had a different, more natural-looking math syntax.) 16:47:28 so it was never official 16:47:35 Geh, it's still a bit too fast. 16:47:39 ]ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(a~a*~~^)(:^):^ 16:47:39 ...out of time! 16:47:39 ...out of time! 16:47:39 hah 16:47:45 oh different seconds here 16:48:00 Deewiant: If you want, you could increase the limits. 16:48:08 Whereabouts? 16:48:10 Deewiant, anyway, if they were the same speed, then shouldn't the cfunge be after the ccbi one just *sometimes* 16:48:18 Deewiant, which hasn't been the case so far 16:48:26 AnMaster: It was once. 16:48:40 oh yes ]ul (foo)S 16:48:43 ]ul (foo)S 16:48:44 foo 16:48:44 foo 16:48:44 :-) 16:48:46 hm 16:48:48 heh. 16:48:48 Deewiant: For the underload one, it's on line 310, I believe; the ffaa***81p there. 16:48:54 Deewiant, you are faster at that one program 16:48:55 -!- fungotCFUN has quit (Remote host closed the connection). 16:48:56 ]ul (foo)S 16:48:56 foo 16:48:56 -!- fungotCCBI has quit (Remote host closed the connection). 16:49:06 Deewiant: There's even lots of whitespace above it, shouldn't be a problem to fit in a longer number. 16:49:37 So that's what, 255^2 * 100 = 6502500 16:49:43 Er, no 16:49:44 255 * 100 16:49:53 15*15 isn't 255. 16:49:56 -!- adam_d has quit (Ping timeout: 265 seconds). 16:50:06 Blarg, I always think ff* is 16:50:14 Yes, it is a bit misleading. 16:50:21 Anyway, let's try 500k 16:50:32 ' '}:** 16:51:13 Deewiant: For the ^bf one it's the aaaaaa***** on line 294, if you want to change that too. 16:51:22 -!- fungotCCBI has joined. 16:51:24 -!- fungotCFUN has joined. 16:51:27 Deewiant, anyway I believe you will run into your funge space box being suboptimal if I remember where fungot put it's stack correctly 16:51:27 AnMaster: dont be silly. 16:51:34 ]ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(a~a*~~^)(:^):^ 16:51:36 He said it, not me 16:51:37 ...out of time! 16:51:39 ...out of time! 16:51:42 Awesome! 16:51:46 Deewiant, now cfunge was faster :P 16:51:55 -!- fungotCFUN has quit (Remote host closed the connection). 16:51:55 -!- fungotCCBI has quit (Remote host closed the connection). 16:52:03 Alright, that's what I wanted to know :-) 16:52:21 Deewiant, but yes I do believe it extended out into -x just above the program code 16:52:36 perhaps you are just growing the full sized box for the entire program in your AABB thingy 16:52:40 I'm not that stupid 16:52:43 Deewiant, good 16:53:29 Deewiant: The underload interp speed is probably quite STRN-dependent, and the stack starts from column 0 and extends to the negative direction, in case that bit of trivia is interesting. There's a whole lot of copying with STRN from stack to temporary space and back. 16:53:36 Deewiant, but see. For real world befunge apps your carefully-tuned-for-CCBI measurements in fungicide doesn't mean a lot ;P 16:53:36 fizzie: Any ideas about making that ul-interpreter runnable without requiring an IRC server 16:53:46 Deewiant: There's a standalone version of it already, actually. 16:53:57 fizzie: Cool! Where's it at 16:54:05 -!- EgoBot has joined. 16:54:05 -!- HackEgo has joined. 16:54:06 Deewiant: Who knows? I'm trying to find it right now. 16:54:09 fizzie: :-) 16:54:16 I used to have it 16:54:19 can't find it any more 16:54:21 AnMaster: If it's about STRN as he suggests, it's the fact that STRN isn't optimized at all. 16:54:35 oh found it 16:54:46 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 16:54:46 http://sprunge.us/FLOO 16:54:46 Deewiant: I found "underload.b98" and "underload2.b98" in my unversioned fungot/misc dir, but I don't know which one is which. 16:54:47 fizzie: it depends. if we're going to make functional programming possible. " standard" here... 16:54:49 Deewiant, see ^ 16:55:02 fizzie, that one was called underload.b98 16:55:13 Also http://zem.fi/~fis/underload.b98 and http://zem.fi/~fis/underload2.b98 -- you can diff all three if you want. :p 16:55:30 Do these have a timeout? 16:55:41 Hrrm, actually probably not. 16:55:48 Heh. 16:55:55 Are those infinite loops? 16:55:57 fizzie, mine is the non-2 16:56:16 Yes, the programs I did will not terminate. 16:56:35 Right, so that's not very optimal. 16:56:41 Deewiant, oh btw I made sure my STRN is quite tuned because fungot uses it. IIRC I even did it at fizzie's request, for being able to up the time limit 16:56:41 AnMaster: yes. it's a long time, just send it straight to the end of the 16:56:43 -!- kar8nga has quit (Remote host closed the connection). 16:56:53 but I'm not completely sure, it was as fungot said, a long time ago 16:56:54 AnMaster: also it isn't as fast as scheme48? are you serious? how long did it take you to switch between dialects should probably be 16:57:02 alise: i vaguely recall augur had an acm account 16:57:16 or something like it 16:57:21 oerjan: I guess you'd be more of an AMS person. 16:57:23 AnMaster: "Append" does things like pop both strings and push them back. 16:57:25 -!- cheater3 has quit (Ping timeout: 264 seconds). 16:57:27 In CCBI, that is. 16:57:37 I presume yours does it in-place? :-) 16:57:45 Well, it's going to be a few days until I can get it 16:58:00 Deewiant, hm it seems mine pops both too. 16:58:01 I mentioned it to my step-mom's mother, and my dad doesn't want my step-mom hearing about it 16:58:04 odd 16:58:19 it really should not be needed 16:58:31 Deewiant: If you want, you can hack in a timeout; just pick a suitable spot from the beginning of the "interpreter main loop" part, and add in a bit of code; something like 81g1-:!#@_81p or some-such; and initialize with [large number]81p above. It's basically what my timeout does. 16:58:38 it could pop top one and then push it back, after removing the final \0 byte 16:58:40 could it not? 16:58:56 fizzie: Yeah, I was looking at something like that. 16:59:10 Deewiant, except that would run into issues should the second string have it's \0 = stack underflow 16:59:11 as in 16:59:18 it has no \0 in the stack 16:59:48 Deewiant: For example the part that does "1+ :0g:" is executed every round, somewhere in there maybe. 17:00:36 underload2 looks much nicer to edit in that respect 17:01:18 I think it's the same code, just compacted a bit. 17:01:25 Yes, it looks such. 17:02:02 alise: btw for a quadtree mapping all of Z x Z i think it only makes sense if there is an infinite tower of parents 17:02:34 although you can of course do that by expanding on the fly 17:02:41 But this is no good! CCBI terminated in 8 seconds and cfunge is still going. >_< 17:02:54 I wonder if it infinite-looped somewhere. 17:03:35 oerjan: well it's actually Z/nZ x Z/nZ 17:03:41 where n = 2^32 or 2^64, usually 17:03:43 if I have my notation right 17:04:05 also interestingly you cannot have each parent in that tower be in a _consistent_ position in relation to its parent, or else you will only get one quadrant of Z x Z 17:04:31 alise: oh, in that case subdividing like Deewiant says makes more sense 17:05:21 the subdivisions are just the paired sequence of bits for x and y coordinate, really 17:05:27 No, CCBI is just going a crapload faster at this than cfunge. 17:05:31 (direction of them, that is) 17:06:07 I should probably make a non-socketized version of fungot, for benchmarking purposes. Non-intrusively I think it could be done by just arranging things so that it's the FILE R and W it uses instead of the SOCK ones there, and replacing the socket opening with file opening. 17:06:07 fizzie: mostly directed ais523, if you're trying to solve 17:06:11 With 500k iterations CCBI takes 3.9 seconds, cfunge is giving me about 200 iterations per second 17:06:14 2000* 17:06:24 (I made it print the iteration count after every 1000 iterations) 17:06:26 Deewiant, that doesn't match results on irc 17:06:29 fungot: But I'm not trying to solve a directed ais523. 17:06:30 fizzie: yet another reason to be in there 17:06:34 Deewiant, try underload as opposed to underload2 17:07:27 fungot, in where? 17:07:27 AnMaster: ok well my code works?" " i'd try to infer what he means by enticing code and stepping in fnord. 17:07:30 Yes, uh, I make no guarantees that the underload2 code is actually *correct*. It's just something I had. 17:08:14 Ah yes, underload.b98 is much better. 17:08:23 Both go fast, with cfunge being faster. 17:08:31 Deewiant, see. That is the one you should use 17:08:32 -!- tombom has quit (Quit: Leaving). 17:08:37 AnMaster: ;-P 17:08:51 Still a bit curious that you get different results there. 17:08:54 But yes, it is around ten times faster for CCBI as well, so it is preferable. 17:09:38 You can actually make this valid SGML: T_`n` = #&sum# _(`k` = 1&to;`n`)_ 1/`k` 17:09:42 s/ $// 17:09:45 Expanding to 17:09:52 Err, wait, actually: 17:09:52 fizzie: If it does wrapping, that could be one reason for the difference. 17:09:53 Deewiant, hah, selfishness is the strongest force. 17:09:59 T_`n`_ = #&sum# _(`k` = 1&to;`n`)_ 1/`k` 17:10:15 Deewiant: I don't usually do wrapping intentionally, but I guess it might do it accidentally. 17:10:25 CCBI's wrapping can be constant time in situations where it's O(n) in the number of spaces for hash table types. 17:10:48 hm 17:11:29 I wrap in the iteration time checkers, but then it should be the same for both. 17:12:02 Deewiant, how much faster is cfunge than ccbi at that btw? 17:12:35 AnMaster: It's around 0.7 versus 0.45 (seconds) 17:12:40 Incidentally, jitfunge's space is hash-table-based, but it does O(1)-ish wrapping, basically by computing the necessary delta-multiplications to get over the opposite top/side borders, then choosing the min() out of those and jumping directly there. It's a bit untested, though. 17:12:46 Deewiant, cfunge being 0.45? 17:12:58 AnMaster: I did say it was faster... 17:13:18 Deewiant, yes, but try increasing timeout so you get around 10 seconds of each 17:13:24 will be interesting 17:13:30 I don't care that much 17:13:36 It takes a minute to callgrind as is. 17:13:44 why do you callgrind it? 17:13:48 To profile. 17:13:54 Deewiant, you don't use oprofile? 17:13:59 Evidently not. 17:14:23 fizzie: That can still be O(n) in some cases where CCBI is O(1) since your top/side borders always move with the whole space. 17:15:02 btw this shows that while ccbi may excel at rather specialised test cases, cfunge is the best interpreter if you prefer real world applications ;P 17:16:29 Deewiant, oh and do tell me where it spent the time when you analysed the callgrind result 17:17:32 -!- tombom has joined. 17:18:15 Oh wait, wtf 17:18:22 My iteration-checker is broken 17:18:32 It never reenters the main loop >_< 17:18:55 Deewiant, in the underload2 case? 17:19:00 or the underload one? 17:19:04 Deewiant: Yes, that's why I called it just "O(1)-ish". :p 17:19:05 The latter 17:19:14 fizzie: :-P 17:19:28 Here we go, 3.6 versus 2.6 now. 17:19:39 Deewiant, and the latter is cfunge? 17:19:40 At least CCBI uses a lot less memory. :-P 17:19:43 Yes. 17:20:05 Deewiant: Do you special-case cardinal-direction movement/wrapping somehow? I don't do non-cardinal deltas at all, after all. 17:20:16 Deewiant, memory usage is not of primary interest to cfunge. As long as it is reasonable (as defined by me!) 17:20:45 fizzie, haha 17:20:49 fizzie: I don't solve a diophantine equation for that case 17:20:56 Or I guess I do, but I avoid the division 17:21:11 Or at least I think I do that. 17:21:33 Yes, I appear to. 17:22:16 Deewiant, I just end up jumping to the opposite side. How much faster is the diophantine equation for non-cardinal wrapping than doing it like in the funge-98 spec? 17:22:25 that is, reversing and searching for the opposite side 17:23:33 AnMaster: time ccbi slowdown.b98 mycology.b98 -> 0.87user 0.00system 0:00.88elapsed 99%CPU (0avgtext+0avgdata 66096maxresident)k 17:23:43 AnMaster: time cfunge slowdown.b98 mycology.b98 -> 10 seconds and counting 17:24:08 Deewiant, huh? With exact bounds? 17:24:14 Yes. 17:24:26 Deewiant, I'm extremely surprised. Did you change something recently? 17:24:42 like no longer removing the slowdown program from memory or such 17:24:52 Deewiant, or resetting the storage offset to 0? 17:24:53 I don't think slowdown has changed 17:25:10 I think I changed Mycology to go a bit further 17:25:16 Even with a bad storage offset, or something 17:25:18 Deewiant, using the slowdown version I have here, it is quick 17:25:26 Latest Mycology? 17:25:30 Where does it end? 17:25:41 in disaster, obviously 17:25:46 Quite 17:26:05 Deewiant, it takes 17:26:07 wait 17:26:08 huh 17:26:11 GOOD: basic cBAD: t reflects without creating a new IP or concurrency is very broken 17:26:11 Situation might be very messed up, trying to quit with q 17:26:17 only with slowdown 17:26:38 Deewiant, is that where ccbi ends too? 17:26:42 Yes 17:26:52 Deewiant, well it took about 3 seconds. Let me rerun with time 17:27:03 Deewiant, 2.83 seconds wall time 17:27:21 I'm at 4 minutes of CPU and counting 17:27:27 Deewiant, I suppose you either disabled exact bounds or you hit a bad random position 17:27:45 Deewiant, tell me the random position it ended up at 17:27:58 AnMaster: 17:27:58 AnMaster: That the position of the IP was ( -1178306726 1116900389 ) 17:28:06 hm okay 17:28:30 Deewiant, my slowdown seems to be that hardwired one you gave me to test that bug some time ago 17:28:37 Well heh 17:28:41 Deewiant, can't find any other 17:28:43 That one goes to a really low point 17:28:45 link to current version? 17:29:01 wgetable link that is 17:29:10 Deewiant, ? 17:29:16 AnMaster: ! 17:29:16 AnMaster: ! 17:29:16 AnMaster: ! 17:29:17 AnMaster: ! 17:29:17 AnMaster: ! 17:29:19 AnMaster: ! 17:29:22 AnMaster: ! 17:29:24 AnMaster: ! 17:29:25 mhm? 17:29:27 AnMaster: ! 17:29:29 AnMaster: ! 17:29:49 I see you are trying to make a point. I don't see what said point is 17:29:56 AnMaster: http://iki.fi/deewiant/files/befunge/programs/slowdown.b98 17:30:00 thanks 17:30:13 Had to upload it first 17:30:37 Deewiant, does it do wrapping inside y? 17:30:45 also, it seems to be writing around 0,0 17:30:49 well not odd in that case 17:30:49 Mycology always wrapped inside y 17:31:07 If by "inside y" you mean "in the y tests", anyway. 17:31:12 well yes 17:31:19 I thought that was obvious 17:31:27 It was, fairly. 17:32:04 GOOD: basic cBAD: t reflects without creating a new IP or concurrency is very broken <-- :D 17:32:22 Damn, that underload.b98 takes a long time. 17:32:30 62750457 ticks 17:32:30 Deewiant, not on cfunge :P 17:33:01 scrödinger's concurrency 17:33:06 *+h 17:33:12 Deewiant, because it is a real world application®, which cfunge® is optimised for. Unlike CCBI, optimised for exotic benchmarks 17:33:46 i want some proof you actually registered that trademark 17:33:56 Especially the one for application® 17:33:58 oerjan, I didn't. It was a joke 17:34:08 Deewiant, actually it is "real world application"® 17:34:15 not just application 17:34:37 Removing fingerprints cut off some 0.3 seconds, but not enough to make the difference 17:34:43 AnMaster: you cannot joke about such matters, you'll end up in jail 17:34:50 Deewiant, fingerprints from what? underload? 17:34:58 AnMaster: ...... CCBI 17:35:07 A quadtree may be represented without pointers by encoding each black node with a quaternary integer whose digits reflect successive quadrant subdivisions. We refer to the sorted array of black nodes as the linear quadtree and show that it introduces a saving of at least 66 percent of the computer storage required by regular quadtrees. Some algorithms using linear quadtrees are presented, namely, (i) encoding a pixel from a 2n 2>n array (or scr 17:35:08 een) into its quaternary code; (ii) finding adjacent nodes; (iii) determining the color of a node; (iv) superposing two images. It is shown that algorithms (i)-(iii) can be executed in logarithmic time, while superposition can be carried out in linear time with respect to the total number of black nodes. The paper also shows that the dynamic capability of a quadtree can be effectively simulated. 17:35:09 Deewiant, for mycology or underload? 17:35:14 which test is you testing on 17:35:21 I don't test Mycology, it runs in 0s. 17:35:22 are* 17:35:44 Deewiant, well then. underload.b98 needs STRN. So weird that it works at all if you remove fingerprints 17:35:48 so thus it can't be it 17:35:52 it must be something else 17:35:56 I didn't say /all/ fingerprints 17:36:05 okay 17:36:35 Deewiant, anyway why would removing fingerprints help? Basically it would reduce the binary size and the time needed to look up the fingerprint name 17:36:43 AnMaster: TRDS, IMAP, IIPC, MODE... 17:36:45 if those added up to 0.3 seconds something is *very* wrong 17:36:55 You know, all those fingerprints that you don't implement 17:37:04 Deewiant, those are in core partly, no? You have the core parts in #ifdef or such? 17:37:06 alise: i think that assumes actually allocating all the quadtree as an array up front 17:37:10 Yes, I do. 17:37:13 In part. 17:37:13 right 17:37:43 hm, except that last sentence 17:37:48 Deewiant, just accept it. You made a great funge interpreter. But you can't be best at everything 17:37:50 :P 17:38:04 AnMaster: So what's this I hear about you making a better Funge-Space? :-P 17:38:21 :- is notation for the turnstile |- isn't it 17:38:26 alise: oh wait, it's actually _saving the coordinates_? 17:38:26 Deewiant, well yes, I can do that, But I would be very much surprised if that didn't result in it ended up slower at something else 17:38:33 Of course it does 17:39:01 Deewiant, so that is a trade off. You seem to use less memory too. Perhaps you preferred memory over speed in some tradeoffs? 17:39:05 Ended with: 11 AABBs live 17:39:06 Had: 12 AABBs live at maximum 17:39:06 -!- lament has joined. 17:39:11 mhm 17:39:13 That doesn't sound very good. 17:39:25 Deewiant, I can't tell 17:39:31 I know. 17:39:41 Deewiant, if the program is split out in many parts it seems reasonable 17:40:00 Deewiant, also I just realised a ul program that will throw off your algorithm 17:40:06 It doesn't seem split. 17:40:22 If the comments are to be believed, this should allocate at most 3 AABBs at any given time, I think. Maybe 2. 17:40:23 Deewiant, one that writes large stretches of spaces in the stack then switches it to being filled 17:40:38 In the stack? 17:40:43 Deewiant, in the ul stack 17:40:45 which is in funge space 17:40:51 Right. 17:40:58 That shouldn't be much of a problem? 17:41:10 Deewiant, well, I don't know if you ever free AABBs? 17:41:18 or shrink them 17:41:22 Rarely. 17:41:31 Never in this program. 17:41:43 the stack of 'ul 17:41:49 Deewiant, what about shrinking them? Probably ccbi could be fooled into having a lot of mostly empty AABBs around 17:42:04 Yes, that could happen. 17:42:35 Deewiant, making it resort to the hash table., and then you make sure most of the cfunge static funge space is out of any AABB, thus giving cfunge an advantage 17:42:37 you know 17:42:43 you should write such a test for fungicide 17:42:48 ? 17:42:51 But I bet you won't :P 17:42:56 I don't understand what you mean. 17:43:37 Deewiant, I presume that if the program itself is actually just something tiny that loads the main program somewhere else and then jumps to it you won't have much of an AABB around the (0,0)? 17:44:00 You've pretty much just described slowdown.b98. :-P 17:44:10 Deewiant, and if that is cleared and then that AABB reused elsewhere for those mostly static ones. 17:44:21 err 17:44:25 mostly empty ones* 17:44:40 If it is reused elsewhere? 17:44:44 What do you mean? 17:44:50 does fungicide do slowdown? 17:44:54 No. 17:44:56 if not, it should; it would then take 5 years to run 17:45:00 Yes. :-P 17:45:03 Deewiant, well I don't know. I presume you won't leave empty AABBs around if you are out of them elsewhere? 17:45:23 Yes, I do. 17:45:27 Deewiant, oh and when it switched to hash table, does it grow any of the existing AABBs? 17:45:33 No, it doesn't. 17:45:47 datatype quadtree 17:45:47 = Leaf of word array 17:45:48 | Branch of coords * subtree * subtree * subtree * subtree 17:45:52 In underload.b98 it didn't switch to hash table, I don't know why we're talking about the hash table. 17:45:53 This is the optimal practical structure, right? 17:46:06 Deewiant, I'm not talking about underload.b98 17:46:08 alise: You need a coords in the Leaf, no? 17:46:13 where subtree is a pointer to maybe-a-quadtree 17:46:15 Deewiant: Hm, right. 17:46:28 datatype quadtree 17:46:28 = Leaf of coords * word array 17:46:28 | Branch of coords * subtree * subtree * subtree * subtree 17:46:28 and type subtree = quadtree option ref 17:46:31 Deewiant, anyway. Once that switch over happened, this benchmark would then write some funge space intensive thing near 0,0, but outside the initial AABB 17:46:36 inside cfunge's static area 17:46:45 but outside the initial AABB 17:46:53 I believe the only operations I need are 17:46:55 val move : quadtree * direction -> quadtree 17:46:56 val leaf : quadtree -> word 17:46:57 val put : quadtree * word -> unit 17:47:01 Deewiant, that is my suggestion for a new fungicide benchmark :P 17:47:01 and I can perform the rest with pattern-matching + them 17:47:02 AnMaster: That sounds a bit like an anti-CCBI test. :-P 17:47:13 Deewiant, yes but I feel you have too many pro-CCBI tests already 17:47:16 so you need some balance 17:47:25 They're not really pro-CCBI IMO. 17:47:33 Most of them were written before I even knew what to do with CCBI 2. 17:47:56 Deewiant, right, but then you made sure ccbi2 would be fast with those, even at the expense of apps like underload.b98 ;P 17:47:59 I was just thinking of different kind of data access patterns. 17:48:02 kinds* 17:48:10 Deewiant: Of course the issue now is: deciding the size of the array, and finding out how the hell I do the subdivision. 17:48:15 AnMaster: No, actually I was trying to be fast at everything. 17:48:28 AnMaster: But heuristics will fail. (If that's what's going on here.) 17:48:48 Deewiant, well, that is almost the definition of heuristics. "Will sometimes fail" 17:48:55 Correct. 17:49:15 Deewiant, was that to me or alise? 17:49:34 Given that alise's last was a minute ago... to you. 17:49:40 Deewiant, can't tell what alise is saying due to /ignore 17:49:45 Then don't make it my problem. 17:49:48 Hey guys, did I mention I have alise on ignore 17:49:52 Guys GUYS WHAT ARE YOU TALKING ABOUT 17:49:53 hm? 17:49:57 I can't understand you it's like you're talking to thin air 17:50:00 that must have been to alise ;P 17:50:03 Hmm, lots of weird boxes in underload.b98. 17:50:03 Oh it's alise. I have her on ignore by the way. 17:50:08 Deewiant, hah 17:51:09 Deewiant, anyway some anti-ccbi test might be a good idea. It isn't like CCBI will end up like Language::Befunge because of that 17:51:32 there is no way Language::Befunge can beat ccbi, even at extremely anti-ccbi benchmarks 17:51:34 If you can think of something reasonable and/or will implement it... 17:51:45 AnMaster: Really, hollow-square and diagdown/diagup are anti-current-CCBI 17:51:47 Deewiant, I suggested something above. I guess you consider it unreasonable? 17:52:16 AnMaster: It just seems a bit random and too "tailored" 17:52:19 Deewiant, anyway adding some real applications, such as life.bf and underload might be a good idea. I assume ccbi will be quite okay at the former 17:52:24 What's the use case? 17:52:26 since it keeps inside the b93 area 17:52:30 Yes, they are a good idea 17:52:42 life.bf I considered but found too much of a pain to try to figure out 17:52:50 underload I didn't realize was available in such a convenient form. 17:53:00 Deewiant: Do you mind restating what the directions have to mean? Not specific ones, but the general... 17:53:07 Deewiant, life.bf is some quite amazingly compact code yes 17:53:17 also perhaps some IO performance tests 17:53:20 that might be interesting 17:53:34 not just standard IO but also i and o 17:53:41 alise: Directions mean directions. What do you mean? 17:54:02 AnMaster: Yes; please go ahead and write such tests. I'm not that interested in I/O performance so I haven't done that. 17:54:07 Deewiant, I don't know how good ccbi is at i? 17:54:08 -!- alise has left (?). 17:54:11 -!- alise has joined. 17:54:15 Deewiant: for instance 17:54:18 AnMaster: Neither do I? 17:54:21 well then 17:54:29 aren't you interested in finding out? 17:54:29 NW = (-1,-1), NE = (-1,1), SW = (1,-1), SE = (1,1) 17:54:33 Deewiant: but then what of (0,2) 17:54:43 AnMaster: Not really? :-P The disk tends to be the bottleneck 17:54:45 how do we get there, considering all moves are diagonal? 17:54:56 Deewiant, ffs. ramdisk 17:55:02 AnMaster: Rare. 17:55:08 Deewiant, well you could test that 17:55:13 AnMaster: Rare. 17:55:16 alise: The locations of the branches don't matter, only the root. 17:55:18 Deewiant, anyway for stdio you don't need to ever put it on that 17:55:20 alise: Er, the current node. 17:55:25 Deewiant, it could go through a pipe 17:55:30 to a throughput measuring app 17:55:32 or whatever 17:55:33 Deewiant: I don't quite understand. :-P 17:56:08 Deewiant, oh and what about fingerprint performance. Some might be interesting. Like FRTH and STRN. Both can be be implemented both quite fast and also very very naively 17:56:08 alise: Well, I'm not sure what you're asking. If you want to know where to find/place (0,2), you look at where you are now and go in the appropriate direction. 17:56:15 so that might show a huge difference 17:56:25 3DSP might be interesting too 17:56:27 Deewiant: You are at (0,0). 17:56:40 alise: If x is equal do we go west or east? 17:56:41 You can move to (1,1), (1,-1), (-1,1), (-1,-1). 17:56:45 alise: Incorrect. 17:56:50 alise: You can move NW/NE/SW/SE. 17:56:50 (NW/NE/SW/SE) 17:56:58 Deewiant: ffff 17:56:59 alise: What points are there is beyond are concern at this point. 17:57:03 our* 17:57:05 Deewiant, something like a befunge dhrystone? 17:57:06 Okay then: 17:57:14 North - X is same; South - X is different 17:57:23 West - Y is same; East - Y is different 17:57:25 Er, wait. 17:57:27 That's silly. 17:57:30 Deewiant, from what I can tell, the current fungicide benchmarks don't test arithmetic speed 17:57:32 AnMaster: Yes, all manner of thing can be tested that Fungicide doesn't. It is also work to do. 17:57:33 North - Y is same; South - Y is different 17:57:40 West - X is same; East - X is different 17:57:53 So we want to move southeast? 17:58:02 Deewiant, this could be one place where jitfunge could shine. Optimising divisions by 2^5 into bitshifts and such 17:58:07 alise: X is same here, so southwest, no? 17:58:10 which is not feasible in either cfunge or ccbi 17:58:24 AnMaster: I have lots of work to do; if you want these things to happen, help out. (It's probably fairly trivial to write this kind of benchmark.) 17:58:44 (0,0) / (0,2) 17:58:44 (x,y) 17:58:47 x is right 17:58:48 y is wrong 17:58:57 * NW: right X, right Y 17:58:57 * NE: right X, wrong Y 17:58:58 * SW: wrong X, right Y 17:58:58 * SE: wrong X, wrong Y 17:59:09 so northeast 17:59:12 alise: It's not about right/wrong 17:59:12 wait 17:59:14 y is vertical 17:59:15 Deewiant, anyway most useful is definitely real programs. I think life.bf would be most useful of these 17:59:16 ffff 17:59:21 okay let me rewrite this 17:59:26 alise: It's about lesser-equal/greater vs lesser/greater-equal 17:59:28 which is non-trivial to adapt 17:59:51 AnMaster: So please adapt it so I don't have to. :-P 17:59:53 * NW: wrong X, wrong Y 17:59:53 * NE: right X, wrong Y 17:59:53 * SW: wrong X, right Y 17:59:53 * SE: right X, right Y 17:59:56 Deewiant, hah 18:00:01 Deewiant: Wrong = different, right = same 18:00:02 So 18:00:06 (x,y) = (0,0) 18:00:10 (x,y) = (0,2) 18:00:13 Deewiant, how many FLOPS can FPSP in ccbi manage btw? ;P 18:00:15 x is right, y is wrong. 18:00:18 Northeast. 18:00:19 AnMaster: Do not know. 18:00:23 AnMaster: As you know. 18:00:31 Deewiant, I'm trying to get you interested in it dammit ;P 18:00:36 We want to move northeast. 18:00:40 AnMaster: Not gonna happen like that. :-P 18:00:48 meh 18:00:48 alise: y increases to the south, no? 18:01:10 Deewiant: Okay, I am so fucking confused. My brain appears to have forgotten coordinates entirely. 18:01:19 alise: 2010-04-11 19:59:02 ( Deewiant) alise: It's about lesser-equal/greater vs lesser/greater-equal 18:01:23 But still. 18:01:27 Having NW be wrong X, right Y seems so wrong. 18:01:34 West and North seem so... samey. 18:01:35 alise: It's not about wrong/right, still. 18:01:41 Deewiant: You said same/different. 18:01:47 You didn't say <=/> 18:01:53 alise: Where'd I say that? 18:02:03 Ages ago. 18:02:17 /last same doesn't see me saying much of anything. 18:02:24 Okay, fine. 18:02:32 It does see you saying it a couple of times, though. :-P 18:02:52 alise: Make life simpler for yourself and pick (1,2) for the example. :-P 18:02:52 So, wait, eh? 18:02:55 You have four comparisons. 18:03:02 So I want to map [NS][WE] to pairs of ... what? 18:03:03 You have two comparisons. 18:03:09 "lesser-equal/greater vs lesser/greater-equal" 18:03:31 Deewiant, how far has he reached in his funge thing? Still deciding language? Or deciding how to implement the main loop now? 18:03:32 alise: If input.x < node.x then go west; if input.x > node.x then go east; similarly for y 18:03:34 Or perhaps the stack 18:03:51 alise: The question is, which branch do we take when input.x = node.x. 18:03:59 alise: (And it's completely arbitrary.) 18:04:18 Deewiant: Okay, I'll write this down. 18:04:22 ah, I guess fungespace and quad/oct-tree then 18:04:49 AnMaster: Disabling statistics bought me another 0.3 seconds. 18:04:54 alise: iiuc and if you are using 2^n x 2^n space then there is an easier way to look at it 18:04:57 So I'm only 0.4 seconds behind now. :-P 18:05:07 Deewiant, try disable tracing for cfunge 18:05:10 Deewiant, otherwise it isn't fair 18:05:11 Deewiant: If I pick <= for North, I should pick <= for east, so that there's a sort of symmetry, rather than having a bias. :-D 18:05:15 basically take the (x,y) coordinate, write each of x and y in binary 18:05:15 AnMaster: It's enabled in CCBI. 18:05:29 Deewiant, well you have a debugger for it, mine is closer to statistics 18:05:30 alise: Whatever. :-P 18:05:39 AnMaster: Er, no it isn't 18:05:41 Deewiant, so yes disable the tracing, won't make much of a difference 18:05:50 say x = 00001100 and y = 11100001 18:05:51 AnMaster: Both are just one if (tracing) doSomething(); 18:06:06 Deewiant, do you have tracing inside k too? 18:06:07 Deewiant, I do 18:06:17 AnMaster: My statistics are all over the place: one per tick, one per IP per tick, one per Funge-Space lookup, one per stack push, one per stack pop, etc. 18:06:22 Deewiant: 18:06:23 (* North: wanted y <= current y 18:06:23 * South: wanted y > current y 18:06:23 * 18:06:23 * East: wanted x < current x 18:06:23 * West: wanted x => current x 18:06:25 *) 18:06:26 alise: then _pair_ corresponding bits. 01 01 01 00 10 10 00 01 18:06:29 AnMaster: There are no ks in this program. 18:06:37 Deewiant, my trace is all over the place too: one per ip per tick and in k 18:06:38 So, (0,2); x is ok, so West; y is wrong (wanted is greater), so South. 18:06:42 Southwest, Deewiant, right? 18:06:43 Deewiant, plus in some fingerprints iirc 18:06:44 oerjan: wut. 18:06:46 AnMaster: No, that's not all over the place. :-P 18:07:04 those pairs are your directions. 00 = SW, 01 = NW, 10 = SE, 11 = NE 18:07:07 alise: Right. 18:07:10 (from the root) 18:07:14 Deewiant, btw when do you shrink bounds in ccbi2? 18:07:20 Deewiant: But then what? Do we just insert a leaf there? 18:07:22 oerjan: I don't see how this is "an easier way to look at it" 18:07:25 Deewiant, lazily? Or eagerly ? 18:07:28 AnMaster: In y. 18:07:36 Incidentally, I have no clue how I'm going to do exact bounds with this 18:07:40 Deewiant, do you have a flag for if it is exact like I do? 18:07:41 alise: No, now you go there and take a look. 18:07:47 AnMaster: No, I don't. 18:07:50 hm 18:07:55 Deewiant: >_< 18:08:04 alise: I.e. take the SW link and do something based on what's there. 18:08:12 Deewiant, btw with the hash table funge space is your wrapping still O(1)? 18:08:16 alise: I.e. recursion. :-P 18:08:33 AnMaster: My wrapping is not globally O(1) 18:08:35 Deewiant: I'll write a function to decide what direction to go in, then. 18:08:45 alise: Good idea! 18:09:18 AnMaster: But yes, it uses the same algorithm, just treating the hash table area as one more box. 18:09:28 Deewiant, so one could make a benchmark where you get very slow wrapping due to using hash table and only shrinking bounds in y? 18:09:43 Deewiant: well i cannot make heads or tails of what you are saying, so easier for _me_ :D 18:09:44 Deewiant, do you shrink the bounds of the hash table box then? 18:09:47 AnMaster: The bounds aren't used for wrapping. 18:09:55 oerjan: >_< 18:10:00 Deewiant: It freaks me out that we have x,y in tuples but y,x in direction names 18:10:02 like northeast 18:10:11 Deewiant, then what is used for it? if you have a huge sparely populated hash table box 18:10:11 alise: Blame English. :-P 18:10:11 actually i guess N and S should be switched if y is numbered from top like in funge 18:10:35 oerjan, I don't get it 18:10:50 the pun I mean 18:10:54 -!- jcp has joined. 18:10:54 what pun 18:10:57 probably due to something alise said? 18:11:03 Deewiant: well i cannot make heads or tails of what you are saying, so easier for _me_ :D oerjan: >_< 18:11:14 AnMaster: What makes you think there is a pun anywhere. 18:11:20 Deewiant, oerjan said it :P 18:11:35 AnMaster: he is just frustrated i don't understand his NW stuff (or at least don't think it helps any) 18:11:37 If oerjan says something it is not automatically a pun. 18:11:38 pretty good indicator of P(pun) 18:11:49 Deewiant, it is if someone else go >_< at it 18:12:09 I think I'm the only one here who goes >_< at anything 18:12:20 And I think I don't usually respond to puns 18:12:20 Deewiant, I do it, in other channels mostly 18:12:35 more often -_- though 18:12:55 Deewiant: i assumed you were trying to find out how to go to a specific coordinate. from the root my way is very simple. 18:13:27 fun directionFor ((cx,cy), (wx,wy)) = 18:13:27 case (wy <= cy, wx < cx) 18:13:27 of (false,false) => SW 18:13:27 | (false,true) => SE 18:13:27 | (true,false) => NW 18:13:27 | (true,true) => NE 18:13:40 oerjan: Interleaving the x-bits and y-bits? I don't see the point of that at all 18:13:56 Deewiant: val move : quadtree * direction -> quadtree 18:13:56 val leaf : quadtree -> word 18:13:57 val put : quadtree * word -> unit 18:14:06 I think these primitives are wrong. 18:14:18 I don't think there is a useful set of primitives that do not handle coordinates themselves for this structure. 18:15:32 Deewiant: it tells you immediately the path from the root of the quadtree to the given coordinate 18:15:53 oerjan: Interleaving the x-bits and y-bits? I don't see the point of that at all <-- cache? 18:15:54 oerjan: I don't understand at all how 18:16:18 Deewiant: let's say we have a 256 x 256 fungespace to be made into a quadtree 18:16:25 oerjan: It depends on the quadtree itself, doesn't it? 18:16:45 Oh, but we are assuming that it is centered at (0,0) 18:16:48 Deewiant: maybe you have some different structure in mind 18:16:50 Which I guess helps 18:18:04 Deewiant: well you could make it -256 to 255 coordinates 18:18:13 er, -128 to 127 18:18:44 then (0,0) is at the lower left corner of the upper right quadrant, as close to the center as you can get 18:19:10 Yes, sure 18:19:13 you'd just have to invert the very top bits for that 18:19:29 (the sign bits) 18:19:34 I don't see at all how this bit-interleaving works :-P 18:20:01 er i keep thinking y increases upward 18:20:06 (as in math) 18:20:17 so switch upper and lower above 18:20:54 the upper left quadrant is now (-128, -128) to (-1, -1) 18:21:09 and can be detected by the sign bits 18:21:15 -!- charlls has joined. 18:21:32 the lower right is (0, 0) to (127, 127) 18:21:46 -!- cheater2 has joined. 18:21:55 so wait using y increasing upwards should i change my north/south conditions?? 18:22:01 er i mean 18:22:02 increasing downwards 18:22:05 now when we subdivide the latter one, we get the upper left of _that_ is (0, 0) to (63, 63) 18:22:06 (* North: wanted y <= current y 18:22:06 * South: wanted y > current y 18:22:08 I am so, so confused 18:22:19 alise: Don't listen to us :-P 18:22:27 >_< 18:22:33 I mean, this convo. 18:22:36 I still don't get the subdivision algorithm :D 18:22:40 alise: well it's just about being consistent but i assume you want south == downwards == increasing line number? 18:22:43 If what oerjan does works, it's still an optimization. 18:22:52 I wouldn't worry about it just now. 18:22:52 oerjan: right 18:22:57 so my two lines are correct 18:23:09 so am I right in thinking tha 18:23:09 t 18:23:15 val move : quadtree * direction -> quadtree 18:23:16 val leaf : quadtree -> word 18:23:16 val put : quadtree * word -> unit 18:23:17 is a bad set of primitives 18:23:22 because it's basically useless without coordinate stuff 18:23:54 You need put : quadtree * coords * word -> unit 18:23:54 alise: it's just that i don't see how knowing whether something is north or south of where you are helps anything particularly with finding out which quadtree quadrants you are in 18:24:05 hm from the convo it seems alise isn't copying ccbi, but rather is copying Deewiant's step by step guide 18:24:09 just saying 18:24:17 oerjan: It tells you which quadrant to go to next 18:24:26 AnMaster: Actually, it isn't even CCBI's algorithm. 18:24:29 oerjan: I mean, that's basically how a quadtree is defined 18:24:33 I'm asking for an explanation of an entirely neutral data structure. 18:24:47 oerjan: About a branch, the points northwest of it are in the northwest quadrant, and so on. :-P 18:25:00 AnMaster: you know, either shut up or unignore alise 18:25:06 Anyway, I'm delighted that you've found happiness in being an irritating little prick by being an idiot with regards to me and continually mentioning that I'm annoyed; at least your life has purpose now. 18:25:13 *I'm ignored 18:25:16 Although I am annoyed too. 18:25:33 alise: the shut up goes for you too :D 18:25:36 oerjan: On the other hand, maybe he should keep me ignored :) 18:25:40 Hey, I haven't ignored him. 18:25:45 It's not my fault he's ignored me. 18:25:50 I'm also annoyed, CCBI is failing at underload. :-P 18:25:52 Entirely out of my control. 18:25:55 oerjan, hm? The former probably, I don't have anything to add after that. So it would be pointless not to shut up. A waste of the keycaps 18:26:48 Stinkhorn uses 64x64 arrays, it seems. 18:26:55 Seems like a nice round number. 18:27:13 alise: well the thing is when you have a quadtree of integer coordinates, afaict the leaves are 1 x 1, their parents represent 2 x 2 and _their_ parents represent 4 x 4 squares, etc. 18:27:15 Careful; I think Stinkhorn is GPL. 18:27:20 Deewiant: :-D 18:27:35 Although 64x64 is suboptimal in that I think Befunge-93 programs should really fit into one array. 18:27:41 and it's then easy to align things such that the boundaries of the squares correspond to bit boundaries 18:27:43 Then again, 80*80 is both not round and a bit too big. 18:27:48 96*96 is just travesty, isn't it? 18:27:59 oerjan: there are no parents in quadtrees 18:28:01 you cannot traverse upwards 18:28:15 There are parents, you just can't access them. 18:28:35 * oerjan is now damn unsure if he knows what a quadtree _is_ 18:28:40 :-D 18:28:51 oerjan: You've been right so far AFAICT. 18:29:00 datatype quadtree 18:29:00 = Leaf of coords * word array 18:29:01 | Branch of coords * subtree * subtree * subtree * subtree 18:29:01 and type subtree = quadtree option ref 18:29:03 I am fairly sure I have this right by now. 18:29:09 (The array is, of course, just an optimisation.) 18:29:10 Oh, wait. 18:29:18 Yes, I think you have this right. 18:29:19 This means that when I hit something I need to decide whether I'm in the bounds of any potential array. 18:29:23 Or, no. 18:29:25 That's just if I hit a leaf. 18:29:27 Isn't it? 18:29:28 Yes. 18:29:31 Good. 18:29:33 Otherwise that would be painful. 18:29:54 I think your arrays need to be a power of two for this to work. 18:30:06 Maybe 64x64 blocks, plus an initial field of say a megabyte would be best; but that's not part of the quadtree stuff. 18:30:08 At least without some carefulness. 18:30:20 Deewiant: Well, 64^2 = 4096, yep, that's a power of two. 18:30:28 :-) 18:30:45 -!- Asztal has joined. 18:30:46 Careful; I think Stinkhorn is GPL. <-- oh, copying that too? How fun ehird must have 18:31:13 AnMaster: I thought you were going to shut up. 18:31:24 AnMaster: You know what, I think I'd really appreciate it if you either (a) unignored me, (b) shut the fuck up, or (c) go aestivated under a rock somewhere. 18:31:32 Deewiant, well, until the point of seeing a point of pointing out something else 18:31:33 Deewiant: Apparently that'd be a "waste of key caps". 18:31:47 A point? As far as I can tell everyone either doesn't care or is irritated. 18:31:47 AnMaster: There is no point if you don't know the context. 18:31:56 *went and aestivated 18:32:11 Deewiant, I know the context. Just not the complete context ;P 18:32:32 AnMaster: I.e. you don't know the context. 18:32:33 * alise eliminates the QUADTREE signature for now 18:32:37 this is rather concrete atm 18:33:01 if by Stinkhorn you mean my befunge thing, it uses the MIT license. 18:33:26 Darn, my bad. 18:33:38 Asztal: Your octrees are confusing as fuck, and I'm doing it with half the trees! 18:34:07 alise: I agree 18:35:20 Asztal, out of interest, what sort of funge space do you use? Quad tree? hash table? AABBs? 18:35:29 something else? 18:35:33 It's an octree/quadtree 18:35:42 ah 18:36:52 i would have said that an octree's paths from the root is just combining _triples_ of bits from the coordinates, if i was sure of anything anymore 18:36:53 it uses page sizes of 64x64 or 4x4x4 depending on how many dimensions are in use 18:37:21 Asztal, so smaller pages in trefunge? 18:37:24 Asztal: $ ./stinkhorn -3 18:37:25 warning: -3 doesn't do anything yet 18:37:43 Deewiant: haha, interesting... it should do something 18:38:32 bbl 18:38:43 AnMaster: yes, it's kind of a design limitation actually, it would take some work to support non-cube pages 18:38:57 TIME CUBE 18:39:10 Somebody should make a time cube programming language. 18:39:13 Gogogo. 18:39:54 16x16x16 would be as big as 64x64 btw 18:40:02 Deewiant: seems like the warning is indeed wrong there... does it run a trefunge program properly? 18:41:02 oerjan: it seems I actually use 8x8x8. 18:41:14 oerjan: I think 16x16x16 wasted too much memory. 18:41:15 Asztal: It doesn't seem to, no. 18:41:20 8x8x8x8 would also be the same size 18:41:44 4D funge is evil ;P 18:41:51 plus non-portable 18:41:57 there is no standard file format for it yet 18:42:45 Deewiant, old version of stinkhorn? 18:43:03 Deewiant: So, basically, all my functions on quadtrees should take coordinates, as the actual primitive quadtree functions are basically useless. 18:43:06 Yeah? 18:43:11 AnMaster: Latest hg. 18:43:18 mhm 18:43:36 alise: I'd say that's simpler, yes. 18:43:39 So 18:43:41 val get : quadtree * coords -> word 18:43:42 val put : quadtree * coords * word -> unit 18:43:47 Although I need bounds too, don't I? 18:43:51 Bounds will be hell :( 18:43:56 You don't need to worry about bounds yet :-P 18:44:10 Okay. 18:45:35 get should be easy enough... I hope. 18:46:20 methinks youAreHere : quadtree -> coords needs a better name 18:46:24 oh, "here" should do fine 18:47:44 Deewiant, btw stinkhorn handles lmh correctly in 2D 18:47:47 haven't tested rcfunge yet 18:48:02 fun get (qt, there) = 18:48:03 let here = currentCoords qt in 18:48:03 (* move in direction `directionFor (here, there)`, 18:48:03 subtract from coordinates appropriately (?), 18:48:03 and recurse *) 18:48:04 for branch nodes 18:48:05 right? 18:48:42 Deewiant, and surprisingly so does rcfunge! 18:48:50 now that was unexpected 18:48:53 Hmm, the arrays should have coordinates in the middle I think 18:49:41 Deewiant, my small test program was: http://sprunge.us/WUdC 18:50:19 fun get (Leaf(here, fs), there) = dummy (* handle the arrays, etc. *) 18:50:20 | get (Branch(here, st), there) = 18:50:20 (* move in direction `directionFor (here, there)`, 18:50:20 subtract from coordinates appropriately (?), 18:50:20 and recurse *) 18:50:23 wait 18:50:26 i don't want to subtract from the coords 18:51:55 Deewiant: There's no reason I need to inspect the directions, is there? I'm thinking about just representing them as their accessor functions of the subtree structure 18:52:52 The directions themselves are always the same for any node so no, you don't need to do anything with them directly 18:53:38 AnMaster: Making the timeout-checker in underload.b98 do a wraparound is a wonderful way of increasing CCBI's time by 10% and cfunge's by over 1000% :-P 18:53:47 (can't alise figure out that sort of things himself. After all he claims to be smart and such) 18:54:03 Deewiant, but that is pointless because most programs don't wrap around much 18:54:10 AnMaster has gone completely insane. 18:54:14 I think I've finally managed to crack his psyche. 18:54:18 Deewiant, so I consider that utterly irrelevant for real usage 18:54:23 AnMaster: thank you very much for your help re. reMorse 18:54:26 Well, it depends 18:54:42 Can't ellisonch figure out that sort of things emself. 18:54:46 After all e claims to be smart and such. 18:54:48 Deewiant, I suggest you try to make CCBI fast at the non-wraparound case instead 18:54:49 AnMaster: E.g. the way I originally wrote this, if I hadn't made an error, I would've preferred to wrap around. 18:54:53 Deewiant, better spent time 18:55:02 Er, no. 18:55:05 (No offence, ellisonch. You're just the wonderful convenient scapegoat.) 18:55:07 Deewiant, why not? 18:55:25 ellisonch, no problem 18:55:36 There is no "better spent time" since the way I do it now is not caused by massive optimization, it's pretty much a necessity 18:56:01 I.e. the wrapping hasn't been particularly optimized, it just seemed like the only sensible way to do it 18:56:08 Deewiant, just making an anti-cfunge-test because you can't make ccbi look better any other way? 18:56:22 What the fuck now, seriously? 18:56:34 Deewiant, well that is what adding such a wrap around results in 18:56:36 IMO 18:56:50 I'm just messing around and seeing what affects runtime 18:57:02 I'm not adding this to any official benchmark and then using that to say "oh ho, CCBI kicks cfunge's ass" 18:57:05 Deewiant, it favours AABB implementations and few other ones 18:57:11 well good then 18:57:17 I specifically stayed away from putting any conclusions in Fungicide to avoid seeming biased 18:57:45 Deewiant, especially since it is hard to tell how well it reflects "real" applications yes 18:58:20 I do like having fast worst cases at the slight expense of the average, though 18:58:55 (When clicking logout link): Error: You have been logged out due to inactivity. To perform this action you must first log in again below: 18:58:57 heh 18:59:03 But CCBI does have worst cases in the wrapping which will make it O(n^2) in the delta, IIRC 18:59:09 not the first time I seen that happen 18:59:21 Or maybe just O(n) 18:59:29 Can't remember exactly. 18:59:34 Deewiant, hm. 19:00:30 I do like having fast worst cases at the slight expense of the average, though <-- opposite for me 19:01:18 AnMaster: I think your intuition was right on the money, about having a space-filled stack which is then filled in here and there. 19:01:56 Deewiant, well yes, from reading your code it seems obvious this should be a bad case for it. I'm unable to tell how bad exactly without testing of course. 19:02:02 how bad was that case? 19:02:26 Instead of getting one nice Nx1 rectangle there's one like that and then a dozen smaller squarish ones 19:02:35 heh 19:02:43 now that I didn't expect 19:03:01 Well, the heuristic kicked in at some point and gave the Nx1 19:03:04 I expected several Nx1 instead 19:03:05 Fortunately enough 19:03:20 Deewiant, you need to fine tune the test case to avoid that heuristic ;P 19:03:31 No, I need to think about what to do in a situation like this. 19:03:48 I think I might need a new subsumption pass. 19:04:07 Deewiant, does it matter much though? It is still reasonably fast I presume? 19:04:18 It's the same old 3ish versus 2.5ish 19:04:34 Deewiant, hm? In speed ratio? 19:04:41 In seconds 19:04:43 ah 19:04:55 Can't remember the exact numbers; I pasted them to you an hour ago or whenever. 19:04:57 Deewiant, did you get better for the non-wrapping compact stack case? 19:05:04 I haven't changed anything at all. 19:05:07 ah 19:05:13 I'm just looking at what's going on. 19:05:42 -!- myndzi has joined. 19:05:47 Stinkhorn does it in about 5.5 seconds, FWIW. 19:05:58 I wonder how it wraps. 19:06:12 Deewiant, is that the non-wrapping that is 5.5? 19:06:17 Evidently slowly enough that its time goes up a lot when wrapping as well. 19:06:22 Yes. 19:06:26 mhm 19:06:35 how much does it go up by btw? 19:06:36 Couldn't be bothered to wait for the wrapping, like with cfunge. 19:06:39 ah 19:06:46 Both take over a minute. 19:07:10 Deewiant, I have an idea for slogan for ccbi 19:07:25 CCBI: When edge cases is the only thing you care about 19:07:28 what do you think? 19:07:42 AnMaster's new era: be a jerk to every single person. 19:07:43 I think that's bullshit, but that's just me. 19:08:00 Deewiant, but "almost the only thing" wasn't as snappy ;P 19:08:18 Hmm. Befunge interpreter debates? 19:08:27 Not "debates", really. 19:08:29 You guys may well make me write a Befunge interpreter. :P 19:08:37 pikhq, 93 or 98? 19:08:45 AnMaster: Sure. 19:08:46 :P 19:08:49 pikhq, both? 19:08:59 Beats me. 19:09:05 We managed to find a case where cfunge clearly beats CCBI and I'm trying to think of a heuristic that'd flip that. 19:09:28 pikhq, and this one was in fungot 19:09:28 AnMaster: perhaps. it doesn't lose any points for the original term. units may be the first char 19:09:36 which is actually more representative than fungicide 19:09:54 the ^ul interpreter to be specific 19:10:21 Hmm. Seems mutable. I may have to learn a thing or two about Haskell's arrays. 19:10:38 Or go crazy and do more functional C? :P 19:10:41 AnMaster: "More representative"? Of what? Of real world programs? Sure, given that fungot's the only one, it's representative of itself... 19:10:42 pikhq: Don't use arrays. 19:10:42 Deewiant: exit the channel), is chicken a wib implementation of scheme 19:10:44 pikhq, the latter! 19:10:52 pikhq: You need 2^32 x 2^32, or even ^64, size array. 19:10:54 Deewiant, exactly! 19:11:01 So you want something like a hash table, or a quad tree, or an array of boxes, etc. 19:11:14 fungot, wib? 19:11:14 AnMaster: but it wasn't even a word 19:11:24 indeed that was why I asked 19:11:24 AnMaster: So isn't cfunge the one tuned for a special case, namely only one program? :-P 19:11:27 pikhq: Also, functional C would be hell: while -93 is a trivial task, -98 contains many, many corner cases and even implementing the basic instructions correctly requires thousands of lines of code. 19:11:42 pikhq: Add in fingerprints and you have a project that must be embarked upon sanely. 19:11:47 alise: Not thousands. 19:11:56 Deewiant: Well, with exact bounds and forking? 19:11:58 Deewiant, Three. life.bf, underload.b98/fungot, mycology 19:11:58 alise: Those Lua ones were almost there and they were at what, 500 lines. 19:11:58 AnMaster: and merges them correctly when i now think it would make sense in unicode. 19:12:00 Maybe a few hundred, then. 19:12:03 I meant more like 1,000. 19:12:05 because those are the apps I know in befunge basically 19:12:17 Deewiant: Still, if you want any sort of speed it's over 1,000. 19:12:19 alise: Forking is unnecessary, exact bounds is cheap linewise if you do it suboptimally 19:12:21 there are a few small ones sure, like the TURT quine 19:12:25 And if you want a good set of fingerprints, 4,000+? 19:12:25 alise: Maybe, sure. 19:12:31 Forking is unnecessary but nice to have. 19:12:41 AnMaster: Define "real world app", of course. :-P 19:12:48 alise: Hmm. This would require some actual thought regarding good data structures then. 19:13:00 pikhq: I've spent the past hours bugging Deewiant about quadtrees. 19:13:01 pikhq: That's what alise's been up to the past few hours. 19:13:12 Deewiant: A nicer phrasing of it. 19:13:17 :-) 19:13:35 pikhq: Eventually I settled on 19:13:37 datatype quadtree 19:13:38 Hmm. Now do I want "absolutely naive and readable" or "clever and speedy"? 19:13:39 Deewiant, something more complex than "hello world", something that fills or is larger than befunge93 space I guess. life.bf fills it. fungot and mycology are larger. 19:13:39 AnMaster: who even needs those equations? 19:13:40 = Leaf of coords * word array (* arrays are 64x64 = 4096 words *) 19:13:40 | Branch of coords * {nw : quadtree option ref, 19:13:40 ne : quadtree option ref, 19:13:40 sw : quadtree option ref, 19:13:40 se : quadtree option ref} 19:13:44 where array is mutable and ref is a non-NULL pointer 19:13:48 Deewiant, and there are two more things 19:13:52 (postfix parametric types, so it's A option) 19:14:05 AnMaster: Is not part of Fungicide? ;-) 19:14:06 pikhq: If it's absolutely naive, good luck running any of the interesting programs like fungot. 19:14:06 alise: and i hope your teacher will look at it like that 19:14:08 the first is: isn't made especially to test performance (excludes slowdown.b98) 19:14:13 (and fungicide too) 19:14:19 -!- kar8nga has joined. 19:14:22 alise: Oh? 19:14:30 Befunge is that freaking slow? 19:14:31 the other is: is actually used by someone 19:14:32 hmm, ML syntax, I can't help but finding it so ugly 19:14:34 like fungot 19:14:34 AnMaster: it comes from printing " digital root: " and 255 and 0, oh my 19:14:35 ... If implemented naively. 19:14:37 pikhq: Yes; imagine its dawdling Underload performance, slowed down by a few hundred times. 19:14:46 I mean, used for something not related to the program itself exclusively 19:14:52 that may arguably exclude life.bf 19:14:57 pikhq: CCBI and the other top interpreters run the Mycology test suite in something like 0.02 seconds. Slow interpreters like Language::Befunge take several minutes. 19:15:00 alise: So, what you're saying is threaded code. 19:15:02 AnMaster: It does IMO. 19:15:06 :P 19:15:06 Deewiant, but I also use it sometimes to run GOL simulations 19:15:11 Deewiant, before I installed golly 19:15:14 pikhq: Self-modifying? fizzie tried that 19:15:17 alise: Not minutes. 19:15:17 (Language::Befunge is the slowest interp; N-dimensional Perl interp) 19:15:23 Deewiant: Language::Befunge takes how long now? 19:15:28 Hm 19:15:30 alise: CCBI 1 is slower than Language::Befunge on some programs. :-) 19:15:33 alise: Threaded code, though. It's the Forth way! 19:15:36 Maybe I should write a Befunge interpreter in Haskell 19:15:42 pikhq: Well, whatever. :) 19:15:45 alise: Hang on, /me times. 19:15:47 olsner: OCaml syntax, yes. But Standard ML> 19:15:48 *ML? 19:15:55 fun currentCoords Leaf(c,_) = c 19:15:56 | currentCoords Branch(c,_) = c 19:15:56 (* 19:15:56 | subtree (Branch(_,nw,_,_,_), NW) = nw 19:15:56 | subtree (Branch(_,_,ne,_,_), NE) = ne 19:15:56 | subtree (Branch(_,_,_,sw,_), SW) = sw 19:15:57 | subtree (Branch(_,_,_,_,se), SE) = se 19:15:58 Deewiant, but yes, something made especially for benchmarking isn't a "real world" program 19:15:59 alise: 17 seconds. 19:16:00 oops 19:16:02 fun directionFor ((cx,cy), (wx,wy)) = 19:16:03 Not sure how easy it is to handle the self-modification with that, though. 19:16:04 case (wy <= cy, wx < cx) 19:16:06 of (false,false) => #sw 19:16:08 | (false,true) => #se 19:16:10 | (true,false) => #nw 19:16:12 | (true,true) => #ne 19:16:14 looks pretty pretty to me 19:16:16 pikhq: Hard 19:16:18 JITfunge was really nitty-gritty code 19:16:41 Deewiant: How fast is CCBI2 running Mycology? 19:16:42 I still have great hopes of jitfunge 19:16:43 AnMaster: If I write an underload interp in Befunge for a Fungicide benchmark, is it a real world program? 19:16:48 in fact I think it is the best way forward 19:16:48 Hm, too lazy to try to figure out how 19:17:01 if fizzie ever continues with it 19:17:12 then I bet we will see a jitccbi3 some time after 19:17:26 just because Deewiant can't accept not being best at befunge ;P 19:17:28 alise: Right now I've a fingerprintless version compiled, it takes 0.00s 19:17:41 Deewiant: I can't divide by zero. And with fingerprints. :-) 19:17:53 alise: I don't want to compile a fingerprint version, I'm messing around. 19:18:00 Fair enough. 19:18:11 Deewiant, well, would you make a ccbi3 in case of a JITing implementation overtakes you? 19:18:12 But not much more than that, anyway. 19:18:21 pikhq: So, taking Deewiant's 0.00s for CCBI2 and 17 seconds for Language::Befunge, a non-naive interpreter is infinity times faster than a naive one on a simple test suite. 19:18:36 Infinity! That's bigger than 34, 3459873459, -2, and G_64. 19:18:44 alise: Language::Befunge isn't that good an example, really. :-P 19:18:51 alise: not sure which dialect I'm offended by... what's the difference between ocaml and sml syntax? 19:18:55 AnMaster: If I had something interesting to do with it, sure. 19:19:04 AnMaster: Not just as a matter of principle, no. 19:19:05 olsner: ocaml looks like +. this /. 3. ;; 19:19:08 alise: Clearly I should first do a Befunge-'93 interpreter. 19:19:15 olsner: it is incredibly offensive 19:19:34 Conversely, SML abstains from semicolons, has proper polymorphic arithmetic operations, etc. 19:19:36 Deewiant, btw that is another problem with fungicide: In many of the tests the all of the instructions in the entire program are executed one time each. Which is _very_ rare for a "real world" befunge program. 19:19:45 It's basically like Haskell without indentation-sensitivity and some minor stylistic choices. 19:19:48 pikhq: That is about a page of code. 19:19:53 Less if you use a good language. 19:20:07 pikhq: Remember to prompt the user for the result to use on division-by-zero. 19:20:28 pikhq, befunge93 is a good way to start at doing befunge98 19:20:32 alise: I was thinking of using C and crazy computed goto-ness, personally. 19:20:52 pikhq: There's one like that already. 19:20:53 then you extend it. Then you rewrite the funge space and the stack-stack. Then you rewrite the rest 19:20:59 AnMaster: It is not. 19:21:00 The entire fungespace architecture changes. 19:21:15 Deewiant, which one? 19:21:15 AnMaster: In some of the tests. Not all. 19:21:23 I can't remember what it's called. 19:21:24 Deewiant, I said "many" 19:21:26 Deewiant, not "all" 19:21:30 alise: I'm guessing funge93 is only a good way to get... Used to befunge. I'm imagining most of this code will be chucked. 19:21:46 pikhq: Yeah. 19:21:48 AnMaster: And you're free to look only at the other benchmarks if you wish. 19:22:00 pikhq: Mind, AnMaster certainly can't code Befunge, and I even less so. 19:22:07 Deewiant is probably the only implementer proficient in the language. 19:22:13 Deewiant, well it doesn't bother me much in cfunge. But it is really unfair to something like jitfunge 19:22:17 Well, and fizzie, but his interpreters are abandoned. 19:22:22 (more or less) 19:22:55 AnMaster: There's nothing "unfair" about demonstrating a program which runs slower on one interpreter than another. 19:23:40 Deewiant, it is if you do it to the point of making it show "timeout" for max time :P 19:23:48 No, it isn't. 19:24:04 It is a simple fact: this program took over 3 hours on this interpreter. 19:24:18 Whether you, the reader, care about that is up to you. 19:24:21 Deewiant, anyway, how do you handle implementations that don't implement t in the rankings? 19:24:28 They all do, so I don't have to worry. 19:24:41 Deewiant, well if you were to add efunge it wouldn't 19:24:51 Then I'd have to worry about that. 19:28:35 Hmm, the runtimes are about the same for (:^):^ 19:29:40 Deewiant, well, underload without wrapping is really quite well suited to cfunge. Sure a static array there could work better in theory, but unlikely to be a problem in practise 19:29:50 Deewiant, also do you mirror the Nx1? 19:29:52 How is it well suited? 19:29:52 that could help 19:29:56 since it grows into -x 19:29:57 Mirror? 19:30:05 Deewiant, as in start of array near origin 19:30:13 No, I don't. 19:30:13 and end of array growing towards -inf 19:30:22 For (:^):^ it doesn't matter anyway. 19:30:25 Deewiant, well then I assume you have to realloc and also move the data 19:30:41 Almost nothing is allocated in that program. 19:30:41 Deewiant, well duh 19:30:50 Deewiant, I meant for the previous test program 19:30:56 that you ran on the bots in here before 19:31:09 I'm markedly less interested in the more complex test program now that this gives the same results. 19:31:44 Deewiant, well, sure. Because for that I think it is all in cfunge's static space 19:31:49 and for you it is all in AABBs 19:31:54 the same one even 19:32:05 so indeed it is not going to cause any problems for you 19:32:07 cfunge's static space is an AABB. 19:32:08 nor for me 19:32:11 Deewiant, well yes 19:32:16 Deewiant, but a fixed such 19:33:15 Deewiant, and in that way we both do pretty much the same. Since mine is compile time fixed that means I have slightly less overhead when it comes to checking if I'm in it. The compiler can write smart code. 19:33:27 Yep. 19:33:36 But the difference shouldn't be that big. 19:33:42 Deewiant, since it is a power of two size, it can also be smart at mapping x/y coordinates 19:33:52 as in 19:34:08 multiplying by line length 19:34:11 is a bitshift 19:34:50 Deewiant, while in CCBI as far as I understood the code it may very well be a multiplication. Which takes more cycles 19:34:55 -!- zzo38 has joined. 19:35:00 not as bad as integer division true 19:35:02 but still 19:35:11 Those people in ##C channel won't help they make up all sort of confusing 19:35:24 of confusing what? 19:35:28 How to write a code that makes a compile-time error in C if the endianness is wrong? 19:35:37 I love me some unary &&. 19:35:39 eh 19:35:56 zzo38: ooh, interesting 19:36:11 zzo38, I'm not sure that is feasible. Try using something like a test program for it. Like autoconf or whatever 19:36:16 zzo38: I'd construct some direct expression in something that won't have its endianness messed with, then cast it to the relevant type, 19:36:27 zzo38: and e.g. make an array of size it, minus what it should be 19:36:31 minus one 19:36:32 zzo38, better would of course be to support all both big and little endian systems 19:36:36 except opposite... 19:37:02 zzo38: Endianness is a property of representations, not values, and you can only mess with values at compile time 19:37:04 I need to use expression that can tell at compile-time the endianness. 19:37:08 My hunch is that it is impossible. 19:37:21 It needs to be work on little-endian only 19:37:22 -!- atrapado has joined. 19:37:25 Deewiant: I'm not sure, you can do tricks with making arrays minus-sized. 19:37:40 Deewiant, as far as I can tell from AMD docs bitshift is 1 cycle. reg32 is 4 cycles 19:37:48 for multiplication that is 19:37:51 alise: And get a compile error? 19:37:54 alise: I have made trick array with negative size for checking sizeof(int) and stuff like that at compile time 19:38:15 Deewiant: But you do an expression that's only -1 if it shouldn't work. 19:38:20 zzo38, you can get sizeof(int) from limits.h 19:38:20 Like zzo38 said, he's done that before. 19:38:30 well you get the range of it 19:38:34 trivial to compute from that 19:38:37 alise: Right; but you can't do anything depending on endianness at compile time, was my point. 19:38:51 alise: Minus-sized arrays is just a compile-time assertion, that's a separate thing. 19:39:21 If you want to see why, look at the code: http://codepad.org/FANFIgbc line 83 is the key but a black key would be keys[-1] (because of color 0 = black) and it would give you 256 gems 19:39:27 zzo38, why don't you just use a configure script to check this? Or make it work on both big and little endian? 19:39:50 ZZT was never programmed with black key so when people figured out a black key this is what it did, and this why it does so. 19:41:16 AnMaster: No, it needs to work on little endian it is not supposed to work on big endian. 19:41:17 #define inc_world_head 19:41:17 #include "world.h" 19:41:19 what? 19:41:30 what is the point of that 19:41:36 Please note that "world.h" is this same file. It includes itself 19:41:43 zzo38, yes but why 19:41:44 And you should be able to see the point of that 19:41:51 zzo38, I see what it does 19:41:54 It is because of ZZT. 19:41:57 but I don't see why that is useful 19:42:03 zzo38, and why does zzt need it? 19:42:57 I don't quite know, I didn't write ZZT. The people who did write ZZT wrote it in Pascal and has lost the source-codes but now I want to re-write it in C so that you do not lost the source-codes anymore 19:43:12 heh 19:43:26 Tim Sweeny wrote ZZT and his hard-drive broke, unfortunately. 19:43:45 zzo38, still I tell you the compile time endianness check is most probably impossible 19:44:00 I want to write ZZT as GNU GPL v3 19:44:03 what about bitshift operators 19:44:10 zzo38, you will have to bite the bullet and use a configure script or rewrite the code to be endianness independent 19:44:12 Boilerplate nearly complete. Whoo. 19:44:24 or just assume it is little endian and fail on big endian 19:44:27 OK. How do I use a configure script? 19:44:33 pikhq, boilerplate for what? 19:44:51 Befunge '93 interpreter... 19:45:25 zzo38, well, make a shell script that compiles a test program basically and then generates an include file like "config.h" with a "#define BIGENDIAN" or "#define LITTLEENDIAN" or such 19:45:30 With control-flow being done via an array of addresses. :P 19:45:33 or that errors 19:45:49 zzo38, there is GNU autotools but that is quite a horrible mess to write for 19:45:59 may be easier to write your own shell script 19:46:07 at least if you target *nix 19:46:10 for windows I have no clue 19:46:15 cygwin I guess 19:46:17 or mingw 19:46:26 AnMaster: OK I can understand, thanks. I can write a shellscript in bash and it can use MinGW if you are Windows 19:46:37 zzo38, or you could use something like cmake to do it. Which is like autoconf but another system 19:46:47 it could compile a test program and do something based on the output 19:46:54 which is the basic ideas of all configure scripts 19:47:32 But I have another question also that they don't answer in ##C channel: Is this the correct way to emulate counted strings: http://codepad.org/h5mOa9ZD 19:47:32 Oh, wait. Don't have a stack. Time to copy in Pikhq's Naive C Stack. 19:47:48 zzo38, so do something like $CC -o test endiantest.c && FOO="$(./test)" && rm ./test 19:47:52 well that won't work 19:48:02 pikhq: Just use Gregor's Naïve C Buffers 19:48:02 due to what assignment and && does in bash 19:48:06 but you get the general idea 19:48:20 zzo38, then you do something by checking $FOO or whatever your variable is. 19:48:34 pikhq, you don't have a stack? 19:48:51 pikhq, as in, funge stack or C stack? 19:48:53 AnMaster: OK I understand the endianness check now but can you answer my second question? 19:49:00 Gregor: Oh, right. Those are nicer than my naive stack. 19:49:02 zzo38, hm *looks* 19:49:11 AnMaster: Funge stack. Though I am making no use of the C stack. 19:49:13 zzo38, define counted strings 19:49:22 My interpreter is based on computed goto. 19:49:25 zzo38, if you mean pascal style ? 19:49:32 AnMaster: Yes I mean like that 19:49:45 zzo38, str[_1]? 19:49:54 oh wait I see now 19:50:00 heh at that name 19:50:25 zzo38, well not really. I see one issue here and that is that you allocate more than is needed 19:51:01 zzo38, a 10 char long string20 would still take 24 bytes (21, but three bytes of padding is added to that) 19:51:02 AnMaster: What you mean by that, how is it allocate more than is needed? 19:51:21 AnMaster: OK now I know. 19:51:32 Is there a way to remove the padding? 19:51:35 zzo38, I would allocate it dynamically as a length byte + a number of chars 19:52:01 I do need to remove the padding so that it can work like how it is stored in ZZT 19:52:16 zzo38, the padding isn't the issue here. The issue is that it a 10 char string isn't 11 bytes (one for length, 10 for the string itself) 19:52:30 Deewiant: Well, I've implemented -- I believe correctly -- get. 19:52:32 So only put to go. 19:52:36 zzo38, no portable way to remove the padding. You could always do it manually and not use a struct at all for it 19:52:49 AnMaster: Does GNU compiler can remove the padding? 19:52:52 zzo38, perhaps convert it to/from C-strings as you need it? 19:52:53 Gregor: Definitely using the buffer macros of yours. 19:53:11 zzo38, I think so, some type __attribute__ iirc 19:53:36 I need to make it so that if it overflows, it overflows in the exact same way as ZZT does it 19:53:44 zzo38, http://gcc.gnu.org/onlinedocs/gcc/Type-Attributes.html 19:53:53 Thanks 19:53:59 zzo38, removing padding would slow it down for arrays of such though 19:54:17 Gregor: Well. Adapting, more-like. 19:54:18 zzo38, oh wait it won't work 19:54:24 there is more padding 19:54:26 it won't be 24 19:54:34 since there will be padding between the length and the array too 19:54:37 not just at the end 19:54:37 pikhq: Any generally-useful changes you make could be committed upstream :P 19:55:00 Gregor, what are these buffer macros? 19:55:03 Gregor: Only thing I'm *adding* is a PUSH_BUFFER macro. 19:55:16 AnMaster: Just some macros for handling C buffers safely. 19:55:26 pikhq, like buffers of bytes? 19:55:31 Yes. 19:55:33 right 19:55:41 pikhq, why do you need that in a befunge interpreter? 19:55:41 AnMaster: http://codu.org/projects/stuff/hg/index.cgi/file/tip/buffer.h 19:55:44 No, buffers of types. 19:55:49 AnMaster: What're the bounds of cfunge's static area? 19:55:53 The buffers can be of anything. 19:55:55 Deewiant, why do you ask? 19:56:23 any particular reason it's all macros rather than e.g. inline functions? 19:56:38 AnMaster: I want to see what making the first box be like that will do to the performance 19:56:48 olsner: Because. 19:56:54 Deewiant, I need to check then 19:57:09 #define FUNGESPACE_STATIC_OFFSET_X 64 19:57:09 #define FUNGESPACE_STATIC_OFFSET_Y 64 19:57:10 #define FUNGESPACE_STATIC_X 512 19:57:10 pikhq: Okay. 19:57:10 #define FUNGESPACE_STATIC_Y 1024 19:57:14 Deewiant, that should tell you 19:57:27 AnMaster: So from (-64, -64) to (512-64, 1024-64)? 19:57:31 Deewiant, yes 19:57:36 Alright, thanks 19:58:26 -!- zzo38 has quit (Ping timeout: 260 seconds). 19:59:00 Deewiant, also this is carefully tuned so that (FUNGESPACE_STATIC_X * FUNGESPACE_STATIC_Y * sizeof(funge_cell)) % 128 == 0 holds true 19:59:22 Deewiant, I'll let you figure out why on your own (alternatively read the code) 19:59:50 Well you've bragged about your inline asm often enough so presumably you want it aligned :-P 20:00:16 Deewiant, correction: I want it to be not write outside of the array. That would be bad 20:00:23 so it needs to be a multiple of a SSE store 20:00:46 it isn't because of alignment. Which is also an issue of course 20:00:59 You could always write the remaining bytes without an SSE store 20:01:16 Deewiant, more complex. Too lazy 20:01:22 :-P 20:01:31 for alignment I use an __attribute__ to ensure it is aligned 20:01:43 because SSE store requires it 20:01:43 "One and one still is one" 20:01:58 as in it will cause an SIGSEGV (or was it SIGBUS) if not 20:03:19 Deewiant, btw have you considered lazy funge loading? Like starting program when the top 200 lines or so is loaded, but then continuing load in the background 20:03:24 Yes, I have. 20:03:37 Deewiant, really? The sync issues seems quite bad tot me 20:03:51 Doesn't mean I can't consider it. 20:04:12 I doubt it would help much in practise 20:04:16 most files aren't so large 20:04:24 even fungot is only some 1000+ lines iirc? 20:04:25 AnMaster: except maybe when entering stuff into repl. then they're a bit steep. a meg of irc is quite dead. 20:04:50 Hmmh, bah, this sucks. Results point to a static area being a good idea even for me. But it's such a hack :-/ 20:05:09 "One and one still is one" 20:05:13 But it is /also/ one other one. 20:05:49 Deewiant, you mean it was faster using that size I used? 20:05:55 Deewiant, or that it wasn't faster? 20:06:20 I mean that having the first box be a constant size helps. 20:06:39 Deewiant, ah so the bitshift thing didn't affect it much? 20:06:56 I mean it did. Or I don't know if it's that, but it's probably part of it. 20:06:57 Deewiant, and yes it helps. But I bet it slows down some stuff in fungicide 20:07:25 Can I tell cfunge to not use its non-temporal loads and whatnot? 20:07:45 brb there is some large moth 20:07:47 just brb 20:08:00 ah got it 20:08:12 a large moth in front of the monitor was somewhat distracting heh 20:08:24 Deewiant, what do you mean? for filling it with spaces? Well let me check 20:08:50 Deewiant, yes 20:08:59 How? 20:09:00 Deewiant, use ccmake to edit the build settings 20:09:04 Deewiant, to to advanced 20:09:11 edit the cflags to add: -DCFUN_NO_SSE 20:09:20 Deewiant, that will be pure C one 20:09:37 Deewiant, it is meant for some static analysis tools screwing up on the inline asm and such :D 20:09:56 Deewiant, be aware of that if you type at the start of a field in cmake it will erase that field 20:10:04 so add it in the middle or two the end 20:10:04 I know how ccmake works. 20:10:13 CCBI 2 uses a CMake build system. 20:10:15 Deewiant, I always found that "feature" annoying btw 20:10:17 Deewiant, ah 20:10:35 Welp, it made just about no difference anyway. 20:10:59 Deewiant, oh? Well it made here on my slower system. I guess your system is too fast to see it 20:11:08 Deewiant, basically I was having bad cache trashing without it 20:11:15 due to the small cache I guess 20:12:59 I wonder, why do I use intrinsics instead of inline asm for clang. 20:13:08 * AnMaster tests removing that check 20:13:27 ah now I know 20:13:35 error: invalid output constraint '=o' in asm 20:13:39 which gcc is happy with 20:15:29 Deewiant, so, is ccbi with the static space as fast as cfunge on that test case? ;) 20:18:41 Nah, it's still around 0.3 seconds slower 20:18:42 pikhq, I still haven't figured out why you added me to #irp access list. Do tell me please. 20:19:23 Deewiant, you said "anything less than a second doesn't matter" before iirc? :P 20:19:33 because you systematically probe people about their creations, as a program would, so you can figure them out? :) 20:19:41 Asztal: ping 20:19:55 anyway, "plausible" reasons why I'm faster at this: I don 20:19:59 AnMaster: Yes, something like that. I think I was referring to times below a second, but yeah. 20:20:00 don't* have code for other AABBs 20:20:02 for example 20:20:21 Deewiant, " Nah, it's still around 0.3 seconds slower" 20:20:21 AnMaster: I was asked to hand op to someone in there. 20:20:21 :P 20:20:23 So I did. 20:20:31 AnMaster: I mean, total running times. 20:20:32 pikhq, oh? by who? 20:20:34 Also, WTF does "string mode" do? 20:20:39 There's no documentation. 20:20:41 pikhq, string mode implements string mode 20:20:42 AnMaster: Don't remember. 20:20:45 alise: hello 20:20:46 pikhq: What documentation are you looking at? 20:20:50 pikhq, befunge98 documents it 20:20:57 Wiki, http://catseye.tc/projects/befunge93/doc/befunge93.html. 20:21:00 pikhq, basically from " to the next " all are pushed as chars 20:21:13 pikhq: It says it right there in the first par under "The Stack" 20:21:16 pikhq, "hello" would push, h, e, l, l, o 20:21:19 Ah. 20:21:30 pikhq, that is their ASCII value 20:21:33 Asztal: would you be so kind as to take a brief glance at http://pastie.org/914495.txt?key=62xxzeduk3dhulomteqzg to see if I've got the basics of a quad tree right? since you're the only one who's actually implemented them :P 20:21:41 Mmkay. 20:21:42 pikhq, note: a zero byte inside a string is *perfectly* valid 20:21:44 Easy enough. 20:22:06 pikhq, of course a zero byte anywhere in the source is perfectly okay. mycology even tests that for befunge-98 20:22:13 AnMaster: Not a big deal. :) 20:22:17 I doubt it fit into the 93 section 20:22:34 pikhq, good. But if you use fgets() to read the file or such you might be in for a nasty surprise, that was my point 20:22:50 Mmkay. 20:23:02 fgets() doesn't stop at 0. 20:23:38 Deewiant, ah yes, it was getline() that had the issue 20:23:47 still you need to think about it when handling the string 20:23:56 because it is no string, it is a binary buffer 20:24:27 Just don't think of it as a string and it's no problem :-P 20:24:48 pikhq, oh and you should be able to handle any combination of \r \r\n and \n line endings in the program file. Possibly inconsistent in the same file even 20:25:09 AnMaster: I've not bothered writing file-handling yet. 20:25:21 pikhq, just pointing out some annoying pitfalls. That's all 20:25:27 Mmkay. 20:25:42 I knew I would have liked to know about them in advance myself :P 20:25:55 :P 20:25:56 there are a lot more of them for 98 than 93 of course 20:26:17 I don't see why you would ever write code that /doesn't/ handle inconsistent all kinds of newlines correctly 20:26:31 Deewiant, haha. 20:26:35 I can easily tell you 20:26:40 because you used getline() for example 20:26:57 I don't see why you would ever not just use fgetc() ;-P 20:27:04 Deewiant, iirc you complained about having to handle all the newline types too 20:27:25 I doubt it, I always do that. 20:27:38 Deewiant, it was when cfunge was still very new 20:27:54 Deewiant, anyway fgetc() is suboptimal! Having to go into bloated glibc code to fetch from it's buffer 20:28:02 that was *measurable* with glibc 20:28:18 Deewiant, doing even fread() or such is much faster 20:29:47 Deewiant, btw I realised I have not yet seen cat in befunge. Things calling themselves cat sure 20:29:51 but not proper cat 20:30:07 "Proper cat"? 20:30:23 Deewiant, as in takes a number of files on command line, outputs them in the order given 20:30:30 which is what cat is actually meant to do 20:30:35 Right. 20:30:56 proper cat izunt fake cat 20:30:56 cat(1p) is very rare in esolangs 20:31:13 cat "copy input to output" is common yes 20:31:47 GNU cat ignores -u, why's that 20:33:24 alise: that looks sane to me. 20:33:45 Deewiant, I have no idea 20:33:47 Asztal: good; now I can proceed to break it 20:33:50 Deewiant, but yes I know about that 20:33:54 and bug Deewiant some more about the subdivision algorithm :-) 20:34:11 wait I know 20:34:16 and pikhq can explain it 20:34:26 it must be because it loves showing off it's buffer implementation 20:36:28 Blarg, LLVM stopped inlining an alwaysinline which is now killing performance. 20:36:36 Deewiant, heh 20:36:48 Deewiant, alwaysinline = microoptimising to me 20:37:11 Deewiant, but there is help: rewrite it as a macro. Unless it actually "outlines" that 20:37:29 (iirc gcc has an option to try to factor out common code for size optimisation) 20:37:55 Of course it's micro-optimizing; doesn't mean it doesn't help :-P 20:38:17 And yes, of course I can force the inlining in other ways but blah. 20:41:14 Oh hey, I think it's because it's recursive now. 20:42:33 Deewiant: When I have a branch with an uninitialised subbranch and I'm trying to put a character, I should initialise the subbranch to a leaf, right? 20:42:51 Yes. 20:44:02 Deewiant: And the leaf should contain an array centred on the cell I'm setting. 20:44:12 That's up to you. 20:44:12 So I need to allocate from point-(32,32) to point+(32,32). 20:44:21 Deewiant, you can't possibly inline a recursive function :P 20:44:33 Sure you can, just to a limited depth. 20:44:34 Deewiant: Do I need to handle overflow in this code? I doubt it, since ints are... well... so big. 20:44:40 But maybe you guys run into that. 20:44:41 well okay 20:44:43 alise: I don't know. 20:44:45 I know I need to. 20:44:46 Deewiant, but I don't know any compiler doing it 20:44:49 Not sure with quadtrees. 20:45:00 Gah 20:45:11 Deewiant, was any of that directed at me? 20:45:17 No. 20:45:19 ah 20:45:37 Deewiant, you could manually make it inlineable btw 20:45:56 Deewiant, as in: foo() and foo_rec 20:45:56 How do I do an s/// replacement with sed on a line that matches /foo/ but not /bar/? 20:46:07 Deewiant, with sed. Hm... No idea 20:46:17 With non-sed? 20:46:29 Deewiant, with pcregrep I know how to match it 20:46:36 Deewiant, but that can't replace 20:46:48 Deewiant, basically you want negative lookahead/lookbehind 20:46:53 No I don't 20:46:58 okay 20:47:03 Deewiant, it should be possible with sed btw 20:47:03 I just want if (/foo/) if (not /bar/) s/// 20:47:06 try reading man page 20:47:10 Deewiant, okay what about awk then 20:47:16 that should be *trivial* in awk 20:47:22 heck you almost wrote it in awk already 20:47:32 How do I write if (not /bar/) in awk 20:47:47 Deewiant, like that or very similar. Don't remember of the top of my head 20:48:01 Deewiant, try info gawk 20:48:43 http://www.gnu.org/software/gawk/manual/html_node/If-Statement.html#If-Statement should help 20:48:52 And then how do I do a s/// in awk 20:49:14 Hmm, I don't. 20:49:15 I could pipe it to sed obviously ;-P 20:49:18 Deewiant, again see info gawk, I have done this I know. It was quite some time ago 20:49:25 Deewiant: I don't suppose you feel like having one more bash at explaining the subdivision algorithm to me? ;-) 20:49:41 AnMaster: I'm browsing it, just not seeing it which is why I asked. 20:49:50 http://www.gnu.org/software/gawk/manual/html_node/Pattern-Overview.html#Pattern-Overview 20:49:51 http://www.gnu.org/software/gawk/manual/html_node/Action-Overview.html#Action-Overview 20:49:55 should help somewhat 20:50:06 I've seen both of those pages, still missing it. 20:50:25 Deewiant, I can't find the script where I did it. But I know I have done it 20:50:29 Bah, I'll just pipe it to sed. :-P 20:50:44 Deewiant, how would you then replace it in those files? 20:51:00 marking the line with a marker at the start or somethiong? 20:51:02 something* 20:51:15 Deewiant, http://www.gnu.org/manual/gawk/html_node/String-Functions.html 20:51:23 Hmm, except it loses order. 20:51:41 Deewiant, I think you want the sub() function 20:51:43 AnMaster: awk '{print foo | "sed bar"} 20:51:46 -!- ais523 has joined. 20:51:59 Deewiant, that isn't complete 20:52:01 -!- adam_d has joined. 20:52:03 the ' is never closed 20:52:06 Well, this now runs "Hello, world" correctly. 20:52:09 AnMaster: ' 20:52:12 hi ais523 20:52:13 pikhq, congrats 20:52:27 Deewiant, syntax error: line 2: AnMaster: Something expected 20:52:28 ;P 20:52:29 alise: You go into the middle of the unallocated area. 20:52:31 Let's see what instructions are unimplemented. 20:52:35 AnMaster: That was the closing '. 20:52:40 Deewiant: What is the unallocated area? 20:52:46 &!gp 20:52:47 Deewiant, well it read AnMaster: there 20:52:49 Erm. 20:52:49 obviously 20:52:51 hi alise 20:52:51 &~gp 20:52:54 fun put (Leaf(here, page), there, value) = 20:52:54 AnMaster: I have, in fact, been dabbling a bit with jitfunge lately. It's still too broken to run underload.b98, but it does run hello.b98. :p 20:52:55 if withinArray (there, here) then 20:52:55 let (x,y) = relativeCoords (there, here) in 20:52:55 Array.update (page, flatCoords (x,y), value) 20:52:55 else 20:52:56 (* The current leaf does not contain what we want; we must transform it into a branch *) 20:52:58 And reading stuff in from file. 20:52:59 Specifically that is the code I am trying to write. 20:53:04 -!- Oranjer has joined. 20:53:09 fizzie, it runs life.bf still? 20:53:30 No, I don't think so. Haven't tried lately, though. 20:53:33 alise: Hmm, I'm not sure how it should be computed actualy 20:53:35 +l 20:53:53 pikhq, g and p are easy. & and ~ may not be due to the way their buffers interact 20:54:05 Let's bother Asztal to tell us. 20:54:26 alise: Basically it's the area covered by that node 20:54:34 pikhq, basically you need to read in a line at a time then from that fetch next char/int, Note integer should swallow trailing \n , but getting a char should not 20:54:44 if I remember correctly 20:54:52 Deewiant: ? No, that branch is for "this 64x64 node does not contain the point we want". 20:54:56 fizzie, it used to work 20:55:03 So we need to create a new branch, which has one of the branches be the 64*64 node. 20:55:13 alise: Yes 20:55:25 AnMaster: Yes, but I've cleaned things up since then. I think it was the breaking of life.bf that demotivated me a bit with trying to continue with the older code. 20:55:28 alise: But I meant the maximum area that branch could cover 20:55:33 -!- alise has left (?). 20:55:34 fizzie, ah 20:55:35 -!- alise has joined. 20:55:39 So what needs answering is: 20:55:45 What coordinates does the new branch have? 20:55:49 alise: I.e. if your Leaf is immediately SE from (0,0), it's (0,0) to (2^32-1, 2^32-1) 20:55:55 And we need to add a node in this branch we create 20:55:57 alise: Er, (1,1) I guess but whatever. 20:55:58 What of its coordinates? 20:56:09 Deewiant, so any luck with gaining on those 0.3 faster of cfunge? 20:56:11 Deewiant: But what do you mean by two? 20:56:20 alise: Two? 20:56:21 All pages are 64x64; all branches merely have one coordinate pair. 20:56:25 *by "to"? 20:56:33 -!- charlls has quit (Quit: Saliendo). 20:56:37 alise: I mean that that's the area covered by that branch 20:56:46 alise: The tree root covers the whole space from -2^32 to 2^32-1 20:56:51 AnMaster: I'm pretty sure it won't run life.bf right now, because I haven't cleaned up the old manual x86(-64) codegen; I've insted written a new one that uses LLVM's JIT engine, but it's a bit incomplete right now. 20:56:59 alise: And the node SE from that covers 1 to 2^32-1 20:56:59 Deewiant: But that's the entirety of fungespaec. 20:57:02 *fungespace 20:57:06 alise: Yes, and that's what your tree can store. 20:57:19 So if SE has half, and another has half, what of the other two? 20:57:26 fizzie, cool. How much slower is it using the LLVM framework instead of putting the machine code in the buffer directly? 20:57:28 alise: It doesn't have half, it has a quarter. 20:57:41 alise: NW has -2^32 to 0, for example. 20:57:49 alise: (I'm simplifying and saying only one coordinate.) 20:57:51 Deewiant: What about NE/SW? 20:57:55 Deewiant, is alise having problems understanding a quadtree? :D 20:57:57 Oh, I see. 20:58:12 AnMaster: considering Deewiant himself just said he wasn't sure what the algorithm was... 20:58:13 AnMaster: I haven't benchmarked that; as long as it doesn't end up in a worst-case recompile-everything-constantly, the savings by LLVM's optimilizations are hopefully going to be more than the one-time compilation cost. 20:58:14 * AnMaster implemented quadtrees before. Not too hard. 20:58:38 fizzie, hm 20:58:39 It's still not clever enough to realize how to snip up traces if you have, say, two sections of code that keep constantly "self-modifying" the other one. 20:59:02 fizzie, that would require heuristics 20:59:13 alise: Well, I understand the concept, but I'm not seeing the algorithm right now. :-P 20:59:28 AnMaster: JIT is all about heuristics. 20:59:30 Hmm. Need file-reading now. 20:59:44 Deewiant, well yes 20:59:45 Not many programs do that, I think. The older one had some sort of hard "if you p on top of a traced and compiled code, mark the spot so that it won't be traced over later on" rule, but that might not be quite optimal either. 20:59:59 pikhq, simple: mmap() the file, then loop through that 21:00:06 AnMaster: Meh. 21:00:37 pikhq, mmap() because if you use fgets() handling \r\n split between two "chunks" you read in is quite annoying 21:00:51 same for fread() or any other similar call obviously 21:00:59 you could use fgetc() but who wants to do that? 21:01:01 AnMaster: I'm just going to be going char by char, then. :P 21:01:19 And "meh"; I just spent over three hours trying to extract several years of accumulated crap from the wheels of this chair -- with scissors, tweezers and different types of pliers -- before finally realizing that the wheels are detachable, and you can just buy new ones for less-than-three euros from the local hardware store-alike. 21:01:22 pikhq, you don't aim at beating ccbi and cfunge performance? Huh? 21:01:37 AnMaster: ... Reading. In. A. File. 21:02:00 I am *reading in an 80x25 file*. Performance is moot. 21:02:37 pikhq, true. Just make a 25*80+1 buffer for fread 21:02:39 fread() 21:02:42 wait 21:02:59 fread() needs 25*80+2*25 to handle \r\n 21:03:02 I think 21:03:36 pikhq, btw you know you should discard anything wider than 80 columns then? 21:03:46 pikhq, that is how mycology befunge93 part works 21:03:57 that anything outside it is discarded 21:07:01 Fix Quantum decompressor 21:08:13 ais523: http://en.wikipedia.org/wiki/Quantum_compression 21:08:43 I guessed it was something like that, but it's still funny 21:08:59 -!- alise has quit (Ping timeout: 258 seconds). 21:09:39 also, that's a pretty bizarre technology to be using, but I suppose it makes sense in a virus scanner 21:09:48 in case someone tries to trick people into decompressing a malicious .CAB file 21:10:43 "Each of these require at least a 386 CPU to run" 21:10:46 ehrrm 21:10:53 riiight 21:15:04 well, if there's more than one, where on earth are you going to find a dual-core 386? 21:16:13 ais523, :D 21:16:38 ais523, were there ever SMP 386? 21:16:50 ais523, I mean, I know there were SMP Pentium 21:16:55 (original ones even iirc?) 21:17:00 I don't know, but it seems unlikely 21:17:14 The cat program on the esolang wiki... Seems wrong. 21:18:05 By "wrong" I of course mean "jumps off into nothingness with glee". 21:18:24 pikhq: Wraparound. 21:18:42 Deewiant: Oh. 21:18:50 Darnit, gotta futz with step then. 21:18:53 Befunge doesn't really have nothingness 21:19:15 befunge the anti-zen language 21:19:33 In -98 you can run into infinite loops like that 21:19:50 Well, I guess an empty file in -93 does the job as well :-P 21:20:48 What value should EOF be? 21:20:53 pikhq, what? 21:20:56 In what situation? 21:21:04 For ~ 21:21:05 Deewiant: is an annihilator program possible in -93? 21:21:11 ~ should reflect 21:21:15 ais523: Annihilator? 21:21:17 Deewiant, eh? 21:21:18 AnMaster, ais523: NT 3.1 supports multiprocesspr 386 systems, so presumably there were some. No other versions of Windows apparently do, so maybe not that many. 21:21:21 Deewiant: one that deletes its entire source code 21:21:25 ? 21:21:27 Deewiant, what do you mean ~ should reflect on eof? 21:21:32 ais523: I don't think so. 21:21:36 oh 21:21:37 by p'ing a space onto every cell of the playfield 21:21:37 AnMaster: Shouldn't it? 21:21:38 on EOF 21:21:40 not EOL 21:21:41 I misread 21:21:42 AnMaster: :-P 21:21:46 AnMaster: And miswrote? ;-P 21:21:49 Deewiant: What does "reflect" mean? 21:21:51 pikhq, correct ~ should reflect on EOF 21:21:57 pikhq: Reverse the direction of the instruction pointer 21:21:58 Deewiant, thinko (like typo) 21:21:59 hmm... you might be able to do it by putting a hilariously large number of coordinates on the stack, then repeatedly running over a column of p's 21:22:00 AnMaster: DEFINE REFLECT. 21:22:07 pikhq, delta is mirrored 21:22:15 pikhq, so it bounced back from where it came 21:22:24 ais523: Hmm. 21:22:26 and the p's themselves are the last thing to be deleted 21:22:32 Uh... http://catseye.tc/projects/befunge93/doc/befunge93.html Where is that in here? 21:22:49 pikhq, with befunge98 and it's arbitrary delta you basically multiply dx and dy with -1 21:22:57 pikhq: Presumably nowhere. -93 is a bit underspecified. 21:23:00 pikhq, oh, 93, no clue 21:23:13 pikhq: So in 93, knock yourself out with UB or do what everybody else does and reflect. :-) 21:23:13 Deewiant: Mmkay. 21:23:27 I'll go reflect then. 21:23:37 BOOORING 21:24:08 Deewiant, in 93, pushing -1 isn't completely uncommon 21:24:18 oerjan, what is boring? 21:24:23 AnMaster: It isn't? Darn. 21:24:39 I figured reflection was fairly much the norm there too. 21:24:40 Deewiant, well, anagolf's b93 interpreter seems to push -1 21:24:41 iirc 21:24:43 I just want cat to work. :( 21:24:49 Deewiant, just as an example 21:24:51 AnMaster: reflecting 21:25:03 pikhq, oh you need different cat for push -1 and reflect 21:25:12 ooh, I've just reverted vandalism by a logged-in user on Esolang 21:25:13 reflecting one is one char shorter 21:25:24 ais523, logged in spam happens 21:25:25 pikhq: That cat wants a negative one for EOF, it seems. 21:25:31 So don't reflect. Meh. 21:25:34 Deewiant: Mmm. 21:25:35 I think it may be a human rather than a spambot, so I've given them a nice warning rather than an instant 24-year block 21:25:39 pikhq, make it an option 21:25:49 pikhq, because a lot more code assumes reflection 21:25:52 Deewiant: Where was the ask-on-/0 thing stated, do you remember? 21:25:55 9 out of 10 vampires agree: don't reflect 21:25:59 fizzie, in befunge93 21:26:14 fizzie, for 98 it is "push zero 21:26:16 " 21:26:17 AnMaster: But that means argument handling! 21:26:21 fizzie: In the -98 spec. 21:26:23 pikhq, yes and? 21:26:27 pikhq, getopt() is nice 21:26:36 -!- alise has joined. 21:26:41 Also, the cat program I'm using seems to not end on EOF. :P 21:26:51 Just output... EOF... 21:27:01 huh 21:27:03 I'm not sure... Why. 21:27:06 Probably a bug. 21:27:08 pikhq, link to it? 21:27:14 and I can tell you if it should do that 21:27:24 ~:1+!#@_, 21:27:24 or if it is an interpreter bug 21:27:27 hm 21:27:29 lets see 21:27:34 Deewiant: But it's mentioned there as a fact, as though it's common knowledge; I just didn't see it in the 93 spec. 21:27:35 1+!? 21:27:54 AnMaster: It wants negative one for EOF. 21:28:09 Deewiant, yes but add 1 logical not won't do that will it? 21:28:12 fizzie: Well yes, I don't know about that. 21:28:25 AnMaster: It will make the _ go left if it was EOF, thus hitting the @. 21:28:25 oh wait it will 21:28:28 true 21:28:40 so indeed it shouldn't output EOF 21:28:55 doing that indicates your _ is flawed. Or your # is *very* flawed 21:29:06 (or your @ is extremely flawed) 21:29:16 If you cat an empty file it will output EOF. 21:29:25 Or no, it won't. 21:29:27 Never mind. 21:29:54 pikhq, will you do befunge98 or will you stay at 93? 21:30:33 http://github.com/serprex/Befunge/blob/master/marsh.c is the fast -93 one I was thinking of. 21:30:54 AnMaster: 93 ATM. 21:31:00 http://sprunge.us/JRWd 21:31:04 pikhq, so no plans to do 98 later? 21:31:22 Deewiant, "#ifdef FUNGE" seems quite hilarious 21:31:28 Maybe. Maybe not. 21:31:36 Deewiant: I and mooz have both written reasonably fast 93 interps too, though I doubt either of them are online anywhere so that doesn't much help. 21:31:50 No, it doesn't. :-P 21:32:10 Anything *obviously* wrong in there? 21:32:41 ['+'] = &&add <-- is that C? 21:32:47 Yes. 21:32:55 GNU C, but yes. 21:32:56 pikhq: Popping an empty stack doesn't seem worky? 21:32:57 pikhq, the [] around an index like that? 21:33:05 Deewiant: Ah. 21:33:06 AnMaster: Yes. 21:33:12 That's a C99 thing. 21:33:22 fizzie, hm only used the .foo C99 thing 21:33:27 never the array index thingy 21:33:30 fizzie: The labels as values aren't, though. 21:33:30 It has both. 21:33:44 pikhq: Right, that's just a GNUism. 21:34:02 Anything *obviously* wrong in there? <-- no. But then nothing is obviously right either 21:34:06 it is too confusing for it 21:34:31 pikhq: Also your ? ;-P 21:34:38 -!- MigoMipo has quit (Remote host closed the connection). 21:34:41 pikhq, you won't pass mycorand 21:34:54 Deewiant: Couldn't be assed to do use rand yet. :P 21:34:58 it runs until it gets two different random numbers iirc 21:35:11 It runs until ? has gone in every direction. 21:35:28 ah that even 21:35:33 AnMaster: Why does oprofile point me to wrong symbols :-/ 21:35:38 AnMaster: What's confusing about it, though? 21:35:53 Deewiant, cfunge or ccbi? 21:35:57 CCBI 21:35:58 Deewiant, it never happened to me 21:36:04 My ff ("fast funge") used the gcc computed goto too, but in addition I had (macro-expanded) four copies of the instruction set, for each possible direction, so that there was a single jump per instruction. That deewiant-link seems to incur a call-through-pointer for movement every op. 21:36:06 so I guess some D weirdness 21:36:13 callgrind works fine. 21:36:17 The only logic at all is in step. 21:36:20 Deewiant, but remember it is low overhead in kernel based 21:36:30 AnMaster: Doesn't help me if it gives me wrong results. 21:36:43 Deewiant, while callgrind basically emulates it in a virtual machine of it's own iirc 21:36:47 like all of valgrind does 21:37:01 Yes; and one reports things right, the other wrong. 21:37:16 Deewiant, one is based on reality and both reported correctly for me 21:37:30 Deewiant, but like your memory graph it might miss some tiny bit 21:37:41 AnMaster: It's not reality when it's telling me about functions that are never called in the whole execution. 21:37:52 Deewiant, that should not happen 21:37:55 and never happened to me 21:38:05 No kidding it probably "should not" happen, but it does. :-P 21:38:20 Deewiant, what could happen is that it misses a tiny bit due to it being between sampling interval iirc 21:38:26 since it uses performance counters of the CPU 21:38:39 Yeah, that's not very important. 21:38:56 Deewiant, well I can't help you since I have never seen it 21:39:16 you could try debugging oprofile but I expect that to be a nightmare 21:39:32 Deewiant, maybe two functions share a common tail? Does LLVM do that kind of size optimisation? 21:39:53 It might. 21:40:14 Deewiant, that could screw up something that isn't observing the calls, but looks at the program counter value and such 21:42:49 pikhq, does that program pass mycology's b93 section? 21:43:23 Bah, I'd got used to the speed of oprofile. :-P 21:43:42 Deewiant, well yes callgrind is much slower and may not reflect a real computer 21:43:54 for example modern computers have better hardware prefetch than it 21:43:55 iirc 21:44:13 Deewiant, like it either doesn't emulate hw prefetch or it emulates a perfect one 21:44:18 oprofile shows the reality 21:44:26 well except for your symbol name issue 21:44:34 Yeah, so it actually doesn't show the reality. :-P 21:44:41 Deewiant, it does for me though 21:44:51 Well good for you. 21:44:57 Deewiant, I blame your system/D + LLVM/other 21:45:00 pick the one your prefer 21:45:08 I don't need a scapegoat. 21:45:31 meh should have told me before I went to all that trouble writing them down :P 21:45:54 Deewiant, and yes what you really need is an escapegoat. 21:47:01 AnMaster: Lemme check. 21:47:08 pikhq, do you handle wrapping around to the minus side correctly? 21:47:16 pikhq, I don't think so 21:47:21 pikhq, as in going < over the edge 21:47:23 Deewiant: Aw, that marsh.c doesn't even check for stack underflow and return 0; it just crashes in that case. 21:47:30 Deewiant: That's a cheaty way to be fast. :p 21:47:32 pikhq, your code seems to only work for going > over the edge 21:47:48 fizzie: There's a marshsafe.c, maybe that one does? 21:47:56 That sounds likely. 21:48:18 Deewiant, the put code in the safe one seems longer 21:48:26 I think it checks p is within bounds 21:49:06 it also does check for /0 21:49:43 hm iirc ppc's integer division gives you zero on division by zero 21:50:11 FILE*rand=fopen("/dev/urandom","r"); <- heh 21:51:07 Deewiant: I'm having difficulties measuring the speed of marshsafe.c either, because it fails to run life.bf, sort.bf or serp.bf on my system. Curious. 21:51:23 Maybe it's just broken. :-P 21:51:31 fizzie, segfault? 21:52:56 AnMaster: serp.bf prints out a few (399?) dots, then seems to be stuck; sort.bf accepts an input line and then seems to be stuck; life.bf outputs "DFHJLþN" and "68:<>" and " @" repeatedly. 21:53:14 fizzie, heh at that last one 21:53:25 fizzie, I don't have serp or sort here 21:53:26 links? 21:53:38 also sort in befunge93 would be very limited 21:54:15 It sorts the letters of one word. 21:54:21 At http://quadium.net/funge/downloads/bef93src/ 21:54:22 fizzie, how long? 21:55:02 I don't know. Probably not very. 21:56:16 AnMaster: I appear to be having issues with reflection. 21:56:36 A real befunge would translate the whole program to an array of pointers to code. 21:56:37 pikhq, ip.dx *= -1; ip.dy *= -1; 21:56:39 that should work 21:56:45 (with specialised jumps for each direction) 21:56:48 adapt it for you variable names 21:57:06 fungespace_vector_x *= -1; 21:57:08 fungespace_vector_y *= -1; 21:57:09 it seem 21:57:11 seems* 21:57:18 pikhq, you reflect on unknown right? 21:57:29 AnMaster: Trying to now. 21:57:36 I want a Nexus One now. 21:57:40 Badly. 21:57:41 Minor issue -- this... Doesn't seem to be doing that right. 21:57:51 This is admittedly a very non-scientific benchmark, but: http://pastebin.com/nfmUUEwq 21:58:05 fizzie, ff? 21:58:16 AnMaster: The thing I mentioned a moment ago. 21:58:17 fast funge, says fizzie. 21:58:22 Oh wait you can't hear >:) 21:58:23 My ff ("fast funge") used the gcc computed goto too, but in addition I had (macro-expanded) four copies of the instruction set, for each possible direction, so that there was a single jump per instruction. That deewiant-link seems to incur a call-through-pointer for movement every op. 21:58:25 and what's marshsafe? 21:58:25 That one. 21:58:29 ah 21:58:31 ais523: deewiant's github link 21:58:35 ah, ok 21:58:37 fizzie, several screens ago 21:58:50 AnMaster: Well, you're being so noisy. 21:58:51 That github link is on the esolangs.org Befunge page. 21:59:07 fizzie, I usually talk a lot 21:59:21 AnMaster: That was the plural, whole-channel "you", though. 21:59:27 fizzie, ah 21:59:41 fizzie, could have been made clearer with "you all" or such 22:00:21 Admittedly ff's a bit non-compliant in the sense that the playfield is 256x256 bytes; I do wrapping by unsigned-char overflow. 22:00:28 haha 22:00:41 pikhq, did you see what I said about going over the < edge? 22:00:48 pikhq, that it seemed broken in your program 22:00:50 fizzie: in befunge-93, without writing outside the playfield (which is IIRC undefined), is there any way to tell? 22:01:07 pikhq, also wth: 22:01:10 306 fungespace_x += fungespace_vector_x; 22:01:11 307 fungespace_x %= 25; 22:01:11 308 fungespace_y += fungespace_vector_y; 22:01:11 309 fungespace_y %= 80; 22:01:17 pikhq, I think you need to swap those 22:01:21 80 and 25 22:01:28 your program is the wrong way around 22:01:31 depends on the definitions of x and y, surely? 22:01:37 ais523, well true 22:01:46 ais523: Mhm, maybe not. Though I don't ignore lines longer than 80 chars in the source file; I think that was specified there. 22:02:01 pikhq, and yes it does the wrong thing when you hit -1 22:02:42 fizzie: in befunge-93, without writing outside the playfield (which is IIRC undefined), is there any way to tell? <-- is it explicitly undefined or just undefined? 22:02:46 ais523: If it's not undefined, there is a way to tell. 22:03:07 AnMaster: Yeah, that's the issue. 22:03:10 Deewiant, no there isn't 22:03:27 AnMaster: Yes there is; put an @ at 255,0 and wrap around. 22:03:31 Deewiant: well, depends on what it's defined /to/ 22:03:35 Deewiant, not if it is implementation defined 22:03:37 ais523: Yes. 22:03:39 which is a third option 22:04:08 Deewiant, some interpreted could implement that as 255%80,0%25 22:04:15 interpreter* 22:04:39 pikhq, idea: befunge-98 self interpreter 22:04:43 I don't think it has been done 22:04:50 slowdown.b98. 22:04:57 Deewiant, not a true self interpreter 22:05:01 Deewiant, it uses the host 22:05:17 Deewiant, it's like calling eval() 22:05:21 I seem to recall mooz's interp was around the same speed with a proper 80x25 playfield. IIRC, he used a 82x27-sized physical playfield, and put custom "jump the proper amount left/right/up/down" instructions on the borders. (The instructions of course checked the IP position and acted as nops when "executed" on the playfield.) 22:05:24 * Sgeo_ wonders if Silverlight works on Nexus One's browser 22:05:52 Hmm, I wonder how underload.b98 manages to slow down when I preallocate an appropriately-sized box for the stack. 22:06:04 fizzie, he could use 4 custom ones so it didn't need to check that 22:06:15 Sgeo_: no. 22:06:22 Deewiant, hah 22:06:24 :( 22:06:24 Sgeo_: flash will, though, when the new version is out; but why would you want to? 22:06:25 AnMaster: He did use 4 customs ones, but you do need to check that, because someone could put the instruction in the middle of the program. 22:06:32 alise, Robozzle 22:06:33 laggy, shitty, battery-draining 22:06:34 Sgeo_, no one uses that anyway? 22:06:40 Sgeo_, there is a js version iirc 22:06:41 Sgeo_: bug him to make a paid android app 22:06:59 fizzie, oh true 22:07:10 fizzie, he could use out of band data 22:07:22 fizzie, like a 34 bit word 22:07:30 of course that is best left to VHDL people 22:07:45 or other which can do non-standard word width 22:07:52 s/which/who/ 22:09:52 My dad's asking me to think hard about this 22:09:55 The Befunge-93 docs don't seem to specify the space cell size, so you could store it as 32-bit, I suppose. 22:10:15 He suggested thinking about a no-contract iPhone, due to the number of apps. He also suggested getting a small laptop 22:10:26 Since I can't get both a better computer and a smartphone 22:12:16 heh, you can use control-return to open links in a new tab using the keyboard in Firefox 22:12:43 it's nice when you guess a keyboard shortcut and it works 22:12:47 * Sgeo_ goes to start the Android emulator 22:13:50 Deewiant, or 16-bit 22:14:06 On modern machines, 16-bit tends to be a bad idea. 22:14:37 doesn't 16-bit get emulated in microcode? 22:14:45 Hrm. I seem to get no output from mycology. 22:16:27 Ah. It's an issue in the file loading. 22:17:24 Whoo, I now segfault. 22:18:25 0x00007ffff7ad99b5 in getc () from /lib/libc.so.6 22:18:32 How the hell am I segfaulting there? 22:18:39 Buffer overrun. 22:18:41 passing it a NULL file pointer 22:18:58 getc's a macro, it probably doesn't sanity-check its input 22:19:08 I didn't call getc. 22:19:10 If it's a macro it can't be in the stack trace. 22:19:15 yep, good point 22:19:19 112 int c = fgetc(f); 22:19:23 this is even more bizarre given that the function version's called fgetc 22:19:25 That's the line it's called from. 22:19:28 hmm, ok 22:19:45 so the function fgetc shows as getc in stack traces? 22:19:50 Yes. 22:19:52 pikhq: why use fgetc ever, except to take its address? 22:20:09 ais523: Probably no good reason. 22:20:44 Okay, that still confuses me. 22:20:59 hmm, I wonder if fgetc has sanity checks? 22:21:09 "f" is still a perfectly valid FILE*. 22:21:24 err, it's pointing to a char, not to a file 22:21:29 how come fax isn't here? 22:21:32 ais523: At least my /lib/libc.so.6 has the symbols getc and fgetc with the identical address. 22:21:42 ais523: In this sort of situation gdb would probably just pick the first one. 22:21:46 ah, ok 22:21:56 * Sgeo_ tries to access the bus scheduling stuff via the emulator 22:22:07 I see schedules for the train, but no bus stuff GRRR 22:22:10 ais523: getc takes a file? 22:22:16 F U Usablenet Mobile 22:22:20 lament, because he is not currently in this channel 22:22:22 pikhq: yep 22:22:22 that is why 22:22:23 ;P 22:22:24 it's getchar that doesn't 22:22:30 Yuh. 22:22:38 or getch doesn't either, but it's curses/DOS 22:22:42 rather than standard C 22:22:49 So, yeah. I have no clue how this is segfaulting. 22:23:07 Step up in gdb, print out "f" just in case? 22:23:17 what fizzie said and also link to the file 22:23:19 did you ever call setvbuf or an abbreviation for it on f? 22:23:22 pikhq, also try valgrind 22:23:24 fizzie: I'm examining f's buffer right now. 22:23:24 it could be that something's happened to the buffer 22:23:36 The Android browser does NOT seem to support PDF 22:23:47 * Sgeo_ pokes alise. You said that iPhone supports PDFs? 22:23:49 ais523: No. 22:24:01 Sgeo_, get a computer if you want one. Get a phone if you want a phone 22:24:05 I'm actually very, very curious why I'm not getting anything *else* from gdb. 22:24:06 Sgeo_: it's not normally web browsers that support PDFs, but plugins 22:24:17 Sgeo_, also surely you can install a pdf reader in it? 22:24:17 I *have* full debugging info and source code for my libc. 22:24:25 ais523, exception: konqueror ? 22:24:26 AnMaster, I'm looking into that 22:24:26 or separate programs 22:24:28 or wait 22:24:34 AnMaster: arguably konqueror isn't a web browser 22:24:35 it does it as kpdf_kpart or such 22:24:41 maybe 22:24:41 it's a superset of a web browser 22:24:46 true 22:24:48 Sgeo_: I really don't know *anything* about the iDevices, but an iPod Touchy friend did have a PDF reader on his thing. 22:24:55 I *should* be able to actually debug libc. 22:24:56 Hm 22:25:14 pikhq: just because you have debugging libc doesn't mean the program's linked against it 22:25:16 Sgeo_: Anyway, doesn't the saying go "there's an app for that". 22:25:20 I don't really need the maps though. I need the schedule. And the MTA's mobile site doesn't have a link to the bus schedule 22:25:25 you might need to set an env variable to tell it to link that version of libc 22:25:37 ais523: Every single binary on my system is splitdebug. 22:25:49 Sgeo_: yes iphone can read pdfs 22:25:53 I don't *have* non-debugging versions. 22:26:22 At least, I shouldn't. And yet, here's libc. Without debugging info. 22:26:25 pikhq: surely, just the executable binaries? 22:26:37 or are you saying that, say, your compressed tarballs are debugging versions too? 22:26:38 http://andpdf.sourceforge.net/ gross but 22:26:39 That.. may push my hand to an iPhone 22:26:48 Sgeo_: No. 22:26:56 I am the biggest iPhone evangelist on the planet, I love the things, but no. 22:27:00 that's a really bad reason to get an iPhone 22:27:04 Apple have finally stepped too far: buying one is simply immoral now. 22:27:09 ais523: Yes, the executable ones. 22:27:10 :P 22:27:13 alise: it seems unlikely that you're the biggest iPhone evangelist on the planet 22:27:14 pikhq: just because you have debugging libc doesn't mean the program's linked against it <-- split debug info? 22:27:20 (in case ais523 doesn't know: apple have amended the ToS; all applications have to be ORIGINALLY written in objective-c now) 22:27:22 (or c/c++) 22:27:22 have you /seen/ some of the Apple evangelists on the Internet 22:27:26 (no third-party languages or runtime) 22:27:32 alise: hmm, interesting 22:27:34 alise, will Android 1.5 programs work on 2.1? 22:27:38 Interesting and evil. 22:27:39 they've banned interpreted languages forever 22:27:44 Sgeo_: Probably, but look at that screenshot; it's hideous. 22:27:47 What the hell? 22:27:57 presumably, this is to get rid of the actionscript -> obj-c compiler someone wrote 22:27:57 http://androidforums.com/support/1198-pdf-android-work-around.html lol export to jpeg 22:28:00 I've got a .debug file for everything *but* libc. 22:28:03 Android Portal MultiReader: Free Word viewer / PDF reader for T ... 22:28:09 The N900 built-in PDF reader isn't quite that horrible-looking, but it's not very pretty either. I think there's some evince ports or whatever in the repositories, though. 22:28:16 Sgeo_: http://bsegonnes.free.fr/multireader/en_multireader.html 22:28:29 doesn't seem to do "rich" pdf stuff but... 22:28:34 yay evince 22:28:38 alise: you probably don't want to 22:28:47 I think I'll avoid telling my dad that iPhone has PDF capabilities 22:28:51 ais523: ? 22:28:56 this reminds me of the exploit in the PDF spec people found recently 22:28:57 He's currently under the impression that it simply can't be done 22:28:58 ais523: I mean even basic formatting, maybe I'm wrong though 22:29:02 ah 22:29:09 Sgeo_: heh 22:29:16 still, it's kind of silly that a program has to be vulnerable in order to comply with the letter of the sepc 22:29:19 *spec 22:29:22 Sgeo_: I take it your dad has no actual reason to believe himself to be competent in tech matters? 22:29:35 ais523: My favourite seen-in-the-maemo.org-repository so far: someone's put the whole texlive TeX distribution in there. When you desperately have to compile some LaTeX text and all you have is your phone! 22:29:46 He's.. somewhat competent. Competent enough to, say, know how to set a password in BIOS 22:29:53 That's barely competent :P 22:29:53 it turned out that there'd been a raging flamewar on KDE internal dev lists about it, people wanting to implement the feature vs. people saying it was a security bug 22:30:09 fizzie: it could be useful for academics, if someone sends you a .tex (say by email), nad you want to read it 22:30:10 *and 22:30:11 Sgeo_: Oh yeah, what fizzie said, look at the N900 22:30:13 not a very good touchscreen 22:30:18 that's actually /happened/ to me, although I wasn't on a phone at the time 22:30:19 but it almost certainly does pdf :P 22:30:29 and the source is decent for editing, but bad for reading 22:30:38 How many apps are available for the N900? 22:30:44 Sgeo_: less than android 22:31:01 Sgeo_: why do you need pdf? 22:31:03 Academic papers? 22:31:06 alise, bus schedules 22:31:09 alise: Well, there's as many apps as there are in Debian, if you want to be technical about it... 22:31:24 Sgeo_: Presumably they don't change so often? 22:31:32 alise, correc 22:31:32 (Since there's a "install a Debian in a ext2 filesystem image" app in the official repository.) 22:31:37 t 22:31:45 Well, fizzie is right Sgeo_; technically maemo can run most Gtk applications. 22:31:47 Really badly, though. 22:31:53 They do change every few months, actually. Rarely the ones I use 22:31:55 Sgeo_: then just export them to pngs on your computer and put them on your android 22:32:09 Anyhow, I'm a bit reluctant to recommend N900; I personally like it a lot, but my likes and dislikes are probably a bit idiosyncratic. 22:32:33 "I like this, therefore most people probably dislike it"? 22:32:53 I don't think, therefore statistically I'm more likely to be than if I did think. 22:32:53 anyway, hasn't maemo merged with moblin nowadays? 22:32:57 ais523: Perhaps more like "I like this, but it probably has not much correlation with whether other people like it or not". 22:33:02 presumably nowadays you need to look at the capabilities of meego 22:33:02 Evidence: there are more existing things that don't think than things that think. 22:33:25 ais523: Brandwise, perhaps, in the sense that Nokia's going that way; I am a bit unsure that the maemo community as a whole (such as it is) will swing that way. 22:33:28 cognition is actually evidence /against/ you existing :-) 22:33:30 this reminds me of the exploit in the PDF spec people found recently <-- ? 22:33:41 ais523: My favourite seen-in-the-maemo.org-repository so far: someone's put the whole texlive TeX distribution in there. When you desperately have to compile some LaTeX text and all you have is your phone! <-- :DDD 22:33:45 AnMaster: basically, you can specify attachments and executables that should open them 22:33:45 ais523: And anyway the current MeeGo release on the N900 doesn't support such things like the GUI. (You get a terminal and that's it.) 22:34:05 you can make the PDF file a polyglot PDF/executable for target platform, and open it with itself 22:34:09 ais523, oops 22:34:19 but it would be an exploit even without that, just a harder one to exploit 22:34:25 ais523, should definitely not be implemented 22:34:31 yep 22:35:07 alise, what happens when I need a schedule for a bus I didn't plan on taking? 22:35:11 It has happened 22:35:38 * Sgeo_ installed an alternative .. market app? app app? on the emulator 22:35:39 Sgeo_: Bother your transportation company to put their schedules in the web in a sensible format? It's 2010, for foo's sake! 22:36:41 alise, what happens when I need a schedule for a bus I didn't plan on taking? <-- happens to me too 22:36:43 Alternatively, you could put a pdf-to-png cgi script on some web-host and use that to open PDFs. 22:36:51 I go to their website and read the html page 22:37:01 well you search first 22:37:04 Sgeo_: where's the download link for the emulator? 22:37:06 I don't do it from the phone 22:37:11 due to opera mini being what it is 22:37:16 alise, somewhere on http://developer.android.com/ 22:37:17 Can you use google's PDF "preview" thing with arbitrary PDF urls?-) 22:37:30 fizzie, no idea. Try it? 22:37:33 http://developer.android.com/sdk/index.html 22:37:40 Requires a bit of fiddling 22:38:57 * Sgeo_ sees something about a standalone emulator, but that's 1.5 22:38:59 Sgeo_: If you don't mind using your Google account, presumably you can use http://docs.google.com/viewer with any suitably web-browsing-enabled device to open arbitrary PDF URLs. 22:39:23 fizzie, 22:39:24 hm 22:39:55 * Sgeo_ tries MultiReader 22:40:37 What fizzie said is probably the best idea. 22:40:44 Google will almost certainly optimise for Google shit working perfectly. 22:40:49 Powerpoint viewer seems like it would be useful too. In one of my classes, the professor lets students use their laptops to look at the slides 22:41:03 Well, the google-docs viewer does Powerpoint too. 22:41:28 Sgeo_: well, buy a laptop :P 22:41:30 WHY does MutiReader want access to my owner data and phone data 22:42:14 * pikhq rebuilds glibc with USE=debug, hopes that beats it into submission 22:42:19 SEXY PURPOSES 22:42:33 AnMaster: Since you've sort-of been following The Competition; turns out I had somehow managed to not update tournament.jar (the version of the framework used by the tournament scripts) with the newest version, so there was one fixed bug (Move.getPlayer() returned null instead of Side.RED or Side.BLUE for "pass" moves) still there; one of the participating bots crashed every match it participated in on its first turn because of that. 22:43:03 Sgeo_: do you really need eclipse to install android emulator? 22:43:15 alise, no 22:43:22 I demand to see another .debug file in /usr/lib/debug/lib64/, and a bunch of source in /usr/src/debug/sys-libs/glibc. 22:43:27 alise: It's better than the Windows you need to install a Symbian emulator. :p 22:43:30 Nor do you need to do command-line stuff 22:43:32 Sgeo_: how did you download it then? 22:43:49 In the .zip, there's a utility called SDK Setup 22:43:59 [erm, on Windows, not sure about other OSes] 22:44:27 I did need to download some packages using that utility, I probably installed stuff that wasn't needed 22:44:32 Which zip? :P 22:44:36 I'm having trouble finding the download 22:44:50 fizzie, you will have to rerun those affected by it then 22:45:01 http://developer.android.com/sdk/index.html 22:45:05 "Download the Android SDK" 22:45:34 Well, that would work. :P 22:46:35 AnMaster: Yeah. According to bit of bash-oneliners invoking "javap", ten (out of 45) bots referred the Move.getPlayer method. I'm currently rerunning the (~700 out of 1980) matches where either the blue or red player was one of those ten. 22:47:03 mhm 22:47:15 (Even those that didn't crash, because possibly some of them didn't try to "dereference" the returned Side, just compared it to something.) 22:47:51 It feels awkward that alise needs my help, rather than the other way around 22:50:58 Need to get 267MB of archives. 22:51:01 Forget Eclipse, then. 22:51:30 alise, Eclipse has nothing to do with anything 22:51:37 Unless you're trying to practise developing 22:52:56 -!- oerjan has quit (Quit: Good night). 22:53:03 Right. 22:53:20 I can live with the viewer thing 22:53:23 Do I need the jdk? 22:53:28 I guess not, but I bet I need the JRE. 22:53:33 Maybe not, though. 22:53:38 I find the JDK is nice to have 22:53:40 You just need what's in the .. yeah, you do kind of need Java stuff 22:53:44 although, maybe more so if you teach Java for a living 22:55:45 Just seems inconvenient to go to the viewer from links on the full version of the MTA's site 22:55:51 The JDK is sometimes nice to have even if you don't write Java; at least on the Ubuntu, openjdk-6-jre only has a plugin-appletviewer, the standalone "appletviewer" command is only in openjdk-6-jdk. 22:56:03 And the same for the "jar" command-line tool for peeking inside .jar files. 22:56:27 Aren't .jar files just .zip files or something, or am I misremembering, or is that old information 22:56:36 They are, so that's a minor thing. 22:56:38 They are. 22:56:40 Stuff keeps freezing in the emulator :/ 22:56:55 I still write "jar xvf file.jar" when trying to extract one, by force of habit. 22:57:08 The real phone better not be as badly behaved as this 22:57:14 It feels awkward that alise needs my help, rather than the other way around <-- relish the feeling while it lasts 22:57:22 they're zipfiles with a few special files in at known locations 22:57:41 fizzie, jar xvf? 22:57:59 AnMaster: Yes? 22:58:10 fizzie, does that work? 22:58:15 That's the syntax. 22:58:19 Extract jar file 22:58:19 jar x[vf] [jarfile] [inputfiles] [-Joption] 22:58:23 fizzie, can you use it for normal zip? 22:58:45 fizzie, I always need to check docs of zip when I want to unpack a zip 22:58:52 Apparently you can. 22:59:04 At least "jar tf bleh.zip" for a completely ordinary .zip seems to list files. 22:59:09 Didn't try extracting anything. 22:59:30 "unzip foo.zip" 22:59:42 Deewiant: Admittedly it's not a very complicated syntax. :p 22:59:59 Deewiant: Though "unzip -l foo.zip" -- if you want to see the contents first -- is not *so* simple to remember. 23:00:02 fizzie: BSD? 23:00:11 Oh fleh 23:00:12 fizzie: unzip -t works as well, no? 23:00:13 Cancel that. 23:00:15 Misread. 23:00:27 Deewiant: It might; -l is the only thing I remember. :p 23:00:37 Deewiant: There's still the "-" there. 23:00:51 Yes, the "-" is such a rare thing that you might forget about it. 23:01:04 Why does THIS document viewer also feel a need to read my "phone state and identity"? 23:01:09 Deewiant: Apparently -t also calculates the CRC, which might be not what you want. 23:01:38 Yes, it is short for "test" after all. 23:01:41 Sgeo_, who knows 23:01:45 Also, it's asking for Internet access. I swear, if this thing decides it can only read local files, after I gave it Internet access, I'll scream 23:01:50 Then agian, it is a Trial 23:03:06 Maybe it's storing stuff to ensure against trying to keep it in the phone area 23:03:07 4% [3 sun-java6-jre 2153087/6,421kB 33%] 23:03:09 keeps freezing on this 23:03:12 are you suuuure i need java 23:03:23 alise, you can try without and see what happens 23:03:29 yeah it wants java 23:03:30 ffs 23:03:33 why won't it just download 23:03:35 It does keep popping up console windows .. oh 23:03:44 .jar files are just .zip files with few special files; .war files are just .jar files with a few more extra files; unfortunately, .ear files are just .jar files with different magic files, not an add-on to .war files. I was hoping for a longer chain. 23:03:52 4% [4 sun-java6-jre 2324862/6,421kB 36%] 912B/s 15h 24min 21s 23:03:56 heh it improved now 23:03:59 now only 20 minutes to go 23:04:01 now 9 23:04:10 fizzie: MAH EAR FILE 23:04:14 for filing my ears 23:04:21 so is the next .nail 23:05:11 alise: fileext says for .nail: "Primary association: Unknown Apple II File". That's probably no longer related. 23:06:57 Oh look, it wants to open something ON THE PHONE! AND I GAVE YOU INTERNET ACCESS, YOU PIECE OF SHIST 23:07:43 Shist. 23:08:41 "Shist" is this enemy type in Chrono Trigger. 23:08:47 -!- tombom has quit (Quit: Leaving). 23:09:24 http://www.spriters-resource.com/snes/chronotrigger/rubble_icon.PNG -- there, that's a Shist. 23:09:27 Now you know! 23:10:21 (It might be a Rubble too... the difference's just in the palette.) 23:14:02 Hee, there's now chromium (v. 5.0.369.2-maemo1) in the extras-devel maemo repo. I wonder if it's any good at all; probably not. 23:14:26 -!- adam_d has quit (Ping timeout: 276 seconds). 23:16:36 -!- Oranjer1 has joined. 23:18:09 -!- Oranjer has quit (Ping timeout: 248 seconds). 23:19:58 http://www.spriters-resource.com/snes/chronotrigger/rubble_icon.PNG -- there, that's a Shist. <-- aargh 23:20:09 they had massive HP didn't they? 23:20:16 AnMaster: No, just massive evasion. 23:20:30 fizzie, maybe there were different coloured ones? 23:20:32 as well 23:20:33 AnMaster: And the "lock all" ability, which meant you could only use phyiscal attacks. 23:20:49 AnMaster: Well, Rubble's the grey one. I guess Shists had more HP than Rubbles, yes. 23:20:56 ah 23:21:17 Ok, OfficeSuite's taking forever 23:21:34 AnMaster: Also you got a lot of those... uh, what were they? APs? The things that you need to collect to enable different techs; if you managed to beat one. It's just that they ran away after a while, and with the maximum evasion, you usually just missed. 23:22:04 fizzie, true but weren't APs caped? 23:22:08 AnMaster: And (despite a single exception) they didn't reappear. Though you could use that single exception to get access to pretty much all the techs. 23:22:10 capped* 23:22:47 fizzie, I remember I stopped getting tech points at some point 23:22:53 before I had the majority of techs 23:22:53 I mentioned the iPhone PDF thing to my dad. He said that he knew it could do it, but it looks like crap 23:23:04 Sgeo_: tell him he's wrong 23:23:05 Not as bad as this, though 23:23:08 I read PDFs on my iphone regularly 23:23:13 it's beautifully antialiased and rendered perfectly 23:23:18 exactly the same as on os x 23:23:19 Sgeo_, so that is going to decide it? 23:23:20 exact same engine 23:23:28 AnMaster, not if I have any say 23:23:36 Sgeo_, can't you search for time tables without pdf 23:23:54 "looks like crap" may just mean "screen too small" 23:24:03 with nontechnical people, it's hard to know 23:24:48 Sgeo_: just get a nexus one 23:24:55 as someone who's used an iphone extensively, the nexus one looks awesome 23:24:57 true 23:25:00 AnMaster: I don't think there's a cap, no. As long as you can still learn new techs, you should be getting APs. But you can have unlearned dual or triple techs and not get APs towards those unless you have all participants in the party, perhaps. 23:25:18 AnMaster: At least I distinctly remember learning Luminaire on the single reappearing Rubble, after a long and boring while. 23:25:47 fizzie, heh 23:26:27 http://i.imgur.com/S6pDQ.png 23:26:30 AnMaster: (The one that does reappear is on Mt. Woe, and there's a boring battle or two on the way to the rubble from the nearest region-border you need to walk to-and-back to make it reappear.) 23:27:20 -!- Oranjer1 has changed nick to Oranjer. 23:27:44 fizzie, hm 23:28:32 Sgeo_: linus torvalds likes the nexus one 23:28:36 http://torvalds-family.blogspot.com/2010/02/happy-camper.html 23:28:48 Isn't he also a KDE fan? 23:29:08 [Well, I shouldn't dis KDE. It's just Kubuntu I've had troubles with, really] 23:30:36 No, actually. 23:30:44 He's decided that KDE 4 sucks so much that GNOME is better. 23:30:47 iirc 23:30:59 Sgeo_: don't worry, it's fair to hate Kubuntu's packaging of KDE 23:31:04 which IIRC, and IME, is really bad 23:31:28 Sgeo_: Besides, dammit, the Nexus One has a 1 gigahertz processor. 23:31:37 I don't know if it's the packaging, but it was always crashy for me 23:31:37 ais523 barely even has a gigahertz processor on his laptop XD 23:32:11 All Nexus One devices have an unlockable bootloader (% fastboot oem unlock), which, once unlocked will allow you to reflash the boot partition (kernel + ramdisk), system partition, etc. 23:32:18 everything i've read confirms that getting root is "official" 23:32:38 alise: yep, you just install a package that lets you become root 23:32:42 no 23:32:50 you just hold down the trackball at boot 23:32:52 hmm, am I thinking of a different platform? 23:32:53 ah 23:32:54 type in fastboot oem unlock 23:33:00 and you can just shazam, become root 23:33:15 alise, would that allow bypassing pattern lock? 23:33:16 :/ 23:33:39 one of the linuxy mobiles, you install a package that lets you become root, it doesn't have sudo/su by default 23:33:56 Sgeo_: Who would know how to? 23:34:07 Sgeo_: Dude, if your phone is stolen, and the person who stole it is an expert, 23:34:08 you are fucked. 23:34:11 But no experts steal phones. 23:34:35 http://androidandme.com/2010/01/hacks/video-how-to-unlock-and-root-a-nexus-one/ ;; admittedly you have to do some rom stuff to get root 23:35:31 -!- gm|lap has joined. 23:36:28 ais523, heh 23:36:37 ais523, how does the package manager work then? 23:36:46 AnMaster: probably suid 23:36:57 or something equivalent 23:37:24 *shudder* 23:37:53 worrying over total linux security correctness in a phone produces openmoko 23:38:07 and if you know anything about openmoko you'll know that's an insult 23:38:07 the Linux systems at university run updates as root during the boot process 23:38:15 what? 23:38:19 alise, what's OpenMoko? 23:38:27 So, apparently glibc has a misfeature in its buildsystem. 23:38:27 Sgeo_: a defunct company 23:38:29 --omitfp 23:38:35 Sgeo_: they used to make really shitty linux phones that barely worked 23:38:35 pikhq, ouch 23:38:39 now they don't make mobiles any more 23:38:42 This causes it to build with -fomitfp -O99 -g0 23:38:47 -O99? 23:38:52 Yes. 23:38:57 -O100 ;; one faster 23:38:59 And no, that does not do anything. 23:39:00 .................. 23:39:13 -g0 disables debugging. 23:39:25 I know what -g0 does 23:39:29 -fomitfp breaks debugging *only on x86*. 23:39:33 but it OMITS FRAME POINTERS FUCK YEAH 23:39:37 pikhq, x86_64 too 23:39:38 I thought -O only went to 7 23:39:38 or maybe it omits floating point operations 23:39:41 and a few other platforms 23:39:41 AnMaster: No. 23:39:43 ais523, to 3 23:39:53 AnMaster: I think it depends on details 23:39:55 pikhq, sure? I'm almost completely sure about this 23:39:56 On x86_64, all optimisation levels omit the frame pointer. 23:39:59 3 is the highest normal useful value 23:40:07 pikhq, yes okay so it always break debugging then? 23:40:15 I think values higher than that have a special meaning on some platforms 23:40:17 No, it doesn't. 23:40:20 mhm 23:40:32 ais523, huh 23:40:35 Only a small handful of architectures. 23:40:40 which ones? 23:41:10 can't remember offhand, but I'm pretty sure I've seen -O7 before 23:41:20 Lemme check. 23:41:21 Sgeo_: seriously i'm a huge iphone fan and looking up stuff about it makes me really really want a nexus one 23:42:05 I mentioned the GPS Navigation to my dad. That was a bad thing, apparently. He's afraid I'll be listening to it, and not be paying attention. So I said that I won't use GPS nagivation 23:42:19 [in the hypothetical future where I drive] 23:42:40 I can't find anything other than "breaks on x86 and maybe elsewhere" 23:42:44 Sgeo_: with all due respect, your dad is fucking insane 23:43:04 "Turn left." I see a turn to the left, WAIT i must pay attention... what's this? turn left? *turns right* 23:43:28 pikhq, "maybe elsewhere" is enough for me 23:43:37 alise: do you know about hazard fixation? 23:43:38 ais523: For the N900, it does have sudo by default, but it's not configured so that the "user" user can execute it. So you install the "gainroot" package so that you can start using sudo. (And the "app manager" installation thing is probably suid-root, yes.) 23:43:42 But apparently not x86_64. 23:43:58 if you try really really hard not to bump into something, you're more likely to bump into it than if you were just trying normally 23:44:01 -!- coppro has joined. 23:44:04 ais523: true 23:44:07 o.O RoboZZle has an iPhone version 23:44:10 * Sgeo_ grumbles 23:44:14 ais523: but listening to a gps doesn't exactly make you a dangerous driver 23:44:44 depends on if you concentrate on it rather than the road 23:45:14 experience with MarioKart DS shows that driving entirely from a GPS-alike is unreliable even when it shows the location of other cars 23:45:55 ais523: Actually, now that I look at it, the app-manager's not suid-root, but /etc/sudoers has a long list of "user ALL = NOPASSWD: foo", where foo is any sort of command you might need in the normal course of things; including stuff like "/etc/init.d/some-stuff stop" and so. 23:46:18 Sgeo_: I take it that Sprint isn't even remotely an option? 23:46:50 alise, unless Sprint has a contract-free phone 23:46:53 fizzie: seems a little dubious 23:46:55 If it was the HTC EVO 4G might be a consideration, although I don't think it's technically out yet. 23:46:58 Well, no, Sprint are a network. 23:47:01 presumably there are thousands of root exploits in there 23:47:04 So of course their phones are contract or pay as you go. 23:47:38 -!- kar8nga has quit (Remote host closed the connection). 23:48:01 Or the HTC Desire. (a "cousin of the nexus one", apparently) 23:48:18 The Desire has so much in common with the Nexus One that it feels like we've seen it all before. Spec-wise these two Android 2.1 phones have the same processor, 1,400mAh battery, 3.7-inch 800 x 480 AMOLED screen, 5-megapixel autofocus camera and 512MB of ROM, while externally they have very similar CMF (industrial shorthand for "color, material and finish") and weight (4.76 ounces). 23:48:25 64 more megs of ram though :P 23:48:41 it has the htc sense ui though 23:48:45 which is... prettier 23:48:48 http://www.blogcdn.com/www.engadget.com/media/2010/03/htcdesiretriohed03302010.jpg 23:49:42 i'd just get the nexus one 23:49:44 I take it that RoboZZle shouldn't be enough of a reason to push me towards iPhone 23:49:51 it shouldn't :-) 23:49:51 it should not 23:49:58 i am sure it will be ported to android some time 23:50:02 and besides 23:50:09 no amount of robozzle can make up for apple's immorality 23:50:14 it's true 23:50:18 i defended the iphone dammit but the latest change is just unacceptable 23:50:29 I, fanboy of fanboies of the iPhone, even I realise it's out of line 23:50:34 * coppro wants a device that can record his train of thought so that he can pick it up later 23:50:53 they've managed to even make me feel bad for working on clang 23:50:58 alise: food for thought: iPhone licensing allows GPLv2 software but not GPLv3 software 23:51:22 coppro: ah, don't let that bother you 23:51:37 them supporting clang is a good thing no matter what else they do 23:51:37 alise: yeah, I won't. It still makes me feel a little bad :( 23:51:48 say you were in germany in hitler's reign 23:51:48 clang? 23:51:56 Yeah, I know 23:51:57 and hitler had a program to feed young orphans -- even if they're jews, or gay, or whatever 23:52:06 and it was a wild success, feeding tons of people and making them all happylike 23:52:11 would it be wrong to help this program? 23:52:11 Sgeo_: The LLVM C/C++/Obj-C compiler 23:52:18 -!- FireFly has quit (Quit: Leaving). 23:52:21 Of course, it's not like Apple is anywhere near as bad as hitler :P 23:52:23 hello? am I still connected? 23:52:28 AnMaster, no 23:52:29 what the hell happened there 23:52:32 Sgeo_, thanks 23:52:39 alise: you'd have to be careful to make sure you were supporting the program rather than the people behind it 23:52:43 Sgeo_, http://www.internetpulse.net/ 23:52:48 I seems to have been hit by 23:52:49 ais523: under hitler? that would be dangerous 23:52:49 that 23:52:50 this sort of issue happens with aid programs in corrupt countries 23:52:57 everyone under hitler supported hitler :-) 23:52:58 "The server at www.internettrafficreport.com is taking too long to respond." 23:53:00 still get that 23:53:01 alise: exactly 23:53:08 so at least you could do some good 23:53:12 half of internet is unreachable from here! 23:53:15 or so 23:53:20 that happens 23:53:29 hmm, depeering? 23:53:32 probably 23:53:38 ais523, perhaps 23:53:42 it's happened to me 23:53:43 it is getting somewhat better 23:53:45 Now, to turn that into a political statement./ 23:53:48 freenode timed out before 23:53:53 but now it works again 23:53:57 Half of the Internet is unreachable from here! 23:53:59 Boo China! 23:54:04 I guess it got rerouted 23:54:06 Gregor, har 23:54:20 ais523, seems they routed around it 23:54:21 http://www.youtube.com/watch?v=SnWJ29eNCbY RoboZZle's a ship now? 23:54:34 internet traffic report up again 23:54:39 ah, ok 23:54:47 not a depeering, just a problem 23:54:57 the whole trick with depeerings is that half the time you /can't/ reroute around them 23:55:01 because it would cause too much political strife 23:55:03 the tubes were clogged 23:55:13 or, at least, people demanding loads of money 23:55:17 ais523, indeed it isn't completely down 23:55:34 Though I loathe to quote techcrunch: 23:55:35 On the downside: all this hardware bling is an energy hog. The screen will self adjust brightness and Google is smart about turning down the processor when its not being used. But Ive found battery life to be woefully brief, even by iPhone standards. Officially the phone has up to 7 hours talk time, 250 hours standby, 5 hours of 3G Internet use, 7 hours of video playback and 20 hours of audio playback. Unofficially, I was able to kill the fully c 23:55:35 harged battery with 1.5 hours of continuous gameplay (Robo Defense) on the full-brightness screen. Be prepared to keep this phone near a charger at all times. You can easily view whats using the battery, though (the screen is 71% of my current usage), and then adjust the hardware or software usage to maximize battery life. 23:55:45 Note that full-brightness gameplay for 1.5 hours is unlikely. 23:56:08 alise: I do that all the time on the DS 23:56:18 so it rather depends on whether you bought your mobile for gaming or not 23:56:30 (presumably, some people do that; or maybe they don't) 23:56:35 ais523: well, yes 23:56:40 (still, whatever possessed anyone to invent the N-Gage?) 23:56:46 hahah :D 23:56:49 but do you really need it on full brightness all the time? 23:57:00 `addquote (still, whatever possessed anyone to invent the N-Gage?) 23:57:04 147| (still, whatever possessed anyone to invent the N-Gage?) 23:57:34 ais523, wonderful quote 23:57:35 alise: with the original DS, there are only two brightness settings, full and off 23:57:51 and you can't change them except on the startup screen, which you have to powercycle to reach 23:57:59 I have the original DS 23:58:02 & proud 23:58:12 alise: same, and the touchscreen still worsk 23:58:13 *works 23:58:16 ditto 23:58:19 but i don't play on it all that much 23:58:26 I use it when I can't sleep 23:58:27 `quote 23:58:29 52| Apple = Windows. 23:58:33 ais523: I use laptops for that P 23:58:34 *:P 23:58:36 http://www.appleinsider.com/articles/10/04/11/steve_jobs_defends_apples_changes_to_iphone_developer_agreement.html 23:58:43 alise: so do I sometimes, but they tend to make me less inclined to sleep rather than more 23:58:47 although monday-to-friday i can't do /anything/ when i can't sleep 23:58:52 `quote 23:58:54 25|`quote 23:58:54 ouch 23:58:58 Nice quote. 23:59:04 (quote quote) 23:59:25 `quote 23:59:27 75|* ehird disables javascript 23:59:30 `quote 23:59:31 18| GregorR-L: i bet only you can prevent forest fires. basically, you know. 23:59:44 Smokey would be so much better if he said that. 23:59:46 `quote 23:59:48 13|* ehird has joined #lobby hmmm clean me 23:59:51 `quote 23:59:52 124| I cannot eat meat that isn't flat. 23:59:56 `quote 23:59:57 72| ignore me, i'm full of bullshit 2010-04-12: 00:00:03 Truer words never spoken. 00:00:07 stop the spam please 00:00:08 is there any way to tell who added a quote? 00:00:14 ais523: yes 00:00:15 `help 00:00:16 `help 00:00:17 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 00:00:22 http://codu.org/projects/hackbot/fshg/ 00:00:23 ais523, see the hg repo 00:00:24 shows the user 00:00:24 `quote 00:00:27 21| First, invent the direct mind-computer interface. Second, you know the rest. 00:00:28 So, Jobs is saying that by limiting everyone to Objective-C, nicer apps are made. Apparently, if you don't kick developers to hand-tweak the result, they won't? 00:00:29 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 00:00:29 `whoami 00:00:34 No output. 00:00:38 that's... odd 00:00:40 `run whoami 00:00:41 So better just to force everyone to do it one way to.. 00:00:41 No output. 00:00:44 * Sgeo_ growls 00:00:50 `quote 00:00:52 115| hmm... does anyone know a nonsense game designed for the mentally handicapped involving yelling 00:00:58 clearly, we need to name a user "No output." just to screw with people 00:01:04 `quote 00:01:05 58| [...] sometimes i cant get out of bed becasue the geometry of the sheet tangle is too fascinating from a topological perspective 00:01:11 i miss mycroftiv 00:01:13 he was a lunatic 00:01:25 was? 00:01:26 `quote 00:01:27 25|`quote 00:01:29 Sgeo_: well, is. 00:01:32 Ok 00:01:46 can we stop the spam? 00:01:53 `quote 00:01:54 AnMaster: no. 00:01:54 16| 11 holes for me :D 00:01:59 o_O 00:02:00 `quote 00:02:02 102| I want to read about Paris in the period 1900-1914 not about the sexual preferences of a bunch of writers >.> 00:02:06 I guess not 00:02:08 `quote 00:02:10 132| For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. 00:02:14 if anyone says anything of interest i'll stop 00:02:15 `quote 00:02:16 just go fuck the bot in /msg 00:02:16 66| It looks like my hairs are too fat. Can you help me split them? 00:02:17 Gregor, ^ 00:02:18 Gregor, ^ 00:02:21 botsex 00:02:23 `quote 00:02:25 Gregor, ehird is spamming with the bot agian 00:02:25 18| GregorR-L: i bet only you can prevent forest fires. basically, you know. 00:02:26 again* 00:02:32 no he isn't, ehird isn't even in here 00:02:34 AnMaster: I can see that. 00:02:37 & besides nobody is saying anything of interest 00:02:42 so nyah 00:02:44 Gregor, make it ignore him or something for a while 00:02:55 Can't. 00:02:56 grr, I hate channel politics 00:03:01 Gregor, why not? 00:03:08 Gregor, tell him to use /msg then 00:03:17 Vote for ais523 for #esoteric president! 00:03:19 alise: use /msg then 00:03:23 Gregor: no u 00:03:30 Gregor, you could do it with iptables anyway, deep packet inspection to discard packages from him ;P 00:03:36 `quote 00:03:37 99| things are more awesome when written by someone in here 00:03:44 Gregor, he refuses to? 00:03:48 * Sgeo_ may end up slapping alise 00:03:52 alise: that's one of the most ridiculous ways to ignore people on IRC I've ever heard 00:03:56 *AnMaster: 00:04:02 ais523, ? 00:04:09 ais523, what is? 00:04:14 deep packet inspection 00:04:18 ais523, oh yes hah 00:04:24 hmm, do you only have three lines of memory even for your own comments? 00:04:26 `quote 00:04:26 Deep ... DEEP packet inspection. 00:04:28 108| It's not incest if you're third cousins! 00:04:34 ais523, you addressed alise at first 00:04:43 Gregor: iptables is capable of some pretty damned deep packet inspection. 00:04:47 Sgeo_: yep, then corrected 00:04:55 And its replacement should be more-so. 00:04:56 I thought everyone could do IRC corrections in their head nowadays 00:04:59 apart from possibly newbies 00:05:08 Mmm yeah ... I love that DEEP packet inspection. So deeeeep ... 00:05:21 ais523, I can do it. Just that I thought it was about me having ehird on /ignore 00:05:26 which is currently the case 00:05:34 AnMaster: but it wasn't him talking, it was me 00:05:42 or do you have lines that nickping him/her on ignore too? 00:05:51 ais523, no but that is a good idea 00:05:57 Hey guys did I mention I'm ignoring alise 00:06:05 stop pointing it out you dumbass 00:06:07 ais523, I didn't see the * however 00:06:07 it's just irritating 00:06:17 ais523, I use s/// or put the * after generally 00:06:25 night 00:06:26 umm, putting the * after makes it harder to see 00:06:32 it's easy enough to see if a comment starts with a * 00:06:37 and it makes little sence out of context otherwise 00:06:39 *sense 00:06:51 * 00:06:53 you'd have to read a whole line to know if it was a correction or not, unless you read right to left 00:06:59 it's a swedishism 00:07:01 like bork bork bork 00:07:11 alise: that's a fake swedishism 00:07:12 that's postfix too 00:07:15 ais523: shut up 00:07:52 3 weeks HackBot run chmod 777 Guest_hacked 00:07:53 3 weeks HackBot run printf "#!/bin/sh \n echo Guest Hacked " > Guest_hacked 00:07:55 That is some pretty major hacking 00:08:24 wait, in that order? 00:08:42 no, opposite 00:08:51 5 weeks HackBot touch me 00:08:51 ah, ok 00:08:53 >_< 00:08:55 still, that isn't really hacking 00:09:04 that's like people who edit wikis and claim it's hacking 00:09:20 PRETTY MAJOR HACKING I THINK YOU'LL FIND 00:09:40 addquote and an AMICED literal would presumably /add/ info to the source whatever info gets added, that's the value that the AMICED doesn't contain it's all falling into place 00:10:52 * ais523 actually starts reading the link about the iPhone dev agreement that someone linked ages ago 00:11:01 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:11:04 this is why I like new-tab opening at the end, it means I read breadth-first rather than depth first 00:11:11 hey, maybe this is how I manage to escape TV Tropes 00:11:54 ais523: unfortunately, that impedes actual navigational use of tabs 00:12:13 (I use tabs to basically understand a concept in depth by reading all the concepts I don't understand to complete the picture 00:12:13 ) 00:12:26 hmm, I use new-window for that 00:12:32 tabs are just a todo list of things to read 00:13:23 maybe you should have tabs both vertically and horizontally 00:13:31 * Sgeo_ wishes he didn't need the Marketplace app to download apps from the Marketplace 00:13:32 so you can go both depth-first and breadth-first 00:14:23 I use buffers and don't care about the order. 00:14:41 I think internally I've got some sort of data structure assigning order to it in my head? 00:15:03 "In your head" is usually a bad sign; your computer could probably do that for you. 00:15:55 alise: You mean my computer can account for my random whims? 00:15:55 Hmm... I can't even remember what I was thinking of when I wrote 115 00:16:22 coppro: obviously, or you wouldn't have had to ask 00:16:24 I think half the order is "interest". 00:16:36 pikhq: Well, no. 00:16:39 I said "probably". 00:16:43 coppro: 115 what? 00:16:46 alise: the quote earlier on 00:16:52 `quote 115 00:16:53 115| hmm... does anyone know a nonsense game designed for the mentally handicapped involving yelling 00:16:58 coppro: it was some pun 00:17:14 that sounds likely 00:17:22 like if you pronounced it out it sounded like that 00:17:23 or something 00:17:29 grep for it in your logs or whatever 00:18:26 I have logs? 00:19:28 * Sgeo_ wonders if he can use ANGEL on Android 00:19:48 Voice search works about 80% of the time, but you have to speak slowly and enunciate everything, and pronounce marks. And it doesn't recognize some proper nouns, transcribing "Jesus" (pronounced the Spanish way) to "Hey Zeus," Bruce Willis style. The major downside is that all the voice transcription is done in the cloudyou know, it's Googleso you have to have a net connection to use it. It's awesome to dictate text messages or emails, though I p 00:19:48 robably talk too fast and mumble too much for this to work well. 00:19:57 ANGEL? 00:20:18 [[Battery life lasts around a day with normal use, which includes calling, browsing, Google Mapping, push Gmailing and clothed sexting. That's on par with other smartphones now, and won't see much change until we get a dramatic boost in battery technology.]] 00:21:27 note that the nexus one only has 4gb of storage but you can expand that to 32 gb by inserting a microsd card 00:21:32 which you want to do, if you want to put music on it 00:22:04 alise, school website 00:22:15 Sgeo_: does it work in webkit? 00:22:17 if so, probably yes. 00:22:19 (try chrome) 00:22:26 alise, it's not officially supported 00:22:33 Does it work? 00:22:35 It works well enough for most things, but not everything 00:23:56 Is that okay? 00:24:00 If so, it will probably work on Android. 00:24:13 Besides, you don't even have iPhone as an option: it's AT&T, yes, but it's also contract. 00:24:19 why would music take up that much space? 00:24:22 And the contractless iPhone 3G S is ~$700. 00:24:27 ais523: Uh... it does. 00:24:33 I'm pretty sure you can fit MIDI files on floppies 00:24:35 Or is this a shitty "LOL MIDI" leadup? 00:24:38 yep 00:24:40 How did I know. 00:24:45 Hey, I like MIDIs! 00:24:59 I think the problem is that MIDIs are /good enough/ 00:25:00 MIDIs have a strong connection with the shitty 3d games I like! 00:25:19 although I normally compile them into .ogg files on this computer, so they take less CPU to play 00:25:36 [well, actually, outside of a few MIDIs from AW, it's mostly a 2d thing that I get MIDIs from] 00:25:39 really, we should have a format along the lines of .s3m 00:25:46 or whatever it's called 00:26:05 which is basically MIDI+patches in the same file, so you don't lose the information that you lose in a wave-like file 00:28:10 * Sgeo_ now has an excuse to use his phone in class 00:28:11 :D 00:28:26 [Well, pending a decent Android .ppt viewer] 00:29:00 heh, there isn't even a decent Windows .ppt viewer 00:29:56 powerpoint is arguably the worst of the major Office apps 00:30:45 They're all pretty bad though. 00:31:14 yep, Excel is the best 00:31:19 Though at least Microsoft has finally gotten at least a *bit* of a clue about how to serialise things. 00:31:33 rather dangerously so, in that it tries to encourage people to use it for things you really shouldn't use a spreadsheet program for 00:31:42 * Sgeo_ wonders if there's an Android Market viewer that will let him actually download apps 00:31:58 They used to just write a massive chunk of memory to file. 00:32:10 The registry still does this. 00:32:40 Sgeo_: you could download the free ones from elsewhere i bet 00:32:43 A registry file sometimes includes random chunks of the actual program. 00:33:03 alise, did you get the emulator working? 00:33:12 Sgeo_: I actually just resumed my java download now... 00:35:06 The doubt within quantifiers. 00:35:46 Sgeo_: apparently foxit have been working on an android pdf reader 00:35:48 also pdfmenot.com 00:36:27 oh pdfmenot is now google docs viewer 00:36:29 shorter url though 00:37:11 Sgeo_: http://www.dataviz.com/products/documentstogo/android/ does full, proper pdf rendering 00:37:16 * Sgeo_ tries AppBrain 00:37:19 $19.99 tho 00:37:40 http://www.androidzoom.com/android_applications/productivity/beamreader-pdf-viewer_bfbo.html looks good 00:37:44 (oh foxit for android died) 00:37:56 Sgeo_: http://www.dataviz.com/products/documentstogo/android/ seems to do perfect pdf rendering if you can cough up the $20-1c 00:38:02 (20 dollars minus one cent) 00:38:15 like with antialiasing unlike that beamreader 00:40:13 16% [1 sun-java6-bin 7749120/27.4MB 28%] 188kB/s 3min 24s 00:40:16 on mobile internet 00:40:18 Pressing Tab doesn't switch between fields 00:40:20 this is a momentous day for humanity, folks 00:40:28 Sgeo_: quicker to touch 00:40:31 surely 00:40:34 alise: what, downloading Java? 00:40:36 java serialised classes are pretty hardcore 00:40:42 ais523: no, the speed over totally wireless internet 00:40:44 alise, when I'm in the emulator, it's quicker to press Tab 00:40:46 gm|lap: java anything is not hardcore. 00:40:48 Sgeo_: well, true 00:40:56 and from my experience harder to parse than class files 00:41:40 if you get at least one of the older minecraft map files, they're basically a gzipped java serialised class with a 5-byte header 00:41:46 incidentally, what happens if you serialise a Class object? 00:42:02 not sure, idunno if it implements Serializable 00:42:04 probably nothing particularly interesting 00:42:22 gm|lap: gah, for a moment I forgot about Java preventing you doing insane things 00:42:26 Stupid 404! 00:42:41 * Sgeo_ wonders if Google removed the AppBrain app from the Marketplace 00:42:50 Or if the Marketplace detects that I'm trying to cheat it 00:42:52 which reminds me, why does no "Java-like OO" language allow you to mark methods abstract but give an implementation anyway? 00:43:08 it would make it a lot clearer what methods could be replaced entirely, and which had to be wrapped 00:43:13 public final class Class 00:43:13 extends Object 00:43:14 implements Serializable, GenericDeclaration, Type, AnnotatedElement 00:43:24 hmm, is serialisable 00:43:51 it probably gives you information on the class, but that's about it 00:44:25 i once made a minecraft map loader in lua 00:44:39 slow and not very faithful to the spec but it worked 00:44:57 although i think Notch has decided to use a simpler format 00:45:17 Sgeo_: the marketplace is not required 00:45:20 you can install ipk files too 00:45:24 or are they some other extension i forget 00:45:29 it's in the emulator website docs 00:45:34 alise, apk 00:45:36 http://java.sun.com/javase/6/docs/platform/serialization/spec/protocol.html 00:45:55 And I know, but there are a lot of apps on the Marketplace, and I don't see how to get to the .apk files without the Marketplace app 00:46:11 I installed an alternative Market thing, but I want the real one on here 00:46:25 it's a fairly well packed format 00:56:45 -!- coppro has quit (Ping timeout: 245 seconds). 00:56:52 To have an Internet connection whereever I am 00:56:58 * Sgeo_ fantasizes 01:04:44 Sgeo_: It's awesome. 01:08:04 You can IRC from ANYWHERE 01:08:04 :| 01:08:04 Nooo, I just ran out of mobile broadband 01:08:24 alise: does it charge by the byte? 01:08:31 if so, how come you're still talking here? 01:09:28 hmm, maybe alise isn't 01:11:03 So, I still haven't a clue why this segfaults. 01:11:19 Heck, I haven't a clue *how* this segfaults. 01:11:20 Sgeo_: ping 01:11:34 alise: poing 01:11:52 that's sort of like a pong, except it reflects off from a random direction, sort of like a bullet ricochet 01:12:58 -!- alise has quit (Quit: Leaving). 01:12:58 pong 01:13:11 DAMMIT 01:13:36 :( 01:14:48 -!- ais523 has quit (Quit: restarting X in an attempt to get rid of a bunch of glitchiness). 01:16:09 -!- ais523 has joined. 01:16:57 -!- ais523 has set topic: | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 01:21:20 -!- ais523 has quit (Ping timeout: 245 seconds). 01:28:21 So, I'm the only person alise wants to say bye too? Or will alise be back before e has to leave? 01:30:11 Finally, running mycology. 01:30:16 BAD: BAD: \ doesn't swap 01:30:19 This confuses me. 01:30:33 ... Because \ swaps. 01:31:18 Ah. Comment weirdness. 01:32:17 "// \ " apparently comments out the next line. 01:32:26 Somehow. 01:35:54 And now, mycology.b98 executes, outputs no BAD lines, then segfaults. 01:37:32 I get 2263 lines of output. 01:38:54 v#-5 gv#-20-30pGOOD: p modifies space 01:39:03 Final line before segfaulting. 01:39:50 $1 = {bufsz = 1024, bufused = 18446744073709549303, buf = 0x1000000607010
} 01:39:59 Dear me. That seems quite wrong. 01:40:22 Gregor: Any idea what could cause bufused > bufsz? 01:40:47 pikhq: Something going horribly wrong? :P. Adding to the buffer without EXPANDing it first? 01:41:39 Gregor: Only added to with PUSH. Which checks for that. 01:41:54 PUSH should just be WRITE_BUFFER(..., 1, ...) :P 01:42:12 ... Shush you. 01:45:22 Same behavior. Hooray. 01:46:05 Show us the codezes. 01:46:26 Welp, that's fun. I was stepping below the array. 01:46:40 Ohhhhkidokie. 01:47:11 In spite of all array indexing being modular arithmetic... 01:47:35 Yessss ... array indexing in crazy-land. 01:47:51 Perhaps my indexes should be unsigned. :P 01:47:55 Yup, that fixes it. 01:48:11 And now I get errorness. 01:48:16 GOOD: p modifies space 01:48:17 BAD: p doesn't modify space% 01:48:27 Which is it, mycology? 01:49:51 Are "space" and "space%" not the same? 01:50:28 % is my terminal showing the lack of newline before EOF. 01:50:37 Erm. 01:50:38 My shell. 01:50:43 Ah :P 01:50:44 It was also reversed. 01:53:13 Deewiant: So, any idea how p can both modify and not modify space? :P 01:53:25 I appear to be taking both branches somehow. XD 01:54:37 AnMaster: You should be able to help pikhq here, right? 01:55:24 Gregor: Deewiant wrote Mycology. I presume he could help. 01:55:39 Ah, didn't know the author was also an #esoteric'er. 01:56:30 Course, it's also fairly late/early there. So he may not be conscious. 02:31:02 * Sgeo_ should probably do his C++ homework at some point 02:33:20 * pikhq adds backtraceness to the interpreter 02:39:46 -!- Oranjer has left (?). 02:40:01 Backtrace? Check. 02:42:32 * Sgeo_ should learn zippers 02:46:19 -!- Asztal has quit (Ping timeout: 276 seconds). 02:46:48 http://sprunge.us/BhiG Complete program execution. 02:47:11 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 02:48:25 -!- jcp has joined. 02:54:51 Oh, also. http://sprunge.us/ShIJ 02:57:23 -!- sebbu2 has joined. 02:59:28 -!- adu has joined. 03:00:22 -!- sebbu has quit (Ping timeout: 265 seconds). 03:07:29 -!- augur has quit (Ping timeout: 248 seconds). 03:13:56 -!- coppro has joined. 03:15:20 -!- Gracenotes has quit (Remote host closed the connection). 03:23:02 -!- augur has joined. 03:38:34 -!- augur has quit (Ping timeout: 264 seconds). 03:41:20 -!- Oranjer has joined. 03:41:28 -!- augur has joined. 03:45:28 -!- coppro has quit (Ping timeout: 276 seconds). 03:51:37 -!- augur has quit (Ping timeout: 252 seconds). 04:10:41 -!- Oranjer has left (?). 04:13:16 -!- Oranjer has joined. 04:42:16 -!- augur has joined. 04:55:02 Will anyone kill me if I start programming in Scala? 04:55:48 -!- Oranjer has left (?). 04:57:30 No. 05:13:15 -!- coppro has joined. 05:15:54 I think people have fit full working world taking over AI into 6K. We can fit "x => x + 1" 05:16:20 [that was after ah, lightweight anonymous functions. http://pastie.org/915119 ] 05:30:47 Huh. Scala has mutable and immutable variables 06:22:04 http://images.4chan.org/co/src/1271047978643.png 06:22:47 -!- oerjan has joined. 06:23:00 Sgeo_: so does C++. woop de doo 06:24:12 augur: epic 06:24:16 :) 06:26:29 -!- adu has quit (Quit: adu). 06:28:30 -!- ellisonch has left (?). 06:36:12 coppro: C++ has many sorts of mutability and immutability. 06:36:29 Just like everything else. 06:36:30 :P 06:36:30 -!- FireFly has joined. 07:15:34 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 07:53:18 -!- FireFly has quit (Quit: Leaving). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:02:12 -!- kar8nga has joined. 08:07:59 -!- oerjan has quit (Quit: leaving). 08:08:58 -!- adam_d has joined. 08:09:34 -!- adam_d has quit (Client Quit). 08:32:50 -!- lament has quit (Quit: lament). 08:58:13 -!- Tritonio_GR has joined. 09:34:22 -!- lereah_ has joined. 10:06:07 pikhq: After p, it tries to wrap around, and that probably isn't working. 10:15:46 -!- MizardX- has joined. 10:16:50 -!- MizardX has quit (Read error: Connection reset by peer). 10:17:14 -!- MizardX- has changed nick to MizardX. 10:36:51 -!- tombom has joined. 10:47:43 -!- andreas1984 has joined. 10:57:35 -!- andreas1984 has quit (Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org). 10:59:48 -!- gm|lap has quit (Quit: ilua). 12:00:29 -!- pikhq has quit (Read error: Connection reset by peer). 12:21:44 -!- Gracenotes has joined. 12:54:17 -!- kar8nga has quit (Remote host closed the connection). 13:04:39 -!- FireFly has joined. 13:25:57 -!- bsmntbombdood_ has joined. 13:27:10 -!- bsmntbombdood has quit (Ping timeout: 245 seconds). 13:34:16 -!- Asztal has joined. 13:35:13 -!- augur has quit (Ping timeout: 264 seconds). 13:50:49 -!- augur has joined. 13:55:54 -!- kar8nga has joined. 14:02:35 -!- augur has quit (Ping timeout: 245 seconds). 14:06:52 -!- Tritonio_GR has quit (Read error: Connection reset by peer). 14:11:26 -!- Tritonio_GR has joined. 14:13:26 -!- BeholdMyGlory has joined. 14:26:06 -!- augur has joined. 14:30:22 -!- MigoMipo has joined. 14:38:00 -!- pikhq has joined. 14:43:31 -!- oerjan has joined. 14:44:44 * oerjan notes an adrian with an L oracle 14:46:26 idle for 41 days? O_O 14:51:52 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 15:04:11 -!- MigoMipo has quit (Remote host closed the connection). 15:09:25 -!- augur has quit (Ping timeout: 264 seconds). 15:18:27 -!- Tritonio_GR has quit (Quit: Leaving.). 15:20:25 -!- augur has joined. 15:22:35 -!- MigoMipo has joined. 15:26:49 -!- MigoMipo has quit (Client Quit). 15:31:38 -!- augur has quit (Ping timeout: 260 seconds). 16:02:13 -!- kar8nga has quit (Remote host closed the connection). 16:35:32 -!- augur has joined. 16:41:28 -!- jcp has joined. 16:48:35 -!- lereah_ has quit (Remote host closed the connection). 16:50:35 -!- augur has quit (Ping timeout: 260 seconds). 16:51:57 -!- augur has joined. 16:57:07 "As of now, the only mobile version of RoboZZle is the one for iPhone/iPad/iPod touch. We'll see how much interest there will be in the iPhone client - that will make it clearer how worthwhile it would be be to port RoboZZle to other mobile platforms." 16:57:10 * Sgeo_ gibbers 17:03:09 nah, to gibber mush giffle snibble traf a gnome sifting beroth unwards. 17:04:21 -!- oerjan has set topic: This space intentionally left | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 17:38:28 Deewiant: Which way does it wrap around? 17:38:38 Across the west edge 17:39:13 Hrm. Not seeing that in the execution trace. 17:40:13 It should do that right after it prints the "GOOD: p works" stuff 17:40:33 stepping: (0, 17) ; : No-op 17:40:36 stepping: (15, 17) +; +: 0 0 resulting in 0 17:40:49 ... That... Is an odd place to step to. 17:41:05 It should step to 80,17 methinks :-) 17:41:12 Yes. 17:47:38 -!- kar8nga has joined. 17:51:55 And now it goes into an infinite loop between (0, 18) and (14, 18). ... Somehow. 17:52:06 stepping: (0, 18) #; #: skipping char 17:52:10 stepping: (14, 18) ; : No-op 17:52:20 How does that make... Sense? 17:52:34 *Oh*. 17:52:51 Didn't fix the wrapping logic in #. 17:53:55 Okay then. Now passes Mycology. 17:55:01 In 0.005 seconds. Granted, Mycology 93, but still. 17:55:11 Now to randomise the directionness. 17:59:08 What the hell? 17:59:30 mycorand.bf has become... An ELF file? 18:00:43 I'm not going to ask how I managed to get an ELF file to the start of that. 18:02:25 pikhq, still haven't got befunge 93 to work? 18:02:36 * AnMaster is somewhat surprised 18:03:16 pikhq, rand() is easy though 18:03:37 just srand(time(NULL)) and then rand() % 4 18:03:45 AnMaster: Yeah. 18:03:52 I just hadn't *bothered*. 18:03:59 pikhq, and if your MAX_RAND isn't evenly divisable by 4 you have a strange system 18:04:18 By the way, it's hard to get B93 working when you're segfaulting in getc. :P 18:04:33 pikhq, what was the cause of that btw? 18:04:50 It was actually segfaulting elsewhere and screwing with gdb. 18:05:00 wow, must have been a bad segfault 18:05:10 Yeah. 18:05:23 pikhq, what was the other segfault caused by? 18:06:23 pikhq, remember to try mycouser too 18:06:27 iirc that works for 93 too? 18:06:32 it tests input 18:06:40 and div by zero 18:06:57 Well, I have a *** glibc detected *** ./jitfunge: double free or corruption (out): 0x0000000001644ec0 *** which is not much nicer. 18:07:32 fizzie, those tend to be annoyingly useless backtraces too 18:07:35 gdb helps 18:07:38 It happens inside llvm's _ZN4llvm10VirtRegMap20runOnMachineFunctionERNS_15MachineFunctionE function; don't you just love C++ method name manglings? 18:07:44 yeargh 18:08:04 fizzie, suggestion: attach gdb, it handles unmangling too 18:08:27 Yes, though it doesn't help that much to catch the bug. 18:09:14 It's a bit weird because the module->dump()'d llvm assembly compiles just fine with llvm-as + llc into X86 asm; not sure why it crashes like that when it's trying to JIT it. 18:09:29 fizzie, oh and an idea for the future: find number of CPUs and/or cores. Then if you have more than one start one or two "optimistic tracers". With this I mean something that when you hit a _ or | or such tries to trace the other branch a bit. It is likely to be useful in a bit anyway 18:09:37 I'm not sure what the locking overhead would be 18:09:45 but I think it may be not too bad 18:10:05 That could be done, yes. 18:10:09 well probably do some loop heuristics on the | 18:10:15 after all it could be a plain if ran once 18:10:29 maybe look for hot spots by counting hits or such? 18:10:43 iirc the java vm does that sort of things 18:10:55 AnMaster: I'm still having odd issues on mycorand.bf 18:11:02 fizzie, I don't know how much of a PITA the locking would be wrt llvm 18:11:13 pikhq, oh? 18:11:18 Among these issues are infinite loops. 18:11:30 pikhq, I guess your randomness isn't random enough 18:11:44 pikhq, make sure you actually map 0-3 to different directions 18:11:49 and haven't typoed anything 18:12:09 I remember doing % 4 and then mapping 1-4 once. 18:12:13 worth checking for too 18:12:48 AnMaster: It's not getting in an infinite loop there. 18:12:55 pikhq, oh? 18:12:59 then where? 18:13:10 note: I don't have mycology handy atm 18:13:17 so I can't just take a line/col reference 18:13:30 * AnMaster is on a mobile device 18:13:35 It's somehow finding itself in the middle of a string and not in string mode. 18:13:45 So it reflect back and forth. 18:13:46 pikhq, did you do #" ? 18:13:49 Erm. Reflects. 18:14:03 pikhq, or perhaps like that but wrapping 18:14:04 I'm not sure how it even got there, actually. 18:14:12 It's in the *middle* of the string. 18:14:14 pikhq, trace it step by step then 18:14:33 pikhq, as in make it print out x,y,cell-value for each thing it executes 18:14:48 then trace through that 18:15:12 pikhq, useful if another (known working) interpreter can do that too. Then you can just diff the trace output 18:15:44 pikhq, ccbi just has a debugger iirc, cfunge can output exactly the kind of debug info I mentioned (with somewhat more fancy formatting than just "x,y,cell-value") 18:16:04 -t 4 to cfunge should be perfect for this 18:16:10 AnMaster: I've had it stepping for a while now. 18:16:21 pikhq, then surely you can see where it enters the string? 18:16:54 pikhq, perhaps some wrapping issue? 18:17:16 AnMaster: It's hard to get this behavior. 18:17:31 Sometimes it just infinite loops putting out the string. Which *also* confuses me. 18:17:40 pikhq, eh... 18:17:45 pikhq, try valgrind 18:18:30 when bugs make no sense whatsoever one of the first things to try is valgrind, then valgrind --tool=exp-ptrcheck (or was it ptrcheck-exp? well, some such) 18:18:44 It also only hits "?;" twice. 18:19:34 pikhq, wait what? ; ? 18:19:47 isn't that befunge-98 18:20:50 Oh, sorry. That's from my tracing output. :P 18:21:12 well, back at a computer 18:21:15 *Ah*. p is modifying the wrong cell. 18:21:24 aha 18:21:28 pikhq, how comes? 18:22:07 Swapped order. :P 18:22:13 pikhq, oh and once you fixed it, please post the source code. I know of a few things mycology93 wouldn't test 18:22:22 AnMaster: As I've often said, "yes s | ccbi -t" is a tracer :-P 18:22:22 pikhq, yet you passed mycology? 18:22:32 Deewiant, in a fairly hard to parse format 18:22:36 iirc 18:22:39 AnMaster: Yes, mycology tested (9,9). 18:22:44 It's not meant to be machine-readable. 18:22:46 Deewiant, one line per executed instruction? 18:22:51 Deewiant, well that is what I need it for 18:22:57 to diff 18:23:06 And now it passes mycorand. 18:23:10 You can diff other stuff too? 18:23:12 Deewiant, maybe you should move that cell in mycology 93 18:23:27 About to test division by zero... 18:23:28 zsh: floating point exception ./a.out mycology/mycouser.b98 18:23:28 :) 18:23:29 Deewiant, yes but I can't easily sed it to the same format as the trace output to compare to 18:23:41 pikhq, why in zsh? 18:23:54 Because my shell is reporting the exception? 18:24:00 Well yes, if you're comparing two different interpreters... but you can't assume them to have the same trace format anyway. 18:24:01 ah right 18:24:03 makes sense 18:24:16 Deewiant, well, that is what you use sed for 18:24:34 Deewiant, I remember adding such a trace just to track down some t bug early on 18:24:41 which iirc was the one that turned out to be in ccbi 18:24:43 So write the sed that changes CCBI's output to whatever you like? You only have to do it once :-P 18:25:19 Deewiant, also a compact trace is more readable IMO. You can see more of the events without scrolling 18:25:43 I made sure it was both easy to read in cfunge for the -t 4 level, and easy to parse/grep 18:25:43 -!- augur has quit (Ping timeout: 246 seconds). 18:26:04 I typically don't want just a trace, I want to see what's going on 18:26:07 some higher levels is for more detailed info, like top elements of stack and so on, that is less readable 18:26:19 Deewiant, yes I often find a trace to be a good way to see what is going on 18:26:36 Aren't you the one who usually uses a debugger to find C bugs? :-P 18:27:26 Deewiant, for SIGSEGV and similar obviously yes. Otherwise I often tests it without debugger to find the rough point of problem. Then I go into debugger to debug the thing 18:27:54 So why are you so against debugging Befunge? 18:28:19 GOOD: 1 / 0 = 0 18:28:20 Deewiant, I'm not. I'm just against a lack of easy-to-sed-on trace output 18:28:21 zsh: floating point exception ./a.out mycology/mycouser.b98 18:28:24 *sigh* 18:28:29 pikhq, that is for modulo 18:28:43 pikhq, also befunge93 should ask you for the value 18:28:44 AnMaster: I mean, I honestly do not see a use case for tracing 18:28:46 Immediately before? 18:28:47 stepping: (44, 4) %; %: 0 1 resulting in 0 18:29:00 -!- tombom_ has joined. 18:29:07 AnMaster: Also Befunge93 does not say that it should ask you for the value therefore I'm not making it do that. 18:29:08 AnMaster: I find the good debugger useful, tracing not so much. 18:29:12 Deewiant, to track down t bugs. Where you can't tell where the error is. But you can compare against a working interpreter and do a game of "spot the difference" 18:29:22 t bugs especially 18:29:34 pikhq, sure it does. I remember reading that 18:29:39 When there's a bug in t, just break on t and single step. 18:30:01 Deewiant, well duh in t itself 18:30:06 Deewiant, I meant in concurrency in general 18:30:23 Anyway, the point of the CCBI debugger is to debug Befunge, not Befunge interpreters. 18:30:27 -!- augur has joined. 18:30:33 Deewiant, some timing issue in string mode I remember only tracking down due to tracing 18:30:53 Deewiant, well okay. I use gdb + a .gdbinit for debugging funge 18:31:08 You're doing it the wrong way around :-P 18:31:24 You should use gdb to debug the interpreter and the interpreter to debug Befunge :-P 18:31:31 Deewiant, didn't you only support a single breakpoint or such in ccbi1? 18:31:37 gdb supports a lot more :P 18:31:54 -!- tombom has quit (Ping timeout: 240 seconds). 18:32:19 AnMaster: Hmm. It seems that this reflects on \0. 18:32:48 pikhq, hm? 18:32:50 AnMaster: CCBI 2 supports more. I really only need one typically, though. 18:32:53 where does \0 come into it? 18:33:04 Deewiant, how many? 18:33:10 (does it support now) 18:33:24 AnMaster: Arbitrarily many. 18:33:30 Deewiant, also using gdb is in theory faster, it uses hardware breakpoint after all ;P 18:33:43 -!- augur_ has joined. 18:33:50 Actually it probably uses software breakpoints, but yeah 18:34:01 I'm just not interested in my interpreter's internals when I've got buggy Befunge. 18:34:06 AnMaster: There's an early newline. 18:34:08 Deewiant, gdb? No. I prefer hardware breakpoints when possible 18:34:13 The Befunge array is 0-filled. 18:34:20 -!- augur has quit (Read error: Connection reset by peer). 18:34:21 what? 18:34:32 pikhq, funge space is *space* filled 18:34:37 not \0 filled 18:34:44 AnMaster: I'm describing my interpreter. 18:34:51 pikhq, then you are doing it wrong 18:34:59 it should be space filled 18:35:19 AnMaster: So what, you monitor memory addresses? 18:35:21 http://catseye.tc/projects/befunge93/doc/website_befunge93.html Not in here. 18:35:23 :P 18:35:30 Nor is the "reflect on unknown" thing. 18:35:44 Mycology isn't very Befunge-93. 18:36:01 pikhq, a lot of things will break if you don't space fill it 18:36:23 pikhq, every other interpreter I know of does it. Even for 93 18:36:26 It doesn't need to be space filled, it just needs to work. 18:36:31 true 18:36:37 I.e. if you have something like 18:36:38 > v 18:36:39 @ 18:36:40 ^ < 18:36:44 Then the v should hit the < 18:36:50 Deewiant, it needs to be space in there 18:36:54 No it doesn't 18:36:59 The v just needs to hit the <. 18:37:00 Deewiant, because otherwise g on that x,y won't work 18:37:14 Well, the docs don't say that. :-P 18:37:53 Deewiant, the docs doesn't say anywhere either that g on a x,y containing a > should return the ascii value of >? 18:38:01 I mean explicitly for a > 18:38:26 Eh? They say that g pushes the value of the char at (x,y) 18:38:35 Deewiant, well then, what is the char space? 18:38:39 a space! 18:38:41 see 18:38:49 But there is no space to the right of the @ 18:39:19 And what I mean is that the docs don't say what to get for coordinates that weren't in the file 18:39:23 Deewiant, okay, but that will break a hell of a lot of programs 18:39:38 pikhq, also a fair number of befunge93 programs depend on unknown reflecting 18:39:39 I doubt many programs rely on that 18:39:48 AnMaster: Do they? Don't most interpreters nop? 18:39:54 AnMaster: They're wrong! 18:40:00 Deewiant, well I remember running into a few 18:40:07 pikhq, well maybe, but that is your issue then 18:42:30 pikhq, for 98 it is defined that way anyway. If you plan on doing 98 it is a good idea to get used to it already 18:42:45 depending on the interpreter actually considering a particular character unknown (rather than possibly using it for extensions) sounds like a bad idea to me... 18:42:50 But I'm not *doing* 98. 18:43:20 pikhq, well then *shrug* 18:44:46 Deewiant, have you seen http://catseye.tc/projects/bef/src/bef2c.c ? 18:44:49 I'm confused now 18:45:08 Yes, I've seen t hat 18:45:14 What about it? 18:45:27 Deewiant, optimisation? befunge? compiler? 18:45:51 What about it? :-P 18:45:59 Deewiant, how does it handle self modification? 18:46:06 if it does then how does it optimise 18:46:21 It just pretty much bundles an interpreter with the code like all Befunge compilers I know of 18:46:39 what about the optimisation then 18:46:55 Dunno, haven't looked into that. 18:47:55 Or hmm, I'm not sure if that's the one I was thinking of. 18:48:07 Well, whatever. 18:48:36 pikhq, the reference befunge93 implementation: 18:48:37 memset(pg, ' ', LINEWIDTH * PAGEHEIGHT); 18:48:42 see http://catseye.tc/projects/bef/src/bef.c 18:48:51 AnMaster: Reference implementation != spec. 18:49:12 pikhq, just telling you that *not* making it default to space is bloody stupid 18:49:33 I'm just telling you that making it default to anything is bloody stupid. 18:49:45 Therefore it defaults to nothing. 18:49:47 default to anything? 18:50:00 it is filled with random uninitialised data? 18:50:25 No, it's 0-filled, as are all uninitialised C globals. 18:50:26 pikhq, filling it with \0 is, you see, also defaulting to something 18:50:49 Programs relying on any unspecified behavior will be shot. 18:51:39 fungestation 9000 18:51:45 pikhq, what good reason do you have to *not* follow the common practise here? Are you aiming for a DS9K? 18:52:24 AnMaster: "Eff you, unspecified behavior." 18:52:52 pikhq, I fail to see how that answers my question about your good reason 18:53:39 I do not believe in implementing unspecified behavior soley because of what is common. I am simply going to implement the language. 18:53:48 And I care not for "what other implementations do". 18:54:17 pikhq, you know if you did befunge98 and do that you would fail. The befunge98 spec doesn't work in some cases 18:54:21 so you have to change it 18:54:25 No he wouldn't. 18:54:41 The only problematic instruction is t. 18:54:46 Deewiant, yes that is the one I meant 18:54:52 t is optional. 18:54:56 well okay 18:54:59 he could skip it 18:55:11 we should all sop using i 18:55:12 If it doesn't work then I would of course look for implementations of it to see what was decided upon as the intended behavior for the language. 18:55:23 oerjan, ? 18:55:26 oh ffs 18:55:31 >_< 18:55:53 http://sprunge.us/SBIe 18:55:53 It's pretty obvious what to do with t once you've done it "wrong", though. 18:55:56 pikhq, it doesn't work as in it will cause a fork bomb the way it is defined 18:57:30 AnMaster: Okay then. 18:58:53 Deewiant, would a to-the-letter befunge-98 spec following implementation (excluding t issues) pass mycology? 18:59:07 It should. 18:59:28 Deewiant, remember it is vague. I'm thinking it would hit issues on k 18:59:46 Sure, it's vague, but everything non-UNDEF is IMO inferrable. 18:59:58 Deewiant, not sure about the k issues 19:01:04 * AnMaster wgets that source 19:01:28 pikhq, anything special to build it? just clang -o pikhq-bef pikhq-bef.c ? 19:02:12 AnMaster: That should do it. 19:02:12 hm didn't work 19:02:21 It's very GCC-specific. 19:02:37 pikhq-bef.c:146:23: error: cannot compile this GNU array range designator extension yet 19:02:38 void *lookup[256] = { 19:02:38 ^ 19:02:39 indeed 19:02:54 -std=c99 to gcc breaks too 19:03:09 Of course it does, since it uses GNU extensions. 19:03:13 -std=gnu99 19:03:14 pikhq-bef.c:146:23: error: cannot compile this GNU array range designator extension yet 19:03:14 void *lookup[256] = { 19:03:15 ^pikhq-bef.c: In function ‘instrs’: 19:03:15 pikhq-bef.c:183: warning: array subscript has type ‘char’ 19:03:15 pikhq-bef.c:371: warning: array subscript has type ‘char’ 19:03:17 err 19:03:24 synergey fails at copy paste fail 19:03:27 gcc -std=gnu99 19:03:32 what I meant to paste was: 19:03:35 pikhq-bef.c:183: warning: array subscript has type ‘char’ 19:03:35 pikhq-bef.c:371: warning: array subscript has type ‘char’ 19:03:35 pikhq-bef.c:371: warning: array subscript has type ‘char’ 19:03:37 I get lots of that 19:03:56 AnMaster: Okay. So? 19:04:05 pikhq, just thought I'd tell you 19:04:20 It's perfectly defined behavior, it's just very likely to be wrong in most programs. 19:06:43 ./pikhq-bef-tux ~/dragon/src/own/cfunge/trunk/examples/wumpus.bf 19:06:47 Segmentation fault 19:06:54 pikhq, let me pastebin the program 19:07:05 http://sprunge.us/LMhC 19:07:24 pikhq, it is strange it segfaulted. 19:07:37 Yup, definitely segfaults. 19:07:44 58 is not prime. 19:07:44 Segmentation fault 19:07:49 from another program 19:07:55 pikhq, do you grow the stack properly? 19:07:59 or do you just stack overflow 19:08:10 http://sprunge.us/OXfD 19:08:13 is the prime program 19:08:15 which also segfaults 19:08:20 AnMaster: The macros do in fact grow the stack. 19:08:21 These programs are all on catseye.tc 19:08:33 Deewiant, ah yes indeed I guess 19:08:36 It appears to be trying to access outside of fungespace somehow. 19:08:45 Deewiant, I forgot the source so I just found it easier to pastebin them 19:08:48 fungespace_x = 4294967295 19:09:05 pikhq, do you not check that it is in bounds? because these are classical befunge93 apps 19:09:07 The issue is in string mode. 19:09:12 hm 19:09:30 String mode is *probably* supposed to wrap. :P 19:09:31 pikhq, you don't handle wrapping in string mode? 19:09:37 haha 19:09:41 I thought I did but apparently not. 19:09:42 pikhq, of course it is supposed to wrap 19:09:55 Yes, it obviously should. 19:09:56 It just didn't. 19:10:11 pikhq, I doubt the primes one segfaults due to this. Since it seems to run fine for quite a bit and I don't see any wrapping strings in it 19:10:15 so probably another error in it 19:10:36 Deewiant, and you should extend the 93 part of mycology ;P 19:10:58 Deewiant, oh and more important: not use 9,9 for p test 19:11:05 I'm not really interested in the 93 part of Mycology :-P 19:11:06 use something like 8,9 or whatever 19:11:15 Deewiant, the p test applies to 98 too iirc? 19:12:02 Yes, but there's a later pg test that uses -3,-2 19:12:35 hm wait is http://sprunge.us/jDBL befunge98? Why does does it use .bf extension 19:12:43 well it is officially befunge97 but... 19:12:55 Mike's programs all use .f98 IIRC. 19:13:02 in any case, your interpreter crashes on http://sprunge.us/jDBL as well 19:13:10 Deewiant, Mike? 19:13:11 It's not official or anything, it's just a recommendation. 19:13:13 AnMaster: Riley. 19:13:14 Deewiant, it says "Kevin Vigor" 19:13:21 not Mike Riley 19:13:21 Yes... 19:13:28 Gah! sprunge stopped pasting! 19:13:28 I just said that Mike uses .f98. 19:13:30 ah 19:13:35 pikhq, oh? 19:14:09 I can't get sprunge to hand me a URL any more. 19:14:37 WTH? 19:14:57 There are other pastebins. 19:14:58 pikhq, works for me 19:15:03 I just tested 19:15:18 Still not working for me. 19:15:32 GAH WHAT THE HELL 19:15:39 pikhq, no idea then. Maybe PEBKAC? 19:15:44 I accidentally output into befunge93.c 19:15:48 Thus erasing it. 19:15:54 What was the last paste of it? :P 19:15:59 pikhq, hg revert :P 19:15:59 >_< 19:16:11 AnMaster: Not in hg 19:16:11 pikhq, and if not learn to use version control 19:16:16 echo '(hello)S' | ./jitfunge ../underload.b98 => "main.cc:80: [main] gnuuubl middle of existing trace" -- there's still perhaps some work to do there. 19:16:23 pikhq, well I hope that taught you a lesson 19:16:26 I don't version control until there's... more than one file. 19:16:42 well then you will have to find it in scrollback yourself 19:16:51 shouldn't be too hard anyway 19:16:53 fizzie: gnuuubl? 19:17:11 pikhq, but if you promise to use a VCS then: http://sprunge.us/SBIe 19:17:16 Deewiant: An expression of despair. 19:17:22 Quite. 19:17:43 in what language is "gnuuubl"? 19:17:45 Instead of version control, you could opt for something like NILFS for /home. 19:18:07 I opt for doing testing in a different directory than the source :-P 19:18:09 fizzie, heh 19:18:10 http://sprunge.us/KKDR There you go. 19:18:10 it's the sound of a gnu being dragged into a pool by a crocodile. very traumatic. 19:19:16 For the gnu, that is. 19:19:33 Quite. 19:19:39 pi.bf appears to segfault, but that's not B93 so I don't care. :P 19:19:49 pikhq, the prime one then? 19:19:56 it still segfaults 19:19:57 Works just fine. 19:19:57 and it is 93 19:20:01 pikhq, segfaults here 19:20:16 Backtrace? 19:20:17 segfaults unless running under gdb 19:20:21 WTH 19:20:30 under GDB it goes negative instead 19:20:35 which is even more weird 19:20:48 *Oh*. 19:20:54 Fun fact: chars are signed. :P 19:21:07 Well. On x86 and x86_64. 19:21:16 Lemme go make them unsigned. 19:21:18 On some compilers. 19:21:18 pikhq, see: http://sprunge.us/BdIR 19:21:25 pikhq, I thought you used 32-bit cells? 19:21:27 in befunge 19:21:32 Wasn't that what the pasted warning was about anyhow? 19:21:46 AnMaster: No, you use "a stack". 19:22:08 pikhq, you can't really since you can't reach down deep in the stack 19:22:20 pikhq, oh also: it includes controlcodes 19:22:25 that seems to have been lost in the paste 19:22:29 I see: 19:22:36 17 is a prime.[0004] 19:23:39 http://sprunge.us/bFiZ And now? 19:24:27 pikhq, works in gdb. Still segfaults outside gdb 19:24:45 Might I suggest getting a core dump? 19:25:23 pikhq, I'm doing that already 19:25:27 before you mentioned it 19:25:37 Then where's it segfaulting? 19:25:48 ore was generated by `./pikhq-bef-tux /home/arvid/dragon/src/own/cfunge/trunk/examples/prime.bf'. 19:25:48 Program terminated with signal 11, Segmentation fault. 19:25:48 #0 0x0000000000401889 in ?? () 19:25:48 (gdb) bt 19:25:48 #0 0x0000000000401889 in ?? () 19:25:53 pikhq, the stack is smashed 19:25:54 -g 19:25:59 Oh dear. 19:26:00 pikhq, I compiled with g 19:26:07 I'm not *that* stupid 19:26:11 Well, I got nothing. 19:26:14 pikhq, -ggdb3 -O0 in fact 19:26:22 Except "works for me" 19:26:25 $ gcc --version 19:26:25 gcc (GCC) 4.4.3 20100316 (prerelease) 19:26:29 that is what arch uses 19:26:32 let me try on ubuntu 19:26:37 gcc (Gentoo 4.4.3 p1.0) 4.4.3 19:27:03 401889 looks like a reasonable address. 19:27:20 segfaults on ubuntu too 19:27:29 $ gcc --version 19:27:29 gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3 19:27:33 Heh, some bit of jitfunge is trying to put value V to coordinates (X,Y), and ends up putting value X to coordinates (Y,V). 19:27:33 that is jaunty 19:27:51 Deewiant, the next frame does not: 19:27:56 #1 0x0000000000000006 in ?? () 19:27:56 #2 0x003b000000000002 in ?? () 19:27:56 #3 0x0000000000000802 in ?? () 19:28:02 fizzie: What /are/ you doing in there? :-P 19:28:03 0x0000000000000006? 19:28:06 *unlikely* 19:28:17 Impossible, in user mode. 19:28:25 Deewiant, actually not. 19:28:46 Deewiant, but unless you tune a sysctl nowdays it is forbidden for normal user space 19:29:10 pikhq, anyway I can send you the binary and the core dump if that helpos 19:29:11 helps* 19:29:12 Deewiant: My first guess is that I populate the intermediate form's "args" structures from the stack in a different order than what I thought I did. 19:29:12 Well yes, I meant under a typical OS. 19:29:27 AnMaster: Doubtful. 19:29:38 pikhq, anyway, let me try valgrind 19:29:41 fizzie: it's a rotation 19:29:44 A stack smash isn't all that helpful of a core dump. :P 19:29:47 funny thing 19:29:50 it works under valgrind 19:29:55 BUT 19:29:59 it gives lots of invalid reads 19:30:04 Screams bloody murder? 19:30:22 pikhq, http://sprunge.us/FbSN 19:30:50 Deewiant: Being able to map 0x0 is a simple system configuration on Linux. 19:31:03 pikhq, notice some corruption in output for some primes 19:31:07 like � 19:31:27 AnMaster: Hmm. 19:31:38 Deewiant: i recall reading about a recent exploit based on mapping it 19:31:39 pikhq, anyway, can you reproduce those valgrind errors? 19:31:50 oerjan: Yes, that's actually a bit strange. But p might have a mixture of constant (or already-in-registers) arguments and things it needs to pop, which might cause problems. 19:32:08 pikhq: Under a typical and typically configured OS >_< 19:32:20 AnMaster: Yes. 19:32:34 Deewiant: It used to be the default, actually. :P 19:32:35 pikhq, then I find it not unlikely that fixing those will fix the bug 19:32:37 fizzie: if you are populating V and (X,Y) in the wrong order, you would get that 19:32:53 pikhq: How recently? 19:32:57 ouch that was awkwardly wored 19:33:00 worded* 19:33:16 Deewiant: 2.6.something 19:33:17 Deewiant, until quite recently 19:33:22 Deewiant, 2.6.20 or something like that? 19:33:27 2.6.22 perhaps 19:33:36 perhaps a bit earlier 19:33:39 O_o 19:33:42 Though you'd have to explicitly ask for mmap to 0 for that to happen. 19:33:49 well yes 19:34:14 I always have to change the sysctl when I run sheepshaver 19:34:49 putchar(BUFFER_TOP(stack)); <-- ... *This* is a source of an invalid read. WTH? 19:34:50 Sheepshaver? 19:34:53 oerjan: Well.. the generated intermediate code looks right, it might be I've just messed up when constructing a call to Space.put_at. 19:35:11 Deewiant, macos classic ppc emulator 19:35:29 Deewiant, I'm sure I mentioned that when I was working on porting ick to it 19:35:40 something that mostly worked apart from some compiler bugs in MPW 19:35:46 I'm sure I've completely forgotten. 19:36:06 *Oh*. 19:36:08 fizzie: How do you identify JITable regions in Befunge? 19:36:21 AnMaster: I think this program relies on 0 being gotten when you pop from an empty stack. 19:36:37 pikhq, well duh 19:36:40 I'll redo my stack code a bit after I get some food. 19:36:42 pikhq: That it is in the docs. 19:36:44 pikhq, that is how it should work 19:36:47 pikhq: -it 19:36:56 Deewiant: I just forgot about it. 19:37:24 Deewiant, you should add a warning about b93 parts being incomplete ;P 19:37:40 AnMaster: Already is one. 19:37:49 pikhq, oh? okay 19:38:04 Deewiant: It's a tracing sort of JIT; so I just trace all instructions I execute into a list, and mark those cells as being owned by that trace; then if I at some point end up trying to re-execute cells owned by a trace, I compile that trace instead and execute that. 19:38:56 Hmm. 19:40:12 bbl getting some food too 19:40:31 I could do some sort of "interpret without tracing unless this bit of code sees multiple executions" heuristics too, I guess. 19:41:29 But where does a trace begin/end? 19:41:50 Deewiant: Presumably on branches. 19:44:24 Deewiant: A trace begins whenever I need to execute anything (so the first trace begins at (0, 0)) and ends when I hit something that has been seen before. 19:44:54 Something being based on both coordinates and value, I guess? 19:45:33 "something" meaning "a cell registered as being part of an existing trace". 19:46:46 And "cell" including both coordinates and value, I guess? :-P 19:47:58 No, just coordinates, current delta, and "mode", where "mode" can be normal, string-mode, value-mode (for 'x) or comment-mode (for ;). 19:48:58 Wouldn't that break on p? 19:49:03 Doesn't that mean that self-modifying code breaks? 19:49:22 If you change the value of a cell that is owned by a trace (no matter what delta it had), then... well, it depends on the mode in that case. For normal mode, I just invalidate the whole trace instead of figuring out if the change is significant; but for something like comment-mode, changes that do not change to/from ; are safe. 19:50:14 Mmkay. 19:50:18 And I think for value-mode I update the value stored in the trace, and delete any already compiled code, but keep the trace. 19:50:23 Basically "p is slow mode". 19:50:45 Yes, though I was thinking I might do a compile-time "unsafe p" mode that you can use for programs that don't self-modify. 19:51:22 From the sounds of things your JIT will only be slow when you're modifying something that will then be executed. 19:51:29 Otherwise, you're invalidating 0 traces. 19:51:45 Which will then be executed 0 more times. 19:52:00 Yes, though there's still some overhead in checking for trace-ownership. 19:52:08 True. 19:53:05 There are additional complications in that I compile constant-coordinate p's into a direct memory references, and I have to record those in the space too, so that if I ever trace some coordinate that's being referred by compiled code directly, I have to invalidate that compiled code, because it could do unsafe p on that stop. 19:53:37 Spot.* 19:53:47 Yes. 19:54:14 This is also a bit hypothetical description since things are more or less broken at the moment. 19:54:19 heh. 19:58:04 Well, back to the "put" problem. It compiles what's essentially "\0p" into the intermediate code "r3 <- STACK", "r4 <- STACK", "p 0, r3, r4" where the p args should be first-pop-on-left. That doesn't look quite correct; because of the \ there, the first pop from stack (to r3) should end up as the last argument to p. 19:59:00 Hmm. Are there any notable *Unefunge* 98 interpreters? :P 20:00:33 Well, now it puts V to (Y,X) instead of (X,Y) like it should; but *that* was just because I put the arguments in the wrong order in llbuild.CreateCall4. 20:04:18 back 20:04:28 TRACE: executing trace 0x1e312f0, in entry 2, stack: 2 2 0 20:04:29 jitfunge llvm runtime: impossible 20:04:29 Segmentation fault (core dumped) 20:04:31 Still not quite it. :p 20:04:34 Oh well. 20:05:11 hm, what if a trace is invalidated _while it is running_? 20:06:20 oerjan: In that case I terminate running it; there's an "exit" out of a branch (with the delta that it had during the tracing) after each p, and same for all A..Z fingerprint-ops, since you never know about those; and a few others that could invalidate traces too. 20:06:37 pikhq, did you fix your stack? 20:06:41 ah 20:07:00 jitfunge llvm runtime: impossible <-- I disagree 20:07:09 it *is* possible 20:07:12 just needs a lot of work 20:07:24 ;P 20:07:29 oerjan: That was also a bit hypothetical, I'm afraid: 20:07:30 fis@eris:~/src/jitfunge/src$ grep -i suicide *.cc 20:07:31 interp.cc: /*! \todo handle: put on current trace - suicide */ 20:07:43 heh 20:08:06 It *was* handled properly in some earlier iteration of jitfunge codebase, though. 20:08:12 Except for those cases where it was buggy. 20:08:31 fizzie, you could probably figure it out directly for constant put, while doing some more checking for when both x and y coordinates are unknown 20:08:50 in some cases even if x or y is unknown but the other is known you can compute if it is can ever intersect 20:09:22 I already do it sort-of directly for constant put, but that brings the added hassle that if later the code it p's to is executed, the decision needs to be reconsidered. 20:10:31 AnMaster: Not yet. 20:10:54 AnMaster: I'll probably go ahead and make it a little cleaner-looking. 20:11:26 pikhq, that may take some time 20:11:31 fizzie: How's Mycology with your current iteration 20:11:36 AnMaster: Eh. 20:11:43 (sorry) 20:11:47 (no offence meant) 20:11:56 (just the chance for that joke was too good to miss) 20:12:07 pikhq, oh also I think crashing on an invalid program is a bad idea. 20:12:12 Just my two euros 20:12:51 Deewiant: I haven't been morbid enough to try. 20:12:57 :-) 20:13:53 Deewiant: 20:14:00 0 1 2 3 4 5 6 7 20:14:00 GOOD: , works 20:14:01 G 20:14:04 codegen.cc:275: [compile] not handled: 46 20:14:05 G? 20:14:16 AnMaster: Hah. 20:14:20 fizzie, what is 46? 20:14:23 The llvm codegen is really rudimentary. 20:14:24 pikhq, about? 20:14:30 pikhq, the mangled idiom? 20:14:34 AnMaster: Crashing on invalid programs. 20:14:41 AnMaster: Ascii 46, so it's "." 20:14:57 pikhq, The point is there is no such thing as invalid befunge code to my mind 20:15:05 of course to 93 devs it might appear different 20:15:22 fizzie, but... how did it output the numbers then? 20:15:42 fizzie: You're off to a good start! 20:15:43 AnMaster: Those were probably output by the tracing interp. As was the "G" there. 20:15:49 fizzie, ouch 20:16:09 fizzie, how stable is the tracing interpreter? 20:16:12 For typical print loops, the first , is executed by the tracer, before it hits the loopy part; at that point it tries to compile the trace and hits problems. 20:16:33 fizzie, so you can't handle >:#,_ yet? 20:16:49 Sure I can, as long as there is nothing in the trace that it can't compile. 20:16:53 It runs hello-world just fine. 20:16:58 haha 20:17:00 A bit noisily, perhaps, but otherwise fine. 20:17:28 fizzie, btw you realise what with this "two different implementations" thing, you need to test mycology both for the tracer and for the actual jit 20:17:56 fizzie, I don't think mycology expects , to work once and then stop working the next time 20:18:29 The readme states that things are generally assumed to work an arbitrary number of times if they worked once :-) 20:18:40 Deewiant, how can you say "GOOD: , works"? 20:18:41 That's probably true, but the architecture doesn't really let me test it only for the actual JIT. It would be borderline trivial to test only the tracing part, though. (Just drop all traces after generating them.) 20:18:50 AnMaster: How? 20:18:54 AnMaster: Just so. :-P 20:18:55 Deewiant, after all you can't see that it was actually output 20:19:18 Deewiant, well, it could have been faked, Hard coded to always output those letters in a cycle forever ;P 20:19:18 If it wasn't output, it's not GOOD, now is it. 20:19:39 Sure, but then it wouldn't output the other things correctly. 20:19:49 true 20:19:50 http://pastebin.com/vPefjzpw -- jitfunge running hello.b98. 20:20:18 Deewiant, it could be hardcoded to just output mycology, as a huge printf() to insert date and random randomness values and such 20:20:46 AnMaster: Mycology isn't meant to be a Turing test... 20:21:34 The use case is an interpreter dev or general Befunge enthusiast, not somebody actively trying out nonsense to see how many GOODs he can get :-P 20:21:55 Deewiant, heh 20:22:35 Deewiant, is mycology re-entrant? 20:23:09 No, (0,0) and thereabouts can have various values after an execution 20:23:43 The shared code/data thing of Befunge makes many JITy things quite messy. For example, if a p instruction ends up growing the borders, I need to recheck all wrapping traces just in case some of those might happen to intersect with that bit. (Since the cell ownership records are only there up to the borders.) 20:24:00 Deewiant, hm 20:24:03 Oh, and I mark all spaces owned by a trace (because otherwise I wouldn't notice changes in them by p), so slowdown will probably totally break jitfunge. :p 20:24:13 Deewiant, it would be the perfect way to test jitfunge though in both modes 20:24:38 fizzie, how will it break it? 20:25:02 AnMaster: Just use a loader, hacking the JIT so it doesn't drop traces that were overwritten by an i :-P 20:25:53 Well, maybe it won't; I don't know exactly how it works. If it jumps directly to the far-away bits, then it won't. But if it traverses a huge number of spaces, jitfunge will end up using quite many bytes of memory for each of them. 20:26:42 It jumps directly, since that's easier to write. (Just subtract the x pos from the target pos) 20:28:47 For the record, "jitfunge llvm runtime: impossible" is what the code says when you call a compiled trace and give it an entry point that doesn't actually exist. If I just knew why it was doing that... 20:30:39 -!- Oranjer has joined. 20:34:03 fizzie, try gdb? But that may not help with JITing 20:37:18 It seems that some bit of code has been adding entry points to the trace without invalidating the compiled code. (It needs to not flush stack and not stack-fold over those, and in any case the jump table at the beginning needs to contain the new entry points.) 20:38:53 /*! \todo recompile if next->compiled */ 20:39:04 Well, yes, I don't think that actually invalidates the compiled code. 20:39:12 :-) 20:39:15 Obviously I need a DWIM-capable compiler. 20:39:41 fizzie, sin 20:39:43 err 20:39:45 isn't* 20:39:48 that what you are writing 20:39:51 fizzie, no? 20:42:47 Segfaulting now. HOORAY. 20:44:51 stack_push 9, -1876564017 on stack 20:44:54 The hell? 20:45:44 That's... The first stack access... 20:46:15 Oh, wait. stack_init is not returning a stack. XD 20:47:08 shocking! 20:47:44 And the sanity check... Outputs "0 0 1 2 3 4 5 6 7 8 ". 20:48:05 That's a bit insane. 20:48:10 i tak... yeah 20:48:26 Yes, it is. 20:50:06 Just off by one. 20:51:36 And now mycology fails. :( 20:53:34 so from today's experiences we can deduce that befunge interpreters generally develop _backwards_ in time 20:54:04 bufsz is 0... How is bufsz 0? 20:54:09 (generalized from at least two examples, here) 20:54:12 pikhq, because it is zero? 20:54:31 presumably it was set to that at some point 20:54:38 AnMaster: It never was. 20:54:41 It was initialised to 1024. 20:54:51 And the only thing that modifies it doubles it. 20:54:52 pikhq, gdb watchpoint then 20:55:08 well if you double it enough times... 20:55:32 so from today's experiences we can deduce that befunge interpreters generally develop _backwards_ in time <--- no because sanity.bf comes before mycology.b98 20:56:56 Yup, it's actually doubling that much. 20:57:03 Which scares me. 20:57:30 pikhq, it is doing something wrong then 20:57:55 now now, don't leap to conclusions 20:57:55 Yes. 20:57:56 pikhq, sure you didn't mix up * and ^? 20:58:06 pikhq, or even * and ↑ 20:58:17 That's better. 20:58:23 pikhq, hm? 20:58:36 AnMaster: Wrong test for when to resize the stack. 20:58:49 BAD: 0! != 1 20:58:53 That I hope is simple. 20:59:39 Okay, then. Passing Mycology again. 20:59:48 But not mycorand.bf 21:00:23 BAD: 0! != 1 <-- how the? 21:00:49 You're the first I know of to have triggered that one. 21:00:50 pikhq, how could just fixing stack underflow cause that? 21:01:01 Deewiant, why did you test it then? 21:01:05 AnMaster: Typo. 21:01:10 Deewiant: It was a typo. 21:01:27 Deewiant, presumably it is a fatal error? 21:01:49 AnMaster: If I tested only things that ever failed in CCBI Mycology would be less than half its current size :-P 21:01:51 It is. 21:02:59 Deewiant, well, you seem uninterested in adding things no one fails at 21:03:03 when I suggest things 21:03:36 And now, the prime number thing is borken. 21:03:45 It thinks everything is prime. 21:03:55 pikhq, how the fuck 21:03:56 AnMaster: In this case, since later parts of Mycology depend on !, it has to be tested. 21:04:05 Deewiant, okay 21:04:05 AnMaster: I wish I knew. 21:04:22 pikhq, do the other ones work? life.bf, wumpus and so on? 21:04:42 That'd be amusing 21:04:48 But unlikely 21:04:54 Deewiant, what? If everything was prime? :D 21:05:10 If the others worked 21:05:16 heh 21:05:24 if it passes mycology 21:06:46 That's a gigantic trace. 21:06:55 pikhq, heh 21:07:33 pikhq, from cfunge it would be too, Since it implements befunge98 and that has 32-bit (or more) cells. So that program just goes on and on and on 21:08:44 *That's* better. 21:09:24 pikhq, what caused it? 21:09:31 http://sprunge.us/iZVC 21:09:56 AnMaster: Reversed order of arguments for %. 21:10:22 hah 21:10:46 BTW, this no longer segfaults on pi.bf 21:10:58 It doesn't *do* anything, but it no longer segfaults. 21:11:29 pikhq, hm 21:12:50 Once again, though. Are there any notable Unefunge '98 programs or interpreters? 21:13:43 pikhq, iirc ccbi can run it 21:14:20 I suspect Unefunge '98 would be much easier to compile efficiently is the thing... 21:14:32 pikhq, it is still selfmodifying 21:14:38 Yes. 21:14:41 and I don't know any programs in it at all 21:15:28 The bit about being 2-d makes things a bit harder, what with needing smart data structures and all that. 21:15:42 pikhq, your current program is broken I think 21:15:48 pikhq, wumpus no longer works 21:15:54 Yeah. Not sure why. 21:15:58 pikhq, I think read char perhaps? 21:16:05 Possible. 21:16:17 Though rot13 still works. 21:16:17 hm no 21:16:28 robot.b93 still works 21:17:49 pikhq, this is also broken: http://sprunge.us/QVgW (fib.bf) 21:17:55 (usage: give a number, hit enter) 21:18:11 $ ./cfunge ../examples/fib.bf 21:18:11 9 21:18:11 34 21:18:28 pikhq, that is what should happen 21:18:43 And what actually happens? 21:18:52 oh wait, that a can be changed to 91+ 21:18:56 but it is still broken 21:19:01 pikhq, it outputs lots of zeros 21:19:11 Weird. 21:19:20 wait now it works 21:19:23 heisenbug 21:19:35 Here it does a lot of nothing. 21:19:49 Oh, input. 21:20:04 -!- oerjan has quit (Quit: Good night). 21:20:08 Yeah, whole lot of 0s here. 21:20:54 pikhq, well first changing it from a to 91+ didn't fix it 21:20:55 then it did 21:21:12 so consider it a non-reproducible heisenbug 21:21:19 (a is b98) 21:21:34 Wait, "a"? Ah. No wonder it does a whole lot of nothing. 21:22:13 Okay, then. It's just wumpus. And I got nothing. 21:22:37 pikhq, on wumpus? 21:22:40 well, trace it 21:22:44 I get it ignoring my inpu t 21:22:47 input* 21:22:54 pikhq, trace it and compare to last working trace 21:23:03 hg pull the old revision 21:23:24 (or however you do that with hg) 21:23:29 It's annoying that these valgrind errors list "HeaderFileFromTheLibrary.h:1234" for an error inside my function when the error happens in an inlined function; because then it doesn't list the line number where in my function it happens. 21:23:42 I'll futz with it later. 21:23:49 fizzie, --db-attach=yes 21:23:53 fizzie, and do bt 21:24:18 fizzie, heck valgrind should provide a bt too 21:24:52 AnMaster: It does provide a backtrace, but the problem is that it's an inlined function, there's no call there. In place it lists something like: 21:24:54 ==14642== by 0x4EA678: CodegenLLVM::compile(Trace*, TList*, int) (Function.h:126) 21:25:21 Where CodegenLLVM::compile is my function, but Function.h:126 is some inlined thing inside LLVM's Function.h header. 21:25:39 So it doesn't list the spot in the CodegenLLVM::compile function where the error actually happens. 21:26:34 gdb's backtrace somehow manages to list it properly, though, so --db-attach=yes helped. 21:30:34 I'm a bit unsure on how I managed to get an "Invalid write of size 8" in llvm::Function's constructor, though. It refers to a block free'd by llvm::Function's destructor earlier, but (if I understood the LLVM docs right) it should be safe to say "delete fun" where fun is a llvm::Function*; the destructor should remove all references to the function. 21:33:20 Perhaps it only removes all references held by the function, and I need to call fun->eraseFromParent(); instead. 21:33:22 fizzie, Can't help you there. Too much C++ nonsense 21:33:30 "This method unlinks 'this' from the containing module and deletes it." 21:34:00 I'm not sure it's C++ nonsense, per se; it's more about LLVM's garbage-collection memory-handling nonsense. Which probably makes an amount of sense, I'm just very unfamiliar with it. 21:35:15 Yes, it fixed that particular problem at least. 21:36:39 There's one "Invalid read of size 1" in llvm::JIT::getPointerToFunction still, and it's from address "0x8", which "is not stack'd, malloc'd or (recently) free'd"; well, that's not a surprise, but I doubt it should refer to 0x8 anyhow. 21:37:03 heh 21:37:35 fizzie, you know, I would have been able to tell that you wrote that line even without the nick at front. 21:37:45 Sometimes you have a very distinctive style 21:37:51 can't really pinpoint what it is 21:41:24 %stack2 = phi i32* [ %entry_stack, %FunEntry ], [ , %Code11 ] ; [#uses=1] 21:41:32 The might not be what I want. 21:43:29 It seems to get a bit confused if there's an entry point immediately after a _ branch. 21:49:47 fis@eris:~/src/jitfunge/src$ echo '(hello)S' | ./jitfunge ../underload.b98 2>/dev/null 21:49:48 unterminated (. 21:49:52 Well, it doesn't crash... 21:51:12 fizzie, that is one step forward 21:51:24 fizzie, also: try mycology, it tells you when something is wrong 21:51:37 it is probably saner to make it pass a bit further first 21:52:48 Guess so; though it's a bit of a big program, long traces to look through. 21:55:26 fizzie, well getting mycology going a bit of the way should help 21:55:45 I guess I should at least add the , there. :p 21:57:18 The ., I mean. 21:58:47 indeed 21:59:02 fis@eris:~/src/jitfunge/src$ ./jitfunge ../../jitfunge_old/jitfunge/myco/mycology/mycology.b98 2>/dev/null 21:59:02 0 1 2 3 4 5 6 7 21:59:02 GOOD: , works 21:59:02 Segmentation fault (core dumped) 21:59:05 Heh, it got worse. 22:01:04 $1 = (struct llvm::Function *) 0x0 22:01:07 That's probably why. 22:01:13 fizzie, backtrace is useful? I'm surprised 22:01:30 As long as you bother stepping out of the LLVM internals, sure. 22:01:45 fizzie, what if it crashes in generated code? 22:01:57 Then it'll probably be less helpful. 22:02:25 heh 22:02:33 0 1 2 3 4 5 6 7 22:02:33 GOOD: , works 22:02:34 GOOD: : duplicates 22:02:34 GOOD: empty stack pops zero 22:02:34 GOOD: 2-2 = 0 22:02:34 GOOD: | works 22:02:36 GOOD: 0! = 1 22:02:38 Segmentation fault (core dumped) 22:02:40 Yay, it got further. 22:02:41 heh 22:02:42 Soon it'll be too long to paste here. :p 22:03:40 Crashes when compiling a !. 22:04:30 mhm 22:04:55 fizzie, for bug testing maybe you should make it always compile the trace even the first time 22:05:11 Do you happen to have a pasted mycology output somewhere? (Though I guess I could just run it with some real interpreter.) 22:05:23 fizzie, sec 22:05:25 The Mycology comparison page links to .txts for reference output 22:05:30 iki.fi/deewiant and browse. 22:05:47 fizzie, http://sprunge.us/KFKR 22:05:47 First column of the table IIRC. 22:05:51 Deewiant: Oh, those are links. I didn't notice. :p 22:05:58 I was there already, but only saw the fancy table. 22:06:52 In this case I think I remember by heart that it tries 7! = 0 next 22:07:01 Don't know what's after that, though. 22:07:09 Right; it was compiling the "7!" bit, and I had used regs[arg->value] directly, whereas I should've used get_arg_value(arg), because for the "7!" case arg->value had a constant 7 instead of a register number. 22:07:18 $1 = {arg = 7, c = 1 '\001'} 22:08:12 GOOD: 7! = 0, followed by a "Gcodegen.cc:263: [compile] not handled: 42". 22:08:26 That'd be *? 22:08:30 Yes. 22:08:35 Who needs to multiply numbers anyway? 22:08:37 :-) 22:10:33 Also my - instruction subtracts values the wrong way around, eh-heh. 22:10:45 Why didn't you make that "2-2 test unsymmetric? Didn't we talk about this?-) 22:11:01 I don't know how you people manage these symmetry failures, I don't think I've ever coded one :-P 22:11:16 ffs 22:11:27 I have so many intermediate data structures, I can't be expected to remember which way I've put the arguments in there. 22:11:39 Your fault for overengineering :-P 22:11:46 haha 22:12:04 Last time I was accused of underengineering when it wasn't trivial to switch backends. :p 22:12:13 ;-P 22:12:27 GOOD: 8*0 = 0 22:12:27 GOOD: # < jumps into < 22:12:27 GOOD: \ swaps 22:12:27 Gcompiler.cc:334: [compile] unknown op in intermediate compiler: 96 22:12:42 96... it's before a... dunno 22:12:50 It's the backtick. 22:12:56 Ah. 22:13:02 fizzie, did it compile the \ btw? 22:13:11 fizzie, or just trace it? 22:13:37 fizzie, as I said you might want to actually compile these all the time during this phase of development 22:13:44 It does compile \. It doesn't generate any code for \, though. 22:13:52 It's just a matter of swapping register names, after all. 22:13:53 fizzie, well that could be an issue 22:13:57 hah 22:14:16 No, I mean, it doesn't need to. If there's a stand-alone \, it will create two stack pops and two stack pushes. 22:15:45 Actually it seems to compile out some of mycology's tests too, since the arguments to _s are constant. 22:16:27 fizzie, hm. You know this will be a problem, that it won't test the "we don't know the value at all" case 22:16:36 or it won't test "constant one" 22:25:09 There's in fact almost three different implementations for many instructions, because the intermediate-form compiler does constant-folding. It's a leftover from the non-LLVM backend days. These days I could disable all that and let LLVM's IRBuilder and/or optimizer do it directly. 22:25:23 GOOD: 01` = 0 22:25:23 GOOD: 10` = 1 22:25:23 ... then an infinite loop. 22:25:38 fizzie, infinite loop of what? 22:25:44 -!- kar8nga has quit (Remote host closed the connection). 22:25:47 Of no output. 22:26:01 fizzie, ah, so not of those two lines repeating? 22:26:09 No, those came just once. 22:26:16 "GOOD: 900pg gets 9" is supposed to come next. 22:26:40 Interestingly it seems to be an infinite loop not in generated code. 22:26:45 fizzie, how if your fungespace implemented? 22:26:47 I have an excuse for using (0,0) there, since it makes the code 6 chars shorter. 22:26:51 fizzie, quad tree? hash table? 22:27:02 Deewiant, :P 22:27:16 AnMaster: Which actually matters in the Befunge-93 area. 22:27:19 Just a regular hash table at the moment. 22:27:24 Deewiant, yeah 22:27:44 fizzie, do you generate 64 bit code nowdays? 22:28:13 fizzie, and how hard would switching to that be? 22:28:20 if you still generate 32-bit 22:28:29 Should be pretty trivial with LLVM. 22:28:30 llvm would do some of the work 22:28:41 Deewiant, you still have to care about type sizes to some extent 22:28:47 Even the previous manual code-generator did that, with a set of 32-bit #ifdefs. Currently I think it generates 64-bit code; it's really pretty abstracted. 22:29:00 I use 32-bit cells currently, but that's just a two-line change. 22:29:10 fizzie, hah, when I last saw the old one it was 32-bit only 22:29:32 Yes, there's been one or two iterations in-between, more or less borken. 22:32:04 fizzie, how much easier is it using the llvm backend? 22:34:25 Somewhat. I can't really quantify it much. Not terribly much; I had a reasonably similar assembly-generating class in the old jitfunge, though LLVM's IRBuilder is a bit more nicer to use. And at least I don't have to spend time adding features to it whenever I need something I haven't needed before. 22:34:37 The infinite loop seems to be in (427, 17) with delta (-1, 0); there's a space there, and for some reason it just refuses to move on. 22:35:16 One wonders why your x coordinate is so high. 22:36:29 Should it wrap around close to these parts? I guess it might, but not before the 900pg test. 22:36:42 Right after the 900pg, IIRC. 22:36:48 I think my wrapping's completely untested. 22:37:00 I think your wrapping won't work. ;-) 22:37:02 s/untested/broken/ 22:39:17 My phrasing was more gentle. 22:39:27 fizzie, and? 22:39:33 And inaccurate. 22:39:38 hah 22:39:50 so it was broken then? 22:40:07 Probably; I haven't exactly figured out yet how. It might also just get lost somehow. 22:41:41 aka broken ;P 22:42:46 It enters row 17 at column 13 (from row 16), then the next traced X coordinates are: 12, 11, 9, 8, 6, 7, 8, 11, 13; then at (12,17) with delta (-1,0) it compiles something, comes out of it at (5,17) still moving backwards, traces a single $ instruction, and after that trace has been finished it suddenly is there in (427,17). 22:43:16 The $ there on that line looks as if it's supposed to wrap there. 22:44:02 fizzie, how did it mirror there? 22:46:09 There's an _ at column 6; it hits that, prints something, goes to the < at 13, then enters a print loop. 22:46:33 That's okay so far; then it starts tracing from the _ leftwards, reads the $, and should wrap somewhere. 22:46:49 Instead it ends the trace and comes out of the trace function at column 427. 22:46:49 Certainly not to column 427. 22:47:01 Yes, I guess you could call that broken, if you were so inclined. 22:48:27 XD 22:49:01 Deewiant: The cardinal movement thing wraps by setting the X coordinate to the largest Y value. :p 22:49:13 :-D 22:49:43 Hrmm, well: 22:49:44 Incidentally, if your line count is 427, your Mycology is very old or you're doing something else wrong. 22:49:51 This is very old. 22:49:56 ../../jitfunge_old/jitfunge/myco/mycology/mycology.b98 22:50:03 There are bugfixes in the new ones, you know? :-P 22:50:28 Well, now, at least this looks interesting: 22:50:35 GOOD: 01` = 0 22:50:35 GOOD: 10` = 1 22:50:35 GGBG 22:50:35 GOOD: a pushes 10 22:50:35 GOOD: b-f push 11-15 22:50:36 GOOD: [ turns left 22:50:38 GOOD: ] turns right 22:50:39 GGBG 22:50:40 GOOD: instructions between ; are skipped 22:50:42 BUBAD: k reflects 22:50:44 And BUBAD. 22:50:44 BUBAD! 22:51:05 y'might want to check out the latest. 22:51:06 Bubu-bubad to the bone. 22:51:07 :P 22:51:31 Have to go to sleep, wake-up time at something like 05am "tomorrow"; will continue this hilariosity later. 22:51:52 fizzie: Now that you're around k, bear in mind that that Mycology will probably disagree with the current one about it. 22:52:07 At least I think that 427 lines implies somewhere around release one or two. 22:52:26 Hell, I might not have something that old under revision control. 22:52:27 I'll get a new one, don't you worry. Though the GGBG and BUBAD lines are what I'll look at first. 22:52:52 It should say "Befunge-98 detected" and stuff before it goes to a. 22:53:25 Just for fun, I'll try the newest one too. 22:54:04 Well, no changes so far; it's still GGBG BUBAD. I guess you haven't changed this early bits significantly. 22:54:24 No, not significantly. 22:54:30 (Maybe not at all up to that point.) 23:00:47 I think from this we can learn that Befunge is just plain hard to implement at all. 23:01:16 There's a bit of a gap between "implement" and "JIT compile" 23:01:39 Yeah, but even B93 gave me some trouble. :P 23:02:02 Granted, what I was doing *was* a not-very-good threaded code compiler. But still. 23:02:37 Half your problem was writing threaded code in C the first time around :-P 23:03:01 :P 23:14:30 -!- tombom_ has quit (Quit: Leaving). 23:50:27 -!- MizardX has quit (Ping timeout: 276 seconds). 2010-04-13: 00:06:26 Are there any reasons not to use Scala? 00:08:35 if you don't have jvm them yes 00:14:09 wow, I knew stinkhorn was slow at the `y' instruction, but... wow 00:14:44 17500 times as slow as ccbi2 00:15:33 I never really considered the allocation strategy on the stack stack since I just used STL containers. 00:15:49 (well, I tried a pool allocator, but I didn't try allocating in bigger chunks) 00:19:09 * Sgeo_ is starting to like Scala 00:19:38 I think I can trim the funge space memory usage significantly, too - allocating a whole fungespace page for writing only a few cells is wasteful 00:21:04 -!- FireFly has quit (Quit: Leaving). 00:21:23 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:46:43 -!- augur_ has quit (Ping timeout: 252 seconds). 00:55:09 -!- coppro has joined. 01:15:31 -!- augur has joined. 01:32:10 -!- Asztal has quit (Ping timeout: 245 seconds). 01:43:41 -!- manager has joined. 01:43:46 www.penisland.us 01:43:56 -!- manager has left (?). 01:44:35 -!- aschueler has quit (Quit: leaving). 01:55:48 That site is both not Pen Island, and surprisingly penis-free. (Although not at all porn-free) 02:21:52 -!- bsmntbombdood__ has joined. 02:22:22 -!- bsmntbombdood_ has quit (Ping timeout: 264 seconds). 02:45:24 -!- bsmntbombdood__ has quit (Ping timeout: 276 seconds). 03:06:58 -!- jcp has quit (Ping timeout: 260 seconds). 03:07:24 -!- lament has joined. 03:09:11 -!- bsmntbombdood has joined. 03:18:36 -!- nooga has joined. 03:21:22 -!- jcp has joined. 03:37:00 -!- uorygl has joined. 03:37:12 I wonder if there's a really easy trick I could use to remember things really well. 03:37:20 If I think of one, I'll let you guys know. :P 03:39:06 <3 Power Grid 03:39:38 Decent board game. 03:39:47 Is that a song by Jerry Martin? 03:39:54 No, alas, it's a board game. 03:39:59 No, it's a board game. 03:40:26 A player bought a plant for 121 Electro.. then lost to a player who had /exactly/ enough money to end the game 03:43:23 Note to self: Doesn't matter that ANGEL is supposed to store my work. Save anyway. 03:43:46 coppro: Hahah. 03:44:28 the funny thing was he would have won if he had just stopped bidding and bought a different power plant for cheaper, paid a little more for resources (it was the fusion plant) and bought himself a winning city 03:46:13 This is.. self-slappingly annoying 03:46:37 Sgeo_: hmm? 03:47:14 Did some homework a while back, put it on the school site through which my professor receives homework 03:47:34 Professor did not receive homework. I don't know if I saved, but if I did, I don't see any evidence of such 03:47:42 :( 03:48:00 I should really start a git repo for my homework 03:53:23 Or do it on paper! 03:53:40 I must admit I sort of like being a Luddite. 03:55:34 I'd lose the paper 03:55:43 lol 03:55:47 I'm in Sgeo_'s boat 03:56:05 I wouldn't lose the paper, I'd leave it in an easy-to-remember but inaccessible place. :P 03:56:35 If you see me taking notes in class, it's either because I'm taking them for someone else [probably a female], or because I hope that the physical action of writing helps memory somehow 03:57:29 If you see me taking notes in class, they are incomprehensible to anyone but me. 03:58:08 It's gotten worse with the addition of kanji to my idiosyncratic script... 03:58:25 pikhq, study the etymologies of Chinese characters. 03:58:36 * Sgeo_ wonders if his professors would allow him to take notes on his phone.. 03:58:54 uorygl: I have a bit. 03:58:55 That way, you'll have tons of little fragments of writable stuff. 03:59:00 Fairly interesting. 03:59:06 Sgeo_: only if your phone is an iPad. :P 03:59:07 Dude, I know 2,000 kanji. 03:59:16 I already have tons of fragments of writable stuff. 03:59:16 :) 03:59:18 Hmm. When did you start learning those things? 03:59:28 Kanji. 03:59:29 uorygl, I'm perfectly willing to use the keyboard of a Nexus One 03:59:46 Start? Few years ago. Go hardcore and actually learn them well? 2.5 months ago. 03:59:53 Hmm. 04:00:21 I hereby decree that I did precisely the same thing with Lojban's gismu. 04:00:33 I did something similar with Haskell 04:00:34 Helpful, no? 04:00:54 Although my hardcore Haskell phase seems to be ending 04:01:16 Anyway, I mentioned wondering if there was a really easy trick I could use to remember things really well. Here's a hinty thing: "Unless your emotions are somehow involved with your brain in any subject you are looking at, you will learn nothing about it." --David Seabury 04:01:30 Not to be confused with David Sedaris, who is some guy I'm actually familiar with. 04:02:00 -!- Oranjer has left (?). 04:02:54 and the most suitable emotion is terror 04:03:56 "Ohmygodohmygod. This word means 'run'. What if someone yells 'ko bajra' at me because a bomb's about to go off and I don't understand and it explodes and I DIE?" 04:10:54 Hah. 04:12:03 http://www.thestar.com/news/insight/article/793455--for-those-who-cannot-see-erotica-in-3-d <3 Canada 04:12:27 * Sgeo_ would ask for help finding his homework, but somehow, I don't think anyone other than myself can help 04:19:47 I'm going to switch to Linux so I can grep 04:23:51 -!- Sgeo_ has quit (Read error: Connection reset by peer). 04:25:11 -!- oklofok has joined. 04:28:33 -!- oklopol has quit (Ping timeout: 248 seconds). 04:49:55 blabs 05:06:52 This soundtrack contains a song called "The Kill Ring". 05:07:03 As far as I can tell, that's an Emacs reference. 05:10:46 -!- jcp has quit (Read error: Connection reset by peer). 05:15:07 -!- oerjan has joined. 05:23:24 I wonder if there's a really easy trick I could use to remember things really well. 05:23:32 i knew one once, but i forgot it. 05:28:02 Alas. 05:28:14 golf 05:28:19 Who's augur ? 05:28:55 a linguist 05:29:11 who's who anyway? :D 05:29:22 A "Whp 05:29:29 My name is Adrian. 05:29:31 I no type can. 05:29:43 A "who's who on #esoteric" book would probably sell well. 05:29:49 :D 05:29:55 so true 05:30:17 What's his connection to me? I apparently know him, but I'm not sure how, in his IRC incarnation. 05:31:16 well how should i know, i've never seen _you_ before yesterday... when you were "idle for 41 days". how did you _manage_ that? 05:31:55 seeing _underlined_ text in a terminal is so _cool_ 05:32:02 I'm often busy. 05:32:28 also are you from norway? i knew a Lamo at university. 05:32:52 i'm in a troll mood 05:33:08 do norwegians actually believe in trolls? 05:33:09 tunes.org/~nef//logs/esoteric/09.08.19 05:33:18 is what brought me here. 05:33:21 nooga: i'm sure there are _some_ 05:34:31 near Bodo 05:35:28 Hrm. This isn't helping. 05:35:31 You've got that Trolltech thing, at least. 05:35:55 The log linked above implies that I know augur elsewhere via another name. 05:36:14 I'm trying to connect the two nodes. 05:36:45 Adrian^L: well "come to defcon" was mentioned 05:37:00 Adrian^L: he used to go as psygnisfive btw 05:37:21 That answers everything. 05:37:28 Thanks, oerjan :) 05:37:38 you're welcome :) 05:38:03 Disorganized ex-crime owes you a favor ;> 05:38:11 whoops 05:38:33 Why whoops? 05:38:46 that sounds scary :D 05:39:04 it ought not. 05:39:45 Why have this channel here, as opposed to, say, 2600Net? 05:40:20 wny not freenode? 05:40:24 ask the founder, who disappeared years ago 05:41:48 mumble. 05:47:21 freenode is awesome, if you've want to talk about softwarem say XYZ, you go to a channel #XYZ on freenode and someone is there 05:47:46 almost always 05:48:02 although I've unfortunately not ever found a channel for discussion of gaming 05:48:23 ./j #sex 05:48:47 software exchange 05:50:44 no, just try it ;d 06:09:53 Adrian^L: So, you have a Wikipedia article. Niceness. 06:10:22 Crappy reasons to get it, but hey. :P 06:14:13 -!- Alex3012 has quit (Read error: Connection reset by peer). 06:14:46 -!- Alex3012 has joined. 06:22:27 -!- Rugxulo has joined. 06:22:57 I think CCBI --befunge93 has a bug with regards to ';' (semicolon) 06:24:41 hmmm, but fbbi -93 seems to also do the same ... shouldn't they only skip "; ... ;" when in 98 mode?? 06:25:02 (CCBI doesn't skip but reflects back, which can't be right in 93 mode) 06:28:00 Why wouldn't reflecting back be right? IIRC the Befunge-93 spec doesn't specify at all what should be done if trying to execute an undefined opcode, and ; is not defined there. 06:28:29 well none of the other 93 interpreters I'm trying seem to reflect, so ... 06:29:03 Yes, but it's still not exactly forbidden. 06:29:18 Admittedly many 93 interps treat non-defined ops as nops. 06:29:49 including the original (although it whines without -q) 06:34:03 -!- sebbu2 has quit (*.net *.split). 06:34:04 -!- augur has quit (*.net *.split). 06:34:04 -!- cheater2 has quit (*.net *.split). 06:34:04 -!- EgoBot has quit (*.net *.split). 06:34:04 -!- HackEgo has quit (*.net *.split). 06:34:04 -!- olsner has quit (*.net *.split). 06:34:04 -!- cal153 has quit (*.net *.split). 06:34:05 -!- oklofok has quit (*.net *.split). 06:34:05 -!- uorygl has quit (*.net *.split). 06:34:05 -!- comex has quit (*.net *.split). 06:34:05 -!- jix has quit (*.net *.split). 06:34:06 -!- Leonidas has quit (*.net *.split). 06:34:06 -!- mycroftiv has quit (*.net *.split). 06:34:06 -!- coppro has quit (*.net *.split). 06:34:07 -!- ineiros has quit (*.net *.split). 06:34:07 -!- Quadrescence has quit (*.net *.split). 06:34:08 -!- Rugxulo has quit (*.net *.split). 06:34:08 -!- SimonRC has quit (*.net *.split). 06:34:09 -!- mtve has quit (*.net *.split). 06:34:09 -!- lifthrasiir has quit (*.net *.split). 06:35:55 -!- Rugxulo has joined. 06:35:55 -!- oklofok has joined. 06:35:55 -!- uorygl has joined. 06:35:55 -!- augur has joined. 06:35:55 -!- coppro has joined. 06:35:55 -!- sebbu2 has joined. 06:35:55 -!- cheater2 has joined. 06:35:55 -!- HackEgo has joined. 06:35:55 -!- EgoBot has joined. 06:35:55 -!- comex has joined. 06:35:55 -!- jix has joined. 06:35:55 -!- Quadrescence has joined. 06:35:55 -!- olsner has joined. 06:35:55 -!- SimonRC has joined. 06:35:55 -!- cal153 has joined. 06:35:55 -!- ineiros has joined. 06:35:55 -!- mtve has joined. 06:35:55 -!- lifthrasiir has joined. 06:35:55 -!- Leonidas has joined. 06:35:55 -!- mycroftiv has joined. 06:36:11 wb 06:36:51 -!- AnMaster has quit (*.net *.split). 06:36:51 -!- Adrian^L has quit (*.net *.split). 06:36:51 -!- atrapado has quit (*.net *.split). 06:36:52 -!- pineapple has quit (*.net *.split). 06:36:52 -!- fungot has quit (*.net *.split). 06:36:53 -!- Geekthras has quit (*.net *.split). 06:36:53 -!- nooga has quit (*.net *.split). 06:36:53 -!- bsmntbombdood has quit (*.net *.split). 06:36:53 -!- sshc has quit (*.net *.split). 06:37:27 -!- nooga has joined. 06:37:27 -!- bsmntbombdood has joined. 06:37:27 -!- atrapado has joined. 06:37:27 -!- AnMaster has joined. 06:37:27 -!- pineapple has joined. 06:37:27 -!- Adrian^L has joined. 06:37:27 -!- sshc has joined. 06:37:27 -!- fungot has joined. 06:37:27 -!- Geekthras has joined. 06:37:53 -!- sshc has quit (Max SendQ exceeded). 06:38:14 -!- sshc has joined. 06:44:54 -!- Rugxulo has quit (Quit: Rugxulo). 06:45:25 -!- oerjan has quit (Quit: leaving). 07:00:52 -!- FireFly has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:03:54 -!- lament has quit (Quit: lament). 08:06:13 -!- Rugxulo has joined. 08:06:42 the Esolang wiki on Befunge really needs revising 08:07:00 but at least somebody added an interesting link lately: "Marsh" ( http://github.com/serprex/Befunge ) 08:07:29 on my P4, it's pretty fast (GCC-compiled), not so much my other cpus 08:09:44 We had some talk about Marsh here. 08:10:00 It's also somewhat broken; the default version doesn't even do "pop 0 from empty stack". 08:10:10 There were some issues with the marsh_safe version too. 08:10:22 C99, assumes "/dev/random" exists, fixit.py kludge (which I'm not entirely sure about) 08:10:47 well, it's obviously not perfect, but it beats the x86 BEFI.COM on this P4 with my lame benchmark.bef 08:11:18 possibly more to do with the P4's quirks than anything, other machines are much slower 08:12:02 Also, re. speed: http://pastebin.com/nfmUUEwq 08:12:20 If you have an actual benchmark.bef for Befunge-93, I'd like to have it. 08:12:24 My Befunge interpreter appears to use the same implementation technique, but with different bugs. :P 08:12:37 so "ff" is yours? 08:12:43 written in what? 08:12:54 Written in C. 08:13:10 you're gonna laugh (or get mad), but here's my "benchmark" (lame, I know): 08:13:11 91+:*-:0`#@ #._ 08:13:20 It's also mostly bug-free: http://pastebin.com/BmmymUz7 08:13:46 fizzie: What's the testfile.txt in question? 08:14:12 pikhq: The Complete Stories, Volume 1, Isaac Asimov. 08:14:20 (I just wanted some mostly-ascii text.) 08:14:23 Mmm. 08:14:40 It's a bit un-redistributable that way; perhaps I should've just generated something. 08:15:18 I'll go fetch something off of Gutenberg then. 08:15:34 fizzie, for a horrible laugh, read this: http://pastebin.com/QekgWsxT 08:16:54 156 ./a.out bench.bf 0.00s user 0.00s system 50% cpu 0.006 total 08:17:09 :) 08:18:12 Rugxulo: Mine might behave a bit less optimally in that benchmark, because ff's playfield is actually 256x256; I do wrapping by unsigned-char overflow. So there's more spaces to go through. 08:18:38 BEFI is actually 128*128, and it didn't hurt much there (obviously) 08:18:47 I guess the point is that GCC is better at P4 than others 08:18:59 -!- FireFly has quit (Quit: Leaving). 08:19:01 (IIRC, 26 secs. for marshsafe on the same benchmark) 08:20:00 I can't compare with cfunge, because cfunge doesn't handle EOF right for B93. 08:20:27 (reflect on EOF is but one valid behavior, and this ROT13 program assumes -1 = EOF instead) 08:20:46 So, need a better benchmark. :/ 08:20:53 27.410 secs. 08:21:02 Waiting for marshsafe to finish here. 08:21:06 (marsh.c but without fixit.py crud) 08:21:27 I haven't looked at what fixit.py does. 08:21:53 Does your benchmark work properly with non-safe marsh? It seems to pop once from empty stack for the first -, but maybe it doesn't hurt there. 08:21:54 so, what should the output from this actually be? 08:22:18 fizzie, who me? I think so, yeah 08:22:40 I'm going to guess "definitely not 156". 08:22:52 no 08:22:57 Hooray, I've found a small testcase that fails. 08:23:01 On my system, it outputs 2147483596 at the end; I guess it does -100 until the cell wraps around. 08:23:13 Good, the only other thing that failed was Hunt the Wumpus. 08:23:14 156 sounds a bit like byte-sized stack cell. 08:23:14 yes 08:23:16 that's correct 08:23:25 2147483596 is correct 08:23:36 Since -100 % 256 would be 156 for some values of %. 08:24:05 Gah. Yeah, it's still on char cells. 08:24:07 27.680 (marshsafe.c) 08:24:08 Lemme change that. 08:24:13 Strange, marshsafe doesn't seem to want to finish. 08:24:33 It now outputs -100 immediately. 08:24:47 Erm. *unsigned* int might help. XD 08:25:01 You want signed stack cells, in fact. 08:25:01 Or not. 08:25:09 Otherwise it'll output 2^32-100 immediately. 08:25:26 There's something else wrong there; it should stay in the loop as long as the value is <0, terminating when it wraps. 08:26:12 Rugxulo: Any ideas why marshsafe.c still hasn't finished for me? It's been some five minutes or so already. :p 08:26:33 how did you compile it? 08:26:57 gcc -o marshsafe marshsafe.c -std=gnu99 -O3 08:27:04 Imma sleep. I'll futz with this in the morning. 08:27:22 here's what I did: 08:27:23 gcc -std=gnu99 -DFUNGE marshsafe.c -o funge.exe -O2 -mtune=native -fmerge-all-constants -fomit-frame-pointer -fno-gcse 08:27:29 (slightly modified from makefile) 08:27:38 Oh, right, that damned -DFUNGE. 08:27:46 The most sensible thing ever. 08:28:15 fizzie, what cpu? (Core2, perhaps?) 08:28:36 It's an old-ish Athlon X2. 08:28:52 Uh, "5600+" or some other such silly model name. 08:29:11 can't be that old if it's X2 08:29:24 That's why the "-ish". 08:29:41 I don't know why he has #ifdef FUNGE ... what other use is marshsafe.c ????? 08:31:05 Gah, it still doesn't seem to be doing much; ^c'd it after three minutes. 08:31:15 try without -O3 08:31:16 Lunch now, will get back to benchmarking after. 08:31:51 I still say CCBI reflecting on ';' in B93 is wrong :-P 08:37:29 3 mins. for CCBI (in B98 mode) 08:44:21 BTW, I think "bef2c -p -o" + GCC ran second fastest on my old P166 08:45:55 7.5 mins. for "ccbi --befunge93" :-/ 08:46:02 weird 08:47:31 hey, I've been running an old version of Marsh, apparently it was updated "1 day ago" !! 08:47:37 -!- aschueler has joined. 08:48:01 (runs Hunt the Wumpus now???) 08:50:47 seems fixit.py is changed, no longer assumes "%rax" is available 08:53:28 27.350 secs (marsh), 27.630 secs (marshsafe) ... so not much difference 08:57:09 heh, "README" (but in French, go figure) 09:00:11 wait, "Bejit" ... perhaps he means JIT for Befunge?? 09:00:14 Mine is around two days old, so I guess it might not be the newest either. 09:00:34 April 11th, that's what it says on the Github site 09:00:43 -!- Gracenotes has quit (Ping timeout: 260 seconds). 09:01:34 Hrm, even with your command line "time ./marshsafe benchmark.bef" -- where benchmark.bef has 91+:*-:0`#@ #._ only -- doesn't seem to finish in any sensible time. 09:01:56 did you remember -DFUNGE ? 09:02:07 Yes, I copy-pasted what you had. 09:02:20 hmmm, odd ... what GCC? 09:02:20 It's also eating 100% of CPU. 09:02:31 gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3 09:02:36 100% of an X2??? that can't be right 09:02:56 Yes, it goes up to 200%. 09:02:59 try with -O0 and see if it finishes there 09:03:19 it definitely should be done in under a minute on a modern cpu 09:03:32 Rugxulo: Uh, I think it's actually because the stack cell type is "long", and long on x86-64 is a bit longer. 09:04:10 I'll try with -m32 as a quick fix. 09:04:39 yikes 09:05:00 well that's an implementation bug anyways, B93 always has 32-bit stack, right? ;-) 09:05:19 -!- Gracenotes has joined. 09:08:30 fungus and mooz links on Esolangs wiki are broken 09:08:50 Yes, mooz's site has been gone for a long long time now. 09:09:09 Hm, there's something wrong with my current, cleaned-up version of ff; for the rot13 benchmark, http://pastebin.com/30vpMbwN 09:09:52 is mooz the same as this guy? http://frox25.no-ip.org/~mtve/code/eso/bef/ 09:10:09 No, that's a different person. 09:10:34 okay, it was the "mtv3" part that confused me 09:11:48 dunno why ff3 is slower, could be anything 09:12:27 MTV3 is a Finnish television channel; they had a free webspace thing going on way back when, mooz had his site there. 09:12:48 mtve = MTV Europe (dunno why he chose that nickname) 09:12:57 heck, he's here now (he's always here but "not") 09:40:49 -!- Tritonio_GR has joined. 09:56:58 -!- tombom has joined. 10:12:48 -!- lereah_ has joined. 10:46:20 -!- Rugxulo has quit (Quit: Rugxulo). 10:48:46 -!- bsmntbombdood has quit (Ping timeout: 264 seconds). 10:55:22 -!- BeholdMyGlory has joined. 11:03:52 -!- bsmntbombdood has joined. 11:12:29 Aw, Rugxulo already went? Anyhow, here's a ff3-vs.-marshsafe benchmark: http://pastebin.com/SgBzjEc6 11:13:53 Slightly different output from the two there. 11:14:00 (The blank line) 11:14:56 How does jitfunge manage on that one? Seems so simple that it might be able to handle it :-) 11:17:03 Hm, it prints out 0. :p 11:17:16 heh 11:20:05 It generates a single trace for most of that, containing 11:20:07 entry: 1 11:20:08 r0 <- STACK 11:20:08 r1 <- - r0, 100 11:20:08 STACK <- r1 11:20:08 r2 <- ` 0, r1 11:20:08 STACK <- r2 11:20:10 entry: 0 11:20:12 r3 <- STACK 11:20:14 _ r3 11:20:16 end 11:20:28 But for some reason the "end" command loops to entry point 0, not entry point 1. 11:21:40 The uncompiled trace looks like http://pastebin.com/03uCcPDD 11:22:28 exit[0] is the branch to the .@ bit, exit[1] should loop to the beginning, not the if itself. 11:25:05 LLVM doesn't seem to compile the equivalent C to just return a constant, but the loop completes in 0.00 seconds anyway. 11:25:59 GCC compiles the equivalent C to an infinite loop; bloody C with its unspecified integer underflow. 11:26:31 Another wrapping bug, heh. 11:26:56 Funny, now it prints out 200. 11:27:18 This time the compiled trace is: 11:27:20 entry: 0 11:27:20 r0 <- STACK 11:27:20 r1 <- - r0, 100 11:27:20 STACK <- r1 11:27:20 r2 <- ` 0, r1 11:27:21 _ r2 11:27:23 end 11:27:24 Can I tell GCC to optimize based on two's complement semantics? 11:28:32 Ah, -fwrapv. 11:28:55 Welp, it doesn't optimize it into a constant either. 11:29:18 Actually, that is "right" in the sense that it should get 200 from that; "r1 <- - r0, 100" means "r1 = 100 - r0", basically, and it's executed with stack of -100. Don't know how I've *again* managed to get arguments in the wrong order. 11:29:35 I thought you fixed that one already? :-P 11:29:43 I thought so too. 11:31:03 I think I may have misfixed it by reordering the stack-pop instruction generation when the fault was in fact in the stack-folding bit. 11:31:36 Both compilers have an extra, unnecessary 'test' instruction in the loop, too. 11:33:13 fis@eris:~/src/jitfunge/src$ time ./jitfunge ../../ff/benchmark.bef 2>/dev/null 11:33:13 2147483596 11:33:13 real 0m0.112s 11:33:13 user 0m0.090s 11:33:13 sys 0m0.020s 11:33:31 Well, it's not too shabby. 11:33:32 Sounds about right. 11:33:52 Are you using LLVM 2.6, by the way? 11:33:55 There's also quite a lot of tracing IO going out to /dev/null. 11:34:07 This is some sort of 2.7, whatever Ubuntu lucid had. 11:34:25 Version: 2.7~svn20100409-0ubuntu1 11:34:45 Alright. 11:35:21 I wonder if fixing this broke whatever it was that I misfixed last time. 11:35:32 It was something about p, but was it in mycology? 11:35:56 If it wasn't, it'll probably turn up in there at some point ;-P 11:36:14 At least current version runs mycology with the GGBGs and BUBADs. :p 11:39:22 Oh, right; it's most likely because the current LLVM codegen doesn't protect the stack, so popping from empty stack will confuse it. Maybe I'll add a test for that, and figure out how to do the funky segfault-trapping stack with LLVM later. 11:40:05 Given that it's platform-specific, you can't do it with just LLVM 11:40:24 Well, maybe there's a related intrinsic somewhere. 11:40:53 Yes, but I probably can hack together something that works on one platform based on what I already have. 11:40:58 The rest can use a slower stack. 11:41:15 I'm not even sure if it is faster; depends on the frequency of empty-stack-pops, of course. 11:41:27 Yes, of course you can use inline asm to do it however you like platform-specifically. 11:45:32 Do I need to create ptrtoint instructions if I want to compare two pointers? 11:46:00 I don't think so, no. 11:46:05 Ah, icmp can compare pointers too. 11:46:06 I think icmp works on pointers. 11:46:17 Yes, I just didn't expect, given the interger-sounding name. 11:46:34 "If the operands are pointer typed, the pointer values are compared as if they were integers." 11:50:16 -!- asiekierka has joined. 11:50:17 hi 11:50:44 i think i had an idea for a 2-command (space (NOP) and non-space (everything else)) esolang 11:51:11 but i don't think it'll be turing-complete 11:51:19 though wait, i have an idea how to make it so 11:54:02 Deewiant: Aw. Adding the stack underflow protection made it run completely without valgrind errors, but mycology's still BU-BAD. Must be a bug in my logic, then. (How unheard-of!) 11:54:15 Astonishing! 11:54:45 At least I got the underflow-protected stack pop done without having to add more basic blocks in the mix. :p 11:54:52 POSTANTOUS: http://pastebin.com/Ce9GLxdn 11:54:56 design draft 11:55:08 also 11:55:14 it's all seen as in 11:55:24 ^ being the NORTH of the instruction pointer's direction 11:55:28 so if it's heading west, ^ is WEST 11:55:32 and like that 11:56:03 what do you think 11:56:16 POSTANTOUS stands for POSition's imporTANT...ous 11:57:40 http://pastebin.com/GLafvxmk 11:58:11 new version of draft 11:58:33 now 11:58:50 the problem is i dont think any "this setup might stand for that, and also that" things can be found 12:02:00 asiekierka: how about building 8088 based computer using prototype board and wires 12:02:27 i wish i had a protoboard and wires 12:02:28 :( 12:03:07 -!- _asw has joined. 12:03:33 http://pastebin.com/frdr6jm9 12:03:37 DRAFT v3 12:03:48 i'm writing BIOS for that thing ;d 12:03:54 wow 12:03:56 lucky you 12:04:10 i wish i could have a huge wirewrap protoboard 12:05:49 not lucky, just bored :D 12:07:37 NEW version: http://pastebin.com/why9uvaY 12:07:43 Also I want to have a prototype board, wires 12:07:45 and tons of chips 12:07:59 i want to make a 6502 based computer 12:08:01 -!- _asw has left (?). 12:08:43 now i think i've implemented every combination 12:08:52 if any other combination is found 12:08:56 it just goes forward 12:09:58 i want a huge wirewrapping protoboard 12:10:00 and wires 12:10:02 and wirewrap tools 12:10:04 and infinity chips 12:16:54 -!- asiekierka has quit (Ping timeout: 258 seconds). 12:20:23 -!- asiekierka has joined. 12:24:57 -!- asiekierka has quit (Ping timeout: 258 seconds). 12:28:29 -!- asiekierka has joined. 12:33:00 -!- asiekierka has quit (Ping timeout: 258 seconds). 12:34:54 -!- kar8nga has joined. 12:36:35 -!- asiekierka has joined. 12:43:21 -!- asiekierka has quit (Ping timeout: 258 seconds). 12:46:50 -!- asiekierka has joined. 12:53:42 -!- asiekierka has quit (Ping timeout: 258 seconds). 12:55:29 and 12:57:11 -!- asiekierka has joined. 13:01:45 -!- asiekierka has quit (Ping timeout: 258 seconds). 13:02:00 Deewiant: "UNDEF: edge # skips column 80" for ff3; does that mean that a # on the left edge skips the right-most column of the playfield? (I mean, you could be using 0-based column indices there, and mean that a # on right edge "skips" the non-existent column 80 and hits 0, which has the opposite meaning.) 13:02:29 I'm not trying to be confusing :-P 13:02:39 That'd be a first! Uh, I mean... 13:02:48 So, the former. 13:02:50 -!- Gregor has set topic: But I forced it right! | This space intentionally left | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 13:03:05 Good, good; that's what I was hoping for, too. 13:05:17 -!- asiekierka has joined. 13:05:18 -!- Asztal has joined. 13:08:05 Deewiant: I did ff3's wrapping by stealing the "border the playfield with two columns/rows of a special 'jump N spaces to the proper direction" idea from mooz, but adapting that to the "code is represented by a playfield-shaped block of jump target pointers" idea from marsh/others -- which means the jump-instructions don't have to worry about someone p'ing them on the playfield ... 13:08:07 ... and finally twisting that by making the playfield be basically a 84x29x4 array of pointers, where depth equals delta, and I have 4 implementations of each instruction, with a hardcoded "ip += offset; goto *ip;" afterwards. 13:08:50 A representative sample: http://pastebin.com/0ZG5S5cR 13:09:04 (That's the <>^v implementations.) 13:09:48 -!- asiekierka has quit (Ping timeout: 258 seconds). 13:09:58 >_< 13:10:06 What, you don't like it?-) 13:11:12 Now do the equivalent for Befunge-98: keep an w*h*5 array where the fifth is used for noncardinal deltas 13:12:02 I guess it could be done, theoretically speaking, but I don't quite feel like it. 13:13:24 -!- asiekierka has joined. 13:15:38 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds). 13:21:42 "About NetHack: twilight under the low overhang of the greek gods, and around the egg, keeping it warm and helping it to open any lock...." 13:21:44 Surreal. 13:22:12 The Nethack ones seem to be the best. 13:22:27 -!- asiekierka has quit (Ping timeout: 258 seconds). 13:22:49 It's a relatively low-order model, IIRC, so it doesn't quote so much verbatim, instead... innovates more. 13:25:56 -!- asiekierka has joined. 13:32:48 -!- asiekierka has quit (Ping timeout: 258 seconds). 13:34:48 -!- tombom_ has joined. 13:36:17 -!- asiekierka has joined. 13:36:39 -!- tombom has quit (Ping timeout: 276 seconds). 13:43:09 -!- asiekierka has quit (Ping timeout: 258 seconds). 13:46:38 -!- asiekierka has joined. 13:56:54 fizzie, "op_goleft_right"? 13:57:17 It's like: Keep left → 13:58:32 Now do the equivalent for Befunge-98: keep an w*h*5 array where the fifth is used for noncardinal deltas <-- This would assume static area/AABBs right? 13:59:14 It's independent of your storage solution, but it's probably just a pessimization with hash tables. 13:59:56 indeed 14:07:18 -!- asiekierka has quit (Ping timeout: 258 seconds). 14:10:47 -!- asiekierka has joined. 14:15:19 AnMaster: op_goleft is the op, and _right is the current delta; so that bit is called when you hit a < while moving right. 14:17:57 And what it does is ip -= sizeof(opset) + sizeof(void *); -- subtracting sizeof(opset) moves it one cell left in the code-playfield, and the sizeof(void *) adjustments alters the "depth" so that it will keep going left from then on. 14:19:02 I probably should've just used a void **ip so that the pointer arithmetic would make that look simpler (ip -= 4+1) there, but, well. 14:20:51 (typedef void *opset[4]; currently.) 14:22:31 -!- augur has quit (Ping timeout: 240 seconds). 14:27:21 heh 14:27:37 fizzie, how much do you gain from those 4 pointers thingy? 14:27:46 fizzie, compared to doing it a more "normal" way 14:28:30 fizzie, also why do you store them interleaved? Wouldn't storing the directions separate possibly be better for cache? Well, depends on the type of program 14:29:12 fizzie, also, are you sure that storing a 32 bit offset to some base wouldn't be faster than storing a full 64-bit pointer? Again due to cache 14:29:45 fizzie, oh and where can I get the full source of that program? 14:30:13 Of course I'm not sure, but it's still faster than marsh, which is somewhat similar but calls a "move" function via a function pointer after each instruction. 14:30:29 hm 14:30:48 fizzie, what does += PF_W * sizeof(opset); do? 14:30:57 PlayField_Width presumably. 14:31:05 Yes. Well, including the borders. 14:31:10 I.e. move down one Y-coordinate. 14:31:11 oh so that is the logic for moving to next cell? 14:31:34 fizzie, hm I would have expected it to be in the (presumably) macro IP_GOTO 14:31:57 #define IP_GOTO do { trace(); goto **(void **)ip; } while (0); 14:32:01 s/;$// 14:32:02 otherwise you have to duplicate a lot in about every function 14:33:15 It can't be in IP_GOTO because it depends on the direction. Most instructions are expanded from a macro, so there it is just "next" which expands to NEXT_LEFT (say) which expands to MOVE_LEFT; IP_GOTO; which expands to ip -= sizeof(opset); IP_GOTO; 14:33:26 fizzie, so no macro for it? Presumably for the non-direction changing instructions you have stuff like ip -= sizeof(opset);, ip += sizeof(opset); and so on duplicated a lot? 14:33:27 These direction-changing commands are special, because I need to adjust the distance to change delta. 14:33:36 ah 14:34:08 fizzie, the down_down, up_up and so on variants don't need that though 14:34:34 fizzie, what is the type of ip? 14:34:37 Yes, I just thought they looked aesthetically more pleasing like that, as opposed to having just MOVE_DOWN there. 14:35:27 It's an unsigned char * at the moment, with casts, but I have been thinking of changing it to void ** which is more right, and would remove some explicit sizeofs thanks to pointer arithmetic rules. 14:35:41 I never need to point between the void *s there, after all. 14:35:57 "so there it is just "next" which expands to NEXT_LEFT (say) which expands to MOVE_LEFT" <-- err, a lot of indirection in those macros? ;P 14:36:33 fizzie, yes the sizeof thingy confused me. What is opset btw? 14:36:41 (typedef void *opset[4]; currently.) 14:36:50 hm 14:37:27 fizzie, url to this amazing code 14:37:29 It's basically the four pointers to the different-delta implementations of a single playfield cell (or a single instruction, in the ops table). 14:37:33 There is still no URL. 14:37:43 fizzie, any reason not to upload it somewhere? 14:38:13 No particular reason, no. I just don't have a habit of sharing absolutely everything I do. 14:38:32 :/ 14:38:39 fizzie, could you please share this one? 14:38:58 Aren't you a more 98 person, anyway? 14:39:27 Your habits are poor. 14:39:30 It is still interesting to study. 14:39:34 I'll try to remember how I had my git.zem.fi configured as soon as I finish testing the non-interleaved version. 14:39:50 fizzie, how many files is it? 14:39:58 One. 14:40:05 well then, why not pastebin? ;) 14:41:37 fizzie, btw hypothesis: interleaved will possibly be better for programs turning a lot. It would most likely be better for >:#,_@ style constructs. Non-interleaved will be better for when the program goes in a straight line most of the time. 14:42:01 -!- BeholdMyGlory has joined. 14:42:16 Well, if you absolutely must have an intermediate version, http://pastebin.com/ah2NcAgV 14:43:02 fizzie, hm? You mean one mixed interleaved/non-interleaved? 14:43:45 No, that's the interleaved thing. 14:43:50 ah good 14:43:53 But it's not release-quality. :p 14:44:14 fizzie, TURN()? 14:44:29 Turns to arbitrary delta. 14:44:39 fizzie, is it 93 + extras then? 14:44:40 -!- MizardX has joined. 14:44:59 No, "arbitrary" meaning any of the four cardinal ones not depending on what the ip is now. 14:45:05 That's a rather curious meaning, but anyway. 14:45:19 fizzie, oh, but why would it be useful for 93? 14:45:35 oh wait, ? 14:46:22 Hrm? I use it in ? only, yes. I could have specialized versions of ? for different deltas (they'd look very much like the current op_gofoo_bars) but I didn't think it was so performance-sensitive. 14:46:49 hah 14:46:59 fizzie, high speed random number generators! 14:47:50 fizzie, huh? where is next defined? 14:48:00 It's a macro parameter. 14:48:03 oh duh 14:49:09 -!- oerjan has joined. 14:51:26 fizzie, out of interest, why if and not switch for op_rand? 14:52:13 No real reason for that either. The if takes perhaps two lines less vertical space. 14:52:24 Or three, depending on bracing. 14:52:26 hm perhaps 14:52:45 Or zero, depending on bracing. :-P 14:52:47 or one less but that would be messy 14:53:38 switch (t) { case 0: TURN(0); NEXT_LEFT; 14:53:38 case 1: TURN(1): NEXT_RIGHT; 14:53:38 case 2: TURN(2): NEXT_UP; 14:53:38 case 3: TURN(3): NEXT_DOWN; } 14:53:39 you wouldn't need a variable t though, so that line would be removed and it would be rand()%4 in the switch header 14:53:53 True that. 14:54:01 So negative one, depending on bracing. 14:54:12 Deewiant, or two less 14:54:18 Two? 14:54:28 Deewiant, yes, just write two of the cases on the same line 14:54:41 That's getting unreadable already :-P 14:54:43 I didn't say it was a good idea 14:55:09 Doesn't fit in 80 columns. 14:55:13 fizzie, memcpy(pfcode[pos], ops[val], sizeof *pfcode); <-- wonderful 14:55:31 What's special about that? 14:56:09 Deewiant, did I say it was special? 14:56:18 You said it was wonderful, which is certainly special. 14:56:26 -!- augur has joined. 14:56:41 mhm 14:56:59 I'll have to remove those memcpys for the non-interleaved versions, unfortunately. Updating four far-away locations on each 'p' might hurt. Well, we'll see after some testing. 14:57:18 fizzie, ah hm didn't think about that 14:57:37 fizzie, remember to test it on a wide selection of representative b93 programs ;) 14:58:02 pahaha 14:58:08 Adrian^L: i should've known it was you 15:00:01 lordy, did you actually idle in here for a month before you said something? 15:05:57 -!- asiekierka has quit (Ping timeout: 258 seconds). 15:09:26 -!- asiekierka has joined. 15:11:47 -!- augur has quit (Ping timeout: 276 seconds). 15:18:36 -!- asiekierka has quit (Ping timeout: 258 seconds). 15:19:49 -!- augur has joined. 15:22:05 -!- asiekierka has joined. 15:26:32 fizzie, how goes jitfunge now? 15:27:08 how far does it get in mycology and can it run underload.b98? 15:27:14 BUBAD. 15:27:25 Deewiant, BUBAD? That looks mangled 15:27:37 GGBG. 15:27:49 Deewiant, so , is completely broken or what? 15:28:19 jitfunge has a hard time being "completely broken", it seems to usually be partially broken. 15:28:21 assuming GGBG was what it output for GOOD 15:28:26 :D 15:28:30 It wasn't. 15:28:36 Deewiant, then what was it? 15:28:42 It was GGBG. I don't know why it output it. 15:28:57 heh 15:29:12 Deewiant, but at what point does it output that? 15:29:13 , seems fine, anyhow. 15:29:17 See the logs. 15:30:23 Deewiant, which part of it? 15:31:21 Of the logs? Just grep for GGBG. 15:31:24 oh found it 15:31:34 GOOD: 10` = 1 15:31:34 GGBG 15:31:34 GOOD: a pushes 10 15:31:35 hm 15:31:40 it skips several lines there 15:31:43 as far as I can tell 15:32:54 Deewiant, btw: 15:32:57 GOOD: a pushes 10 15:32:57 GOOD: b-f push 11-15 15:33:02 why are those separated? 15:33:19 like why not: a-f pushes 10-15 15:33:23 IIRC, it only checks for reflection on a. 15:33:28 GOOD: a pushes 10 15:33:28 GOOD: b-f push 11-15heh 15:33:29 argh 15:33:34 * AnMaster kills synergy 15:33:35 Or something like that. 15:33:41 heh was what I typed 15:33:51 then I got a ghost paste in the buffer at the start somehow 15:33:57 Or it has a couple of error messages for a, but just that one GOOD/BAD for b-f. 15:34:00 just a split second before I hit enter 15:34:09 hm 15:36:16 Based on an average of one (1) runs, the difference between interleaving isn't very large: http://pastebin.com/J3YshH7a 15:36:24 -!- FireFly has joined. 15:36:37 Discount the copy-paste problem that got the compilation and running on the same line. 15:36:42 fizzie, what is the benchmark? 15:36:43 (1) doesn't tend to work that well, I'd do (2). 15:37:04 fizzie, btw how does that ff3.c handle # in column 80 when going > ? 15:37:07 AnMaster: 91+:*-:0`#@ #._ 15:37:38 Deewiant, oh I see. 15:37:56 AnMaster: UNDEF: edge # skips column 80 15:37:57 91+:*, incidentally, is an awfully complicated way of writing "d". 15:38:08 ah 15:38:23 fizzie, I mean, you don't crash due to missing the marker in the padding column 15:38:42 AnMaster: There's two column's worth of padding because of that. 15:38:48 Deewiant, eh how does 91+:* add up to d? 15:38:54 Not d, "d". 15:39:01 oh hah 15:39:06 but why 15:39:21 In -98, the equivalents would be a:* and 'd 15:39:54 Deewiant, I guess it is semantics: Is it used as a char or as a number 15:40:22 Bah, who cares about assigning semantics to stack cells in Befunge :-P 15:40:34 isn't 91+:*-:0` comparing -100 to 0? 15:40:43 On the first iteration, yes. 15:40:47 oh right 15:41:09 That code is equivalent to: int s = 0; do s -= 100; while (s <= 0); 15:44:45 Deewiant, unfair to bignum ;P 15:45:17 A bit unfair to 64-bit cells too, like I noticed when trying to benchmark against marsh, which uses a stack made out of longs. 15:45:52 hah 15:46:06 fizzie, how long until you gave up? Or did it finish? 15:46:22 -!- coppro has quit (Ping timeout: 246 seconds). 15:46:51 * AnMaster is unsure what rough timeframe it would end up in for 64-bit cells 15:47:23 multiply by 2^32 ~= 4 billion 15:47:30 lets say 6 seconds for 32-bit. Then we have 6 * 2^32... Ouch 15:47:58 I waited some five minutes or so. 15:48:02 Yeah, I ran it for about 10 mins in CCBI and cfunge and then realized they were both 64-bit :-P 15:48:18 about 817 years 15:48:20 it seems 15:48:27 Only? 15:48:32 Long enough anyways. 15:48:38 well, I could have typoed in units(1) 15:48:38 `calc 6*2^32 seconds in years 15:48:51 oerjan, what bot? 15:48:52 6 * (2^32) seconds = 816.613247 years 15:48:55 ah 15:49:10 `run type calc 15:49:11 calc is /tmp/hackenv.15888/bin/calc 15:49:13 marsh takes 12 seconds on my system; not that another power of 2 matters *that* much. 15:49:16 `file bin/calc 15:49:18 bin/calc: Bourne-Again shell script text executable 15:49:50 `run head bin/calc | tr '\n' '|' 15:49:51 #!/bin/bash|if [ ! "$1" ]|then| echo 'Calculate what?'| exit 1|fi||QUERY=`echo -n "$1" | od -t x1 -A n -w1000 | tr " " %`||lynx --cfg=/dev/null --lss=/dev/null \| 15:50:11 `run grep -i google bin/calc 15:50:12 --dump --width=1000 'http://google.com/search?q='"$QUERY" | 15:50:15 ah 15:50:49 :-P 15:50:53 Deewiant, how long did it take for 32-bit CCBI? 15:51:11 I hadn't a 32-bit CCBI binary so I haven't tried. 15:51:17 ah 15:51:35 Deewiant, presumably more than 6 seconds though 15:52:40 bbl 15:53:33 3 mins. for CCBI (in B98 mode) 15:53:40 Don't know what to compare that to, though. 15:53:47 Or what version, for that matter. 15:54:03 Deewiant: Did you notice the part about CCBI reflecting on ; in 93-mode? 15:54:36 Yes, and no need to single out ;, it'll reflect on every non-93 instruction. 15:55:23 Right, well, he was strongly against that sort of thing. :p 15:55:43 Yes, I noticed. :-P 15:56:22 CCBI takes 27 seconds for me here. 15:56:33 -93 only. 15:57:25 Average of 20 runs; not much of a difference: http://pastebin.com/EwDv8J2e 15:57:51 Could even have been other stuff on the system, it's not very idle. 15:58:00 11 seconds in -98; I wonder how that manages to be faster. 15:58:55 Oh, it could be the wraparound. 15:59:03 It probably is, actually. 15:59:28 * Deewiant makes it non-wrappy 16:00:25 Yeah, now it's 9 seconds in -93 and 14 in -98. 16:00:53 The Befunge-93 loader always makes an 80x25 box, you see. 16:01:12 But, IIRC, it uses the same wrapping code as -98. 16:01:26 So for every iteration, the -93 did an extra 70 or so nops. 16:02:34 ff3 does those nops too; haven't bothered to try tracking borders. For non-p-heavy programs it could make sense to put the wrapping instructions around the program, not the whole playfield. 16:06:53 Right, well, he was strongly against that sort of thing. :p <-- who? Rugxulo? And why is he against it. 16:07:48 So for every iteration, the -93 did an extra 70 or so nops. <-- yet it was faster? 16:08:07 No, it was more than twice as slow. 16:08:12 Yeah, now it's 9 seconds in -93 and 14 in -98. 16:08:19 you reversed the order then 16:08:22 Notice how the tense changed. 16:08:36 aha 16:08:40 "_Now_ it _is_ [faster in -93]" 16:08:52 "The -93 _did_ an extra 70 or so nops" 16:09:08 But, IIRC, it uses the same wrapping code as -98. <-- should have been used there then? 16:09:10 or something 16:09:20 The Befunge-93 loader always makes an 80x25 box, you see. <-- or on that line 16:09:31 Eh? 16:09:32 -!- Tritonio_GR has quit (Read error: Connection reset by peer). 16:09:37 Those remain correct. 16:09:52 Deewiant, so how did you make it faster if you didn't change those 16:10:02 AnMaster: 2010-04-13 17:59:04 * Deewiant makes it non-wrappy 16:10:11 ah 16:10:16 didn't notice that 16:10:44 Deewiant, then why is 93 mode faster than 98 mode? Completely different mainloop or something? 16:10:57 Well yes, lots of simplifications can be mode. 16:10:59 made. 16:11:26 Deewiant, true but is it worth the code duplication and such? 16:11:56 The code duplication would happen anyway, to not slow down 98. 16:12:06 hah 16:12:42 fizzie, why @eris? A strange system name to me 16:13:58 Couldn't figure out anything else, so used the well-used and -reused Greeks. 16:14:08 ah 16:14:13 fizzie, who was eris then 16:14:25 Goddess of discord; also the goddess of discordians. 16:14:26 Simplifying the wrapping code brought it down to 16 seconds. Still loses to -98, though. 16:14:31 hah 16:14:35 * oerjan throws AnMaster an apple 16:14:45 oerjan: Be careful, you might throw it over his head. 16:14:53 * oerjan then whistles innocently 16:15:00 -!- lereah_ has quit (Quit: Leaving). 16:15:10 :D 16:15:11 oerjan, I'm not picking up anything _you_ threw. 16:15:23 who knows, it could be a tick one that sprays water at you or something 16:15:40 Momus, where fungot runs, is another one of those. 16:15:40 fizzie: i'd be happy to help you with that? 16:15:44 Momus or Momos (μῶμος) was in Greek mythology the god of satire, mockery, censure, writers, poets; a spirit of evil-spirited blame and unfair criticism. 16:15:45 darn, saved by his natural paranoia 16:15:48 Thought it appropriate for a webserver. 16:16:32 fizzie, quite a diverse list 16:16:53 especially the censure part doesn't seem to fit in 16:17:21 `define censure 16:17:23 * harsh criticism or disapproval \ * reprimand: rebuke formally \ * excommunication: the state of being excommunicated 16:18:57 -!- comex has quit (Quit: leaving). 16:19:24 * AnMaster puts the apple in oerjan's pocket, picking it up using a long pole with a griping tool at the end 16:20:30 -!- comex has joined. 16:20:43 I wonder why CCBI is about 5-10% faster on underload.b98 when it's got 64-bit cells. 16:20:56 Deewiant, heh 16:21:42 you fool, it was a golden apple! 16:22:00 golden delicious, to be precise. *munch* 16:22:01 oerjan, well the grip was coated in aqua regia. 16:22:27 (with a thickening substance added, so you can actually coat with it) 16:22:44 oerjan, I don't think that is healthy to eat 16:23:30 i've got plenty of acid in my stomach already. 16:23:52 hah 16:35:17 -!- charlls has joined. 16:49:58 -!- nooga has quit (Ping timeout: 264 seconds). 17:38:31 -!- asiekierka has quit (Ping timeout: 258 seconds). 17:41:01 -!- asiekierka has joined. 17:46:50 -!- cheater2 has quit (Ping timeout: 240 seconds). 17:47:43 -!- asiekierka has quit (Ping timeout: 258 seconds). 17:50:03 -!- asiekierka has joined. 17:51:21 -!- cheater2 has joined. 17:53:08 -!- Geekthras has quit (Ping timeout: 240 seconds). 17:55:42 -!- Geekthras has joined. 18:01:31 -!- asiekierka has quit (Ping timeout: 258 seconds). 18:03:51 -!- asiekierka has joined. 18:05:26 -!- charlesq__ has joined. 18:05:51 -!- charlesq__ has quit (Read error: Connection reset by peer). 18:08:48 -!- charlls has quit (Ping timeout: 258 seconds). 18:09:10 -!- cheater2 has quit (Ping timeout: 264 seconds). 18:23:05 -!- charlls has joined. 18:23:14 -!- gapz has joined. 18:23:30 -!- gapz has left (?). 18:23:59 -!- aschueler has quit (Ping timeout: 276 seconds). 18:25:06 -!- aschueler has joined. 18:31:20 -!- Gracenotes has quit (Ping timeout: 276 seconds). 18:33:12 -!- nooga has joined. 19:26:07 -!- kar8nga has quit (Remote host closed the connection). 19:30:45 -!- pikhq has quit (Read error: Connection reset by peer). 19:41:53 fizzie, so how goes it? 19:53:44 Which "it"? 19:53:51 -!- cheater2 has joined. 20:00:48 -!- Tritonio_GR has joined. 20:18:52 -!- cat_ has joined. 20:32:47 -!- cat_ has quit (Read error: Connection reset by peer). 20:32:56 -!- cat_ has joined. 20:33:18 -!- cat_ has left (?). 20:50:09 -!- oerjan has quit (Quit: leaving). 21:15:36 -!- ais523 has joined. 21:22:08 -!- asiekierka has quit. 21:28:00 -!- pikhq has joined. 21:30:59 Internet back! 21:31:40 fizzie, jitfunge and ff3 21:31:45 or whatever 21:32:05 fizzie, and does -fmerge-all-constants really make any difference? 21:32:10 and does it still work then? 21:32:26 I'm getting half a mind to write a Befunge-98 interpreter. 21:32:38 Oh, BTW, I fixed my Befunge-93 interpreter. 21:32:44 pikhq, ah, link? 21:32:51 Un momento. 21:32:59 http://sprunge.us/CSZJ 21:33:05 I prefer a memento to be frank ;P 21:33:24 AnMaster: The command line was from Rugxulo's marsh compilation, I just used the same flags to be fair; probably doesn't much matter. 21:34:28 pikhq, it still counts -128 is not a prime 21:34:42 pikhq, still valgrind errors too 21:34:53 AnMaster: My funges aren't really going; I'm too flu-ish to work on them. But you can get the latest (optionally non-interleaved) ff3 from http://git.zem.fi/ff if you like. There's also a nasty jitfunge bug I've been trying to track, but probably won't tonight. 21:34:56 AnMaster: Uh, WTF and WTF? 21:35:20 pikhq, sec 21:35:23 jitfunge *brain explodes* 21:35:32 AnMaster: Valgrind's stack traces are indeed not very useful for problems in LLVM's JIT'd functions: 21:35:33 ==9627== Conditional jump or move depends on uninitialised value(s) 21:35:34 ==9627== at 0x4048354: ??? 21:35:34 ==9627== by 0x5C22C4C: (below main) (libc-start.c:226) 21:35:41 AnMaster: Well, it definitely does Wumpus correctly. :P 21:35:50 pikhq, http://sprunge.us/iHXP 21:36:21 fizzie, what about gdb? Is it as useless or does llvm do some funky JIT debug info that gdb can read? 21:36:51 fizzie, oh and with --db-attach remember to never to s or c! When I did that I had to kill -KILL valgrind 21:37:03 I presume the same applies to any other continue commands 21:37:40 AnMaster: Oh, that's an easy fix. 21:38:13 AnMaster: Well, I could attach a debugger, I guess. There's a minor pessimization in the code in that it creates an "entry point" at the end of a (looping) function instead of the beginning; that results in a bit convoluted LLVM assembly, but I don't want to fix it because it would probably hide this bug. 21:38:38 pikhq, what was the bug with wumpus btw? 21:39:01 AnMaster: I had val1 and val2 as unsigned ints instead of ints. 21:39:17 Thus screwing up signed comparison. 21:39:19 http://sprunge.us/LGJX 21:39:32 pikhq, heh that caused wumpus failing? 21:39:36 Still getting issues with prime, but no invalid reads outside of libc. 21:39:37 Yes. 21:39:48 It also caused the failure of a simple benchmark. 21:40:32 pikhq, I still get negative values in prime? 21:40:54 AnMaster: I'm not sure. 21:40:58 or do you mean that was the still left issue 21:40:59 AnMaster: Heh... if I add the "--db-attach=yes" flag, the error disappears. 21:41:05 fizzie, whoops 21:41:12 Yes, that's the still-remaining issue. 21:41:18 I'm honestly not sure how that's doing wrap-around. 21:41:36 pikhq, printf("%d") -> printf("%u") or such perhaps 21:41:38 ? 21:41:42 haven't looked at the code 21:42:03 what are you doing 21:42:07 printf %i? 21:42:15 what the heck is %i 21:42:32 ... Signed integer. 21:42:39 pikhq, that is the issue then :P 21:42:44 No it's not. 21:42:55 hm 21:42:56 okay 21:43:04 *Oh*. 21:43:19 That's sticking numbers in fungespace, yes? 21:43:24 pikhq, yes 21:43:33 Fungespace is a bunch of signed chars. 21:43:38 pikhq, is that the spec? 21:43:50 "Undefined". 21:44:07 pikhq, does it say it is char even? 21:44:20 It's an "80x25 torus of ASCII text", that's about all. 21:44:37 No, it would be entirely valid for that to be 7-bit. 21:44:38 Many make it unsigned bytes. 21:44:39 pikhq, oh and it segfaults on pi2 again 21:45:14 9 s->buf = realloc(s->buf, s->bufsz); 21:45:16 on that line 21:45:23 *** glibc detected *** /home/arvid/dragon/funges/pikhq-bef/pikhq-bef-tux: realloc(): invalid next size: 0x0000000000607010 *** 21:45:26 How odd. 21:45:40 AnMaster: Here's the very useful gdb backtrace on the error: 21:45:42 pikhq, valgrind shows a write error before 21:45:43 (gdb) bt 21:45:43 #0 0x0000000004048354 in ?? () 21:45:43 #1 0x00000007ff0002e0 in ?? () 21:45:43 #2 0x0000000005c77a3f in _IO_new_file_overflow (f=0x0, ch=-16776704) at fileops.c:889 21:45:43 #3 0x0000000000000000 in ?? () 21:45:59 fizzie, hah 21:46:09 fizzie, disassemble, I guess that is all you can do 21:46:25 pikhq, I suspect you overwrite malloc bookkeeping data 21:46:30 just a hunch 21:46:48 fungespace[val1][val2] = val3; 21:46:57 pikhq, hm? 21:47:07 AnMaster: Yes, it's just that the disassemblies are a lot more understandable when it's my code generator instead of LLVM's. 21:47:08 pikhq, you fail at bounds checking? :D 21:47:18 Yes, there is no bounds checking. 21:47:21 fizzie, hah 21:47:31 pikhq, well that is wrong ;P 21:47:46 AnMaster: No, it's invoking undefined behavior. 21:47:47 :P 21:47:48 pikhq, I would do it abs(x) % 80 and so on 21:48:08 pikhq, sure, but I consider it a bug to crash on invalid input 21:48:09 I'll go make it do more sane behavior, though. 21:48:12 for any app 21:48:33 -!- charlls has quit (Read error: Connection reset by peer). 21:48:43 AnMaster: Yes, this is why I'm adding boundschecking. 21:48:48 :) 21:49:06 pikhq, I recommend using a fuzz tester btw. It would catch this type of stuff 21:49:42 Eh. 21:49:53 Please input a number: 3 21:49:54 UNDEF: got 3 which is hopefully correct. 21:49:54 Please input a character: UNDEF: got 10 ' 21:49:54 ' which is hopefully correct. 21:49:56 ff3 doesn't do bounds checking either, to be honest; it's not like a well-behaved program would need it. 21:49:59 I don't think that is how it should work 21:50:05 but it might be undef in b93 21:50:12 There's... Issues with that. 21:50:23 It's undefined, but yes, I should fix it. 21:50:29 I think it's undef in b98 as well. 21:50:30 pikhq, in b98 I'm pretty sure integer input should eat the newline if one follows it directly 21:50:37 Deewiant, is it? Huh 21:50:37 fizzie: Link to fastfunge? 21:50:39 IIRC the spec doesn't say that. 21:50:43 AnMaster: "Undefined but I should fix it." 21:50:48 Deewiant, "everyone does it"? 21:50:56 I did it because it seemed sensible, and since then it seems everybody else does it. :-P 21:51:01 Deewiant, well okay 21:51:28 Deewiant, you are a trendsetter ;P 21:51:36 Yep :-P 21:51:39 pikhq: http://git.zem.fi/ff 21:51:57 pikhq, I get valgrind errors enter a to mycouser as the number 21:52:08 yes the letter a 21:52:17 ==27876== Use of uninitialised value of size 8 21:52:18 ==27876== at 0x4E695CB: _itoa_word (in /lib/libc-2.11.1.so) 21:52:19 AnMaster: One screaming bug at a time man. :P 21:52:27 pikhq, link to bug tracker? 21:52:55 AnMaster: irc://irc.freenode.com/esoteric 21:53:00 haha 21:53:13 pikhq, well I will write them down in a text file and pastebin that 21:56:16 pikhq, okay for me to paste the bug descriptions now? 21:56:33 Invalid reads fixed (stupidity in stack regrowing). 21:56:36 http://sprunge.us/TfeK 21:56:39 mycouser.b98: 21:56:40 * valgrind errors on ctrl-d at integer prompt. B98 reflects. Unknown what B93 does. 21:56:40 * valgrind errors on non-numeric data at integer prompt. This might be undef in b93, b98 tends to (defined to?) discard leading non-numeric data, and keep retrying until it get some numeric data. 21:56:43 Erm. Resizing. 21:57:04 Yes, that latter one is defined. 21:59:01 The only valgrind errors I'm seeing are from libc... 21:59:25 I have a sneaking suspicion that their printf does crazy stuff. 21:59:47 pikhq, the ones I see there are itoa 22:00:13 pikhq, http://sprunge.us/KbTd 22:00:29 pikhq, and printf 22:00:47 pikhq, but that might be because itoa returns some undef value 22:00:52 due to you passing it a non-number 22:00:55 Possible. 22:01:36 pikhq, oh see: 22:01:38 ==27931== Uninitialised value was created by a stack allocation 22:01:38 ==27931== at 0x400C68: instrs (pikhq-bef.c:153) 22:01:43 with valgrind --track-origins=yes ./pikhq-bef-tux ~/dragon/src/own/cfunge/trunk/mycology/mycouser.b98 22:02:05 Oh, that's helpful. 22:02:11 pikhq, well yes, it is slower too 22:02:19 well not noticeable so for this case 22:02:28 Except that nothing is made at that line. 22:02:37 Except the stack frame itself. 22:02:37 pikhq, sure it is, the stack frame 22:02:40 pikhq, exactly 22:02:49 pikhq, which means you know which function 22:03:20 heh seems to be main one 22:03:42 pikhq, point is, I think you do something funky when trying to parse letters as integers 22:03:49 *Ah*. 22:04:07 When that happens, the value ends up being unchanged from what it was. 22:04:09 bad pikhq not checking return value of scanf :P 22:04:15 Said value is... Undefined. 22:05:15 exactly. ("Don't use scanf()" is my preference, but if you use it you should know the semantics, because then you will decide not to use it) 22:05:21 ;) 22:05:28 http://sprunge.us/CJcX 22:05:36 What's wrong with scanf? 22:05:51 There it is without odd valgrind errors, and I'll go about fixing the actual *behavior* next time the mood strikes. 22:06:03 (I know what to fix and how to fix it, just can't be bothered to) 22:06:27 Deewiant, that it is a mess? Especially for reading strings 22:06:34 somewhat less so for integers, but still 22:06:38 How is it a mess? 22:07:28 Deewiant, well, I don't know how to explain it. It feels like gets() almost in "eww" level 22:07:43 Seems fine to me :-P 22:07:47 only way it could be worse would be using global buffers and being non-reentrant 22:08:04 strtok() is that level of ewww 22:08:28 "* The strtok() function uses a static buffer while parsing, so it's not thread safe. Use strtok_r() if this matters to you." 22:09:12 What I'd expect from C :-P 22:10:29 hah 22:10:54 pikhq, testing on random data I get a valgrind error 22:10:59 http://sprunge.us/JMQU 22:11:04 that was on the program itself 22:11:14 should I filebin my compiled version? 22:11:44 pikhq, or can you reproduce it with your own copy? 22:12:55 pikhq, *prod*? 22:13:08 What's your rush? 22:13:53 Deewiant, ? 22:14:00 "*prod*" 22:14:44 I want to know if I should filebin it or go do other stuff 22:14:49 while being afk 22:15:12 wow I got it to do: 22:15:14 Illegal instruction 22:15:17 "*prod*" generally doesn't help 22:15:21 by running it on /dev/urandom 22:15:22 :D 22:15:29 >_< 22:15:39 pikhq, see http://sprunge.us/NAIM too 22:15:46 Deewiant, yes but it still shouldn't crash! 22:16:06 IIRC pikhq was accepting crashes for undefined behaviour 22:16:56 theory: it crashes on negative values because lookup table go from 0 to 256 22:17:04 err 22:17:06 0-255 22:17:07 and fungespace is signed 22:17:16 so it reads below the place it should read 22:19:19 okay there are two things. One is somehow loading the file it can end up doing something fishy 22:19:26 the other seems to be what I thought 22:21:53 Deewiant, basically, using chars in the range 128-255 I think you can cause it to execute any code you want 22:22:19 but I'm not sure how much you can trigger it. Some tests on urandom had it jumping into unmapped address space at one point 22:22:55 ==28011== Access not within mapped region at address 0xD39AD3D 22:22:55 ==28011== at 0xD39AD3D: ??? 22:22:55 ==28011== by 0x400C56: main (pikhq-bef.c:150) 22:23:19 or: 22:23:20 ==28013== Bad permissions for mapped region at address 0x3 22:23:20 ==28013== at 0x3: ??? 22:23:20 ==28013== by 0x400C56: main (pikhq-bef.c:150) 22:23:53 Deewiant, wow I got it to end up inside the valgrind helper itself 22:23:55 ==28016== Bad permissions for mapped region at address 0x380040B0 22:23:55 ==28016== at 0x380040B0: ??? (in /usr/lib/valgrind/exp-ptrcheck-amd64-linux) 22:25:42 -!- Oranjer has joined. 22:26:40 "You bumped the wumpus." <-- huh I thought you were eaten instead 22:26:55 There are variants. 22:27:08 -!- Oranjer has quit (Read error: Connection reset by peer). 22:27:35 it seems so 22:28:19 -!- jcp has joined. 22:28:44 -!- Oranjer has joined. 22:29:23 -!- Oranjer has quit (Read error: Connection reset by peer). 22:30:45 -!- Oranjer has joined. 22:36:18 AnMaster: Yeah, well. Make fungespace signed. 22:36:19 Erm. Unsigned. 22:36:53 pikhq, no idea where that is 22:37:38 pikhq, -Dchar="unsigned char"? 22:38:03 (nah, would be evil) 22:38:17 http://sprunge.us/KJTi 22:38:19 Thar. 22:39:26 pikhq, and still this: http://sprunge.us/dJId 22:39:46 pikhq, something messed up in file loading 22:41:19 pikhq, basically you need exp-ptrcheck to detect it because it is writing in a valid area of the memory. Just not the *right* valid area 22:42:03 pikhq, it happens on mycology too I think you go one further than your array 22:42:07 for funge space 22:42:09 or something like that 22:42:11 s/<=/ while(j < 25) { 22:42:28 That should be what the line reads. 22:42:34 145 fungespace[j][i] = c; 22:42:37 is what it reads? 22:42:43 Trivial fix, and surprising that didn't cause breakage. 22:42:49 oh 22:42:50 right 22:43:00 I was going 1 row too far into the array was all. 22:43:10 pikhq, indeed 22:43:29 pikhq, it probably went into some other static data 22:43:41 and valgrind --tool=memcheck (the default) can't detect that 22:43:51 Probably 22:44:13 pikhq, actually, it would have said some other object then. In fact I believe it went into an unused part of the same page 22:44:20 or something like that 22:44:35 and if it is a non-dynamically allocated block memcheck won't do anything much with it 22:45:37 So, it basically managed to not screw anything up via magic. 22:49:01 -!- jcp has quit (Read error: Operation timed out). 22:51:18 -!- songhead95 has joined. 22:53:53 brainfuck compilers for handhelds? 22:54:50 No interpreters! 22:55:05 I have never written a brainfuck interpreter for a handheld!!! 22:55:10 any tips? 22:55:18 wow: http://code.msdn.microsoft.com/ookLanguage 22:55:24 songhead95: hmm, you may be able to write one yourself 22:55:33 BF interps/compilers are some of the easiest programs to write around 22:55:53 as for that msdn link, it doesn't even seem to be an April Fool's joke 22:55:54 yes. I have written compilers for gameboy and iphone 22:55:57 The *only* thing that's even vaguely difficult is parsing it. 22:56:06 don't know how to write an interpreter though 22:56:08 they've just taken to using esolangs as examples for some reason 22:56:16 songhead95: basically, you try to mimic the structure of the program 22:56:28 as in, if the command is >, then add one to the pointer, etc 22:56:32 basically a massive switch statement 22:56:46 yes, I know I sound like a noob, but the '[' and ']' always get me 22:56:54 while looping always gets me 22:56:54 the only slightly difficult thing to do there is handling loops; for BF interps, there are at least three ways to do it, probably five or 6 22:57:09 nice 22:57:23 one easy one is to move forwards/backwards through the program counting brackets until you reach a balance 22:57:34 songhead95: Don't worry. That's the one that it's *possible* to screw up without being a complete noob. :P 22:57:34 -!- oklofok has quit (Read error: No route to host). 22:57:54 -!- oklopol has joined. 22:58:28 so if I'm writing in a c like language, I want to have the whole program stored in a char array 22:58:35 Likely. 22:58:42 and an interger reading it one character at a time 22:58:52 like code[instruction] 22:58:57 For the simple case, yes. 22:59:08 alright 22:59:15 that works fine for BF, it's arguably designed so that that's possible 22:59:34 ok 22:59:48 I will something, and be back! 23:00:53 oh yeah, and one other thing. 23:00:59 I am going to be writing it in bc 23:01:17 so the putchar and getchar will be in base 10/16 23:01:53 or maybe I'll try C first 23:02:01 yeah that sounds easier 23:02:13 sorry i tend to talk to myself in public online 23:02:57 doesn't matter, monologuing can be useful 23:03:04 you sometimes get logreaders responding to you months later 23:03:13 oh 23:03:24 or even just lurkers coming up with something insightful 23:03:35 Yeah, monologuing is fairly normal here. 23:03:54 \\////\\\\///\\\/// 23:04:09 oh I was just playing with the keyboard and accidently hit enter 23:04:18 I don't get a prize for that, do I? 23:04:35 `google bc language 23:04:37 bc is "an arbitrary precision calculator language" with syntax similar to the C programming language. It is generally used by typing the command bc on a ... \ [13]POSIX bc - [14]Plan 9 bc - [15]GNU bc - [16]Example code 23:04:43 Oh, that bc :P 23:04:46 o 23:04:59 songhead95: meh, that's along the same lines as random o-ing 23:05:19 sometimes I type a lot to unstick keys on a keyboard (although not often needed here), and press return just to give something to talk aobut 23:05:21 *about 23:05:55 pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp 23:05:56 -!- coppro has joined. 23:06:02 POOPPY! 23:06:23 I LIKE CHICKEN 23:07:09 hmm, maybe I should link coppro to http://code.msdn.microsoft.com/ookLanguage too 23:08:10 Cross compiling C for the ipod touch, with headers like stdio.h 23:08:15 for the brainfuck 23:08:28 lawlwtf 23:08:46 songhead95: That violates the Apple SDK's license agreement :P 23:08:48 Oo 23:08:48 hmm, maybe I should link coppro to http://code.msdn.microsoft.com/ookLanguage too <-- wth 23:09:17 AnMaster: as far as I can tell, Microsoft wanted an example of adding a new language to Visual Studio 23:09:20 ah 23:09:29 and picked a relatively simple esolang in order to keep the example simple 23:09:32 ais523, why didn't they pick intercal ;P 23:09:36 hah 23:09:38 or unlambda 23:09:44 it is still kind-of crazy that there's semi-offiical support for Ook! in Visual Studio 2010, though 23:09:55 I refuse to believe that you can integrate new languages until they make it easy to use a custom build system 23:09:55 heh, I guess both INTERCAL and Unlambda would be too complex for an example 23:09:57 or dupdog 23:10:08 hardly anyone's heard of dupdog 23:10:10 -!- Oranjer has quit (Read error: Connection reset by peer). 23:10:24 which one was dupdog now again? 23:10:38 AnMaster: it was one developed in this channel when someone was messing with egobot 23:10:42 http://esolangs.org/wiki/Dupdog if you need a link 23:11:19 it's one of those languages that "we" think is almost certainly sub-TC, but can't prove it 23:11:20 -!- Oranjer has joined. 23:11:41 -!- tombom_ has quit (Quit: Leaving). 23:11:43 oh the dual interpreter one 23:11:53 (if you like that category of langs, Xigxag's a fun one; it's been proven that nontrivial Xigxag programs grow indefinitely, but not that you can't get TC behaviour from them anyway) 23:12:21 my favorite category of the wiki is unknown computational class 23:12:47 My favorite category is Languages written by Gregor Richards 23:13:33 By 'sub-TC', you mean you think it is not TC? 23:13:43 ais523, idea: implement it in a sub-TC lang 23:13:51 ais523, I don't think it would be impossible 23:13:54 coppro: yep 23:14:05 well, to be precise, sub-TC means it can't do everything that a TC lang can 23:14:22 uncomputable is also non-TC, but it's over TC rather than under 23:14:32 ok 23:14:45 although the existence of uncomputable langs is really a matter of philosophy, as to whether they can really be said to exist or not 23:14:47 a language that's only command is "X" 23:14:52 you can define them but not implement them 23:14:53 X prints out one of two things 23:15:01 P=NP or P!=NP 23:15:01 ais523: Guhh ... not necessarily? A language can be uncomputable but not useful for computation, can't it? 23:15:09 who will write the interpreter 23:15:13 Gregor: good point, it's independent 23:15:15 ais523, that makes natural languages uncomputable right? 23:15:35 AnMaster: natural languages are incompletely specified, you can't work out their computational class as a result 23:15:53 songhead95: it's trivial to write an interp for that, just so long as you don't care about the output being correct 23:15:59 ais523, well if you can describe an uncomputable language in natural languages... 23:16:16 AnMaster: again, arguably you can't describe /anything/ in a natural language 23:16:26 ais523, eh? 23:16:30 and I'm not convinced being able to describe something is the same as being able to implement it 23:16:37 hm okay 23:16:45 AnMaster: because the meaning isn't pinned down to the level required to have a useful implementation 23:16:56 I have a slightly related question 23:17:21 ais523, can you implement anything in a natural language? Well I guess IRP... 23:17:26 songhead95: well, feel free to ask it; also, you need to allow for the way that multiple conversations can happen in the same channel 23:17:31 AnMaster: I'm not sure if IRP coutns 23:17:32 *counts 23:17:35 Yay IRP 8-D 23:17:36 ais523, heh 23:17:42 but it's one of those langs like HQ9+ 23:17:46 obviously useless, yet it makes you think 23:18:05 ais523, it is far more powerful than HQ9+ if the interpreters are in the mood for it ;P 23:18:19 AnMaster: yep, but rather less accurate 23:18:30 -!- Sgeo has joined. 23:18:34 what do we have the computational class of HQ9+ down as atm anyway? 23:18:36 ais523, well, it is probabilistic 23:18:46 probabilisticness makes it so hard to tell 23:18:48 and the probability decreases with the complexity of the program 23:19:10 HQ9+ is probabalistic? 23:19:17 Sgeo, no. IRP 23:19:33 if there were a theoretical computer with two processors, one infinitely fast, and another at 1hz, and it's function is to run code on the infinite speed processor, piping random input to it while the 1hz processor waits 1 second, would it solve the halting problem because all possible outcomes/modes of running were run in 1 second? 23:19:57 songhead95: yep, the existence of an infinitely fast computer is one way to get uncomputable behaviour 23:20:04 or, well, anything that lets you do infinite computations in finite time 23:20:37 all known methods to get uncomputable behaviour are impossible to implement; if someone found something super-TC that could be implemented, it would be a major shock to anyone who knew what the terms meant 23:20:49 so the halting problem is near-computable when the code doesn't take input, and is run on a superfast processor 23:21:13 well, you can think of it as being only a "factor of infinity" away from being computable 23:21:17 but that's rather a large factor 23:21:42 ais523, it would be a major shock to me if someone found something that was an UTM and could be implemented 23:21:47 as an UTM I mean 23:22:01 wouldn't a factor of infinity be infinity 23:22:02 ? 23:22:02 AnMaster: because that requires infinite data storage 23:22:06 songhead95: yes 23:22:10 so there goes my theory 23:22:13 the point is, you need a computer that's infinitely more powerful than existing ones 23:22:18 any finite number isn't good enough 23:22:19 ais523, well yes that is why a real life UTM would be a major shock indeed 23:22:35 AnMaster: real life extendable-storage is entirely possible, though 23:22:44 and the only reason it wouldn't work is the Earth running out of resources to extend it 23:22:47 ais523, but if the universe is infinite (I don't know which way the astronomers currently think it is) then I guess... 23:22:48 -!- FireFly has quit (Quit: Leaving). 23:23:00 AnMaster: the observable universe is finite 23:23:21 (by definition) 23:23:29 ais523, yes but it only needs to be infinite in potentia. You can start the program while you are still building the end of the tape 23:23:30 It could be infinite 23:23:47 Slereah: The UNIVERSE could be, the OBSERVABLE universe could not. 23:23:54 There were some theories about an infinite observable universe 23:24:03 Back in the static model 23:24:08 ais523, sure, you might have to pause the thing if it caught up with you and continue extending it 23:24:15 I suppose if time goes infinitely back, sure, but that's all weird :P 23:24:16 Gregor: by definition, combined with the values of a few constants which we happen to know the approximate values of 23:24:20 AnMaster: pausing's fine 23:24:24 the issue is literally running out of storage 23:24:30 Scala: Good language, or bad language 23:24:36 never used it 23:24:38 Ugly language. 23:24:45 -!- BeholdMyGlory has quit (Remote host closed the connection). 23:24:49 -!- augur has quit (Ping timeout: 240 seconds). 23:24:53 The usual argument against it was the blackness of the sky 23:25:04 But there are actually some configuration where it doesn't happen 23:25:13 A universe with a fractal structure works 23:25:16 pity alise isn't here, that's who you should ask for (relatively accurate) judgements on how good languages are 23:25:22 ais523, indeed. Well if the universe is infinite and the observable universe is not then you could just extend the tape when it was needed 23:25:38 as you can never catch up with the speed of light this is no problem 23:25:46 AnMaster : You cannot, actually 23:25:52 AnMaster: it is a problem, because you can never get outside the observable area 23:25:54 There were some calculations done about this 23:25:58 it doesn't get bigger, it gets smaller over time 23:26:04 ais523, eh? 23:26:10 Also, space expansion 23:26:10 how would that work 23:26:12 so you can't "wait for things to become observable" 23:26:23 ais523, how can it get smaller over time+ 23:26:26 s/+/?/ 23:26:40 AnMaster: think of it staying the same size but everything else getting bigger to compensate 23:26:44 so effectively, it gets smallre 23:26:45 *smaller 23:26:48 Grrr 23:26:48 err 23:27:00 ais523, you mean that space expands? okay 23:27:02 I did NOT want to be reminded about how there's a RoboZZle app for iPhone but not Android 23:27:14 ais523, well does one end of the tape have to be able to observe the other end? 23:27:32 AnMaster: yes, or you can /never/ get to the bit of the tape you can't observe 23:27:36 as in, you have two different programs 23:27:40 you seem to be missing the concept of "observable" here 23:27:55 there is no way that anything that isn't observable, from your point of view, can ever affect you 23:27:59 no matter what you do or what happens 23:28:03 at least, with current physics 23:28:04 ais523, well I assume that if I wait long enough the light from it will reach me. Otherwise I would just setup a wormhole and go over there 23:28:12 AnMaster: no, it won't 23:28:18 ais523, that makes no sense 23:28:19 it's moving away from you at faster than the speed of light 23:28:20 Would it be a bad thing to do most of my recreational programming in Scala? 23:28:28 and the light gets further away from you over time 23:28:34 ais523, well okay so the tape would break by that wouldn't it? 23:28:50 ais523, how comes earth and everything isn't torn apart by this 23:28:50 AnMaster: probably, yes 23:29:08 AnMaster: because the effect over a small scale is too small to notice 23:29:22 and gravity/elasticity is a much stronger effect on the small scale 23:29:30 where by "small" I mean "smaller than a galaxy or so" 23:29:35 ais523, okay what about a wormhole then when you start reaching the problematic area? 23:29:46 -!- augur has joined. 23:29:48 AnMaster: wormholes may change the way this works 23:29:56 but they haven't been proven to exist 23:30:12 also, so would finding something with better information storage density than a black hole 23:30:22 (note: that's a theoretical limit, nobody's entirely sure how to store information in a black hole) 23:30:24 ais523, ? 23:30:31 hah 23:30:35 I wonder what it's like outside of time-space, in a black hole 23:31:37 songhead95: impossible to perceive with any known measuring device, I imagine 23:31:38 -!- Oranjer has quit (Read error: Connection reset by peer). 23:32:01 -!- Oranjer has joined. 23:32:42 looking at something that falls into a black hole from the outside, it's like it sort of stops and fades 23:33:02 it falls in slowly over the course of forever, but quickly the light disappears 23:33:14 because otherwise you could generate energy like that 23:33:23 (exponential decay in theory) 23:33:32 I just wish to add to this: current models are *models* that means that they are more or less accurate approximations of "reality". That could explain some weirdness related to black holes 23:33:44 probably less accurate, the universe is just that weird 23:33:46 I'm not saying it is so, just that it is worth considering 23:33:53 theory: some amused deity is making the laws of physics up as they go along 23:34:07 ais523, hah 23:34:11 coming up with some new weirdness whenever they reach a level at which we can actually detect what happens 23:34:14 ais523, sounds like discworld almost 23:34:15 :D 23:34:18 this seems to explain most of physics, IMO 23:34:26 the answer is obvious 23:34:26 `addquote theory: some amused deity is making the laws of physics up as they go along 23:34:29 149| theory: some amused deity is making the laws of physics up as they go along 23:34:32 the world is a computer simulation 23:34:49 ais523, sure. I recently heard that from the point of view of a photon, every distance is zero 23:34:49 at high levels, things work in simple manner because they've been programmed that way 23:34:50 coppro: However, not that lame "statistically we're a computer simulation" theory BS. 23:34:55 also, time doesn't pass 23:35:09 The universe is a computer simulation, within a computer simulation, within a computer simulation ad infinitum. 23:35:12 amongst many other things this doesn't explain the term "light year" 23:35:13 :P 23:35:14 at low levels, things break down because we get to the actual level near code 23:35:16 Gregor: nah 23:35:18 The universe contains itself (in a simulation) and is its own cause. 23:35:24 Gregor: that theory fails, because statistically speaking, we're likely to have a different theory of statistics from other simulations 23:35:31 Gregor: The universe is clearly a highly accurate universe implementation. 23:35:36 ais523: That's why I called it lame :P 23:35:40 and as a result, the universe that contains ours is likely to have a different theory of statistics from ours 23:35:44 and so, all bets are off 23:35:54 what? 23:36:01 pikhq: What a hilariously useless statement X-D 23:36:11 The universe that contains ours... 23:36:13 I know, isn't it? 23:36:15 oh and another thing: photons lack mass. Yet they can push things (see: solar sails) 23:36:20 how the fuck is that possible 23:36:31 they have momentum 23:36:33 AnMaster: Photons possess energy. 23:36:37 pikhq, hm 23:36:58 when they hit something, they vibrate slower and push a little 23:37:00 they have (mass-energy) 23:37:04 energy is conserved 23:37:07 Another fun thing: you know the weird photon/wave duality of light? 23:37:12 Not just light. 23:37:13 pikhq, yes 23:37:15 not just light 23:37:17 pikhq, electrons too 23:37:18 Electrons do the same thing. 23:37:18 and so on 23:37:20 yeah 23:37:21 and sound waves 23:37:22 I know 23:37:26 and fullerenes 23:37:28 we should create a partical/wave-dual esolang 23:37:32 Uhh, not sound waves ... or fullerenes. 23:37:32 coppro, sound wave behave like particles?? 23:37:37 yes 23:37:39 phonons! 23:37:43 [citation needed] 23:37:43 AnMaster: Yes. 23:37:49 do soundwaves have the same capabilities of photons, like pushing things? 23:37:59 pikhq, how the fuck does a sound wave behave like a particle 23:38:04 http://en.wikipedia.org/wiki/Phonon 23:38:05 songhead95: Sound waves are literally the pushing of things. 23:38:06 songhead95: soundwaves can certainly push things, given that they're inherently mechanical anyway 23:38:14 heh 23:38:50 wth 23:38:58 and yes, Gregor, fullerenes have been experimentally observed to have wavelengths too. De Broglie's equation applies to all waves and particles 23:39:20 fullerenes? 23:39:22 coppro, what is the wavelength of a coppro? 23:39:32 Sgeo, carbon allotrope (sp?) 23:39:33 AnMaster: Fairly low. 23:39:34 depends on how fast I'm moving 23:39:43 I've seen a book where the wavelength of a human was calculated 23:39:55 and it was really really incredibly small 23:39:56 ais523, heh, what did it end up at 23:40:03 can't remember the exact value 23:40:14 ais523, well, to the order of magnitude? 23:40:26 AnMaster: smaller than even most stuff that comes up in fundamental physics 23:40:31 hahaha I played wikipedia race, and in 14 links got from Phonon to house of wax(film) 23:40:40 maybe around 10^-30, to an order of magnitude of order of magnitudes 23:41:01 heh 23:41:10 ais523, in meters? 23:41:16 who cares 23:41:26 could be any unit you like at that degree of inaccuracy 23:41:27 apparently, when walking, my wavelength is roughly 1.5*10^-35 metres 23:41:32 ais523, well if it was in Hz it would be rather different 23:41:35 than if it was in meters 23:41:47 Hz are not a measure of distance 23:41:52 coppro, correct 23:41:55 1/distance 23:42:05 which is why it would end up so differently 23:42:08 1/period 23:42:17 AnMaster: http://en.wikipedia.org/wiki/Matter_wave Calculate it yourself. 23:42:18 :) 23:42:23 Hz = s^-1 23:42:49 You can actually do quantum mechanics without the whole wave thing 23:42:54 hm how did you get from wavelength to hz then? 23:42:56 ... 23:43:01 I'm too sleepy 23:43:38 Wavelength is related to frequency by velocity 23:43:44 ah 23:43:56 *momentum 23:44:00 no 23:44:15 (yes) 23:44:21 momentum has a mass dimension 23:44:28 wavelength and frequency do not 23:44:35 Hence the Planck constant 23:44:49 I wasn't talking about the de Broglie equation 23:44:56 Oh. 23:44:59 But 23:45:06 This also works for light 23:45:10 -!- augur has quit (Ping timeout: 264 seconds). 23:45:11 And phonons 23:45:15 f\ = v 23:45:17 Even though they're only pseudoparticles 23:45:35 for light, this is extra simple because v = c in a vacuum 23:46:40 fullerons 23:47:02 no wait i suppose fullerene already refers to the particle version 23:47:36 fulleraves? 23:47:46 full rave? 23:50:12 -!- Oranjer has quit (Read error: Connection reset by peer). 23:51:00 -!- Oranjer has joined. 23:55:00 do people usually get mad if you haphazardly post large chunks of code and ask what your doing wrong? 23:55:56 songhead95 : Post them on pastebin 23:56:08 ok 23:57:25 http://pastebin.com/ZD1faJ6X 23:57:42 I followed earlier instructions without adding the loops yet 2010-04-14: 00:06:22 did I make an error so embarrassing that it needs no response? 00:06:43 no, I just wasn't paying attention 00:06:44 * ais523 looks 00:07:23 songhead95: barring the non-implementation of [ and ], that's almost identical to the original BF interp 00:07:34 Yup, that's the correct behavior. 00:08:07 than how come when I compile it and write ++++ ++++ ++++ ++++ ++++ ++++ ++++ ++++ ++++ ++++ . 00:08:13 ^D 00:08:15 it does nothing 00:09:04 strange 00:09:15 are you sure the output wasn't overwritten by your prompt? 00:09:28 try ++++ ++++ ++++ ++++ ++++ ++++ ++++ ++++ ++++ ++++ . > +++++ +++++ . 00:09:55 still nothing 00:10:51 bizarre 00:11:02 what happens when you compile it? 00:11:04 oh, got it 00:11:11 the line "interpreter=0" needs to be moved one line earlier 00:11:19 oooh 00:11:35 as it is, you've put most of your code in the C equivalent of a header comment 00:11:44 (using two while loops with identical conditions, so the second one can't run) 00:14:11 but if when the first one ends, and the interpreter is set to 0, the array code is used read only 00:15:09 and I am still baffled at the thought of the loops 00:18:20 so on "case '['" 00:18:39 i need a var named nested to look for the nearest ']' 00:18:50 but execute everything on the way if it is 1 00:19:00 or wait 00:19:01 no 00:20:36 didn't someone say there were 5 or 6 ways of doing this 00:20:37 ? 00:20:49 of what? loops in bf? probably 00:21:02 I would put it in a linked list with down wards nodes for loops 00:21:06 if doing bf in C 00:21:15 the recursive parser would put it in that 00:21:25 trivial, done it when writing bf compilers 00:21:44 bf *interpreters* never interested me much, but the same idea should work 00:22:05 what about a two dimensional array that is different levels of nested loops? 00:22:12 wait no it would work different 00:22:25 that sounds weird 00:22:27 auughh 00:22:40 have you read my pastebin? 00:22:43 songhead95, you just need to track [ as you go along 00:22:53 songhead95, no I'm not on a device where I can easily do that 00:23:20 songhead95, anyway track [ in a stack, then when you hit a ] you pop the last [ position 00:23:22 that works too 00:24:04 you need to add the tests at [ and at ] for if the loop should continue 00:24:20 well, either that or keep track of where the ] was when you jump back to [ 00:24:49 songhead95, as an optimisation you can store the position of the matching ] to the [ when parsing 00:24:55 I can't get too into this now, but I will be back! 00:25:06 otherwise if you never enter the loop you need to run along the code and not executing it 00:25:09 songhead95, night 00:29:30 -!- songhead95 has quit (Quit: songhead95). 00:57:26 -!- Rugxulo has joined. 01:00:50 -!- augur has joined. 01:04:19 -!- Asztal has quit (Ping timeout: 248 seconds). 01:04:50 -!- oklopol has quit (Read error: Connection reset by peer). 01:05:25 -!- Gracenotes has joined. 01:05:46 -!- oklopol has joined. 01:10:00 -!- Alex3012 has quit (Read error: Connection reset by peer). 01:10:34 -!- Alex3012 has joined. 01:17:32 -!- oklopol has quit (Read error: Connection reset by peer). 01:20:04 03:12:29 Aw, Rugxulo already went? 01:20:13 yeah, after an hour + half of no chat :-) 01:20:23 (vastly different timezones don't help either) 01:20:49 adrian is so silly 8D 01:21:42 I assume -DFUNGE isn't really needed for ff3 (unless based upon Marsh, doubt it) 01:22:23 would be interesting to see somebody with a behemoth of a fast machine try the "benchmark" (AnMaster? Deewiant?) 01:22:29 Yay! Chrome spontaneously froze 01:22:36 on Linux? 01:22:41 Windows 01:22:48 Win7 x64? 01:23:03 -!- aschueler has quit (Quit: leaving). 01:23:06 No 01:23:08 are you sure? it's usually most stable on Windows 01:23:09 WinXP 01:23:22 bring up the Task Manager and kill the errant tab(s) 01:23:25 * Sgeo has a lot of tabs open, on a fairly weak machine 01:23:43 that's probably why, it uses more RAM than Firefox with more tabs open 01:23:52 :/ 01:24:13 heh, Sgeo, this machine is WinXP w/ 128 MB, so I'm not crazy enough to open too many tabs in Chrome (even running Opera just to save RAM) 01:24:21 gah, stupid "reboot now?" reminder over and over again 01:24:39 Rugxulo, I remember there's a trick to disable that, but don't remember what it was 01:24:52 sure, kill it ;-) 01:27:04 What's the nicest way to determine dpi? 01:30:42 Sgeo: Put your eye RIIIIIGHT next to the monitor and count. 01:32:47 Why does my emulated Android phone have no net connection? 01:32:54 The one I made before had one :/ 01:40:20 * Sgeo goes to play in the emulator's terminal emulator 01:41:03 what kind of stuff can you run on it? 01:41:25 Um, Android apparently uses something called Dalvik 01:43:12 Oh, huh, networking's working now 01:43:33 Dalvik is some lite Java-ish VM, right? 01:43:58 Not really sure 01:47:29 * Sgeo now wonders how to root his emulator 01:48:46 -!- uorygl has quit (Ping timeout: 252 seconds). 01:49:35 -!- Oranjer has quit (Read error: Connection reset by peer). 01:50:23 -!- uorygl has joined. 01:50:49 -!- Oranjer has joined. 01:52:05 -!- Tritonio_GR has quit (Quit: Leaving.). 02:00:02 -!- Rugxulo has quit (Quit: Rugxulo). 02:13:21 -!- Oranjer has quit (Read error: Connection reset by peer). 02:14:12 -!- Oranjer has joined. 02:15:43 -!- songhead95 has joined. 02:17:04 -!- songhead95 has left (?). 02:23:06 -!- songhead95 has joined. 02:27:11 -!- songhead95 has quit (Quit: songhead95). 02:39:14 -!- songhead95 has joined. 02:40:04 -!- Tritonio_GR has joined. 02:55:10 -!- songhead95 has quit (Quit: songhead95). 03:30:22 -!- Tritonio_GR has quit (Quit: Leaving.). 03:37:46 -!- augur has quit (Read error: Connection reset by peer). 03:59:26 -!- augur has joined. 04:00:44 -!- Oranjer has quit (Quit: Leaving.). 04:20:41 -!- Oranjer has joined. 04:45:08 -!- myndzi\ has joined. 04:47:17 -!- myndzi has quit (Ping timeout: 265 seconds). 05:38:04 -!- Rugxulo has joined. 05:38:41 fizzie, still here? you should try "bef2c -p -o" and use GCC on that 05:38:56 speeds up the (lame) "benchmark" a lot that way 05:39:12 AnMaster, it doesn't use string mode mostly because bef2c doesn't handle that 05:39:24 so I couldn't do "d" instead of 91+:* 05:40:04 now only takes 20 secs. (bef2c/GCC-compiled output) on this P4 05:43:02 actually, I think I accidentally timed the 4.2.3 output in the whole comparison that I quoted earlier 05:43:13 I can't match the time for GCC 4.4.2 on this P4 05:43:35 apparently 4.4.2 is much faster (52 secs.) vs. 4.2.3 (76 secs) or something like that 05:43:50 but whatever, the comparison is still valid, I used the same .EXE on each machine :-P 05:44:26 bah, stupid timezones 05:44:38 AnMaster, it doesn't use string mode mostly because bef2c doesn't handle that <-- sounds buggy. It is part of befunge, should be supported 05:44:57 And a fairly simple part of Befunge. 05:45:00 Deewiant, I ended up coding around your "quirk" in --befunge93, I still really wonder why you'd even *want* to reflect on unknown chars 05:45:02 yes 05:45:13 bef2c doesn't handle "p" or string mode 05:45:18 Rugxulo, buggy 05:45:19 blame Pressey, not me ;-) 05:45:27 true 05:46:01 Rugxulo: Reflection on unknown is fairly useful for Befunge 98. 05:46:10 yeah, but for --befunge93 ???? 05:46:12 Where it is entirely possible for an instruction to not be supported. 05:46:26 And that is just common behavior in Befunge 93. 05:46:27 bef.c (without -q) whines but still ignores 'em 05:46:45 But Befunge 93 does not define that behavior. 05:46:45 -!- Oranjer has left (?). 05:46:48 :) 05:47:05 I'll admit, I haven't tested every B93 implementation ever, but 99% of them don't reflect on ';' (etc) 05:47:19 Mine does. ;) 05:47:37 then you'll be glad to know that I worked around it in two of my other (lame) .bef scripts 05:47:51 Rugxulo: I get something like 0.2 seconds for the benchmark in jitfunge. 05:48:01 Rugxulo, .bef? 05:48:04 isn't it .bf 05:48:16 I prefer ".bef" 05:48:23 Brainf*** uses .b and sometimes .bf 05:48:24 .b -> brainfuck; .bf -> befunge93; .b98 -> befunge98 05:48:36 besides, the original interpreter was "bef", so ... 05:48:51 16 seconds for my interpreter. 05:48:58 on what hardware? 05:48:58 Rugxulo, yeah by that logic befunge98 should be .ffbi 05:49:04 also try "bef2c -p -o" 05:49:11 no, but you know what I mean 05:49:24 Phenom II x3 710. 05:49:30 Rugxulo, I don't? 05:49:37 since "bf" was ambiguous, I think "bef" is more appropriate, *especially* since the original interpreter was named "bef" (and not "bf") 05:49:38 Also: I'm not *sure* how long cfunge takes on it. 05:49:49 pikhq, what GCC? 05:50:06 (I killed it after some 11 minutes) 05:50:11 pikhq: Tried ff3 on your box? 05:50:13 gcc (Gentoo 4.4.3 p1.0) 4.4.3 05:50:14 ooh, x3, lucky dog ... I saw an ad for an AMD x3 only once, almost wanted it just for the novelty ;-) 05:50:14 pikhq, that was 64-bit or 32-bit? 05:50:17 fizzie: Yeah, 5 seconds. 05:50:26 AnMaster: *Oh*. Probably 64-bit. XD 05:50:35 pikhq, yeah 64-bit is default 05:50:47 pikhq, have fun during the next 800+ years! 05:50:50 heh 05:51:12 AnMaster: Now then. 05:51:26 (probably much more than that, it doesn't scale linearly with number of bits I bet) 05:51:27 pikhq, I dunno if 16 secs. is optimal for your advanced hardware ... for a P4, sure, but for a Phenom II ... ??? 05:51:48 Rugxulo: My interpreter could be much faster. 05:52:07 Cfunge takes 10s. 05:52:09 they all can ;-) 05:52:26 Ff3 takes 5. 05:53:03 Amusingly, if I were to *make* mine faster, I would basically have the same code as ff3. 05:53:06 pikhq, really? not too shabby 05:53:13 pikhq, did you use -march=native? 05:53:15 have you tried bef2c yet? 05:53:33 -march=native didn't help at all here (P4) 05:53:52 Rugxulo, you tried cfunge too? 05:53:56 AnMaster: Default CFLAGS for my system are "-O2 -march=amdfam10 -pipe -ggdb", and I've been adding -O3 on top of that. 05:54:03 pikhq, ah 05:54:03 no, cfunge won't run on Win32, remember? 05:54:15 Rugxulo, how would I remember you use win32 though? 05:54:22 Rugxulo, also iirc ehird got it working under cygwin 05:54:29 with gcc 3.x 05:54:36 I've been considering writing me a Befunge '98. 05:54:40 latest Cygwin has (IIRC) GCC 4.x 05:55:00 pikhq, oh btw, how long does ccbi1 and ccbi2 take on that benchmark for you? 05:55:16 AnMaster: I am *not* setting up a fucking D compiler. 05:55:30 don't have to, binaries provided on Deewiant's site 05:55:39 It has just given me too damned much pain. 05:55:46 pikhq, he has binaries 05:55:46 Rugxulo: Okay then. 05:56:09 fis@eris:~/src/jitfunge/src$ time ./jitfunge ../../ff/benchmark.bef 2>/dev/null 05:56:12 2147483596 05:56:14 real 0m0.153s 05:56:21 fizzie: Nice. 05:56:26 fizzie, system specs? 05:56:27 http://users.tkk.fi/~mniemenm/files/befunge/interpreters/ccbi/ccbi-linux-x86-64.txz 05:57:11 AnMaster: Athlon X2 5600+ or something; ff3 runs benchmark.bef in 6.something seconds. 05:57:21 ah 05:57:58 The binary has 64-bit cells. 05:58:00 fizzie, did it properly execute it or was it skipping most due to some bug? 05:58:24 Deewiant, why no comparison with FBBI anymore? too buggy?? 05:58:24 AnMaster: Judging from the result, I'd say it does it right. 05:58:25 pikhq, oh right 05:58:30 (re: Mycology) 05:58:43 32-bit build does *not*. :) 05:59:29 ccbi takes 19 seconds. 05:59:56 pikhq, hah. Well that is a 32-bit pointer build 06:00:16 it might explain why it is slower in part 06:00:45 And it takes 45 seconds with --befunge93. 06:00:50 pikhq, haha 06:00:53 That is a *slow* b93 interpreter. :P 06:00:59 pikhq, well he said he worked on it 06:01:39 pikhq, oh and for cfunge the -s 93 mode won't make a difference. It _only_ changes from SGML spaces to befunge93 string mode 06:01:48 everything else follow 98 rules still 06:01:57 AnMaster: I noticed, actually. 06:02:02 consider it just a compatibility mode 06:02:08 not a full befunge93 mode 06:02:25 I really lack interest in doing anything more advanced for befunge93 06:02:37 Yeah... 06:02:49 If you *really* want to, just ship ff3 or something. 06:02:52 snob ;-) 06:02:58 Rugxulo, to me? 06:03:00 heh 06:03:06 yes (semi-jokingly) 06:03:09 right 06:03:13 http://ocw.mit.edu/OcwWeb/hs/geb/VideoLectures/index.htm 06:03:25 Rugxulo, I just find befunge93 fairly boring compared to befunge98 06:03:46 pikhq, can you check how long efunge takes on it? 06:03:55 AnMaster: Link? 06:04:01 pikhq, do you have bzr? 06:04:13 I haven't yet made a release 06:04:15 AnMaster: No. 06:04:24 let me see if it has tarballs 06:04:42 Anyways. Befunge-98 implementation. I've got half an idea to go ahead and compile a row or column into threaded code whenever code would be flowing through said row or column. 06:04:54 pikhq, https://code.launchpad.net/~anmaster/efunge/trunk 06:04:55 AnMaster, so boring that you can't implement compatibility? tsk tsk ... 06:05:07 Rugxulo, would slow me down :P 06:05:08 does anyone here have write access to the esolang archive? 06:05:22 pikhq, there is no release yet sorry 06:05:22 Making all of the actual interpreting instructions step just via goto *ip++, goto *ip--, or goto *ip+=delta. 06:05:35 after all the time you "saved" with your lightning-fast C99/POSIX/x64+SIMD B98 interpreter?? :-P 06:05:43 pikhq, anyway efunge will either be slower or faster than Language::Befunge. Which of those I don't know 06:05:59 Rugxulo, how do you mean saved? 06:06:06 conserved 06:06:17 Rugxulo, oh I meant "slow me down" as in "slow interpreter down" 06:06:37 keep the fast bits for B98 mode, others for B93 06:06:49 (Oh, and obviously invalidating precompiled threads upon code modification) 06:06:57 Thoughts? 06:07:01 I can't think of any B93 script that needs a "fast" interpreter anyways 06:07:05 Rugxulo, still. You need to have two main loops and two different switch statements 06:07:14 Rugxulo, this benchmark? life.bf? 06:07:30 write a B93 interpreter in B98, then, if that's all that fascinates you ... best of both worlds :-)) 06:07:41 pikhq, ? 06:07:54 Rugxulo, hah 06:08:16 (seriously, though, esolang archive is dreadfully anemic, all of us could add lots and lots to it) 06:08:47 mhm 06:08:49 AnMaster: Compiling a row or column into a single bit of threaded code when control would flow into it, so that all the actual *interpretation* doesn't involve much work at all. 06:09:04 pikhq, you mean like ff3? 06:09:13 For Befunge-98. 06:09:26 pikhq, you still have non-cardinal delta 06:09:30 like going diagonally 06:09:40 or (3,48) or whatever 06:09:42 BTW, just vaguely curious, anybody ever used the Sponge "compiler"? 06:09:46 Argh, yes. That would require significantly more work. 06:10:00 Rugxulo, the scheme→befunge one? 06:10:05 yes 06:10:06 tried it 06:10:32 AnMaster: I'd be tempted to treat that as a slow case. 06:10:37 :P 06:10:39 Rugxulo, iirc it lacked call/cc which made me somewhat uninterested 06:10:52 (how much code actually *uses* non-cardinal delta, anyways?) 06:11:04 pikhq, I use 11x fairly often 06:11:07 he didn't seem to provide any examples, so I was curious if it was "just because" or ... 06:11:19 Hmm... 06:11:30 pikhq, also remember the code may not be compact. You may have a single value at (1778246873,6472673) or whatever 06:12:08 Rugxulo, who is/was "he" there? 06:12:18 Non-cardinal delta makes it a royal pain to *cache* any of the threaded code. 06:12:19 whoever wrote Sponge (I forget ...) 06:12:21 ah 06:12:40 pikhq, See, befunge98 is a lot more interesting ;P 06:12:45 a greater challenge 06:12:59 bbl, going to university 06:13:00 AnMaster: A single value at (1778246873,6472673)? 06:13:16 Why, that would just be an array with two elements! 06:17:58 http://zem.fi/~fis/jitbench.txt is what LLVM's static compiler bits make out of the IR dumped by jitfunge. It's not quite optimal, but not too horrible either. 06:19:01 It would have been nicer if it could have moved the stack push/pop out of the loop. 06:25:00 Faster than what nearly anything else is going to do with it. 06:26:01 sed -e 's/\(.\{80\}\).*/\1/' -e '25q' mycology.b98 >mycology.b93 06:26:07 (seems correct, easier than manually doing it) 06:26:55 that's what I get for sticking with 128x128 for no good reason :-/ 06:27:08 sorry, just rambling to myself, carry on ... 06:27:42 (none of you ever did benchmarking after running through bef2c, oh well ...) 06:29:01 and I still say that reflecting in --befunge93 is wrong ... if "fbbi -93" and "bef -q" both accept it, then why don't you? 06:29:40 Because I decide what to do on undefined behavior. :P 06:30:37 what undefined case is this? 06:30:59 reflecting on unrecognized chars in B93 mode 06:31:01 ais523: What to do on unknown characters, Befunge93. 06:31:04 I remember that interfunge goes mad if the input file isn't exactly 80x25, with lines padded out with spaces to the right length 06:31:06 pikhq: ah 06:31:08 original / official doesn't reflect, but ... 06:31:21 BTW, ais523, did you release a new Intercal on April 1? 06:31:26 no 06:31:30 In Befunge93, most things are undefined. 06:31:33 I don't have one to release, I've hardly worked on it 06:31:39 awww :-/ 06:31:50 although if there's somewhere to put a repo online, I don't mind letting people see the state it's in atm 06:32:00 so people with more spare time than me can fork it, or whatever 06:32:12 what, you're giving up? *sniff* 06:32:22 Hee, with -DUNSAFE_STACK, it goes nicely: http://zem.fi/~fis/jitbench-unsafe.txt 06:32:27 .LBB12_2: # %Entry0 06:32:28 # =>This Inner Loop Header: Depth=1 06:32:28 addECX, -100 06:32:28 testECX, ECX 06:32:28 jle.LBB12_2 06:32:44 Hm, raw tabs. Anyway. 06:32:59 Rugxulo: no, not really 06:33:04 just, unlikely to work on it very fast 06:33:21 I /did/ get a bug report recently, which I may try to fix 06:33:32 and a feature request, denied on the basis that it already existed with the same syntax in Perl and PHP 06:34:28 what request exactly? 06:34:47 the $$variable syntax from Perl/PHP 06:34:54 (which would become ..1 or whatever in INTERCAL) 06:35:01 ais523: Though crazy, yeah. Definitely not for INTERCAL. 06:35:12 It's insufficiently crazy -- someone's done it! 06:35:22 yep 06:35:52 speaking of crazy, I wonder if AnMaster has considered using Pash (Powershell subset) for anything ;-) 06:36:33 Pash = crazy, not AnMaster (obviously?) 06:36:38 -!- augur has quit (Quit: Leaving...). 06:36:53 just being here is evidence of being crazy, or else lost 06:36:55 ah, forgot he left for university, bah 06:37:09 * Rugxulo still doesn't understand _Lost_ 06:37:34 I don't think you're meant to understand it 06:38:59 well, there aren't that many episodes left!! 06:46:05 -!- oerjan has joined. 06:47:26 damn Wikipedia is weird ... why hyperlink the number "4" ??? 06:47:50 *some of wikipedia's editors 06:48:05 i don't think it's generally recommended behavior :D 06:48:10 Rugxulo: if it's a date, that's fine 06:48:11 *its 06:48:18 not a date 06:48:20 uh 06:48:28 piping it to [[4 (number)]] is weird, and possibly should be delinked 06:48:30 I've also seen a link to a page for "motherf**ker" !! 06:48:33 linking it to [[4]] is just plain wrong 06:48:47 all because "Epic Beard Man" [sic] is famous for that on his shirt :-)) 06:49:02 so yeah, quite absurdly useless 06:49:19 *it's 06:49:39 too early for me 06:50:13 "4 (four) is a number, numeral, and glyph. It is the natural number following 3 and preceding 5." 06:50:19 (turning into Sesame Street?) 06:50:31 Rugxulo: just in case you don't know what 4 is 06:50:46 in some esolangs, defining numbers can be rather tricky 06:51:06 in Underload, for instance, you'd probably define 4 as (:::***), but might use any number of other definitions 06:51:17 "Motherf**ker (euphemized as mf) is a vulgarism which, in its most literal use, refers to one who participates in sexual intercourse with someone's mother." 06:51:25 I'm so glad Wikipedia cleared that up for me ;-) 06:52:11 and we (#esoteric) are the crazy ones??? :-P 06:52:59 everyone is crazy, just some people are so crazy they think they aren't 06:55:11 but seriously, Wikipedia is ultra cool ... but a little crazy! 06:58:51 -!- FireFly has joined. 07:02:07 -!- coppro has quit (Remote host closed the connection). 07:02:49 -!- coppro has joined. 07:05:54 -!- pikhq has quit (Read error: Connection reset by peer). 07:22:35 ah well, gonna jet ... 07:22:43 bye 07:22:44 -!- Rugxulo has quit (Quit: Rugxulo). 07:46:11 -!- Guest69012 has joined. 07:48:36 -!- pikhq has joined. 07:50:43 -!- Guest69012 has quit (Ping timeout: 248 seconds). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:02:22 -!- coppro has quit (Quit: Disconnected.). 08:04:32 -!- oerjan has quit (Quit: leaving). 08:05:33 -!- nooga has quit (Ping timeout: 260 seconds). 08:06:29 -!- FireFly has quit (Quit: Leaving). 08:33:08 -!- ais523 has quit (Remote host closed the connection). 08:35:53 -!- pikhq has quit (Read error: Connection reset by peer). 08:37:18 -!- pikhq has joined. 08:54:53 -!- aschueler has joined. 09:38:13 -!- gm|lap has joined. 09:58:04 In case Rugxulo logreads... 09:58:41 Rugxulo: Reflection seems like the sensible thing to do since that's what I'm used to from -98... but I suppose I can switch it to nop instead 09:59:22 Rugxulo: No FBBI in the new comparison because it's too buggy and because it's not likely to be updated; the old comparison results are still there, though. 09:59:27 -!- nooga has joined. 10:01:41 pikhq: I improved that -93 result, but it'll still be slower than -98 on that benchmark since the -98 is clever enough not to execute a nop (80 - width of program) times. 10:05:18 -!- ais523 has joined. 10:05:52 Deewiant: Of course you can just customize the interp for the particular program: 10:05:55 fis@eris:~/src/ff$ gcc -o ff3 ff3.c -DINTERLEAVED -O2 10:05:56 fis@eris:~/src/ff$ time ./ff3 benchmark.bef 10:05:56 2147483596 10:05:56 real 0m6.119s 10:05:56 user 0m6.080s 10:05:58 sys 0m0.000s 10:06:00 fis@eris:~/src/ff$ gcc -o ff3 ff3.c -DINTERLEAVED -DPF_X=15 -DPF_Y=1 -O2 10:06:03 fis@eris:~/src/ff$ time ./ff3 benchmark.bef 10:06:05 2147483596 10:06:08 real 0m2.429s 10:06:10 user 0m2.420s 10:06:13 sys 0m0.000s 10:06:18 fizzie: That's cheating. :-P 10:06:57 Deewiant: No, it's... uh, being environmentally conscious! No sense in wasting bytes! 10:08:19 The environment won't thank you when the local nuclear reactor's control system's 75x19 Befunge-93 core breaks down due to being run in a "customized interp"! 10:09:12 Could add boundary tracking (with a fixed maximum) to ff3 too, but then I'd have to re-paint the border zone whenever they are extended. 10:09:28 Which would be very cheap in -93 10:10:25 -!- lereah_ has joined. 10:10:30 That's a project for some day that I'm unsick enough to get out of bed; the N900 keyb is not quite so coding-friendly. 10:11:03 You're sick in bed and on IRC about Befunge? That's clever :-P 10:11:27 What else is there to do? 10:12:07 Typically when I'm bedridden I pretty much just sleep and eat 10:12:30 Except that I have to get up every 15 minutes to check if the cat wants to come in from the balcony. There should be some sort of system for that. 10:12:40 If I'm "just" very ill, I can usually manage to sit at the computer as usual 10:16:13 -!- ais523 has quit (Read error: Connection reset by peer). 10:16:31 -!- ais523 has joined. 10:47:02 -!- kar8nga has joined. 10:53:56 -!- Tritonio_GR has joined. 11:00:14 -!- gm|lap has quit (Quit: ilua). 11:22:06 -!- cal153 has quit (Read error: Connection reset by peer). 11:32:24 -!- tombom has joined. 11:42:57 -!- MizardX has quit (Quit: reboot). 11:53:17 -!- nooga has quit (Ping timeout: 260 seconds). 11:53:43 -!- MizardX has joined. 12:16:05 -!- Alex3012 has quit (Remote host closed the connection). 13:08:20 -!- Alex3012 has joined. 13:49:02 -!- Tritonio_GR has quit (Read error: Connection reset by peer). 13:52:00 -!- Gracenotes has quit (Ping timeout: 276 seconds). 14:00:13 -!- aschueler has quit (Ping timeout: 260 seconds). 14:09:38 -!- Asztal has joined. 15:22:37 -!- oerjan has joined. 15:34:50 speaking of crazy, I wonder if AnMaster has considered using Pash (Powershell subset) for anything ;-) <-- I never heard of pash before 15:35:15 Why, that would just be an array with two elements! <-- two? Also there would be some data around 0,0 as well of course 15:35:31 pikhq, what I meant was that data can be *very* sparse 15:38:09 -!- oerjan has quit (Quit: Reboot). 15:41:57 -!- Azstal has joined. 15:42:28 Except that I have to get up every 15 minutes to check if the cat wants to come in from the balcony. There should be some sort of system for that. <-- develop that, in befunge 15:42:29 -!- oerjan has joined. 15:42:58 too early for me <-- what is the optimal time for you then? 15:43:09 -!- Asztal has quit (Ping timeout: 276 seconds). 15:43:21 -!- Azstal has changed nick to Asztal. 15:43:23 sometime not just after i woke up 15:43:37 oerjan, okay. But that doesn't spec how long 15:43:39 like 15:43:46 half an hour? 15:43:48 1 hour? 15:43:50 3 hours? 15:43:57 and perhaps after i finish breakfast, too 15:44:06 oerjan, and why were you using irc during/before breakfast? 15:44:53 Why not? 15:45:19 Deewiant, well if he had problems with it 15:45:48 um it was a joke? 15:45:53 oh 15:47:26 admittedly there is one reason not to - i _do_ seem to accumulate crumbs in my laptop keyboard 15:47:41 occasionally 15:51:37 -!- lereah_ has quit (Quit: Leaving). 15:54:38 -!- FireFly has joined. 15:57:49 -!- kar8nga has quit (Remote host closed the connection). 16:07:11 oerjan, heh 16:07:40 oerjan, I only have hair in it, mostly due to not eating at computer very much 16:13:11 Wanting to use Scala even when Java interoperability is not required isn't a bad thing, is it? 16:14:11 i think scala is interesting in itself 16:14:24 dammit crumb under f key 16:14:56 seems to have vanished 16:15:27 i hear it's type system has become even more advanced since when i looked (briefly) at scala 16:15:40 *its 16:16:45 what the heck avg's whole computer virus scan has become three times faster since last time 16:16:47 Type erasure's no fun though, and its sole reason for existance is Java compatibility 16:16:54 i guess it's got better at skipping things 16:17:57 oh wait or maybe... 16:21:45 nope all the old java versions are still there (i had to reinstall the latest one recently) 16:22:13 avg used to spend an eternity inside those 16:22:52 you know, at this rate i might start scanning more often than once a month again ;D 16:24:05 Hm, I take it that for things like web access, you're meant to use Java libraries 16:24:28 * oerjan wouldn't know 16:28:37 -!- BeholdMyGlory has joined. 16:43:18 AnMaster: Two elements for that column. That's just the threaded code array. 16:43:33 And I'm not sure how well this could be... Cached. At all. 16:46:12 pikhq, so how are you storing funge space in this model? Remember it can be very sparse 16:47:17 what the heck avg's whole computer virus scan has become three times faster since last time <-- because of the malware hiding 2/3 of the disk? 16:47:33 er... 16:47:45 oerjan, bad joke 16:47:49 let's hope not. 16:47:57 oerjan, heh 16:47:59 it _did_ find three trojans 16:48:09 (hiding in the same place as usual) 16:48:17 what's the "same places" as usual? 16:48:26 pron dir? 16:48:28 or what ;P 16:48:35 brb 16:49:16 C:\RECYCLER 16:49:54 at least i've seen that before 16:50:26 oerjan, you hope that what AnMaster said wasn't a joke? 16:50:39 no, that it wasn't real 16:53:11 AnMaster: I'm halfway to abandoning this model because it doesn't handle the sparseness correctly. 16:54:58 * Sgeo should be doing laundry 16:56:32 oh laundry, right 16:56:46 well, after i've finished eating 16:57:25 back 16:57:28 have to replenish the keyboard, after all 17:02:52 -!- mycroftiv has quit (Ping timeout: 252 seconds). 17:03:39 -!- mycroftiv has joined. 17:27:53 -!- bsmntbombdood has quit (Remote host closed the connection). 17:28:05 -!- bsmntbombdood has joined. 17:36:28 -!- kar8nga has joined. 18:00:52 -!- cal153 has joined. 18:01:53 AnMaster: Yeah, a hash table is definitely the simplest data structure for *storing* the Befunge space. 18:03:14 My thoughts are more on how to go from there to a simple array for interpreting. Not quite sure what to do about that. 18:11:50 AnMaster: Yeah, a hash table is definitely the simplest data structure for *storing* the Befunge space. <-- not the fastest 18:12:29 pikhq, what I recommend is starting with a hash table but making sure to use a clean API to it so you can reasonably easy rip it out later when other stuff is working and replace it with something faster 18:12:39 No, I never said it was the fastest. 18:13:17 pikhq, something like setup() load_file(), dump_to_file(), get(), set(), get_bounds() (for y) and perhaps wrap_ip() 18:13:31 "Simple" and "fast" are very rarely the same thing. :) 18:13:52 They often are if you allow the thing to be "wrong" as well 18:15:26 I'm a bit confused at the exact funge-space bounds thing. How am I supposed to recompute the bounds if someone puts a space onto the outermost edge? 18:15:39 Expensively :-P 18:15:44 Yeah, I thought so. :P 18:16:04 There are ways to cheapen it but basically, expensively. 18:16:25 Good thing my funge space is essentially a bounding volume hierarchy. 18:18:47 pikhq, point is, being able to rip out and replace funge space without too much of a PITA is a good idea. Make them macros if you are worried about speed 18:19:29 One of the big things I see from the choice of data structures is that it's probably a royal pain to access the fungespace in the line that the code is going in. 18:19:34 Deewiant, I have considered that. What about specialised hardware to do it? 18:19:55 Go ahead; you'll have to donate me some if you want it to show up in Fungicide though :-P 18:20:04 hah 18:20:27 isn't there memory that can compare a value in constant time? Used for network switches to find MAC addresses and such iirc 18:20:43 AnMaster: what exactly do you mean by that? 18:20:58 there's certainly hardware which can sort n packets in log n time 18:21:12 hmm, no, log m time, where m is the maximum address 18:21:17 ais523, well you can check if a value is in memory and what is accoiated with it (would be port number I assume) 18:21:23 but it takes rather a lot of hardware to do so 18:21:24 associated* 18:21:31 AnMaster: isn't that just a hash? 18:21:49 * pikhq goes to kanji review 18:22:01 ais523, iirc it basically have lots of parallel comparing circuits 18:22:07 one for each "slot" in memory 18:22:11 so it can check all values at once 18:22:31 ais523, http://en.wikipedia.org/wiki/Content-addressable_memory 18:22:51 ah, ok 18:23:03 hardware that does constant-time hash-/reversing/, that makes more sense 18:23:32 hmm, or maybe forwards, depending on your point of view 18:23:37 well yeah 18:23:59 ais523, I just think of it as a way for network switches and such to find what port a given MAC is on 18:25:58 first: actually tracking column/row counts shouldn't be too expensive in hardware, after all you could just "listen" to the writes to funge space and update the counts. With no performance cost (yes this is a speed-space tradeoff most certainly) 18:26:19 so doing what cfunge with exact bounds do shouldn't be too hard. 18:26:31 then using some smart algorithm for that should make it interesting 18:26:49 oh and of course, funge space could be implemented as a CAM with xy to look it up 18:27:28 allowing constant speed to a given number of cells. 2^32*2^32 wouldn't be feasible of course. But this would be like a very fast hash table 18:27:34 and you would have no collision 18:27:55 you would probably have to use some fallback storage if things grow too large 18:28:35 and you could hardwire a bit around 0,0 in a possibly cheaper way (smaller constant I guess) 18:28:58 you don't need content-addressability, surely? 18:29:06 just regular addressability would effectively work 18:29:07 ais523, for doing a sparse funge space 18:29:09 ah, ok 18:29:20 ais523, I'm talking about b98 not b93 18:30:23 ais523, and you need CAM because you can't have a 1:1 mapping due to 2^32*2^32 being unfeasible, thus pigeonhole principle. 18:31:20 In fact I think a befunge93 in VHDL would be interesting. Befunge98 while wonderful to dream about is probably infeasible to ever run on a FPGA or such. 18:31:29 now I wonder if VHDL can implement CAM... 18:32:05 ais523, you should implement befunge93 in VHDL ;P 18:32:13 unless someone has done this 18:32:21 I haven't 18:38:50 We thought briefly about a Befunge coprocessor for the computer architecture practicals course (the main assignment is to design a mips-like cpu, but you get extra points for a coprocessor or simulatable vhdl), but that never went anywhere. 18:39:16 fizzie, heh 18:40:56 http://en.wikipedia.org/wiki/Holographic_associative_memory <-- interesting 18:45:31 Never going to make a breakthrough with the acronym HAM. But still better than SPAM, I guess. 18:46:09 heh 18:48:14 * pikhq wishes there were more Unefunge programs 18:48:29 As Unefunge is *so* much easier to handle. 18:48:36 -!- kar8nga has quit (Read error: Connection reset by peer). 18:48:50 pikhq, you don't like a challenge? 18:49:05 AnMaster: Sparse 2d arrays give me a headache. 18:49:13 Try 3D! 18:49:20 Deewiant: OW 18:49:22 pikhq, oh? Try a AABBs 18:49:22 :-D 18:49:32 pikhq, or quadtrees 18:49:34 AnMaster: Which is a... What? 18:49:36 or hash tables 18:50:01 pikhq, Deewiant can explain it. It is what CCBI uses. cfunge in practise uses a single one for the area near 0,0 and hash for the rest 18:59:16 strongly parallel associative memory 19:00:05 oerjan, ? 19:00:26 oerjan, is it a pun? Or something actually relevant? 19:00:45 yes 19:00:50 oerjan, both? 19:01:04 oerjan, explain what you mean though 19:01:04 * oerjan whistles innocently 19:02:19 in which we deduce that AnMaster's short term memory _and_ irc backscroll are shorter than 15 minutes 19:03:31 oerjan, I don't get what the "strongly" comes from 19:03:33 that is the issue 19:05:38 hint: fizzie 19:06:16 oh that 19:06:19 oerjan, far fetched 19:06:37 yes, 15 minutes is so far 19:06:45 oerjan, no in logical jump 19:07:14 no it wasn't, it was entirely obvious 19:07:21 oerjan, I disagree 19:07:32 19:40 AnMaster> http://en.wikipedia.org/wiki/Holographic_associative_memory 19:07:32 <-- interesting 19:07:32 19:45 fizzie> Never going to make a breakthrough with the acronym HAM. But 19:07:32 still better than SPAM, I guess. 19:07:55 this _had_ to be the one time irssi _didn't_ join lines 19:08:47 (what the heck is the point with joining lines if it doesn't do it for lines copied from _itself_? 19:08:50 ) 19:09:47 anyway, i claim the logical jump from that to be quite tiny. 19:11:24 and I claim it is large 19:14:31 it would have been better if there were something actually called strongly parallel associative memory, anyway 19:16:07 spam associative memory turns up nothing relevant :( 19:16:39 it's like people were actively avoiding the acronym, or something :/ 19:24:39 Buy a few more gobs of SPAM for you server, it'll increase throughput. 19:25:10 i hear most throughput is SPAM these days. 19:32:50 -!- ais523 has quit (Read error: Connection reset by peer). 19:41:46 * pikhq grabs GCC 4.5, shall play with this here "link-time optimiser" 19:54:53 -!- Asztal has quit (Ping timeout: 260 seconds). 20:39:04 -!- Asztal has joined. 20:56:06 I foresee an underwhelmed pikhq 21:01:05 Oh, right, gold still sucks ass. 21:01:06 That's right. 21:01:33 Better things to do with my time AWAY! 21:01:51 Hmm. "Better things"... 21:10:00 hm 21:10:22 (1) annoying: they're cutting off the water in 5 mins because of a leak 21:12:04 (2) awesome: they apparently sent a text message warning to the cell phones of everyone in the neighborhood 21:15:23 (3) apparently we may expect volcanic ash raining down here tomorrow 21:15:31 did (2) result in a denial-of-service attack bringing down the cell network? 21:15:57 i would doubt that 21:16:05 after all, the message arrived 21:16:08 Nature strikes back. 21:16:28 Expect a rain of fire and brimstone. 21:16:38 (and most of norway) 21:17:13 parts of britain too, perhaps 21:17:35 map: http://www.dagbladet.no/2010/04/14/nyheter/innenriks/aske/flytrafikk/11282382/ 21:18:50 pikhq, is 4.5 released? 21:19:13 (3) apparently we may expect volcanic ash raining down here tomorrow <-- what? 21:19:28 AnMaster: see the link 21:19:39 oerjan, what about Sweden? 21:20:00 well the red region barely touches sweden 21:20:05 We don't get any. :( 21:20:15 and I'm out of the green area 21:20:19 the green is no-fly area 21:20:20 oerjan, what does the colours mean? 21:20:43 oerjan, be sure to take some photos if it happens 21:20:48 or rather height of ashes (prognosis 12 pm tomorrow) 21:21:00 i don't have a camera to use 21:21:54 "Kan også ramme sør" <-- I end up parsing this as "can also ram wounds" which seems wrong 21:21:59 red: 0 - 20000 feet, green 20000 - 35000 feet, blue 35000 - 50000 21:22:05 sør = south 21:22:11 oerjan, and the "ramme"? 21:22:16 hit 21:22:26 ah 21:22:31 oerjan, "sannsynlighet"? 21:22:38 probability 21:23:11 heh 21:23:55 oerjan, Eyjafjallajökull? Or is that Islandic? 21:24:31 yes 21:24:41 oerjan, "akutt flomfare" <-- ? 21:24:42 it's a glacier afaik 21:24:52 acute flood danger 21:25:03 well not sure about acute 21:25:08 `define acute 21:25:21 * having or experiencing a rapid onset and short but severe course; "acute appendicitis"; "the acute phase of the illness"; "acute patients" \ * extremely sharp or intense; "acute pain"; "felt acute annoyance"; "intense itching and burning" \ * having or demonstrating ability to recognize or draw fine distinctions; 21:25:21 oerjan, sv:akut? 21:25:27 At least some other jökulls are glaciers. 21:25:42 i think that's what jökull means 21:25:47 oerjan, so it wasn't flamedanger? 21:25:49 :/ 21:26:03 the volcano is rather far from norway :D 21:26:08 flom fare meaning flame danger rather than flood danger would have been nicer 21:26:22 you'd expect the ashes to have cooled down quite a bit ;) 21:26:25 oerjan, sure but that was about Iceland as far as I can tell 21:26:31 oh right 21:26:34 oerjan, "Alle veier inn til området rundt 120 kilometer øst for hovedstaden Reykjavik er stengt etter at smeltevann fra isen skaper akutt flomfare." 21:26:47 yeah it was flood because of the glacier melting 21:27:06 oerjan, I mean, wetness isn't the first thing I think of when hearing about volcanos 21:27:19 i don't have a camera to use <-- what about your mobile phone? 21:27:36 it's 8 years old, no camera :D 21:27:39 Curiously, en:glacier is fi:jäätikkö, not so far off. Not that it's likely to be related. (fi:jää = en:ice.) 21:27:41 heh 21:28:01 glaciär in Swedish 21:28:14 no:isbre 21:28:24 "Vulkansk aske er vanskelig å oppdage fra et fly"? 21:28:39 volcanic ashes are hard to discover from a plane 21:28:40 gi:osefloop 21:28:50 oerjan, ah, not a fly then ;/ 21:28:51 Gregor: wtf 21:28:56 gi == gibberish 21:29:04 gibber gibber 21:29:08 -!- Phantom_Hoover has joined. 21:29:32 Can you cross wires on a microchip? 21:30:10 i bet ais523 knows (and is not here) 21:30:23 "Can you"? Of course. Generally the wire-crossing problem is avoided simply by (slightly) using the third dimension. 21:30:33 http://www.svd.se/nyheter/utrikes/aska-fran-vulkan-stoppar-norgeflyg_4566955.svd <-- there too oerjan 21:31:28 jökull m (genitive singular jökuls, plural jökular) -- he's a very jökular fellow. 21:31:56 so true 21:32:28 Gregor: I was just wondering aloud if the construction methods of silicon chips allows crossing. 21:32:38 I don't really know about that. 21:33:20 Phantom_Hoover: If you mean crossing without interfering, then yes, the build in layers. If you mean crossing as in connecting, then yes. 21:33:21 fizzie, wut? 21:33:26 *they build 21:33:43 Gregor: OK. 21:33:44 -!- Phantom_Hoover has quit (Client Quit). 21:33:59 IRC: a great place to go to ask one question then quit. 21:34:05 XD 21:56:27 -!- Azstal has joined. 21:58:13 -!- Asztal has quit (Ping timeout: 265 seconds). 21:58:21 -!- Azstal has changed nick to Asztal. 21:58:30 -!- Oranjer has joined. 22:01:37 -!- augur has joined. 22:01:52 does the name Chris Barker sound familiar to anyone here? 22:01:58 yes 22:02:03 I'm from south carolina 22:02:10 I believe he was in a plane crash here? 22:02:24 or am I completely wrong 22:02:29 wrong chris barker :P 22:02:36 ah, okay 22:02:43 chris barker as in Iota 22:02:56 and Jot 22:05:09 nope 22:06:01 but you do know of Iota/Jot, yeah? 22:06:05 Ah, that guy. 22:07:05 hes a linguistics prof at NYU 22:07:15 we're trying to get him to come give a talk at UMd 22:07:19 is he ever in here? 22:07:31 Don't think so. 22:07:35 shame 22:12:14 I think once you're a prof you're banned from #esoteric :P 22:12:43 aww 22:12:47 but he invented iota and jot! 22:13:01 WHILE he was a prof! 22:48:55 -!- tombom has quit (Quit: Leaving). 23:07:55 -!- oerjan has quit (Quit: Good night). 23:19:07 -!- coppro has joined. 23:51:04 -!- MizardX has quit (Quit: brb). 23:55:17 -!- MizardX has joined. 2010-04-15: 00:07:32 -!- FireFly has quit (Quit: Leaving). 00:07:48 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:17:45 -!- sebbu2 has quit (Ping timeout: 258 seconds). 00:27:45 -!- sebbu has joined. 00:44:05 -!- Sgeo|web has joined. 00:44:54 Our Data Structure class just went over inorder printing of sorted binary trees [print the tree on the left, print the value, print the tree on the right]. We did NOT go over recursion before this. 00:45:25 -!- augur has quit (Ping timeout: 252 seconds). 01:02:31 -!- augur has joined. 01:05:27 -!- Slereah has quit (Ping timeout: 260 seconds). 01:09:54 -!- Slereah has joined. 01:13:18 -!- Gracenotes has joined. 01:29:26 -!- augur has quit (Ping timeout: 265 seconds). 01:41:09 -!- Slereah has quit (Ping timeout: 276 seconds). 01:41:51 -!- Sgeo|web has quit (Quit: Page closed). 01:53:27 pikhq: ping 01:53:37 Sgeo: iteration obv 01:55:28 coppro: Pong 01:55:59 actually, nevermind. I realized that what I was about to say was wrong 02:07:50 -!- Asztal has quit (Ping timeout: 246 seconds). 02:33:22 -!- lament has joined. 02:42:30 Arrrrrgh. 02:42:36 most is the WORST PAGER EVER. 02:45:43 How so? 02:45:53 Like more only more so? 02:48:09 -!- Oranjer1 has joined. 02:50:04 -!- Oranjer has quit (Ping timeout: 276 seconds). 02:51:44 more is a better pager than most. 02:51:50 Friggin MORE is a better pager than most. 02:51:56 But less is so much better than either. 02:56:34 -!- Oranjer1 has changed nick to Oranjer2. 02:56:46 -!- Oranjer2 has changed nick to Oranjer3. 03:01:10 -!- Oranjer3 has changed nick to Oranjer4. 03:09:26 -!- Oranjer4 has changed nick to Oranjer. 03:10:46 -!- Oranjer has left (?). 03:16:07 -!- coppro has quit (Ping timeout: 260 seconds). 03:25:50 -!- Mathnerd314 has joined. 04:24:58 -!- adu has joined. 04:41:18 -!- augur has joined. 04:51:22 -!- zzo38 has joined. 04:54:06 -!- zzo38 has quit (Remote host closed the connection). 05:45:48 -!- coppro has joined. 05:49:02 But less is so much better than either. <-- is there any "least"? 05:52:41 hm, is http://www.frappr.com/esolang down? 05:56:56 what is frappr? the map thingy? 05:57:08 if so yes iirc they shut down 05:58:40 ok 05:59:11 how esoteric does a language have to be to be discussable on #esoteric? 05:59:34 can't say, and I'm leaving for university now 05:59:40 cya this evening 05:59:49 (early morning atm for me) 06:00:03 ok 06:17:11 -!- augur has quit (Remote host closed the connection). 06:17:31 -!- augur has joined. 06:17:31 -!- adu has quit (Read error: Connection reset by peer). 06:18:01 -!- adu has joined. 06:27:36 -!- pikhq_ has joined. 06:32:41 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 06:34:59 -!- lament has quit (*.net *.split). 06:34:59 -!- pikhq has quit (*.net *.split). 06:40:13 -!- lament has joined. 06:42:41 -!- tombom has joined. 06:45:02 -!- augur has quit (Ping timeout: 265 seconds). 07:07:13 -!- augur has joined. 07:07:30 -!- adu has quit (Quit: adu). 07:31:38 -!- lament has quit (Quit: lament). 07:37:56 -!- tombom has quit (Quit: Leaving). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:19:49 -!- oerjan has joined. 08:22:23 But less is so much better than either. 08:22:45 i haven't tried that "either" pager you're speaking about. 08:23:02 (or "most", for that matter) 08:23:43 how esoteric does a language have to be to be discussable on #esoteric? 08:23:58 not much. now if you mean to be _on topic_, on the other hand 08:26:00 -!- kar8nga has joined. 08:27:13 but we're only on topic about half the time, and most of that seems to be befunge these days. 08:27:22 wait what 08:27:54 08:28:15 i guess it's too early again 08:33:35 -!- Slereah has joined. 08:52:45 -!- aschueler has joined. 09:05:34 -!- oerjan has quit (Quit: leaving). 09:26:55 -!- Sgeo_ has joined. 09:27:58 -!- Alex3012_ has joined. 09:29:15 -!- Alex3012 has quit (Ping timeout: 245 seconds). 09:29:17 -!- Alex3012_ has changed nick to Alex3012. 09:29:40 -!- Sgeo has quit (Ping timeout: 245 seconds). 09:33:04 proof tableax! 09:33:07 tableaux, even 10:06:43 -!- lereah_ has joined. 10:29:08 -!- FireFly has joined. 11:29:10 -!- kar8nga has quit (Remote host closed the connection). 11:59:31 -!- BeholdMyGlory has joined. 12:58:29 -!- kar8nga has joined. 13:13:54 -!- Asztal has joined. 13:20:31 -!- pikhq_ has quit (Read error: Connection reset by peer). 14:21:50 -!- pikhq has joined. 14:25:05 Mathnerd314: If it's as esoteric as Perl, then it's allowed. 14:25:11 at least as* 14:26:55 * Sgeo_ holds his breath and installs Eclipse and the JDK 14:48:25 -!- ais523 has joined. 14:53:21 -!- TheName has joined. 15:01:03 -!- TheName has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.3/20100401080539]). 15:13:55 -!- MigoMipo has joined. 15:32:11 -!- lereah_ has quit (Quit: Leaving). 15:57:08 -!- cheater2 has quit (Ping timeout: 240 seconds). 15:58:30 -!- Gracenotes has quit (Ping timeout: 276 seconds). 16:04:21 -!- Mathnerd314 has quit (Ping timeout: 276 seconds). 16:05:52 -!- Mathnerd314 has joined. 16:07:50 -!- cheater2 has joined. 16:08:26 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net). 16:15:14 -!- Gracenotes has joined. 16:16:35 -!- cheater2 has quit (Ping timeout: 246 seconds). 16:21:03 -!- cheater2 has joined. 16:49:14 -!- MigoMipo has joined. 17:20:43 -!- oerjan has joined. 17:47:22 -!- Gracenotes has quit (Ping timeout: 260 seconds). 18:16:41 -!- Gracenotes has joined. 18:20:51 -!- augur has quit (Ping timeout: 276 seconds). 18:49:14 -!- augur has joined. 19:27:25 Hmm. And... I wrote another Brainfuck interpreter. 19:27:28 No idea why. 19:27:37 Except that it's much simpler than my previous attempt. 19:27:51 Also a bit faster. 19:27:55 http://sprunge.us/BVTg 19:29:24 May not work on systems with odd pointer representations. 19:38:28 Also, clang appears to handle that better than GCC. 19:42:40 May not work on systems with odd pointer representations. <-- ? 19:42:55 AnMaster: I'm doing moderately odd pointer tricks. 19:43:12 pikhq, well summary, I'm a bit too busy to read it. Have a deadline tomorrow 19:43:16 Note that I'm storing data inside of an array of pointers. 19:43:18 and a lot still to write 19:43:28 err 19:43:32 pikhq, what 19:44:54 AnMaster: After the address for +, -, >, or < is the number that those should add to p or *p. 19:44:57 looks like that volcano ash spread further 19:45:08 http://www.thisislondon.co.uk/standard/article-23824710-flights-grounded-as-ash-from-icelandic-volcano-closes-uk-airports.do 19:45:19 And after [ or ] is the offset in the array that it should jump to. 19:45:48 (upon entering interp, this is then just computed into a direct address) 19:47:29 (basic summary: I wrote 1/2 of a Forth) 19:50:33 oerjan: Yes, some Finnish news-site said we'll get some ashfall too around 03am. 19:50:58 oerjan, Sweden affected too 19:51:04 oerjan, and did you get any ash rain? 19:51:40 i didn't notice anything, what with all the rain rain 19:51:45 pikhq, didn't do befunge98? 19:51:56 AnMaster: Nope. 19:52:04 pikhq, gave up? Plan to do it later? 19:52:08 oerjan, it would be bound to that. 19:52:09 Later. 19:52:30 oerjan, acidic rain probably 19:52:39 hm maybe 19:53:16 or is volcanic ash basic 19:53:17 oerjan, the particles are tiny, iirc between 3 microns and 2 mm. And mostly the smaller ones stay aloft longer 19:53:25 ah 19:53:29 Oh, and my wife's father is due to fly back home Birmingham-Stockholm-Helsinki or some-such in a day or two, but now it's a bit uncertain as to how that'll go. 19:53:44 oerjan, it contains sulphur and fluorine amongst other nasty things 19:54:04 AnMaster: probably good fertilizer :D 19:54:07 fizzie, he could take the train 19:54:14 oerjan, *not* the fluorine 19:54:16 definitely not 19:54:59 oerjan, in fact various fluorine diseases have been connected with the local area of volcano eruptions before according to wikipedia. 19:55:05 (read that yesterday) 19:55:21 ah 19:56:00 oerjan, killing some 50%+ of the lifestock during an eruption somewhere during 1800-1850 on Iceland 19:56:14 oerjan, and lots of people both directly and indirectly 19:56:20 i've read about that one 19:56:29 The train takes quite a while; may be faster just to wait. 19:57:23 fizzie, heh. He could take that English channel tunnel, then TGV, then whatever Germany have then X2000, then the Åland ferry 19:57:46 oh wait the one i recall was in the 1700s 19:58:03 in fact it was speculated it helped bring about the french revolution 19:58:41 oerjan, and I misremembered the date of that one on Iceland. http://www.fof.se/tidning/2007/7/mystisk-vulkansjuka-far-sin-losning 19:59:05 http://en.wikipedia.org/wiki/Laki#1783_eruption 20:00:23 oerjan, there were several similar ones both before and after 20:01:06 AnMaster: apparently the english channel trains were quickly full-booked 20:01:28 oerjan, heh. What about ferries then? 20:01:30 I hear Germany's trains aren't actually especially fast. They don't have any (or many) special high-speed lines, like France does for TGV. 20:01:47 fizzie, hire a car? 20:01:48 i don't know, it was just a reddit comment 20:02:07 Didn't they get a train stuck in the chunnel not long ago, too? I seem to vaguely remember. 20:04:55 no idea 20:05:47 rings a vague bell, or maybe it was a fire 20:07:27 "Four Eurostar trains stuck in Channel tunnel" http://www.guardian.co.uk/uk/2009/dec/19/four-eurostar-trains-break-down 20:07:40 Maybe not quite so recent. 20:07:40 ah 20:07:59 well it's less than a year ago, that's recent outside the internet :D 20:08:46 "The trains are believed to have failed as they left the cold air in northern France and entered the warmer air inside the tunnel." Yes, that sounds like the trains here, always broken due weather problems. 20:09:57 you'd think finland would be used to weather. but i shouldn't talk, this year has been scandalous for norwegian trains 20:11:07 Yes, that is the sentiment here too that they should know this stuff already. 20:13:30 There's been a lot of problems with the Pendolino tilting high-speed trains that were bought from Italy, but I guess it's reasonable they haven't considered real winters down there. 20:14:07 oerjan, for Swedish trains too 20:14:39 sure during a heavy snowstorm it may be delayed a bit. But it shouldn't take as long to clean things up after 20:16:44 and sure, UK and France you could understand have problems with weather. But the Nordic countries? WTH 20:20:19 http://www.metoffice.gov.uk/aviation/vaac/data/VAG_1271354037.png <-- heh 20:20:26 well i guess it's relative - _noone_ prepares for weather a little worse than usual, wherever they are 20:20:37 oerjan, hah 20:20:56 oerjan, why couldn't you just build extremely redundant systems. 20:21:13 I mean, how many roofs caved in in Norway this winter? 20:21:25 quite a few of large buildings like warehouses and such in Sweden this winter 20:21:33 at least one, i think 20:21:35 except in north Sweden, hardly any there 20:21:51 because they *expect* bad weather 20:22:17 although with roofs and snow it's probably often because of lousy snow removal 20:23:01 oerjan, oh yeah that too. Did I mention I saw someone using a snow blower on a warehouse during the winter? 20:23:10 oh and I have the perfect solution 20:23:29 AnMaster: very nice of that cloud to sweep southwards like that just to get moscow :D 20:23:40 hah 20:24:04 oerjan, build the roofs so you can drive full sized snow plows on them to clear away the snow. Then you won't *need* to clear away the snow because they will stand for about anything 20:24:15 ..right 20:24:22 oerjan, perfect solution 20:25:36 well this is also about costs, of course, or rather no one using a penny/cent/øre more than they legally _have_ to, and choosing the lowest bidder 20:27:04 -!- Sgeo|web has joined. 20:27:11 * Sgeo|web WTFs at public
void inspect(U u){ 20:27:28 -!- tombom has joined. 20:28:00 oerjan, yes of course you would have to make this a law 20:39:38 -!- tombom has quit (Ping timeout: 240 seconds). 20:42:38 -!- tombom has joined. 20:43:31 -!- Alex3012 has quit (Remote host closed the connection). 20:49:17 -!- Tritonio_GR has joined. 20:51:31 -!- ENKI-][ has joined. 21:07:04 Sgeo|web: what does it do? 21:11:26 isn't it exactly equivalent to public void inspect(Object u){ or similar, since the code inside cannot possibly use anything that doesn't apply to all objects? 21:13:18 (assuming i recall right that is generics or something like that, i'm not sure what language that is) 21:15:42 -!- augur has quit (Ping timeout: 276 seconds). 21:16:14 the equivalent would be inspect :: a -> IO () in haskell, which _cannot_ possibly use anything specific to the argument type 21:16:23 (for the type declaration) 21:17:11 although with object-oriented languages and reflection that no longer holds - but then you could still use just Object i think 21:17:22 Modulo EVIL stuff. 21:17:29 this all from my vague half-understanding of java 21:18:01 pikhq: what was that in reference to? 21:18:21 oerjan: unsafeCoerce and hope it doesn't break. 21:18:31 for "inspect :: a->IO ()" 21:19:19 well but that is sort of internal isn't it, not haskell proper 21:19:41 anything even slightly portable _would_ break unless you knew the type 21:20:05 unsafeCoerce can be *done* with Haskell proper, if you include the FFI addendum. 21:20:19 oh hm 21:20:47 well still on the break thing. i assume the public thing above is meant not to break... 21:20:49 (unsafePerformIO is "real" Haskell you know) 21:21:03 Yeah, probably not. 21:21:23 *Oh*. That inspect function can also take values that aren't Objects. 21:21:34 (Java has a small handful of unboxed types) 21:21:34 i guess if you knew it was ghc you could somehow get at least to the GC information... 21:22:20 um isn't that just auto-conversion to Object, anyway? type erasure etc. 21:23:35 my understanding of generics in Java is not great though, the time i read a java tutorial was before they were added 21:24:16 and i ran out of steam before writing any actual programs 21:24:30 * Sgeo|web just hates the location of the thing 21:24:34 Also, you can store it 21:25:55 well it is the logical place to place the , i think 21:26:13 everything after is under its scope 21:30:57 * Sgeo|web is somewhat used to inspect(U u) 21:31:10 Although I guess you're right 21:38:57 i'm always right. also don't eat icecream, it's poisonous. 21:44:30 -!- Susan has joined. 21:45:20 Would the author of Mycology be on here today? 21:45:34 Deewiant: are you around? 21:45:37 Susan: let's find out 21:45:37 Aye 21:45:45 Susan: apparently yes 21:46:03 I have a quick question, on the fail of Rc/Funge-98. Is the one in the y command related to the form feed problem? 21:46:30 Probably, yes 21:47:12 I read through the official spec and it does not mention if the form feed should be just ignored on Befunge? or should it actually be loaded to fungespace and the x coordinate increased? 21:47:16 Today is the last day for a while that I will be without Internet access for any significant length of time 21:47:17 :D 21:47:53 Susan: my guess would be to put a literal formfeed into the fungespace 21:47:56 Susan: If it's none of "\n", "\r\n", or "\r", it should be loaded into the Fungespace. 21:47:57 because it isn't space, nor newline 21:47:57 Susan: The general understanding is that it's analogous to the way newlines are stated to work in Unefunge 21:48:29 Ok, I will try loading it into fungespace and see if that removes the error. 21:49:23 Mycology is only fussed when it's treated as something that seems to mess up later space: i.e. EOL or EOF 21:50:15 (I think Rc/Funge-98 currently starts loading things into higher z-coordinates, even though other planes shouldn't really exist in Befunge) 21:51:13 Hmm. I wonder if I've actually misthought how form feeds should behave. 21:51:34 But then, if what I'm thinking now is correct, every interpreter does it wrong. 21:52:30 No, even what I'm thinking now leads to the same behaviour. 21:53:26 Susan: In Unefunge, newlines are treated as appending the next line to the previous: "foo\nbar" becomes "foobar". Analogously, in Befunge, form feeds should be treated as appending the two planes together: "foo\nbar\fbaz" becomes "foo\nbarbaz". I.e. they are ignored. 21:55:01 that's a "should be" not "is", though 21:55:11 it's not unknown for a spec to be internally non-orthogonal 21:55:16 and befunge is full of that sort of thing 21:55:33 Ok, at least this gives me an idea of what it should do. 21:55:39 Mostly because the spec is poorly written, though :-P 21:55:42 Now to fix it! lol 21:55:50 -!- Sgeo|web has quit (Quit: Page closed). 21:56:00 Susan: Are you currently handling Rc/Funge-98 development? 21:56:10 Yes I am. 21:56:14 Funge-98 is at least better-specified than Funge-93. 21:56:40 Deewiant, fun fact: -O3 breaks cfunge on gcc-4.5 21:56:45 no time to debug it currently 21:56:48 :-) 21:56:51 From looking at the code it looks like Rc/Funge-98 IS increasing z on the form feed, even in Befunge mode. 21:57:00 Deewiant, works just fine on 4.3 and 4.4 21:57:10 Right, that was suspected (and confirmed by somebody, AnMaster maybe) 21:57:23 Deewiant, yes I remember testing it 21:57:25 Good chunks of the logic in my Funge-93 interpreter are just undefined behavior. :P 21:57:29 I can confirm it as well. I have the code right in front of me. 21:57:30 who is Susan btw? 21:57:47 Susan = current maintainer of Rc/Funge-98. 21:57:49 aha 21:57:59 I hope Mike is okay still. 21:58:37 Um, to put this as delicate as possible I guess, She decided to end her pain. 21:58:53 Fek 21:59:18 she? 21:59:34 For the past 20 some odd years, yes. 21:59:40 ?? 21:59:46 and damn, I thought we talked him(???) out of it 22:00:16 Mike was born intersexed and altered at birth to be a boy. 22:00:19 ouch 22:00:35 About his teenage years he decided that he was not a he and his parents made a mistake. 22:00:48 hm. Ouch 22:01:01 well that explains a lot 22:01:02 And transitioned in his early twenties to female. 22:01:29 and something went wrong? Or? 22:02:04 Hillary, as she renamed herself, could only socially transition. The alterations made at birth prevented a physical transition. 22:02:58 In the end the pain of having an incongruous body drove her mad. 22:03:04 I see :/ 22:03:45 For about the past couple years she was in very severe depression and refused all help, even mine. 22:04:33 Susan, so lets leave this sad subject, since there isn't anything we can do now about it. I wonder how much interest you have in esolangs. It would be somewhat sad if you just did it because of err, her. Compared to actually being interested in befunge. 22:05:22 Up until Hillary gave me Rc/Funge-98 I had never heard of esoteric languages. My first exposure was her program. 22:05:45 After playing around with her interpreter, I must say that I am really fascinated. 22:06:44 Very well then. :) 22:07:14 I will have to admit that at this point I am on the learning curve. 22:07:59 Susan, ah :) 22:08:24 it's not unknown for a spec to be internally non-orthogonal <-- that made me think about a funge with non-orthogonal vectors for defining funge space 22:08:33 it could have some quite interesting properties perhaps 22:08:44 hmm, maybe 22:09:01 deep down, I'm hoping that this is just epic trolling rather than an actual suicide 22:09:18 ais523, well, I doubt it is actually true though 22:09:27 I would call it most likely wishful thinking 22:09:58 I am sorry to say Ais523 that the person that you knew as Mike Riley is gone. 22:10:41 ouch; well, as you're related to him (or at least live in the same house), my condolences 22:11:08 and yeah, my condolences too 22:11:14 (oh ais523 is the maintainer of C-INTERCAL btw. INTERCAL is another esolang. And arguably a _lot_ more confusing.) 22:11:27 No, I was not related to her. Just a friend. 22:11:50 Thank you. 22:12:06 A closer friend than we were presumably though. 22:12:28 eh, I messed up the grammar there I think. 22:12:39 no, I think that's correct English 22:12:41 I knew her for about 15 years. Yes, close enough that she confided her secret to me. 22:12:47 although a comma before though would be more usual 22:13:12 ais523, ah yes that's it 22:14:04 *"though" 22:14:19 ais523, ? 22:14:29 AnMaster: I was missing quotes in /my/ comment, so I corrected it 22:14:33 oh 22:14:34 Muphry's law 22:14:51 ais523, it was a bit confusing though. A sed expression might have made it clearer 22:15:00 (Strange he used the name Mike Riley then on IRC and such. I guess we will never know why.) 22:15:17 hmm, I use the name ais523 online, though; it's not so weird to use a different name 22:15:35 well sure. You think this is my name? ;P 22:15:44 Well, if it's an identity you'd rather reject, you might be more likely to not use it 22:15:50 She started her programming career while still a guy. Since she operated a business writing software she continued to use that name professionally when there would be no face to face contact. 22:15:52 no, you're called arvid 22:15:56 Deewiant, yeah that is what I meant 22:16:05 ais523, correct but I usually tend to use upper case A there 22:16:23 Susan, ah hm 22:17:43 All of her credentials were also under Mike Riley, so she was kind of stuck with it. 22:18:07 you mean, ID papers and such? (Note I'm not a native English speaker) 22:18:23 (but I thought you could do a legal name change) 22:18:37 AnMaster: "credentials" has two meanings, either a generalisation of "username/password", or a generalisation of "degrees and qualifications" 22:18:45 ais523, hm okay 22:18:53 Her degree was under Mike Riley. All of her early software was written under that name, and so to maintain her references she needed to keep the name for her software ventures. 22:18:59 ais523, well the former I know about, but that didn't seem to apply 22:19:14 Susan, ah I see 22:19:39 All of her other paperwork were changed, drivers license, utility bills and such. 22:19:56 right 22:20:31 btw, I don't think I ever asked why it was called _RC_ in RC/Funge. 22:20:43 any idea? (or Deewiant perhaps) 22:21:13 I think I may've known but don't remember. 22:21:17 ah 22:21:25 Her software company was called RCS for Riley Computer Software. I can only imagine that she took the first two letters and attached it to the name of the program. Most of her software was prepended with RC/. 22:21:35 I see 22:21:44 Okay, I didn't know that. 22:22:03 Susan, it isn't really a company style of software though. I can't imagine anyone selling a funge interpreter. XD 22:22:04 The handprint of Rc/Funge-98 is also "RCSU". 22:22:11 (U for Unix) 22:22:31 AnMaster: well, isn't cats' eye a company? 22:22:32 heh, I didn't know that 22:22:42 that does serious stuff as well as all the esolangs? 22:22:45 She wrote a lot of software also that she released into the public domain. 22:22:51 ais523, I don't know, who knows. 22:23:13 ais523, it could be just a parody or something? 22:23:21 Not all the software she wrote was sold. 22:23:32 well I didn't say that it was 22:23:37 AnMaster: I hear that if you're in a serious programming job, you need to do frivolous things too to stay sane 22:23:45 Random mood-lightener, something by a Swedish comedian (speaks English half the time) that probably mainly Finns will find funny: http://www.youtube.com/watch?v=bZB77xpu9MY 22:24:03 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net). 22:24:04 ais523, I can imagine. Which is one reason I see to aim for an academic job. 22:24:18 -!- coppro has joined. 22:24:42 Deewiant, why FInns? 22:24:43 AnMaster: That's not a "serious programming job"? :-P 22:24:57 Because the topic is Finnish universities. 22:25:05 ah 22:25:21 I don't know, maybe it's otherwise funny enough as well, I wouldn't know :-P 22:25:33 Deewiant, depends. Computer science? Then no 22:25:59 Depends on how seriously you do it I imagine 22:26:34 Deewiant, I find that movie rather offensive... 22:27:00 How's that? 22:27:12 (Also, it's probably intentional) 22:27:38 Deewiant, ? How can it not be? Did you listen to the Swedish/English or read the text? I can't say if the text is a literal translation 22:27:52 Deewiant, but it seems to keep the offensive bits mostly out of the English parts 22:27:57 Yes, I listened and read, the text is fairly accurate 22:28:07 And yes, he uses Swedish swear words :-P 22:28:37 Well, not swear words, but profane vocabulary 22:28:55 quite 22:29:11 Are you offended by profanity? 22:29:26 Deewiant, somewhat yes 22:29:31 depends. 22:29:44 That's a strange outlook IMO 22:30:07 I'm offended by profanity without a reason 22:30:51 -!- Oranjer has joined. 22:31:03 In this case, the reason is the comedy 22:31:04 Deewiant, I find it confusing also. I guess only Finns get the references in there 22:31:29 But of course, one can disagree with that as well 22:31:42 yeah I didn't really find it funny. 22:32:05 AnMaster: Yeah, that's why I warned about it :-P 22:34:29 Deewiant, what are the references and where does the profanity come into it? 22:35:02 Well, the profanity I think just fits the theme and the mood 22:39:38 Funge-98 is at least better-specified than Funge-93. <-- sure, but there is more of funge-98, resulting in more of the less well speccced parts than one would have hoped for. 22:39:50 Also true. 22:40:14 Deewiant: My wife's brothers are quite some fans of the comedian in question, or at least the Finlandssvenskt Näringsliv thing; had seen that clip earlier. 22:40:40 Deewiant: They speak Swedish at home, though, so maybe they can relate. 22:40:55 heh, Maybe. 22:41:01 Hmm, interesting capitalization there. 22:41:17 Deewiant, in what? 22:41:22 In what I said. 22:41:27 ah 22:41:43 Deewiant, btw what is that "pappren inne - sol i sinnet" about? 22:41:53 Capitalizing "heh" always seems wrong to me and I guess I then saw "maybe" as starting the sentence 22:43:29 AnMaster: Well just that: apply to the university and keep the coming good times in mind, or something to that effect 22:44:17 oh 22:44:24 Deewiant, is it some slogan used over there or something? 22:44:55 No 22:45:01 I'm pretty sure it's specific to that comedy short 22:45:13 As in, that clip. 22:45:31 Deewiant, there seems to be more "Finlandssvenskt näringsliv" parodies from him at youtube 22:45:51 Yep 22:45:58 sol ute, sol inne, sol i hjertet, sol i sinnet 22:46:38 sol para sol 22:48:36 oj, sol i norge? 22:48:49 well, maybe not just now 22:49:09 I'd expect not at this time of day 22:49:43 -!- rodgort has quit (Quit: Coyote finally caught me). 22:49:51 -!- rodgort has joined. 22:51:27 -!- kar8nga has quit (Remote host closed the connection). 22:53:44 it seems like Ny-Ålesund on Svalbard won't have the sun set completely from tomorrow 22:54:27 olsner, don't listen to them. Yes there is sol i Norge. Yes it is the wrong time for it. Yes you can think of the dreadful consequences yourself. (If not: end of world and so on) 22:54:37 oerjan, hah 22:54:47 the world has already ended in norway? the end is near! 22:54:55 if i understand what "upper edge" means at http://www.yr.no/informasjon/1.6629345 22:54:56 oerjan, I didn't remember we passed vårdagjämning yet 22:55:11 or whatever it is called in English 22:55:13 that's nearly a month ago now 22:55:18 oh is it? okay 22:55:21 spring equinox 22:55:21 feels like winter ended just a couple of days ago 22:56:02 olsner, my thought exactly 22:56:21 well a bit more than that, a week and a half ago or so 22:56:28 at most 22:56:53 snow forecast here in the next couple days 22:57:18 probably just a little bit i guess 22:57:29 I hope so 23:02:02 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.2/20100316074819]). 23:06:44 -!- Oranjer has left (?). 23:08:59 -!- FireFly has quit (Quit: Leaving). 23:18:51 -!- Mathnerd314 has joined. 23:29:06 -!- tombom has quit (Quit: Leaving). 23:33:19 -!- ais523 has quit (Remote host closed the connection). 23:38:28 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 23:38:58 -!- coppro has joined. 23:42:56 -!- Susan has left (?). 23:43:54 -!- BeholdMyGlory has quit (Remote host closed the connection). 23:48:15 -!- Asztal has quit (Remote host closed the connection). 23:50:51 -!- MizardX has quit (Read error: Connection reset by peer). 23:51:31 -!- MizardX has joined. 23:51:37 -!- rodgort has quit (Ping timeout: 265 seconds). 23:56:41 -!- rodgort has joined. 2010-04-16: 00:07:47 -!- Asztal has joined. 00:17:14 -!- Asztal has quit (Ping timeout: 265 seconds). 00:20:37 -!- ENKI-][ has quit (Ping timeout: 265 seconds). 00:22:11 -!- ENKI-][ has joined. 00:28:07 -!- Tritonio_GR has quit (Read error: Connection reset by peer). 00:30:03 -!- MizardX has quit (Ping timeout: 276 seconds). 00:40:58 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.2/20100316074819]). 00:59:01 -!- Oranjer has joined. 01:01:25 -!- Mathnerd314_ has joined. 01:01:28 -!- Mathnerd314_ has changed nick to Mathnerd314. 01:14:23 -!- coppro has quit (Remote host closed the connection). 01:15:01 -!- coppro has joined. 01:24:12 -!- oerjan has quit (Quit: Good night). 02:07:42 -!- Alex3012 has joined. 02:29:39 Ah, the refreshing slowness of Eclipse when I leave it running too long 02:30:53 I click in the wrong place, Eclipse freezes 02:32:09 welcome to Java 02:33:00 Apparently, Eclipse is the easiest IDE to use for Android dev 02:33:15 Also, at least this way, I'm getting experience in a job-ready language 02:33:54 When I click something, a different thing gets hilighted. I have yet to figure out the logic 02:37:02 Also, I'm clueless when it comes to artistic stuff. I don't see how I'm going to be able to make launcher icons 02:41:28 hmm... channel is missing +t 02:42:00 no, it's not 02:43:22 well, it's set by default - so someone removed it 02:43:34 yes 02:45:04 therefore it's missing 02:45:38 no 02:45:40 it was put away 02:45:46 the ops know exactly where it is 02:47:05 +t is /in storage/ ? 02:47:12 yes 02:48:22 so the channel "does not have" +t 02:48:56 yes 02:49:21 -!- cal153 has quit. 02:53:19 * Sgeo_ types a line into Eclipse 02:53:23 * Sgeo_ watches Eclipse freeze 02:58:03 * Sgeo_ installs ADT 03:24:09 -!- augur has joined. 03:25:39 -!- ENKI-][ has quit (Ping timeout: 248 seconds). 03:28:17 O_O 03:29:09 -!- ENKI-][ has joined. 03:38:13 ? 03:38:50 -!- ENKI-][ has changed nick to enki-2. 03:39:14 -!- enki-2 has changed nick to ENKI-][. 03:40:32 sup 03:44:43 -!- Oranjer has left (?). 03:45:33 i updated the chris barker page on esowiki. 03:45:33 :T 03:49:14 I think the Android tools for Eclipse make up for using Eclipse to get access to the tools 04:24:21 -!- Gracenotes has quit (Read error: Operation timed out). 04:41:07 -!- Gracenotes has joined. 05:39:56 -!- coppro has quit (Ping timeout: 258 seconds). 05:43:02 -!- coppro has joined. 05:57:24 -!- Gracenotes has quit (Read error: Connection reset by peer). 05:57:39 -!- augur has quit (Ping timeout: 276 seconds). 06:41:07 -!- FireFly has joined. 06:57:01 -!- augur has joined. 07:44:24 -!- augur has quit (Remote host closed the connection). 07:45:12 -!- augur has joined. 07:57:44 Sgeo_, does these tool target java? 07:57:55 if not it seems very strange to use eclipse at all 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:04:05 so guys 08:04:12 want me to ask the Iota guy any questions? :x 08:06:21 -!- augur has quit (Remote host closed the connection). 08:06:33 -!- augur has joined. 08:07:53 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 08:37:49 -!- FireFly has quit (Quit: Leaving). 08:45:22 AnMaster: Android is a Java-ish platform, though they have a customized vm (Dalvik). 08:46:43 I gather it's quite different from the usual one (register-based and all that; Java VM is a stack-based thing), but the main way to write code for it is still to start with Java, compile to Java bytecode, then transform into Dalvik executables. 08:48:51 (I think I remember some completely non-Java thing that still opted to steal Eclipse's IDE bits, though I don't quite remember what that ws.) 09:03:12 -!- kar8nga has joined. 09:04:20 -!- Gracenotes has joined. 09:13:15 -!- cal153 has joined. 09:13:56 -!- cal153 has quit (Client Quit). 09:43:32 -!- oerjan has joined. 09:44:21 -!- lereah_ has joined. 09:46:00 the ops know exactly where it is 09:46:19 well, in theory. i don't think anyone has checked for a long time. 10:25:17 -!- FireFly has joined. 10:32:28 -!- Tritonio_GR has joined. 10:45:17 -!- tombom has joined. 10:45:32 -!- Tritonio_GR has quit (Read error: Connection reset by peer). 10:50:48 -!- augur has quit (Remote host closed the connection). 10:51:35 -!- augur has joined. 10:54:17 -!- oerjan has quit (Quit: leaving). 10:59:54 -!- kar8nga has quit (Remote host closed the connection). 12:04:15 -!- kar8nga has joined. 12:22:23 AnMaster, Android app development is in Java. 12:22:34 [or other JVM languages] 13:29:34 -!- ais523 has joined. 14:04:23 -!- lereah_ has left (?). 14:08:22 -!- nefas has joined. 14:09:12 hello 14:11:46 -!- nefas has left (?). 14:22:01 OK, we can talk now. 14:22:43 -!- augur has quit (Remote host closed the connection). 14:24:26 -!- myndzi has joined. 14:28:24 -!- MigoMipo has joined. 14:32:40 fizzie, I thought you could do native apps on android nowdays? 14:33:22 -!- myndzi\ has quit (*.net *.split). 14:34:35 I love the topic 14:36:05 ais523, been like that a few days now? 14:36:15 I know 14:41:00 hmm, apparently someone patented sending jobs overseas 14:41:17 I'm trying to figure out whether or not that's funnier than the patent on patent trolling 14:49:37 gah, I've got that weird X-chain-lockup thing 14:49:49 where firefox locks up, then you open an xterm to try to kill it and that locks up too 14:50:01 and then you press alt-f2 to try to kill that, and that locks up too 14:50:34 also, gnome-panel 14:50:57 * ais523 does control-alt-f1, killall firefox, killall gnome-panel 14:51:01 at least that didn't lock up too 14:53:07 aha, going into top, killall -9 mousetweaks seems to solve it 14:53:09 what is that program? 14:53:15 next time this happens I'm sending a bug report 14:57:24 hmm, apparently someone patented sending jobs overseas <-- ??? 14:57:29 I'm trying to figure out whether or not that's funnier than the patent on patent trolling <-- ????????? 14:57:39 what the heck is "patent trolling"? 14:58:01 ais523, is it the dbus-crashing lockup? 14:58:09 that happened to me a few times 14:58:24 only on my desktop which uses fairly new software 14:58:32 my laptop with ubuntu 9.04 is rock solid 14:58:38 a pity it isn't a LTS 14:58:43 AnMaster: no, it's mousetweaks I think 14:58:44 so I will need to update sooner or later 14:58:59 ais523, huh? never heard about that 14:59:05 how do you mean 14:59:06 and patent trolling is getting a patent (maybe by buying it) in a business that does nothing else, so it can't be countersued 14:59:10 and threatening everyone else you can 14:59:15 AnMaster: I don't know what it is either 14:59:27 except that it's using 100% CPU and causing all my graphical applications to lock up 14:59:36 why do you call it "mousetweaks"? 14:59:46 that's its name 14:59:50 oh 14:59:54 http://live.gnome.org/Mousetweaks/Home 14:59:55 as in, you kill it with killall mousetweaks, etc 14:59:57 seems relevant 15:00:07 "Mousetweaks is an Accessibility Software whose developement started as a GSoC 2007 project under Ubuntu and is part of GNOME since GNOME 2.22. It brings additional fonctionalities to the pointer that allow a user to: [...]" 15:00:19 f_o_nctonalities 15:00:20 | 15:00:20 /< 15:00:20 you probably can just get rid of it 15:00:37 Deewiant, heh yeah 15:00:52 as it is, I'll leave my mouse setup the same until the bug happens again, so I can hopefully catch and report it 15:07:11 AnMaster: Yes, you can, but you're not supposed to unless you really need to. 15:07:55 AnMaster: The earlier versions of the native SDK didn't let you hook up to the GUI libraries, for example. I'm not sure the current ones do, either, though you can apparently now do OpenGL ES stuff natively now or some-such. 15:09:39 -!- Asztal has joined. 15:11:05 (Not that the "high-level stuff with a high-level language and just the performance-critical parts as native modules" idea is necessarily a bad one.) 15:13:38 fizzie, does it use C for low level? 15:20:15 -!- BeholdMyGlory has joined. 15:28:22 hmm, I really need to use >=3 as an emoticon some time 15:28:25 meaning "do not love" 15:28:31 just for the sheer meta-ness of it all 15:28:38 I haven't found any real purposes yet, though 15:29:25 for Java? 15:30:04 hmm 15:30:04 as in, "hate" rather than "love" 15:30:24 whereas >=3 would just be the negation, "is not the case that I love" 15:31:12 -!- MizardX has joined. 15:38:56 >=3 Befunge 15:39:03 Probably because I don't know it 15:43:16 it's probably the most practically useful esolang 15:43:19 not that that's saying much 15:45:23 -!- cheater2 has quit (Ping timeout: 248 seconds). 15:48:35 ais523, when I read that ">=3", my first reaction was "what a strange logic gate" 15:48:57 -!- cheater2 has joined. 15:57:04 AnMaster: Well, yes, in the sense tht there's a (GCC-based, I think) cross-compiler toolchain for C/C++ code included in the NDK, but presumably you can use anything else that can create native ARM code with enough fiddling. 15:58:50 fizzie, but does it primarily have a C API or a C++ API? 15:58:59 or does it just provide libc + syscalls? 15:59:13 fizzie: which reminds me, we should write a Lisp interp in Nintendo DS asm someday, collectively 15:59:17 purely to annoy Joel Spolsky 15:59:39 AnMaster: The latter, mostly; there's not much android-specific APIs there, but what there is (some logging, the OpenGL ES stuff) is plain C. 15:59:45 ais523, who? 15:59:59 AnMaster: thanks, you've restored my faith in humanity 15:59:59 fizzie, ah okay 16:00:09 fizzie, can you access the GSM stuff somehow? 16:00:16 I'm sort-of pleased that there's some programmer who still hasn't heard of him despite all the self-promoting he does 16:00:20 and presumably there are some unofficial APIs too 16:00:22 AnMaster: That sounds very unlikely. 16:00:26 which people have found 16:00:46 AnMaster: I mean, the official support part; not the part about unofficial APIs. 16:00:49 fizzie, well how does the phone itself access it then? Presumably you can gain root somehow as an android user 16:01:04 and then you could presumably do about anything on the phone 16:01:40 AnMaster: You have to jailbreak it to get root, as far as I know, and they keep trying to block that. Of course they'll never succeed, but it's still not quite as officially supported. 16:03:32 Anyway, sure, you can probably call any system libraries in there, but you wouldn't have the headers or a clue about the data structures and such. Of course with a bit of reverse-engineering. 16:03:59 which phone are you discussing? 16:04:37 Well, "a generic Android phone". The Dev Phone's very jailbroken as it comes, and maybe some others too. 16:05:11 I just have gotten the impression that most phone manufacturers still for some reason try to discourage that sort of stuff, with a marked lack of success. 16:05:23 AFAIK Android doesn't try very hard not to be jailbroken, making the term 'jailbreak' a bit nonsense. 16:06:15 Gregor: Well, for the G1 phone they did fix ways-to-get-root-on-the-device-as-a-normal-user by firmware updates for a while. Maybe they've given up now, though. 16:07:59 It's officially supported on the Nexus One, right? 16:08:04 Just it voids the warantee 16:09:40 I'm not sure you can call that "officially supported", but admittedly they don't exactly seem to be trying to prevent it. 16:09:45 "Users are able to gain root privileges on the device by unlocking its bootloader using the fastboot command "fastboot oem unlock."[46] Unlocking the bootloader allows the user to install other firmware images that give the user root access." 16:10:41 Medding with some unofficial firmware upgrade does sound a bit more of a hassle than how it goes with Maemo. 16:13:21 what just happened 16:13:28 somehow the theme on the desktop changed 16:13:28 wth 16:13:30 Also the CyanogenMod wp page says of phone-rooting that "These modifications are unnecessary for certain handsets specifically designated for development, such as the Android Dev Phone and the Nexus One, which include an unlocked bootloader", which seems to imply that other manufacturers' handsets try harder. 16:13:32 [1098960.847629] gnome-settings-[2390]: segfault at 8 ip 00007f71cc35cd6b sp 00007fff3498eb80 error 4 in libclipboard.so[7f71cc35a000+5000] 16:13:34 wonderful 16:13:55 starting it again helped 16:14:21 AnMaster: "gnome-settings-" is nice, though perhaps "gnome-settings-(null)" would've been even more impressive. 16:14:31 fizzie, heh? 16:14:48 fizzie, I think that pid is part of the name there? 16:15:13 Isn't the usual format "procname[pid]", and I guess it's gnome-settings-daemon that died? 16:15:38 fizzie, also it didn't fix it completely. Now there is no line between the menu bar at the top and the desktop 16:15:39 E.g. [536265.105159] jitfunge[14597]: segfault at 8 ip 00000000007e8a9f sp 00007fff5ce3d170 error 4 in jitfunge[400000+650000] 16:15:44 same goes for bottom taskbar 16:16:07 also I believe gimp, which was running, never recovered the theme 16:16:14 so it looks really funky 16:16:44 like raw GTK+ from the dawn of age. 16:17:11 fizzie, I also see this a lot in dmsg, and I don't know why: 16:17:13 [1067625.343927] pstoedit[31659] trap stack segment ip:7f9abbf20380 sp:21d386e62f8cd09f error:0 16:17:13 [1067672.130657] pstoedit[31665] trap stack segment ip:7ff4ec649380 sp:b9ac11dc59540f1b error:0 16:17:13 [1067675.796438] pstoedit[31670] trap stack segment ip:7ff8c3b18380 sp:c538fcc4a4e9cfbd error:0 16:17:16 a lot of it 16:17:46 is that same as a segfault? I have no idea 16:18:55 is that a stack-smashing-protection trap, I wonder? 16:19:16 ais523, I thought that was libc-based, not in kernel? 16:19:35 yep, it is; I was wondering if the libc was signalling the kernel somehow, maybe by throwing some weird sort of signal 16:19:51 that would be quite wth 16:19:53 also, it's at least partly compiler support 16:20:03 as you can have stack-smashing which has nothing to do with the libc 16:20:19 sending SIGABRT (or whatever letters they decided to abbreviate it to) would make more sense 16:20:30 ais523, and yes it needs compiler support too 16:21:03 there is some libssp.so or such that gcc builds to support -fstack-protector if your libc doesn't have that stuff in it 16:21:05 iirc 16:21:52 The word "trap" is part of one thing, and the "stack segment" is another, but who knows. You get a "trap divide error" for /0 traps, I seem to see here. 16:22:09 fizzie, hm 16:22:18 fizzie, so what kind of trap is it then 16:22:34 A "stack segment" kind of trap, apparently, but don't know which part triggers it. 16:22:47 anyway, I don't ever remember having used pstoedit, so presumably it is something else that calls it. iirc cups calls some ps* tools 16:23:32 I could grep kernel sources but I doubt the words "stack segment" is specific enough... 16:23:57 arch/x86/kernel/traps.c 16:24:01 There aren't that many hits for it. 16:24:06 heh 16:24:44 fizzie, there is some strange 32/64 bit difference for that error it seems 16:25:41 AnMaster: Right, for X86_64 there's the non-macro implementation immediately below. 16:25:59 indeed 16:26:15 /* Runs on IST stack */ <-- I wonder what IST stack si 16:26:16 is* 16:27:11 fizzie, do_double_fault also seems to be x86_64 specific which seems rather strange 16:28:03 double-faults are weird 16:28:04 Anyway, it's registered for CPU exception 12. 16:28:08 ais523, oh? 16:28:15 I love the ones from Apache, that come up when the 404-handling document is itself missing 16:28:17 12 0Ch | Stack exception: | Occurs for one of two conditions: | - As a result of a limit violation in any operation that | refers to SS (stack segment register) | - When attempting to load SS with a descriptor that is | marked as not-present but is otherwise valid 16:28:17 Gah, that line-joining. 16:28:47 And, heh, that was from http://support.microsoft.com/kb/117389 -- I thought it appropriate to use a Microsoft document here. 16:29:11 actually all sorts of stuff is broken in gnome even after restarting that thing, will have to restart gnome. bbiab 16:30:55 -!- alise_ has joined. 16:31:32 okay back 16:31:34 and brb 16:32:33 * alise_ stumbles, teeters and falls. 16:32:42 * alise_ gets up. 16:32:54 Dispatch some-number-or-one-other. 16:33:14 -!- alise_ has changed nick to alise. 16:36:32 Hi alise 16:37:22 * Sgeo_ will probably be ordering the Nexus One this weekend :D 16:37:36 I KNEW YOU'D SEE THE LIGHT IN THE END 16:37:39 THere are some issues, with it though, especially with 3G reception. Do you have any comments on those issues? 16:38:02 Haven't heard about 3G reception issues. If you get the T-Mobile version I bet it will be fine. 16:38:07 Leaked Google Nexus One Firmware Upgrade Could Address Spotty 3G ... 16:38:08 14 Feb 2010 ... Remember the Google Nexus One's "sorely needed" 3G reception fix? Remember how Google promised a quick fix? Yes? Well, Happy Valentine's Day ... 16:38:08 gizmodo.com/.../leaked-google-nexus-one-firmware-upgrade-could-address-spotty-3g-reception 16:38:14 Apparently it has been patched. 16:38:19 So don't worry. 16:38:31 I thought that that patch didn't work, or something 16:38:31 Anyway, lol, antibiotics. 16:38:40 I'm stuck with AT&T 16:38:46 Sgeo_: Maybe not? Meh. It should be fine. I don't even have a 3G phone and I never miss it. 16:39:20 Sgeo_: http://www.engadget.com/2010/01/25/google-nexus-one-3g-issues-result-of-poor-coverage-bugs-patch/ 16:39:27 tl;dr mostly it's because T-Mobile have shitty 3g coverage 16:39:32 oh wait you're not on t mobile 16:39:35 then it should be fine 16:39:38 AT&T have good 3g coverage 16:39:52 * pineapple has reached a bit of a milestone 16:40:22 Sgeo_: btw if you were to consider a nexus one phone, consider the htc desire; there's no real reason to pick one or the other unless you like the desire's pretty homescreen 16:40:31 other than that they're almost identical 16:40:37 including screen 16:40:51 i don't think it's in america yet though? 16:41:00 pineapple: oh? 16:41:15 alise: chapter 5 of K&R2 16:41:27 alise, I'm stuck with AT&T 16:41:34 Sgeo_: and? 16:42:13 I thought only Nexus One had AT&T support 16:43:35 "take the Desire to the US and youll be stuck using quadband EDGE or hunting for WiFi hotspots." 16:43:40 http://www.slashgear.com/htc-desire-vs-google-nexus-one-2074966/ 16:44:49 "in the case of the HTC Hero, for instance, that means despite Android 2.1 having been available for some time now, the smartphone is still stuck on Android 1.5" 16:45:51 * alise reads about Hillary (Riley?). 16:45:55 Very sad. 16:45:58 What sounds interesting is the HTC Incredible 16:46:17 But I'm still stuck with AT&T 16:46:57 Also, the only nice thing I see about Sense UI, besides prettiness, is the permanent phone button 16:47:02 Which is, admittedly, nice 16:47:19 14:15:35 well sure. You think this is my name? ;P 16:47:21 Sure is, An Master. 16:48:59 * Sgeo_ wonders if he should attempt to make his own icons 16:49:50 * Sgeo_ <3 AndroidZoom.com 16:51:46 14:29:11 Are you offended by profanity? 16:51:47 14:29:26 Deewiant, somewhat yes 16:51:55 I can't think of many decent comedians that don't swear :P 16:52:08 APART FROM CARROT TOP LOLZ 16:52:18 AHH WHAT MACBOOK PROS HAVE I7S IN THEM NOW 16:52:22 Stop it, Apple, I just escaped you! 16:52:44 what's the saving throw against a reality distortion field? 16:52:52 buddhism 16:53:14 alise, someone told me that it's $99/year to be able to test your own apps on the iPhone. Is that true? 16:53:35 Sgeo_: something along those lines i think yes 16:53:47 omfg 16:54:06 2.66ghz i7 + 4gb ram + 500gb hd + 8-9 hr (minus a bit since even apple overestimate the times a bit) battery for 1,799 16:54:09 in a laptop 16:54:16 What is with people using domain names that they don't own for packages? 16:54:28 * Sgeo_ is fully willing to use net.diagonalfish.sgeo for stuff 16:54:50 The 15-inch MacBook Pro comes with a 1,440-by-900-pixel LED-backlit, glossy display. You can also choose a high-resolution, 1,680-by-1,050 glossy or anti-glare display that gives you 36 per cent more pixels. 16:54:54 it's like christmas 16:55:40 what's the saving throw against a reality distortion field? <-- in? 16:55:57 alise, do you do any app dev? 16:55:58 anyone want a 2.66ghz core i7 processor, 8gb of ddr3 ram, a 512gb solid state (!) drive and a 15" 1680x1050 display? 16:56:06 in a laptop with ~7hrs battery life? 16:56:22 AnMaster: does it really matter? 16:56:31 I'll give you to it for 3,238.99 plus 1 penny for my advertising costs :-P 16:56:33 Sgeo_: no 16:56:33 any random context in which those terms are defined 16:56:33 ais523, well possibly it is some table top rpg? 16:56:38 Sgeo_: I dislike Objective-C 16:56:48 but yes, it's an RPG reference 16:56:50 just, not a specific one 16:56:51 alise, and I'm a Javaphobe. I'll deal 16:56:59 Sgeo_: android scripting environment 16:57:04 I like using goto. 16:57:05 or things like $lang-on-JVM 16:57:16 ... Wait, is this not a confessional? 16:57:26 alise, those aren't to the level of apps yet [ASE]. Also, I should probably learn Java anyway 16:57:28 nothing wrong with goto 16:57:33 Another job-ready language can't hurt 16:57:40 Sgeo_: no, you shouldn't 16:57:41 you really shouldn't 16:57:51 pikhq, I noticed that 16:58:04 pikhq, especially GCC's goto extensions 16:58:06 Sgeo_: you don't want that kind of job 16:58:06 anonymous inner classes do help ease the pain a little 16:58:09 AnMaster: Well, how *else* are you supposed to implement threaded code? :) 16:58:18 pikhq, in asm? 16:58:28 Somewhat portably? 16:58:44 pikhq, sec, will find a link 16:58:57 pikhq: setjmp! 16:59:02 pikhq, http://www.forthfreak.net/index.cgi?StringThreadedCode 16:59:05 It doesn't run on multiple architectures so bite my ass. 16:59:19 /officially/, you can't use it for that, but it can be abused to do that in ways that work on most architectures 16:59:26 It's.. odd how .. universal.. Barcode Scanner is 16:59:37 Sgeo_: wut 16:59:39 I love forth 16:59:40 ais523: Only lets you jump up the stack, or maybe down if you're careful not to overwrite the stack frame. 17:00:05 pikhq: the trick is, you make two completely different stacks, and use a few OS-dependent tricks in order to make them both legit as stacks 17:00:10 then you use setjmp to jump between them 17:00:11 alise, several sites, including AndroidZoom.com, and the Android reddit, make use of QR codes, to be read by Barcode Scanner 17:00:20 this is ofc completely against the C standard, but who cares, this is #esoteric 17:00:22 ur a barcode scanner 17:00:28 ooh I wonder if you could do threaded code with getcontext()/setcontext()? 17:00:30 ais523: So what you're really saying is getcontext and setcontext. 17:00:35 _somehow_ 17:00:39 pikhq: but that's /boring/ 17:00:44 ais523: "This violates several international laws, but who cares, this is #esoteric" 17:00:48 It's the same thing. 17:00:58 And just as much of a pain! 17:01:01 alise: surely the C standard isn't /that/ binding 17:01:11 ais523: Merely a hypothetical situation 17:01:17 it's more along the lines of "the documentation says that trying that will probably make it break, but who cares, this is #esoteric" 17:01:22 But, getcontext et al are at least part of *a* standard. 17:01:31 pikhq, no longer 17:01:32 iirc 17:01:40 they were dropped in POSIX.1-2008 17:01:41 it's not a case of "doing this violates your duty to someone else", but "doing this means you can't rely on other people's promises to you" 17:01:48 AnMaster: The previous versions of standards do not cease to exist. 17:02:08 pikhq, they are marked as archived in ieeexplorer at least to me 17:02:09 when I check 17:02:19 but so is the current one huh 17:02:23 so I guess that means nothing 17:02:27 They. Do. Not. Cease. To. Exist. 17:02:29 ;) 17:02:35 wtf, Flash CS5 will export to HTML5 Canvas+JavaScript 17:02:37 well true 17:02:41 interesting 17:02:49 pikhq: course they do, the new standard says so 17:02:56 ais523: Bah. 17:02:57 that + dissing on apple's ridiculous policies... are they trying to jump out of the evil ditch? 17:03:07 pikhq: and that has the full force of international law 17:03:22 It has the full force of REALITY 17:03:23 alise: my impression from Adobe is not that they're evil through choice, just really incompetent 17:03:27 ais523: No it doesn't. 17:03:39 Standards organizations are not international law. 17:03:46 You cannot be tried in the Hague for violating them. 17:03:48 Or are they? 17:04:10 If they were, POSIX itself would be tried. 17:04:30 for crimes against humanity? 17:04:35 or at least the computer-using portion of it? 17:04:40 Sure. 17:05:02 hey, computers use other computers too 17:05:07 they suffer as well 17:05:24 alise: yes, but AFAIK torturing a computer is not currently illegal, a lamentable lack in our current legal systems 17:06:03 "Hi, EDWRD; you get to brute-force Malbolge programs all day. And night. 17:06:04 " 17:06:12 "That violates my rights!" "You don't have any." 17:06:49 * Sgeo_ is confident that he'll survive Java 17:07:12 Sgeo is so naive. 17:07:20 I can survive LSL 17:07:31 Java can't be that much worse 17:07:42 sorry, *nave 17:07:47 LSL? 17:07:56 And if I bend good design a little, and use the this thing for callbacks, it will be roughly on-par with LSL 17:08:03 what is LSL? 17:08:05 AnMaster, the language used by Second Life scripts 17:08:07 ouch 17:08:15 should have known it was something like that 17:08:20 when it was Sgeo_ mentioning it 17:08:29 anyway, Java's major advantage - and major issue - is taking good practices to a degree sufficiently insane that they become bad practices 17:08:57 Also, the belief that verbosity is good. 17:09:04 ais523, how can that be an advantage at all? 17:09:09 pikhq: I think it's more a belief that consistency is good 17:09:10 * alise leaks pus 17:09:17 AnMaster: because it makes it considerably harder to write bad code 17:09:23 yes, it can be done, and frequently is 17:09:24 hah 17:09:44 new CallBacker() { public void callBack() { ... } } 17:09:48 but if I needed a team of idiots to write code, I'd probably get them to do it in Java on the basis that the resulting code might have a chance of being usable or at least debuggable 17:09:50 ^ This... Is lambda. 17:09:51 ais523, does java one-liners exist at all? 17:09:54 They use it commonly. 17:09:57 AnMaster: sure, just remove all the newlines 17:10:05 pikhq: err, why not use Runnable for that 17:10:08 pikhq: except it cannot access non-final variables from the outside 17:10:08 ais523, well reasonably unreadable ones 17:10:10 after all, it /exists/ for that purpose 17:10:23 Runnable? 17:10:26 alise: Ah, right. Need to manually add variables to the closure. 17:10:26 I once did hello world in java using structs and static initialisers 17:10:29 It was beautiful 17:10:35 Shorter than the regular class version 17:10:40 Sgeo_: exactly what pikhq does, but standard rather than reinventing the wheel 17:11:06 Also, what about making the calling class implement the interface, and calling the function with this? 17:11:12 Or is that really bad practice? 17:11:18 yes 17:11:28 Sgeo_: it prevents you doing it more than once 17:11:40 ais523: I'm not a Java programmer. 17:11:44 ais523, you just invented singleton design pattern or something 17:11:53 AnMaster: no, that's something entirely different 17:11:53 (possibly broken) 17:12:02 Unless you're careful and have a member of the class tracking which case you're .. hm, LSL rotted my mind 17:12:18 what Sgeo_ suggested was along the lines of using global variables, except locally rather than globally, but still with most of the disadvantages of global variables 17:12:20 That I'd even think that that's acceptable 17:12:22 ais523, I know what singleton is, I just have no clue about java. But "it prevents you doing it more than once" sounds like part of singleton to me ;P 17:12:33 AnMaster: no, a singleton object is an object you only have one of 17:12:37 LSL and global variables. Two horrible tastes that just can't be separated 17:12:40 That's the problem 17:12:43 that's entirely different from a code structure that can only be used once in your code 17:12:43 Also, Java programmers *argue against syntactic sugar for this*. 17:12:48 ais523, well yes. It wasn't clear to me what you could only do once 17:12:54 *For freaking lambda*. 17:13:07 pikhq: I think I know why; it's because it's a couple of keystrokes to do the whole Runnable thing in any good IDE 17:13:19 and so they don't acknowledge that there's a problem 17:13:20 pikhq, I argue we should have syntax sugar for lambda in C ;P 17:13:23 Is Eclipse considered a "good IDE"? 17:13:30 AnMaster: Check. 17:13:37 Sgeo_: probably good enough, although terribly slow 17:13:52 pikhq, hm? As in the chess term or as in checking something? 17:13:53 I use NetBeans, merely because I happened to have it installed, and it's easily good enough for my purposes 17:13:54 THe ADT stuff for Android is all Eclipse 17:14:02 [[The end title designer forgot to use punctuation when writing the end credits. This resulted in all assistants being listed as i.e. "ass designer" or "ass painter".]] 17:14:07 I mean, other IDEs can be used, but you don't get the tools 17:14:07 AnMaster: "Yeah, got it." 17:14:11 pikhq, ah 17:14:40 Where is the SomeClass.this.someMember stuff documented? 17:14:52 If I didn't see someone mention it, I would not have known of its existance 17:15:20 Sgeo_: in the documentation, of course 17:15:26 although, .this. looks very suspicious 17:16:00 the documentation tends to be heavily integrated in Java IDEs; it needs to be, it's such a pain to do anything otherwise 17:16:28 ais523, hm CLC-INTERCAL has lectures and classes, but I think adding a "that" as a parody of "this" sounds like a fun idea 17:16:31 * Sgeo_ should attempt to compile this Hello World or something 17:16:51 AnMaster: that would completely break INTERCAL's syntax 17:16:56 which is possibly enough of a reason to implement it by itself 17:17:05 ais523, oh? The phrase THAT? 17:17:18 or what do you mean 17:17:18 AnMaster: using a keyword to alias a variable 17:17:27 INTERCAL expressions just don't do that 17:17:29 oh hah 17:17:47 they're mostly just line noise, with the oververbose keywords being for statements 17:17:54 ais523, it wouldn't point to the own class or lecture of course. 17:18:14 * Sgeo_ hopes that Java will merely be unbearable, rather than poisonous 17:18:26 Sgeo_: don't worry, it's entirely sane enough, just annoying 17:18:28 Sgeo_, you could do native code for the phone 17:18:36 AnMaster: not if you want to use gui stuff 17:18:40 or... anything 17:18:44 all the apis are java 17:18:45 ais523, I don't consider the verbosity of java to be sane 17:18:47 AnMaster, before I do any non-Java stuff, I should probably actually get a test app running on the phone 17:19:00 AnMaster, that's unbearable, not mind poisoning 17:19:25 Sgeo_, hm I guess you could say that 17:19:28 LSL's reliance on global variables, however, IS mind-poisoning 17:19:38 heh 17:19:46 the real reason that problems happen in Java, I think, is the lack of sane defaults (or rather, /any/ defaults) for most of the standard libraries 17:19:55 this is not bad, just tedious 17:20:10 Sgeo_, have you heard about the scoping rules of bash and how to return a variable in the callers scope (or anywhere above local scope for that matter) 17:20:19 I'm sure I mentioned it in here before ;P 17:20:32 We're doing bash scripting in my UNIX class now 17:20:39 I hate it, the syntax is incomprehensible 17:20:52 Bash is one of the worst languages. 17:20:54 it's why something like a simple text box with a spinner can come out to far too much code because you have to say /just what/ sort of numbers the spinner spins through, and in what order, and maybe you want letters instead? or arbitrary INTERCAL statements? 17:20:59 alise: stop bashing it 17:21:02 a=($@) is different from a=$@ 17:21:07 And I don't know why 17:21:18 Sgeo_: because parens aren't used for grouping in bash, they're an operator 17:21:25 Sgeo_, Would you call this mind poisoning?: foo() { printf -v "$1" "foo data"; } bar() { local myvar; foo myvar; echo "$myvar"; } 17:21:33 run bar, it will print "foo data" 17:21:44 once you understand why (a)(:): and (a):: are different in Underload, you should go some way towards realising why they're different in bash 17:21:49 Sgeo_, reason to do this is to avoid subshells 17:22:05 a subshell can't affect variables outside it 17:22:11 so using $() is bad sometimes 17:22:13 AnMaster, I'm a bit confused 17:22:19 Sgeo_, about? 17:22:20 (that said, an esolang that did operator precedence by calling itself recursively sounds fun) 17:22:32 local 17:22:52 And why printf and not echo? 17:23:03 erm, n/.. I'm confused 17:23:34 a=($@) is different from a=$@ <-- the former declares an array of space-splitting all the cmd line args (you need quotes to avoid it!) The second... hm. I think it does a=$1 $2 ... 17:23:42 which is probably not what was intended at all 17:23:52 That bit me 17:24:03 THe professor gave us something like a=($@) without explanation 17:24:05 What's the difference between $* and $@ again 17:24:11 And I decided not to write the parens 17:24:32 I'd rather write JAVA than ever touch Bash agaim 17:24:34 *again 17:24:47 Deewiant, it is complicated and depends on if you use quotes around or not 17:24:57 Sgeo_, what? 17:25:02 Sgeo_, you dislike bash because of that? 17:25:16 the parens mean an array, without them it isn't one 17:25:20 that is how simple it is 17:25:23 I dislike bash because while loops tend to run in subshells 17:25:55 Deewiant, only if you don't know how to avoid it 17:26:03 Deewiant, foo | while ... yes 17:26:20 but not while ...; do ...; done <(foo) 17:26:47 Deewiant, quoting man bash: "$@" is equivalent to "$1" "$2" ... 17:26:59 "$*" is equivalent to "$1c$2c...", where c is the first character of the value of the IFS variable. 17:27:08 which is usually a space 17:27:20 AnMaster: wow, I didn't even realise the order of characters in IFS mattered 17:27:25 Why is Eclipse so slow? 17:27:43 The.. order of characters.. in IFS.. matters 17:27:45 Sgeo_: hundreds of layers of design patterns 17:27:53 ais523, I can't say I remembered it. I don't generally mess with IFS. I think I changed it once. And that was in envbot and I reset it quickly after 17:28:02 WHY does the order of characters in IFS matter? 17:28:18 Sgeo_, because of sh compat I guess? 17:28:21 so that the system knows which ones to use if it's trying to make a list, presumably 17:28:40 Bleh, my screen is not large enough to accomodate a 800x480 screen 17:28:47 s/screen/resolution/g 17:29:06 Sgeo_, wth? Is that some mini-netbook? Or a phone? 17:29:15 AnMaster, phone 17:29:26 Sgeo_, well why are you doing that on a phone? 17:29:52 Because I want to see my modified hello world app work? 17:30:14 and iirc the only way the order matters in IFS is to decide which char will be used for separating lists and such that bash outputs. 17:30:28 I guess you could have used a separate variable for that 17:30:42 but it would have been a waste of memory on those old systems where sh was invented 17:30:46 (probably) 17:31:55 My emulator seems to be not working nicely right now :( 17:33:00 Sgeo_, did you mean you couldn't fit a 800x480 on your phone screen? 17:33:12 because that is how I interpreted the answer 17:33:18 AnMaster, I couldn't fit it on my laptop screen 17:33:24 Sgeo_, well okay that is strange 17:33:26 very strange 17:33:39 erm, it might be 480x800 17:33:39 Sgeo_, how large is it? 12"? 17:33:59 okay that is somewhat more reasonable not being able to fit in height direction 17:34:02 and yes widescreen sucks 17:34:06 Sgeo_: what??? 17:34:08 that's not a laptop 17:34:10 * AnMaster longs for the days of 4:3 17:34:10 maybe a netbook 17:34:24 * Sgeo_ 's resolution is 1280x800 17:36:35 00:04:12 want me to ask the Iota guy any questions? :x 17:36:38 WHY ARE YOU A FELINE 17:36:39 would do 17:36:53 00:48:51 (I think I remember some completely non-Java thing that still opted to steal Eclipse's IDE bits, though I don't quite remember what that ws.) 17:36:55 lisp has done it 17:37:37 Why can't I find my app on the emulator? 17:38:28 Oh, Eclipse says that the emulator disconnected 17:40:37 -!- cheater2 has quit (Ping timeout: 240 seconds). 17:41:05 * Sgeo_ has an idea for an app 17:41:44 ARGH 17:41:56 The emulator is too slow for Eclipse! How's that for irony? 17:46:15 -!- cheater2 has joined. 17:47:54 Ah. Not making the emulator have Nexus One's screen specs is nice 17:53:37 -!- cheater2 has quit (Ping timeout: 240 seconds). 17:53:59 * alise is skeptical of AMS Euler 17:57:38 ? 17:58:40 -!- cal153 has joined. 18:02:04 -!- cheater2 has joined. 18:03:11 -!- augur has joined. 18:08:28 -!- augur has quit (Ping timeout: 276 seconds). 18:27:33 The emulator is too slow for Eclipse! How's that for irony? <-- heh 18:30:47 * Sgeo_ wonders how wel Jaskell works 18:34:16 -!- oerjan has joined. 18:38:51 Insufficiently, I'm sure. 18:40:46 AnMaster: thanks, you've restored my faith in humanity <-- AnMaster not knowing things restores your faith in humanity? 18:41:02 oerjan: anyone not knowing things 18:41:18 you see someone or something which is advertised to death, you feel happy when someone doesn't know about it 18:41:23 what didn't he know? 18:41:32 http://jaskell.codehaus.org/ 18:41:32 joel spolsky 18:41:33 AnMaster: thanks, you've restored my faith in humanity <-- AnMaster not knowing things restores your faith in humanity? <-- when? 18:41:36 My lord it is hideous 18:41:39 [[$$<>$$ where ]] 18:41:42 oerjan: oh 18:41:47 The following expressions all evaluate to "hello": 18:41:47 <<<>>> 18:41:47 <<<(hello)>>> 18:41:47 <<<{hello}>>> 18:41:47 $$<>$$ 18:41:47 $$<(hello)>$$ 18:41:49 $$<{hello}>$$ 18:41:54 and what context? 18:41:59 if-then-else 18:41:59 AnMaster: In response to Joel Spolsky 18:42:00 if-then-else is the only native conditional statement in Jaskell. 18:42:00 Unlike many imperative languages such as Java, the "else" clause is mandatory. 18:42:00 The following expression evaluates to 5: 18:42:00 if 1==1 then 1 else 5 18:42:02 (WHAT) 18:42:08 * AnMaster looks up 18:42:13 that's just a typo, but it makes everything so much funnier 18:42:15 AnMaster: 3ish hours ago 18:42:20 alise, are these cases any good? http://www.case-mate.com/Google-Cases/Case-Mate-Google-Nexus-One-Tough-Cases.asp 18:42:22 Deewiant, was that around when I said about disconnecting? 18:42:27 alise: does the quoting of hello require exactly four bracket-variants around it? 18:42:27 it seemed the replay was broken 18:42:28 Sgeo_: don't bother with a case 18:42:29 Can't remember 18:42:30 due to wrong setting 18:42:34 ais523: who knows 18:42:36 so I didn't get any replay after reconnecting 18:42:44 alise, I _will_ drop it at some point, in all liklihood 18:42:53 ooh, this website uses frames 18:42:53 Sgeo_: yeah a case won't help 18:42:57 I do have a distressing tendency to drop phones 18:43:34 oh, I see 18:43:51 Jaskell $$< is Perl qq, Jaskell <<< is Perl q 18:43:56 alise, hm? 18:44:00 -!- kar8nga has quit (Remote host closed the connection). 18:44:00 the only thing insane is the names of the operators 18:44:23 but they're still pretty insane 18:45:11 also, there's something simultaneously horrifying and elegant about that switch construct 18:45:12 Wait, Jaskell != Haskell on the JVM? 18:45:28 Sgeo_, if you drop phones get one of those toughened ones 18:45:31 Sgeo_: it seems to be on the JVM, but its syntax is certainly radically different from Haskell's 18:45:43 haven't read far enough to know if the semantics are remotely similar 18:45:55 AFAIK there is no Haskell for JVM 18:46:17 F# 18:46:18 How difficult could Haskell on the JVM possibly be? 18:46:19 * ais523 runs 18:46:20 Sgeo_, I remember hearing on radio a test of a mobile phone that survived being driven over by a van! 18:46:27 Sgeo_, it wasn't a smartphone though 18:46:30 AnMaster, is it an Andr.. right 18:46:59 Sgeo_, it was some call-sms-bw-screen Ericcoson one, marked to construction workers and such 18:47:04 marketed* 18:47:06 ais523: F# is on .NET, too :-P 18:47:13 F# is on the JVM? 18:47:18 Deewiant: it's only on .NET, is the point 18:47:20 No, .NET 18:47:23 Oh 18:47:33 and besides, is an ML-derivative rather than Haskell-derivative 18:47:36 I thought your point was that F# is approximately Haskell 18:47:41 Call me when you can use .NET stuff on Android 18:47:42 And that the .NET/JVM thing was just a mistake 18:47:44 no, I was just trolling 18:47:50 Yes, that was obvious 18:47:53 thus the running in the following line 18:48:00 I thought you only trolled in one point, not two, though 18:48:05 apparently, when trolling, being factually accurate doesn't work so well 18:48:07 there is 18:48:10 lambdavm 18:49:03 hmm, this lang starts to look a bit more haskellish halfway down 18:49:21 the "call by need" seems rather vague, though 18:49:47 although I suppose in a pure lang, pretty much all the lazy calling conventions are identical, because there's no way to tell them apart 18:50:42 Sgeo_, oh btw that phone finally gave up when they drove over it with an excavator iirc XD 18:50:53 I can't find any link though 18:50:57 and iirc it was in Swedish 18:51:02 (the test) 18:51:57 alise: Jaskell doesn't seem /that/ insane 18:51:59 Call me when you can use .NET stuff on Android <-- presumably you could compile mono for it 18:52:07 if it is based on linux 18:52:17 AnMaster: it isn't really 18:52:20 it's based on Java 18:52:28 Linux is there, but it's a long way away from a standard Linux system 18:52:32 hm 18:52:48 it's like, sitting down at an elisp interpreter and asking "am I on Linux", to which the correct answer is "why do you care?" 18:52:50 ais523, linux would still be the lowest layer and java higher up 18:53:01 yep, but you can't communicate with the lowest layer 18:53:07 so it might as well be made of kittens 18:53:17 ais523, and I would care because the one thing I want on my phone is a bash shell :P 18:53:27 ais523: Actually, you can. 18:53:30 that would be the main reason to get a linux based phone 18:53:31 pikhq: ah, ok 18:53:35 is it just unrecommended? 18:53:45 The Java runtime on Android allows you to load .so files. 18:53:58 and then everything else should be easy :D 18:54:00 The only reason for *using* Java is because the Android API itself is in Java. 18:54:34 does the notion of a Java shell (along the lines of csh) even make any sense at all, I wonder? 18:54:40 hm I think some more linuxish phone would fit me better 18:54:49 fizzie, didn't you have some linux phone? 18:55:04 ais523: *shudder* 18:55:13 ais523, csh? 18:55:13 Terrible syntax for a shell. 18:55:16 *shudder* 18:55:26 something's wrong here 18:55:33 ais523, what? 18:55:40 the mere mention of csh makes people shudder sufficiently that they don't realise that doing it with Java would be even worse 18:55:51 ais523: I'm shuddering at the idea of a Java shell. 18:55:53 (hmm... isn't that what Powershell is, come to think of it, except with .NET rather than Java?) 18:56:04 -!- augur has joined. 18:56:05 csh is fairly poor, but it's at least *usable* as a shell. 18:56:22 ais523: Powershell adds syntactic sugar. 18:56:33 pikhq: as does .NET generally 18:56:45 Also, it's only a ".Net shell" in the sense that it's essentially a REPL for .Net. 18:56:48 I find C# really confusing to read, the mix of syntaxen is as bad as Perl 18:58:07 ais523, ouch you are right *shudder so violent it registers as 2.2 on the Richter scale* 18:58:33 (about csh with java syntax) 18:58:45 bonus points for using it interactively 18:58:47 g 18:58:54 ais523, using what interactively? 18:58:59 the shell? 18:59:25 yep, jsh or whatever we call it 18:59:28 ais523: *syntaxes 18:59:29 stop abusing plurals 18:59:35 also, csh isn't /that/ bad 18:59:38 it's bad, but not world-endingly bad 18:59:46 I find C# really confusing to read, the mix of syntaxen is as bad as Perl <-- better than Java at least. How did you do attributes and generic types in java now again? 18:59:48 alise: if it makes you feel better, I used the word "syntaxen" knowing it was wrong 18:59:56 ais523: yes, but it's irritating :P 19:00:03 Especially when you consider that what it was improving on was *old-school* Bourne shell. 19:00:06 attributes I can't remember, because I've never used them (assuming we mean the same thing by the word) 19:00:14 It added *job control*. 19:00:15 but generics is done exactly the same way syntax-wise as C++ 19:00:37 the relative sanity of that idea, I'll leave up to you to decide 19:00:38 ais523, C# has a _fairly_ clean syntax for generics 19:00:46 somewhat C++ based yes 19:00:56 in Java it's basically HashMap or whatever 19:01:02 but not quite as unreadable and not having the other issues of C++ templates 19:01:23 btw, the new version of GCC apparently doesn't print default template arguments by default any more 19:01:24 ais523, similar in C# and how do you define HashMap generic? 19:01:32 which presumably helps a lot against error message spam 19:01:39 AnMaster: it's in the standard library 19:01:42 ais523, class HashMap or some such? 19:01:46 ais523: Still not as good as Clang. 19:01:51 ais523, well assuming you want to make a similar class yourself.... 19:01:51 but if you're defining your own thing generic, you just put the angle brackets in 19:01:53 a generic one 19:01:55 right 19:01:58 Which is basically how compiler error messages should be *done*. 19:02:03 ais523, and then refer to T1 and T2 in the code? 19:02:07 AnMaster: yep 19:02:09 well sounds exactly like C# then 19:02:21 AnMaster: C#'s basic syntax isn't bad 19:02:24 they just went overboard with extensions 19:02:34 ais523, which isn't quite like C++ thankfully. C++ after all does the template keyword for it. And for other things 19:02:46 I remember seeing the template keyword on something else than a class 19:02:47 e.g. the LINQ stuff; I know, let's do functional-style programming with map and filter etc, but I know, let's use SQL syntax! 19:02:58 AnMaster: you can have template functions in C++ 19:03:02 ais523, what do you mean by attributes btw then? 19:03:11 s/btw then/then btw/ 19:03:23 AnMaster: I'm not sure; I've vaguely heard it's some way of tagging something to mean something, but I'm not really sure 19:03:32 or was that annotations? 19:03:35 ais523, I saw mandlebrot in sql once. Might have been PL/SQL or sich 19:03:36 such* 19:03:38 -!- tombom has quit (Ping timeout: 240 seconds). 19:04:03 AnMaster: the issue isn't with SQL itself (it's OK for what it's meant to do), but randomly embedding its syntax in a C-resembling (or Java-resembling) language 19:04:25 ais523, well iirc that thing is cleaner in C#. Used for various things. Remember doing meta programming by getting all classes tagged with a certain attribute in the compiled file 19:05:04 ais523, doesn't that exist? As embedded sql or such? Fairly old and obscure thing iirc 19:05:17 ais523, you don't need to use the special LINQ syntax to use LINQ 19:05:47 AnMaster: var lownums = from n in numbers where n < 5 select digits[n]; 19:05:49 http://en.wikipedia.org/wiki/Embedded_SQL 19:05:56 ais523, err what? 19:05:58 it's that that I'm talking about 19:06:04 (example taken straight from Microsoft's docs) 19:06:06 ais523, wth does it do 19:06:14 ais523, I only worked with .NET 2.0 19:06:16 nothing newer 19:06:18 Sgeo_: no, but presumably it exists for a reason 19:06:35 AnMaster: pretty much what you'd expect if you think about what the similar SQL and Java statements would do 19:06:53 also, I'm pretty surprised that you ever worked with .NET, you don't seem to be the type 19:06:54 ais523, "similar java statement"? 19:06:55 what? 19:07:04 ais523, also: it seems backwards compared to SQL 19:07:09 yes, I noticed that too 19:07:26 ais523, but what do you mean with similar java statement? 19:07:30 AnMaster: well, an assignment 19:07:36 you think I know java? 19:07:48 ais523, and I mostly worked with mono not .NET 19:07:58 ais523, and it was ages ago 19:08:00 AnMaster: I think you know the bits of Java syntax which are near-identical to C and C# syntax, yes 19:08:04 well yes 19:08:10 but what does the "var" there do 19:08:14 type inference 19:08:14 afaik it is not C# 19:08:17 unless I forgot a LOT 19:08:22 and yes, C# does that 19:08:26 but only for declarations 19:08:26 ais523, is it new? 19:08:30 probably 19:09:06 ais523, wouldn't that be some array or list type in the example above? 19:09:22 yes, it's an array, you're indexing it 19:09:30 ais523, I mean that the var goes to 19:09:33 with exactly the same syntax as in more or less every C-like sane language ever 19:09:40 it could be list or array or set or dict as far as I can see 19:09:45 well, OK 19:09:52 well probably not dict there 19:09:57 but set or list would make sense 19:10:04 I'm not actually sure what it is, the evil thing about type inference is that you can't tell by looking at the relevant bit of code 19:10:08 set especially so since that is what SQL kind of returns 19:10:18 (even in Haskell, it's good style for top-level functions to be annotated with what types are supposed to be inferred) 19:10:26 ais523, heh 19:10:29 and no, SQL results are ordered 19:11:05 ROFL at porn spam on AndroidZoom: 19:11:06 "Its Peekababe - our newest, coolest and sexiest android app ever!. With the flick of your wrist and a twist of your iPhone, watch their clothes slide off." 19:11:08 ais523, well if you use group by or whatever sure 19:11:13 err not that one 19:11:17 order by 19:11:19 ORDER BY? 19:11:20 yeah 19:11:25 was a bit since I used sql 19:11:26 if you don't, IIRC the results are supposed to be in natural order 19:11:37 Sgeo_: search-and-replace fail? 19:11:40 hmm, not even that 19:11:45 manual-search-and-replace fail 19:11:49 (even in Haskell, it's good style for top-level functions to be annotated with what types are supposed to be inferred) 19:11:57 and in a dependently-typed language sometimes (often) you must annotate types 19:12:05 yes 19:12:11 ais523, hm I can't figure out which one maps to from in SQL: "from n in numbers" "select digits[n]" 19:12:17 because it's impossible-as-in-deciding-truth-or-falsity-of-arbitrary-higher-order-propositions-impossible to infer 19:12:19 C#'s "type inference" is basically just inferring variable types from their initialisers 19:12:27 which is substantially more decidable, I imagine 19:12:54 ais523, it could be decided at runtime in C# I assume? 19:12:57 alise: incidentally, one of the things I'm doing for work in Real Life right now involves trying to construct a program which is formally undecidable to infer types for 19:13:09 ais523: i think that's easy 19:13:10 AnMaster: err, determining types at runtime in a statically typed language? 19:13:13 alise: so do I 19:13:18 ais523, is .NET though? 19:13:21 but I have to work within the constraints of the language I have 19:13:23 which is not a typical one 19:13:25 ais523: make the type of some thing depend on the veracity of some independent-from-axioms statement? 19:13:35 ais523, I mean it is an System.Object unless it is a value type 19:13:40 alise: I was planning to compile Diophantine equations into the type system 19:13:45 yes the value type thing confuses things a bit 19:13:56 ais523: ah, that is a better approach 19:13:58 but that means enum, integer, struct, float plus a few misc things iirc 19:14:18 almost everything else is an object. And you can get boxed integers and so on 19:14:29 alise: IIRC Chaitin has a diophantine equation that implements Lisp, but the equation itself isn't really needed, just a way to construct it from a class which is known to contain undecidable elements 19:14:47 Chaitin is one of my heroes. 19:15:12 I was going to say "is my hero", but wanted to parenthesise "(is one of)", then realised I'd need "hero(es)", then just decided to expand it. 19:15:21 alise: I was planning to compile Diophantine equations into the type system <-- what about doing something like perl undecidability proof? 19:15:36 AnMaster: the point is, the language itself is decidable 19:15:39 not sure what your constraints is 19:15:41 are* 19:15:43 AnMaster: you fail at "undecidability" 19:15:43 and also what that perl proof means 19:15:47 which leads to the crazy case of a decidable language with an undecidable type system 19:15:50 (hint: it's about syntax, not typing) 19:15:54 ais523, hah :D 19:15:59 besides, that requires compile-time code execution 19:16:02 ais523, what is this language? 19:16:08 ais523: decidable as in it is runnable? 19:16:21 or is it supposed to be generic "any language with these properties"? 19:16:21 alise: decidable as in bounded storage 19:16:23 most dependent type systems have undecidable type systems but can be executed perfectly well 19:16:37 so you can tell whether it halts or not by running it until you either get a repeat of the program state or it exits 19:16:38 or, well 19:16:38 x is-of-type X is decidable 19:16:38 just not x is-of-type ? 19:16:53 no, x is-correctly-typed is undecidable 19:17:07 ah 19:17:09 given the types of everything, though, x halts is decidable 19:17:53 god, kolmogorov complexity is so sexy 19:17:53 I want to make a billion esolangs about it 19:18:13 ais523: ooh, use this diophantine equation as the sample 19:18:13 * alise loads the page 19:18:13 Chaitin made a Diophantine equation for the bits of \Omega 19:19:09 hah, the theorem that there is no perfect size-optimising compiler is called the "full employment theorem" 19:19:10 bbl 19:20:10 the /really/ silly part is that, although I haven't proved it yet, I /think/ it's possible to prove that any code in the language that types incorrectly is necessarily dead code, and the bits that actually run can be typed correctly 19:20:23 -!- alise_ has joined. 19:20:27 (and if you're wondering what sort of lang has that property, let's just say it's a rather unusual type system) 19:20:36 bbl the /really/ silly part is that, although I haven't proved it yet, I /think/ it's possible to prove that any code in the language that types incorrectly is necessarily dead code, and the bits that actually run can be typed correctly 19:21:08 ais523: Is it a language formulated for the purposes of this; some other academic language; or something that somebody actually made up for "real"? 19:21:21 Well, by "academic language" I mean "for the purposes of studying its properties"; the latter would presumably be "academic" too. 19:21:40 alise: the last; the type system isn't being used for the purposes that type systems are normally used for, though 19:21:47 it's basically a static-bounding type system 19:21:56 http://www.cs.auckland.ac.nz/~chaitin/omega2.r ;; this is the diophantine equation to compute \Omega, I think 19:22:04 giving maximum bounds on the number of times things can be run in parallel 19:22:08 hmm... to a certain precision, I think 19:22:22 using the exhaustive-parallel-program-running approach, I imagine? 19:22:26 wait, no 19:22:28 it's just an equation 19:23:00 Ooh, the back button dismisses the keyboard 19:23:46 Sgeo_: it's touch-sensitive not an actual button on the nexus one :P 19:24:00 alise_: anyway, the point is that variables only used by dead code take up storage, but aren't actually used and so you don't need actual storage for them 19:24:06 -!- alise has quit (Ping timeout: 258 seconds). 19:24:20 That's true but also seemingly out-of-context. 19:24:20 and yet, as the storage bounds are determined by the type system, the typing has to take the dead code into account 19:24:23 -!- alise_ has changed nick to alise. 19:24:30 Ah. 19:24:44 So it's a type system that encodes things like complexity and storage usage? 19:24:48 yep 19:24:54 http://www.youtube.com/watch?v=y4pXcfgH4fE 19:25:06 I dreamt of that, once; well, actually just complexity. Then someone pointed out to me that analysing complexity was really hard, and I stopped thinking about it. 19:25:23 encoding complexity is relatively easy if you're insisting on finite storage 19:25:29 because it's always just O(1), the question is, what number 19:27:12 There was a nice quote about Knuth not being satisfied with "on the order of O(n log n)", instead giving an exact result with an approximated number; and /then/ he'd calculate that number to 10 decimal places. 19:27:28 heh 19:29:14 I don't think some encoding of the lambda-calculus is the best way to do Kolgomorov complexity -- sorry, John Tromp -- because of the iffiness of IO. 19:29:29 We need something that naturally yields some piece of data -- say, a list of naturals -- as part of computation. 19:29:47 But not something so unpredictable as Brainfuck's tape, that gets littered with rubbish and has to be cleaned up after-the-fact. 19:32:56 -!- zzo38 has joined. 19:33:02 -!- KingOfKarlsruhe has joined. 19:33:02 There's a Brainfuck Android app 19:33:20 I think I saw that once 19:33:21 Maybe I'll make a Befunge interpreter 19:33:32 I'd have to learn Befunge first, ofc 19:33:41 Maybe make INTERCAL Android 19:33:56 Make an actual android that can program in INTERCAL. 19:34:10 Sgeo_: Befunge-93 is pretty easy to interpret 19:34:13 alise: That isn't what I meant, but you can do that too, if you like to 19:34:16 the fine points of Befunge-98 can be chaos, though 19:34:38 Befunge-93 isn't TC, apparently 19:34:43 It isn't. 19:35:02 Sgeo_: it's a PDA, only finite amounts of storage can be accessed without permanently deleting some of it 19:35:29 that isn't really a very good way to express it; I know what I mean, but the standard conditions for being likely to be a PDA are kind-of hard to define 19:35:38 (for a very informal way of guessing: "one stack") 19:35:42 The best food at Japanese restaurant I had was yesterday 19:35:59 So that's where yesterday went 19:36:01 zzo38: the food was a timespan? 19:36:08 how often do you eat at Japanese restaurants? 19:36:12 It was called Sushi Plus. It was different than other Japanese restaurants I have been to, but I prefer it at that place 19:36:16 ais523: Every yesterday. 19:36:32 ais523: Not very often but occasionally I do, but not too rarely either 19:37:26 The first place the stack is mentioned is in the instruction set :/ 19:37:30 At Sushi Plus restaurant they served soup with rice noodles and beef teriyaki with eggs and rice together but no sauce. They also had a whiteboard with writing in Japanese, I could understand some of it but some of it I asked them what it meant so they said 19:38:09 beautiful; I hadn't realised that the Befunge specs were /quite/ that disorganized 19:39:17 And I didn't have to ask for spoon, they served spoon with both the soup and with the beef/rice. Of course they had chopsticks as well. I find it useful to use chopstick and spoon together 19:39:18 Sgeo_: what, in Befunge-98? 19:39:19 ais523, I'm looking at the wiki 19:39:20 That is completely false. 19:39:42 alise: I think we're discussing -93, although I'm not sure 19:39:43 ais523: actually, /most/ of the -98 spec is okay; it's just the instructions that are really abdly specified 19:39:52 getting an understanding of -93 first helps before moving onto -98 19:39:56 there is no canonical -93 spec afaik 19:40:07 the one returned by Google is pretty canonical 19:40:33 oh, hm 19:40:43 Is there a difference between http://quadium.net/funge/spec98.html and Befunge-98? 19:40:44 touche 19:40:53 Not IIRC 19:40:58 Sgeo_: that /is/ the Funge-98 specification 19:41:08 But to be safe, you can go with the more official link http://catseye.tc/projects/funge98/doc/funge98.html 19:41:09 Funge-98 == Befunge-98? 19:41:12 It defines Unefunge-98, Befunge-98 and Trefunge-98, with a nod to other-dimensional (and other-topological) analogies. 19:41:19 Sgeo_: Befunge-98 is a special case of Funge-98 19:41:23 Ah 19:41:30 ais523: well, actually, Funge-98 doesn't define the n-dimensional case 19:41:31 and the one that's generally used 19:41:32 Perhaps you can make one with hex-grid if you want to 19:41:36 just n = 1, 2, 3 19:41:38 alise: no 19:41:42 zzo38: yep, that's mentioned in the spec 19:41:48 alise: OK 19:41:48 [[As mentioned, Funge is a family of programming languages, and Befunge has many relatives and descendants. This document only covers Cartesian Funges. Other Funges, such as Honefunges (hex-net topology) and Kleinefunges (Klein-bottles) are certainly possible.]] 19:41:54 you'd need to change the commands a bit though for a hexgrid 19:42:05 [[However, Advanced Funges may not find either torodial space or Lahey-space sufficient for complex topologies, so this spec provides a language for defining wrapping behaviour in a mathematical way. 19:42:06 We can define an a wrapping function W() along the lines of: 19:42:06 W(x,y) = (x<0 -> x:=79, x>79 -> x:=0, y<0 -> y:=24, y>24 -> y:=0) 19:42:06 for Befunge-93. Complex topologies can define their own wrapping functions. If these functions are strictly and clearly specified in the documentation of the Advanced Funge in question, it will save a lot of confusion to users, and is highly recommended.]] 19:42:09 ais523: perhaps not 19:42:10 ais523: Yes, I would recognise that 19:42:15 topologists can do all sorts of things 19:42:23 I like how they call W a mathematical definition when it assigns variables. 19:42:25 alise: I'm mostly thinking of <>v^ 19:42:28 eine kleine funge musik 19:43:12 ais523: you can easily give them definitions 19:43:35 yes, but you can't sanely use the official definitions 19:43:38 y could be fun, too 19:43:42 but then, y is always fun 19:43:56 How would y be fun? y just outputs system information, no? 19:44:01 What about, fractal board befunge? 19:44:12 hilberfunge 19:44:16 I guess I shouldn't allocate a 2^32 by 2^32 array/list/whatever 19:44:32 That's generally not a good idea, no 19:44:36 zzo38: hmm; you could have a command to multiply the deltas by infinity 19:44:43 and divide by infinity 19:44:48 in a sort-of consistent way 19:44:52 basically, moving between the digits of a base-infinity number 19:44:53 Deewiant: If you can afford it... 19:44:58 that would give fractal behaviour 19:45:05 fizzie: Hence generally 19:45:07 Sgeo_: Are you implementing -93? 19:45:12 If so, then it's 80x24. 19:45:14 Sgeo_: some sort of sparse array is usual for -98 19:45:19 If not, then realise that it is a mammoth task. 19:45:20 for -93, it fits in an array just fine 19:45:20 alise, I want to do -98 19:45:22 It will take thousands of lines. 19:45:27 alise: 25 19:45:31 And much bothering Deewiant. 19:45:33 Deewiant: Er, yes. 19:45:35 Hm, maybe I'll make a -93 interp first 19:45:43 Good idea. 19:45:49 Is there a Mycology for -93? 19:46:00 ais523: Yes, that is a idea. Like, you can use a lowercase omega to represent this kind of "infinity"? Maybe 19:46:01 alise: I maintain that the core can be done in less than a 1000 lines :-P 19:46:02 ais523: Not very often but occasionally I do, but not too rarely either <-- how zzo 19:46:11 ais523: But not in ASCII 19:46:23 AnMaster: I can't remember exactly what time but I do sometimes 19:46:31 zzo38: you could write \omega in ASCII, TeXishly 19:46:48 Deewiant: But not efficiently in any way. 19:46:49 Sgeo_: Mycology has some tests for -93-only interpreters 19:46:53 ais523: But not for ASCII based grid, I meant 19:46:57 Deewiant, cool 19:47:03 zzo38: ah 19:47:05 alise: Sufficiently efficiently 19:47:12 zzo38: use W or something 19:47:13 zzo38, why should I care about that 19:47:17 it's just like lowercase omega, only slanty and big 19:47:18 Not looking forward to typing in all of Mycology though. I guess I should figure out how to let my app load it 19:47:19 hey, it's doable in one line of java 19:47:20 How often do you run performance-intensive Befunge? :-P 19:47:20 zzo38, I just said your line was very zzoish 19:47:34 nothing else 19:47:45 AnMaster: OK. 19:47:46 Sgeo_: you only need the -93 mycology set 19:47:46 Deewiant: I managed to spend 625 lines in ff3, and that's just 93. 19:47:50 since the rest is exclusively -98 19:47:52 and the -93 test is very small 19:47:53 alise, still a lot of typing 19:47:57 fizzie: Yeah, but you're doing it wrong. 19:48:05 fizzie: That GLfunge thing is bad, right? 19:48:08 fizzie: How big is jitfunge at the moment, by the way? 19:48:14 Well, it means I'll see how survivable the keyboard is 19:48:20 alise: Yes, don't speak of it. 19:48:30 hmm, talking to zzo38 has almost all the advantages of talking to a computer, with the bonus of being able to use natural-language English 19:48:31 Sgeo_: Copy-paste? 19:48:33 zzo38: you could write \omega in ASCII, TeXishly <-- and emacs could convert that for you 19:48:40 Deewiant, um? 19:48:44 AnMaster: so could sed; so what 19:48:45 ais523: Ooh, interesting. 19:48:46 ais523, M-x set-input-method RET TeX RET 19:48:47 Deewiant: I don't thing "wrong" is quite fair, it works just fine. 19:48:49 Hm, maybe, actually 19:48:53 ais523, that is quite different than sed 19:48:58 zzo38: Please present an algorithm for generating Pythagorean triples. 19:49:04 alise: this is not #irp! 19:49:12 bad bad IRPing 19:49:23 ais523, in fact there are some other useful ones, such as IPA, SGML (or was it called SGML?) and a few more 19:49:32 fizzie: Fair enough; can't think of a proper adjective though 19:49:36 ais523: Hey, he's just going to look it up in his algorithmic database. 19:49:40 Database lookups aren't computation! Much! 19:49:50 ais523, and a lot of language ones like Chinese and what not 19:50:01 Deewiant: 5351 lines in .cc and .hh files in jitfunge currently. 19:50:06 So the IFs go down if true 19:50:08 ais523, so comparing to sed is just useless. :P 19:50:09 stop giving me an urge to anthropomorphise SQL so I can get it to taunt you for me 19:50:22 AnMaster: you could do it with a specially-prepared sed script, I mean 19:50:31 fizzie: That explains why it's not working yet ;-) 19:50:40 ais523, that do this as you type with completion in the minibuffer? 19:51:03 AnMaster: meh, it's Emacs, there's probably some way to run buffers repeatedly through an external program 19:51:06 ais523, I don't think sed has quite those IO capabilities 19:51:10 completion might be a little harder though :) 19:51:30 hmm, has anyone tried to make Emacs work like Gobby, I wonder? 19:51:37 ais523, now you gave me an urge to learn more sed and then implement something ncurses-like in it 19:51:52 * Sgeo_ looks at the Befunge-93 spec 19:51:53 AnMaster: sed reads input a line at a time 19:51:56 How is v.<>:| @ not a no-op? 19:51:59 that's enough to scupper any hope of plausible input 19:52:08 ais523, what about various sed variants? 19:52:10 Sgeo_: it's an infinite loop 19:52:14 you start with v, which points to itself 19:52:17 the rest of the program is ignored 19:52:21 ais523, gnu sed has some extensions for example 19:52:31 I don't think it includes unbuffered IO though 19:52:33 So why is it in the spec as "This program makes duplicates of each value on the stacked, which is checked, and if non-zero, printed. 19:52:33 " 19:52:41 probably you mispasted it 19:53:00 Looks like something that should be two or more lines 19:53:01 or removed newlines, or something 19:53:08 yeah what Deewiant said 19:53:23 What I should do, is make a Phlogjournal interface for HTTP/HTML as well, but without the capability to send comments 19:53:35 ais523: It's actually like that in the spec itself 19:53:41 http://catseye.tc/projects/befunge93/doc/befunge93.html 19:53:46 Deewiant: broken example in the spec? 19:53:46 Sgeo_: That's an error 19:53:54 It's probably HTML failure 19:53:58 But it /is/ in 19:54:10 zzo38: why haven't you presented the algorithm yet? 19:54:10 what does it say in the source? 19:54:13 isn't
19:54:14  But then, it's also in