←2010-03 2010-04 2010-05→ ↑2010 ↑all
2010-04-01
00:00:08 <oerjan> oklopol: you're doomed. DOOMED!
00:00:28 <oklopol> :---------------------------------------------------------------------------------O
00:00:51 <oerjan> as would anyone with that kind of nose, mind you
00:13:19 -!- oerjan has quit (Quit: leaving).
00:15:14 <augur> oklopol: ok heres the challenge
00:16:10 <augur> i will design a trivial little universe, with very simple physics, and a small finite number of universe configurations
00:19:09 <augur> 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 <augur> hows that sound?
00:21:31 <oklopol> 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 <pikhq> Because you should.
00:32:04 <lament> because python is better
00:32:18 <Sgeo> forM_ somelist $ \item -> do
00:32:21 <Sgeo> Has its own charm
00:32:46 <lament> if by charm you mean it looks ugly!
00:33:10 <fax> oklopol
00:33:17 <Sgeo> It's not some magic syntax thing
00:33:41 <Sgeo> Unlike for/foreach in just about every other language
00:33:42 <fax> Sgeo, if/then/else *is* magic syntax, but it shouldn't be
00:33:49 <pikhq> Sgeo: forM_ is quite a bit more general, also.
00:36:48 <Sgeo> You know what I don't like? The emphasis that seems to need to be placed on efficiency
00:37:17 <Sgeo> The trivial quicksort that everyone talks about is apparently the wrong way to do it do to efficiency concerns, or something
00:37:29 <fax> Sgeo -- quicksort sucks
00:37:44 <fax> who needs to sort lists ?
00:37:51 <fax> seriously it's just a waste fo time
00:37:56 -!- charlls has quit (Quit: Saliendo).
00:38:16 <oklopol> who even needs lists
00:38:33 <Sgeo> Can you say that about every algorithm where the trivial implementation is inefficient?
00:38:43 <oklopol> i bet i could live for a year without a list of any kind
00:39:06 -!- oerjan has joined.
00:40:00 <fax> Sgeo most everything in haskell is inefficent
00:40:26 <lament> haskell sucks
00:40:38 <oklopol> i hate haskell
00:40:43 <fax> :D
00:40:47 <oklopol> OOP is the way
00:41:35 <lament> exactly
00:41:43 <fax> :[
00:42:18 * Sgeo wonders how you'd write a NetHack-like game in Haskell
00:42:20 <oklopol> faxes are outdated.
00:42:24 <lament> haskell is for dorks who think they're nerds
00:42:24 -!- Asztal has quit (Ping timeout: 248 seconds).
00:42:35 <fax> Sgeo easy way to find out is to do it!
00:45:12 <Sgeo> 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 <oerjan> um what do you mean by two different types of STRefs?
00:46:27 <Sgeo> An STRef that holds an Int and an STRef that holds a String, for instance
00:46:50 <oerjan> of course you can. excuse me while i look it up...
00:50:06 -!- Slereah has joined.
00:51:50 <oerjan> !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 <oerjan> !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 <oerjan> !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 <EgoBot> n is 3
00:53:28 <oerjan> yay just three attempts needed </s>
00:54:40 <fax> !haskell "n is 3"
00:54:41 <EgoBot> "n is 3"
00:55:08 * oerjan suddenly recalls that it was not necessarily safe to use $ with runST
00:55:14 <coppro> runST?
00:55:37 <pikhq> Everything is inefficient in languages other than bits.
00:55:43 <oerjan> the function to run a command in the ST monad
00:55:47 <pikhq> coppro: runST :: St a -> a
00:55:53 <oerjan> pikhq: no!
00:55:55 <pikhq> Erm. ST a -> a.
00:56:05 <pikhq> Oh, wait.
00:56:07 <pikhq> It's ST.
00:56:08 <oerjan> it uses type magic
00:56:33 <oerjan> and that type magic means it has varied whether you could use it with $
00:56:33 <coppro> oh
00:56:45 <oerjan> runST :: (forall s. ST s a) -> a
00:56:57 <pikhq> Argh. Right.
00:57:02 -!- Slereah has quit (Ping timeout: 260 seconds).
00:57:06 <Sgeo> ST s a
00:57:09 <pikhq> It's unusual.
00:57:22 <Sgeo> I'm still confused about the forall. I know why it's there, but not what it oes
00:57:23 <Sgeo> *does
00:58:51 <oerjan> 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 <Sgeo> That doesn't teach me what forall. is supposed to mean
00:59:33 <pikhq> oerjan: No, forall is not uniqueness typing.
00:59:45 <oerjan> pikhq: i didn't say that
00:59:54 <oerjan> s is a type, not a value
00:59:57 <Sgeo> There is Lady Gaga behind this window
01:00:32 <oerjan> Sgeo: the thing passed to runST must be a value that is polymorphic for _all_ possible s
01:00:55 <pikhq> Mmkay.
01:02:46 -!- Slereah has joined.
01:03:03 <pikhq> Oh, I get it.
01:03:16 <oerjan> yay
01:03:54 <pikhq> The "s" must inherently come from runST, and cannot come from anywhere else, because of that forall. So, runST is pure.
01:04:07 <pikhq> Instead of being unsafePerformIO.
01:05:59 <oerjan> 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 <oerjan> well at least you can read the definition
01:07:20 <pikhq> Sgeo: The State monad simply keeps track of a single value called a "state" and threads that around.
01:07:43 <oerjan> newtype State s a = State { runState :: s -> (a, s) }
01:07:44 <Sgeo> How does get get a hold of that thread, if it's type is State a?
01:08:10 <pikhq> State s a.
01:08:22 <pikhq> You pass runState the initial state.
01:08:48 <pikhq> And "modification" of the state is actually replacing the state with an entirely different one.
01:09:03 <pikhq> (note: compiler may freely replace it with actual modification at will)
01:09:19 <Sgeo> And how is get defined, exactly?
01:09:39 <oerjan> instance MonadState s (State s) where get = State $ \s -> (s, s) put s = State $ \_ -> ((), s)
01:09:53 <oerjan> (line breaks got elided)
01:10:09 <oerjan> 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 <oerjan> 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 <coppro> oerjan: are those supposed to be uncurried?
01:11:50 <oerjan> get takes no arguments
01:12:16 <oerjan> (unless you unwrap the type first)
01:12:22 <Sgeo> What does the State function do?
01:12:30 <coppro> it's a constructor
01:12:36 <Sgeo> I know that mich
01:12:37 <Sgeo> *much
01:12:43 <pikhq> ... That's what it does.
01:12:49 <pikhq> It constructs a new value.
01:13:26 <oerjan> it builds an action in the State monad from a function describing how the threads the state and produces a result
01:13:42 <Sgeo> So get is something that would have >>= before it?
01:13:49 <Sgeo> As opposed to the more usual >>?
01:14:02 <Sgeo> Wait, no
01:14:04 <oerjan> apart from type, an action in the State monad _is_ just such a function
01:14:21 <oerjan> nope, get has no function arguments as an action
01:14:30 <oerjan> put, on the other hand, does
01:15:04 <Sgeo> So get just gives the monad a function to execute?
01:15:07 <oerjan> put s is an action that ignores the old state and uses s as the new one
01:15:33 <oerjan> Sgeo: _every_ State monad action is just a function wrapped in a State constructor
01:16:18 <oerjan> get, put s, etc.
01:17:30 <oerjan> 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 <Sgeo> I keep seeing OCaml being suggested as a stepping stone to Haskell.
01:47:34 <Sgeo> Does that mean for me, OCaml would be a step backwardsa?
01:47:37 <Sgeo> *backwards?
01:49:03 <oerjan> well ocaml does have some interesting features not in haskell
01:49:58 <oerjan> 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 <oerjan> 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 <oerjan> of course for me ocaml _was_ a stepping stone to haskell, so i haven't used it for years
01:52:47 <oerjan> you might look at F# which i hear is descended from ocaml
01:53:16 <oerjan> but i also think it lacks some of those interesting features
01:53:30 <oerjan> while being .NET compatible
01:55:01 <fax> Sgeo ugh no way
01:55:22 <Sgeo> fax, project, with a deadline tomorrow
01:55:30 <Sgeo> Haven't done a single line of code for it today
01:55:33 <fax> @00:47 < Sgeo> Does that mean for me, OCaml would be a step backwardsa?
01:58:02 <Sgeo> 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 <Sgeo> In Haskell, there always seems to be the Haskell way, and the fast way
03:01:56 <fax> right
03:02:15 <oerjan> i hear there also an intersection, known as fusion :)
03:02:19 <Sgeo> It's really starting to get on my nerves, tbh
03:02:22 <oerjan> *+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 <augur> heydo.
03:19:26 <mibygl> Wayat? Wayat? Wayat? Wayat?
03:19:34 <mibygl> 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 <augur> mibygl = uorygl?
04:25:58 <Sgeo> Jes.
04:26:14 <Sgeo> (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 <Sgeo> 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 <fax> 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 <fax> be*
04:40:42 <Sgeo> Why would you bother trying not to be advanced?
04:42:14 <fax> 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 <coppro> what's the assignment?
04:45:25 <Sgeo> coppro, project that I've been talking about for the past few months
04:45:31 <coppro> oh
04:45:40 <coppro> assume I'm stupid
04:45:43 <coppro> and haven't paid attention
04:46:04 <Sgeo> coppro, game that I'm making with a few other people [only one other programmer]
04:46:16 <Sgeo> It's on the AW platform, so it's not as much work as it sounds, but still
04:46:42 <Sgeo> The um.. financer, I guess, is giving us some stuff, but wants to see results
04:46:44 <coppro> is the deadline the due date, or a partway-through thing
04:46:54 <Sgeo> partway-through
04:46:58 <coppro> ah
04:47:03 <coppro> and I presume you aren't there yet?
04:47:29 <Sgeo> Fairly close, but if the person's expecting 100%, it's not happening
04:48:08 <Sgeo> Anyways, I'm going to restart the computer, and hopefully that will leave a clean slate to let me focus
04:49:49 <coppro> let me give you a piece of advice
04:49:55 -!- Sgeo_ has joined.
04:50:05 <coppro> do not turn on IRC when you reboot, unless its necessary for your work
04:50:10 <coppro> if it is, join only the necessary channesl
04:50:12 <coppro> *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 <augur> so, who wants to play with universes? :)
05:22:38 <Sgeo> I think I tend to seek 12 different tutorials for things
05:23:21 <Sgeo> 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 <Sgeo> 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 <Sgeo> If Haskell can't do state, then surely it isn't Turing Complete?
05:38:21 <augur> sgeo, it can simulate state!
05:38:29 <augur> like the lambda calculus can!
05:38:43 <Sgeo> What does Calculus have to do with anything?
05:39:00 <pikhq> Sgeo: It can do more than simulate state.
05:39:13 <pikhq> ST is entirely imperative. It is also entirely pure.
05:39:14 <Sgeo> /ctcp pikhq time
05:39:15 <Sgeo> oops
05:39:26 <coppro> 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 <Sgeo> I thought Haskell can't do imperative
05:39:30 <pikhq> No joke.
05:39:38 <augur> lambda calculus
05:39:40 <pikhq> *Ah*. Right.
05:39:44 * pikhq skips forward
05:39:53 <augur> not calculus as in newton/leibniz
05:39:55 <augur> a "calculus" is a means of calculating something.
05:40:00 <pikhq> Sgeo: Well, you see, it only pretends to. With this "monad" bullshit.
05:40:09 <pikhq> Named after Monad Leibniz.
05:40:40 -!- wareya has joined.
05:41:24 <Sgeo> So, this Monad fellow.. he invented math and computers?
05:41:28 <pikhq> Used as follows: let Monad M = new template<Monad M <new template>> M(this); M.bind.return.imperative( // What follows is C++ code.
05:41:49 <pikhq> The syntax was chosen, of course, to be compatible with C++'s most brilliant design principles.
05:42:07 <augur> is SGEO being full of shit? XD
05:42:12 <pikhq> Oh, also. What follows after "//" is not a comment.
05:42:20 <pikhq> augur: The day is most certainly not 4-01.
05:42:31 <pikhq> And such a day has in no way any significance.
05:43:01 <augur> oh i see yes
05:43:03 <augur> well! one never knows
05:43:18 <augur> i dont know Sgeo much
05:43:33 <augur> i also dont participate in april fools, so it never crosses my mind
05:44:14 <Sgeo> In all seriousness, there should be an esolang based on pikhq's "code"
05:44:31 <Sgeo> [In all full seriousness, I always say that there should be an esolang]
05:44:37 <wareya> I tried five fucking different floppy drives
05:44:41 <wareya> 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 <pikhq> Hmm. The SCP foundation has had a breech. It would seem that today is a good day to die.
05:55:52 <Sgeo> btw, coppro, I've been here for years
05:56:05 <Sgeo> 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 <Sgeo> xkcd.com
06:10:54 <Sgeo> Not working for me in Chrome, but still
06:11:06 -!- wareya has joined.
06:13:26 <coppro> haha
06:16:19 <pikhq> Doesn't work in Firefox.
06:16:45 <coppro> 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 <coppro> Sgeo: /quit, close your browser, reopen your browser, open exactly those pages which are required for your work
06:28:12 <Sgeo> Not going to /quit
06:28:31 <Sgeo> I need people to talk to
06:29:02 <coppro> then /part out of every channel except the ones related to your work
06:29:09 <coppro> you do not need people to converse with casually
06:29:11 <coppro> you need to work
06:31:10 <pikhq> Not necessarily.
06:31:45 <Sgeo> Can I talk to you while I work?
06:32:07 <Sgeo> I just had a semi-revelation: I don't need to actually have the bot do anything for this part
06:32:11 <Sgeo> It's pure in-AW code
06:32:23 <Sgeo> 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 <Sgeo> Also, I did kind of take pikhq's statement as permission to talk casually in here
06:45:45 * pikhq shruggeth
06:53:55 <Sgeo> 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 <Sgeo> 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 <Sgeo> 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 <coppro> youtube wins the day
08:35:47 <coppro> http://www.youtube.com/watch?v=WccS6q8Mo-U&feature=channel&textp=fool
08:37:12 <Sgeo> flip=1 no longer works?
08:37:14 <Sgeo> :(
08:37:45 <coppro> flip=1?
08:38:09 <Sgeo> Or, what was the thing to flip it?
08:38:16 <Sgeo> Last year or something
08:39:25 <Sgeo> google.com
08:40:36 <Sgeo> They're reviving Virgle
08:42:09 <coppro> the are?
08:42:10 <coppro> I don't see it
08:42:36 <Sgeo> "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 <coppro> http://googleblog.blogspot.com/2010/04/different-kind-of-company-name.html
08:44:33 <Sgeo> Is the death of star ratings on YouTube for real or Apr1st?
08:45:21 <coppro> unknown
08:45:44 <coppro> signs point to permanent
08:45:55 <coppro> though one can never tell with Google
08:46:32 <Sgeo> Google tends to be more "nope, it wasn't April 1st joke after all"
08:46:39 <Sgeo> Then again, that's coming from one data point
08:47:34 <coppro> exactly
08:47:41 <coppro> I also like the units of measure on the search page
08:48:17 <Sgeo> Maybe someone was using that information for something important! And now they just screw it up?
08:48:40 <coppro> "Whatever the outcome, the conclusion was clear: we aren't in Google anymore."
08:49:04 <Sgeo> lol; I think I missed that
08:52:14 <coppro> it was in the blog post I just linked
08:54:28 <Sgeo> coppro, I know, I read it before, and failed to notice that line
08:54:56 <Sgeo> 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 <augur> dude
09:28:56 <augur> haha
09:29:11 <augur> the youtube stuff is awesome
09:30:06 <augur> i like the cosmonauty textp XD
09:32:36 -!- coppro has quit (Ping timeout: 276 seconds).
09:34:14 <myndzi> the ascii youtube video thing has actually been around a while
09:34:20 <myndzi> it was some other site that would do it
09:34:29 <myndzi> i like that youtube brought it in
09:36:23 <fizzie> 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 <fizzie> 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 <Gregor> mynzλ
10:31:19 <Gregor> Erm
10:31:22 <Gregor> myndzλ
10:48:32 <Ilari> Does libcaca support 256-color mode? :-)
10:50:00 -!- Tritonio_GR has joined.
10:50:39 <fizzie> Ilari: I have a feeling it does, but I'm not completely certain.
10:51:30 <fizzie> 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 <fizzie> Yes, there's ncurses, slang, x11 and gl drivers in it.
10:56:15 <Gregor> lawl@libcaca over gl
10:58:01 <Ilari> All kinds of "insane transports" and "insane platforms" are fun to do as an joke...
10:59:45 <Ilari> I haven't done any really crazy combos... I think the craziest was SSH inside SSH...
11:00:32 <Gregor> 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 <Ilari> I once got Quake II using aalib by mistake...
11:02:10 -!- Tritonio_GR has quit (Client Quit).
11:03:42 <Gregor> Tritonio doesn't like that.
11:05:20 <Ilari> (SDL autofallbacks video drivers...)
11:05:23 <fizzie> 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 <oerjan> dammit and here i thought the topic would be correct today :(
12:25:39 <oerjan> 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 <AnMaster> hm xkcd did a very nice thing for today
16:57:53 <AnMaster> 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 <AnMaster> hah at the units in google's search result
17:50:55 <AnMaster> 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 <Slereah> Not here
18:00:23 <Slereah> Must be a google US exclusive prank
18:00:26 <AnMaster> Slereah, only on google.com
18:00:28 <AnMaster> not on google.se
18:00:35 <Slereah> or .fr
18:00:36 <AnMaster> Slereah, but I use google.com normally
18:00:42 <AnMaster> easy to switch though
18:00:51 <Slereah> I do too, but it switches automatically to .fr
18:00:52 <AnMaster> just a link near the bottom of the front page
18:00:57 <zzo38> 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 <AnMaster> oh and did you see xkcd
18:01:01 <Slereah> I hate it when softwares try to second guess me
18:01:04 <AnMaster> xkcd's shell
18:01:06 <Slereah> yes
18:01:08 <AnMaster> quite nice
18:01:09 <Slereah> Also 4chan
18:01:13 <AnMaster> guest@xkcd:/$ date
18:01:13 <AnMaster> March 32nd
18:01:13 <Slereah> POST TO FACEBOOK
18:01:22 <Slereah> I hate april fool
18:01:27 <Slereah> It's always so stupid
18:01:31 <AnMaster> Slereah, ?
18:01:34 <AnMaster> what about 4chan
18:02:02 <Slereah> There's a "post to facebook" option on the post window for april fool
18:02:16 <AnMaster> Slereah, oh and maps.google.com.au gives directions in AU slang
18:02:17 <AnMaster> like:
18:02:32 <AnMaster> "Turn a smidge left when you get to South Western Mwy
18:02:33 <AnMaster> Ya might have to cough up some cash along here"
18:02:39 <Slereah> Crikey!
18:02:45 <AnMaster> Slereah, :D
18:02:58 <AnMaster> Slereah, still waiting for the RFC
18:04:22 <Slereah> RFC?
18:04:28 <zzo38> Will there be a fool RFC this year?
18:04:47 <Slereah> Roman Fatholic church?
18:04:48 <zzo38> Will INTERCAL be released this year?
18:05:07 <Slereah> Isn't it already?
18:05:13 <Slereah> Also what is RFC
18:05:36 <zzo38> RFC is short for "Request For Comment"
18:06:01 <zzo38> It is usually a specification for some internet protocol or something like that. But it can sometimes describe other stuff, too
18:07:32 <AnMaster> and there is usually joke ones on 1 April
18:07:43 <AnMaster> Slereah, are you serious about never having heard about RFCs?
18:07:57 <AnMaster> like the IRC RFC, 14xx (forgot the last two digits)
18:08:48 <AnMaster> 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 <oklofok> hello everyone, this morning i woke up to find i had turned into seven monkeys
18:14:25 <oklofok> and only three of those monkeys were virgins
18:19:36 <lament> congrats, you're 4/7 less of a virgin than before
18:20:16 <zzo38> Hello, this moring I woke up to find out that my bed was on the ceiling
18:20:27 <zzo38> And I had eight eyes, just like my D&D character does
18:20:36 <zzo38> But then I realized I was still sleeping
18:20:58 <oklofok> 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 <AnMaster> * Sgeo pulled a fax earlier, maybe Slereah's doing the same?
18:21:06 <AnMaster> what do you mean?
18:21:09 <oklofok> i'm seven monkeys you see
18:21:21 <AnMaster> oklofok, how many were using typewriters?
18:21:25 <Sgeo> AnMaster, I convinced at least two people that I was more of an idiot than I am
18:21:30 <oklofok> he's referring to the time fax said she didn't like haskell
18:21:37 <AnMaster> oklofok, this is of uttermost importance!
18:21:38 <oklofok> err
18:21:44 <oklofok> the time she said she doesn't know haskell
18:22:06 <AnMaster> Sgeo, wow. That would be like at absolute zero then?
18:22:13 * Sgeo growls
18:22:14 <AnMaster> (sorry, couldn't resist)
18:22:18 <lament> oh, today is 1st of april, which means we can all lie to each other
18:22:32 <AnMaster> lament, why should I trust that?
18:22:39 <oklofok> but i'm really monkeys
18:22:45 <AnMaster> lament, also it is March 32
18:22:48 <lament> but today is really the 1st of april
18:22:48 <AnMaster> not 1 April
18:23:03 <AnMaster> lament, go to xkcd and type date into the javascript shell on that page
18:23:06 -!- augur has joined.
18:23:07 <AnMaster> see, it must be correct
18:23:20 <lament> using xkcd in an argument instantly disqualifies you
18:23:22 <lament> from life
18:23:44 <zzo38> Match 32? My calendar says it's Arch 42 and a half.
18:24:11 <AnMaster> lament, har. But I quite liked his unix like shell that he remade the front page into today
18:24:26 <Sgeo> It has an IRC client
18:24:30 <AnMaster> Sgeo, what does?
18:24:35 <Sgeo> unixkcd
18:24:40 <AnMaster> oh didn't notice
18:24:45 <AnMaster> Sgeo, what network does it go to?
18:24:48 <Sgeo> Foonetic
18:24:58 <Sgeo> Type irc AnMaster or something
18:25:11 <augur> i think xkcd should stick with this theme forever.
18:25:13 <augur> i rather like it
18:25:15 <Sgeo> Also, `find kitten` is fun
18:25:19 <zzo38> 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 <Sgeo> sudo apt-get upgrade
18:27:07 <AnMaster> Sgeo, saw that
18:27:32 <AnMaster> 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 <Sgeo> AnMaster, not if you're using Firefox < 3, or IE
18:30:04 <Sgeo> AnMaster, look
18:32:01 <AnMaster> Sgeo, I'm using firefox 3.6
18:32:13 <AnMaster> Sgeo, and I doubt my other installed browsers could check it
18:32:30 <AnMaster> (because they are text only and don't support javascript)
18:32:35 <AnMaster> Sgeo, as for "look" yes I saw that
18:32:52 <AnMaster> 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 <zzo38> 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 <zzo38> 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 <Gregor> So essentially, you think Linux would be better if it was cryptically difficult to use.
19:45:59 <pikhq> Those are of great confusion.
19:46:08 <zzo38> 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 <pikhq> And I note that I only recently started using a window manager that reparents.
19:46:31 <coppro> reparent?
19:46:40 -!- oklopol has joined.
19:46:46 <zzo38> I would probably write a new shell, too, with some new features and some removed, and so on
19:46:52 <pikhq> coppro: Most window managers reparent windows so they can draw title bars.
19:47:00 <pikhq> And window borders.
19:48:19 <pikhq> Ratpoison leaves the parent as root, because who needs graphics?
19:48:26 <pikhq> That's not why you're running X, is it, silly?
19:49:06 <coppro> ah
19:49:23 <zzo38> 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 <coppro> go ahead
19:49:57 <zzo38> For example, wm-t could show/hide taskbar and wm-tab could switch next window, and so on, like that.
19:50:12 <zzo38> It should hide the title-bar for maximized windows, so therefore I will make it to do tha.
19:50:36 <pikhq> 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 <pikhq> Could quite reasonably just do a few minor patches against Fluxbox for that.
19:51:43 <zzo38> 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 <pikhq> As I said, fairly reasonable, and it would probably not take much work to add to Fluxbox.
19:53:07 <zzo38> 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 <zzo38> Because wm key + left mouse button would be used to resize windows instead.
19:54:11 -!- sshc has quit (Quit: leaving).
19:55:57 <zzo38> 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 <Sgeo> :D
20:01:39 -!- hiato has joined.
20:01:59 <zzo38> 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 <hiato> zzo38: rant? :P
20:12:39 <zzo38> 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 <zzo38> 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 <zzo38> 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 <Gregor> Y'know what would be nice? A soundfont for strings that didn't suck UTTERLY.
20:21:21 <coppro> those exist
20:21:25 <coppro> somewhere over the rainbow
20:21:48 <Gregor> Lies.
20:21:51 <Gregor> Filthy, disgusting lies.
20:22:09 <hiato> q:
20:23:19 -!- hiato has quit (Quit: You've been a wonderful audience).
20:23:32 -!- ehirdiphone has joined.
20:23:39 <ehirdiphone> Lo.
20:23:47 <Gregor> 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 <ehirdiphone> 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 <ehirdiphone> :)))))))
20:25:10 <ehirdiphone> ...APRIL FOOLS HAHAHAHA :|
20:25:13 <Sgeo> 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 <ehirdiphone> I'm too tired to even go on the computer. Tomorrow.
20:28:19 <Sgeo> You can't check xkcd.com on the iPhone?
20:28:32 <ehirdiphone> So you'll have three days of me.
20:28:42 <ehirdiphone> Sgeo: Do http:// and maybe
20:28:51 <Sgeo> http://xkcd.com
20:29:01 <ehirdiphone> I hate xkcd, though
20:29:26 <Sgeo> Not talking about the comic
20:29:31 <ehirdiphone> Anyway, everything works on the iPhone. Except Flash.
20:30:55 <ehirdiphone> I'm just on GSM. It does not load.
20:31:11 <ehirdiphone> Fast enough for IRC, though.
20:31:30 * Sgeo is a Reddit admin!
20:31:45 <ehirdiphone> In some dubreddit
20:31:51 <ehirdiphone> Subreddit
20:31:57 <Sgeo> No, globally [mods are what's by subreddit, btw]
20:32:12 <ehirdiphone> Huh, since when?
20:32:18 <Deewiant> Everybody is, since today
20:32:31 <ehirdiphone> And are they as numerous as WP admins?
20:33:33 <Sgeo> Wait, why can't I upvote to infinity anymore?
20:33:43 <Sgeo> Oh, I don't have the admin thing active
20:34:10 <ehirdiphone> I should have known: I wondered why I never saw his posts or comments, if he is so prominent.
20:34:19 <ehirdiphone> Bloomin' Fools.
20:35:01 <ehirdiphone> Daiyen fooles.
20:35:17 <Deewiant> fooels*
20:35:28 <Sgeo> YouTube has a new TEXTp mode
20:35:38 <Deewiant> Unavailable for me
20:35:56 <ehirdiphone> TEXTp?
20:36:00 <Deewiant> http://youtube-global.blogspot.com/2010/03/textp-saves-youtube-bandwidth-money.html
20:37:10 <ehirdiphone> Wow, Epigram 2 was released!
20:37:32 <Sgeo> Epigram programming language?
20:41:19 <zzo38> The next feature they need to add is the one to automatically print out transcripts of videos, without requiring Flash
20:41:44 <zzo38> If they had that feature I would use it.
20:43:26 <ehirdiphone> Sgeo: Yes; and proof assistant. The development of its second version is going at a leisurely pace.
20:47:26 <ehirdiphone> 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 <ehirdiphone> With some sort of drawing support, so I can write stuff and have it unicodified.
20:49:22 <lament> the iphone needs to be softer and more porous
20:49:47 <lament> for a more comfortable tactile experience and better retention of fecal matter
20:50:04 <Sgeo> Saw some article about "Youngest iPhone developer?" Apparently the person's 14
20:50:15 <Sgeo> Somehow, I don't think that sort of thing impresses ehirdiphone
20:50:43 <ehirdiphone> HE CODES FOR THE IPHOME??????22221
20:50:50 <ehirdiphone> Ifoam
20:51:27 <ehirdiphone> Inductive setoid : * := over : Pi (A:*). Pi (R:BinaryRelation A). setoid
20:51:30 <lament> after extensive experimentation, i have to say i still find regular 2-ply paper preferrable to any version of the iPhone
20:53:02 <ehirdiphone> Inductive setoidV : * -> * -> * := mask : Pi (A:*). Pi (R:BinaryRelation A). A -> setoidV A R
20:54:38 <ehirdiphone> Function setoidT : Pi (S:setoid). * := match S with over A R => setoidV A R end.
20:55:15 <ehirdiphone> + implicit argument jiggery:
20:56:21 <ehirdiphone> Type rational : * := setoidT (over (natural x natural) (too lazy))
20:56:23 <fizzie> ehirdiphone: Coincidentally, the N900 repository has texlive.
20:56:33 <ehirdiphone> Heh.
20:56:48 <fizzie> I can't imagine it being very friendly to use.
20:57:08 <ehirdiphone> I need a whiteboard :)
20:57:14 <ehirdiphone> ...and friends :(
20:57:20 <Gregor> laaaaaaaawl
20:57:51 <ehirdiphone> setoid would be better as
20:58:25 <ehirdiphone> Inductive setoid : * := over : Pi (A:*). BinaryRelation A -> setoid.
20:59:10 <ehirdiphone> My cardinality stuff was awesome
21:00:14 <ehirdiphone> Except you need to add that A -> B has cardinality \aleph_0 iff B has. I think.
21:00:21 <ehirdiphone> Yeah.
21:00:46 <ehirdiphone> Or otherwise... Hmm, more than the cardinality of B.
21:01:05 <ehirdiphone> |A| * |B|, I think.
21:01:17 <ehirdiphone> As an axio
21:01:19 <ehirdiphone> m
21:02:03 <ehirdiphone> Can't prove it, requires a bijection from A->B to naturals or finite set (naturals mod some N)
21:03:50 <ehirdiphone> Hmm. Does INF -> FIN really have infinite cardinality?
21:03:57 <ehirdiphone> Naw. Finite.
21:09:46 -!- zzo38 has quit (Remote host closed the connection).
21:10:12 <ehirdiphone> Or wait.
21:10:29 <ehirdiphone> Of course it is infinite.
21:10:46 <ehirdiphone> 0:0, 1:0, 2:0, ...
21:11:00 <ehirdiphone> 0:1, 1:0, 2:0, ...
21:11:18 <ehirdiphone> 0:1, 1:1, 2:0, ...
21:11:20 <ehirdiphone> etc
21:11:57 <ehirdiphone> Type theory has really boring cardinalities
21:12:21 <ehirdiphone> 0 <= card <= \aleph_0
21:13:08 <lament> yawn
21:13:45 -!- adam_d_ has changed nick to adam_d.
21:19:39 <ehirdiphone> It does mean that the biggest thing can be constructed trivially, though — Inductive N : * := z : N; s : N -> N.
21:20:13 <ehirdiphone> Hmm, what of Set and its ilk?
21:20:29 <coppro> red oval, green oval, blue oval
21:20:39 <ehirdiphone> I guess there are only countably infinite types.
21:20:48 <lament> let's number them!
21:20:52 <lament> i'm type 842
21:21:06 <ehirdiphone> You could easily add:
21:21:49 <ehirdiphone> bijections between functions/types tofro naturals
21:22:20 <lament> 8723 :: 23 -> 974
21:22:51 <ehirdiphone> For functions, metajustification: if you can analyse functions' in/out pairs on countably infinite sets it can never exceed their cards
21:23:12 <ehirdiphone> For sets, too lazy to come up with a real justification
21:23:43 <ehirdiphone> 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 <ehirdiphone> Hi oerjan.
21:41:17 <oerjan> hi ehirdiphone
21:41:50 <Sgeo> ehirdiphone, can you read email on that thing?
21:42:12 <ehirdiphone> pow S := sum T, forall x:T, x in T -> x in S
21:42:35 <ehirdiphone> So "in" is risky.
21:42:46 <ehirdiphone> or rather
21:42:50 <ehirdiphone> The axiom
21:43:07 <ehirdiphone> (S:*) -> pow S
21:43:11 <ehirdiphone> is risky
21:43:16 <ehirdiphone> Sgeo: Yes
21:43:47 <Sgeo> If you want, read the email I sent to agora BUS: Re: In Honor of B
21:43:56 <Sgeo> Or just http://pastie.org/private/vv0eusi1ahas50htd7w
21:44:56 <ehirdiphone> Heh
21:45:11 <ehirdiphone> No wait pow is subset
21:46:17 <ehirdiphone> pow S := sum T, forall U, (forall x, x in U -> x in S) -> U in T
21:48:56 <ehirdiphone> in : forall T, T -> * -> Prop
21:49:45 <ehirdiphone> in T x U := T === U
21:49:53 <oerjan> <lament> for a more comfortable tactile experience and better retention of fecal matter
21:49:56 <oerjan> ...right
21:50:07 <ehirdiphone> But that doesn't allow for subsets.
21:50:27 -!- dougx has quit (Ping timeout: 265 seconds).
21:54:31 <oerjan> 13:11:57 <ehirdiphone> Type theory has really boring cardinalities
21:54:32 <oerjan> 13:12:21 <ehirdiphone> 0 <= card <= \aleph_0
21:54:46 <oerjan> um i thought cantor's proof was constructively valid
21:54:53 <Ilari> Darn, netcat doesn't seem to support IPv6... :-/
21:55:05 <ehirdiphone> 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 <ehirdiphone> oerjan: Yeah but you cannot construct the reals
21:55:25 <Deewiant> Ilari: There's a netcat6
21:55:30 <ehirdiphone> Only the computable reals
21:55:42 <ehirdiphone> And they're just functions on rationals
21:55:57 <oerjan> ehirdiphone: but (Integer -> Bool) can have no bijection with Integer, or whatever
21:56:09 <ehirdiphone> Why not?
21:56:12 <ehirdiphone> A
21:56:35 <ehirdiphone> And all that means is that the comp reals have no cardinality as such
21:56:39 <oerjan> (terminating (Integer -> Bool), of course)
21:56:52 <ehirdiphone> Why not?
21:57:17 <oerjan> assume you have a bijection b : Integer -> (Integer -> Bool)
21:57:18 <ehirdiphone> It's just an infinite list of books
21:57:22 <ehirdiphone> Bools
21:57:57 <oerjan> then \n -> not (b n n) gives a contradiction
21:58:09 <ehirdiphone> I think fax said something about this it is only metatheoretivally valid
21:58:16 <ehirdiphone> Theoretically
21:58:33 <ehirdiphone> oerjan: hmm why?
21:58:50 <oerjan> 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 <ehirdiphone> she
21:59:05 <oerjan> but there can be no bijection _internal_ to the model
21:59:19 <oerjan> or surjection, for that matter
21:59:36 <ehirdiphone> anyway why is that a contradiction? Of course you have no idea what b does
22:00:09 <ehirdiphone> Mind I am really tired
22:00:21 <oerjan> well for b to be a surjection _means_ : forall f : Integer -> Bool, exists n : Integer such that b n == f
22:00:34 <ehirdiphone> Ofc
22:00:39 <ehirdiphone> And?
22:00:52 <oerjan> well let f = \n -> not (b n n)
22:01:04 <ehirdiphone> Ah
22:01:15 <ehirdiphone> Then?
22:01:35 <ehirdiphone> (f n) where b n = f?
22:01:46 <oerjan> yes
22:01:57 <ehirdiphone> Then it is _|_. I see.
22:02:10 <ehirdiphone> So the functions are strictly bigger.
22:02:24 <oerjan> yep
22:02:49 <ehirdiphone> So do we just have |R| or more?
22:03:18 <oerjan> well in ZFC they are of course equal, but here i don't know
22:03:30 <ehirdiphone> I guess R -> R must be bigger.
22:03:36 <ehirdiphone> But. Wait.
22:03:49 <ehirdiphone> oerjan: It cannot be |R| surely
22:03:58 <ehirdiphone> as we cannot constrict the reals
22:04:02 <ehirdiphone> Nstrict
22:04:04 <ehirdiphone> Construct
22:04:16 <oerjan> i assumed you meant something called the reals in your system
22:04:32 <ehirdiphone> I meant beth-one
22:04:38 -!- augur has quit (Read error: Connection reset by peer).
22:04:43 <oerjan> it is afaik _meaningless_ to compare cardinalities from ZFC with cardinalities in your system
22:05:00 <ehirdiphone> Probably.
22:05:01 <oerjan> they're not in the same fundamental theory model
22:05:10 -!- augur has joined.
22:05:15 <ehirdiphone> I wonder what the infinite cardinalities are?
22:05:38 <oerjan> 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 <oerjan> well cantor's theorem can be iterated of course, to get a sequence of larger sets
22:06:21 <ehirdiphone> Yes. But it needs the reals.
22:06:38 <ehirdiphone> The computable reals are definitely smaller than the reals
22:06:42 <oerjan> um i'm talking about something more fundamental than the reals
22:06:51 <ehirdiphone> because almost all reals are uncomputsnle
22:07:06 <ehirdiphone> oerjan: I'm not paying much attention :)
22:07:06 <oerjan> basically, A^B is _always_ larger than B if A has at least 2 elements
22:07:19 <ehirdiphone> B -> A yeah
22:07:38 <ehirdiphone> bool -> ()
22:07:41 <ehirdiphone> only one
22:07:54 <ehirdiphone> \b.tt
22:08:09 <ehirdiphone> Or A->B?
22:08:26 <ehirdiphone> oh wait
22:08:28 <oerjan> B -> A
22:08:32 <ehirdiphone> A needs two elements
22:08:46 <ehirdiphone> \().true, \().false
22:08:49 <ehirdiphone> not bigger
22:09:25 <oerjan> of course not. for infinite cardinalities in ZFC, A^2 always has the _same_ size as A
22:09:40 <ehirdiphone> "at least" two
22:09:46 <ehirdiphone> Not more :P
22:10:09 <ehirdiphone> |unit -> A| = |A|, surely.
22:10:10 <oerjan> erm i thought you were still confused about A -> B vs. B -> A
22:10:31 <ehirdiphone> Just use arrow notation to restate it :p
22:10:34 <oerjan> A^B is a notation for (B -> A)
22:10:47 <ehirdiphone> I'm confused though.
22:11:03 <ehirdiphone> Oh larger than B
22:11:06 <ehirdiphone> ic ic
22:11:16 <ehirdiphone> Cool.
22:11:26 <oerjan> it's intuitive based on cardinalities, |B -> A| = |A|^|B| in ZFC
22:11:53 <ehirdiphone> 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 <ehirdiphone> N mod m (Fin m), N, N -> Bool, (N -> Bool) -> Bool
22:12:46 -!- augur has joined.
22:12:55 <ehirdiphone> Except what would the last look like...
22:13:23 <oerjan> it presumably could only look at finitely many N for each function
22:13:36 <ehirdiphone> Induction?
22:13:48 <oerjan> oh maybe
22:14:13 <ehirdiphone> Admittedly that's propositions, not booleans, but...
22:14:23 <ehirdiphone> Easy enough to do afaict
22:14:37 <ehirdiphone> Just set P := (=== True)
22:14:55 <ehirdiphone> But you can't have Prop -> Bool
22:15:01 <ehirdiphone> So no not induction
22:15:36 <oerjan> oh
22:17:15 <oerjan> 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 <ehirdiphone> (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 <ehirdiphone> Excluded middle lol
22:18:11 <ehirdiphone> oerjan: Yeah
22:18:57 <ehirdiphone> that induction would work
22:19:21 <ehirdiphone> say B x := if x then Unit else Bottom
22:19:24 <ehirdiphone> then
22:19:41 <oerjan> food ->
22:21:11 <ehirdiphone> (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 <ehirdiphone> oerjan: So we can do induction
22:22:48 <ehirdiphone> 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 <Sgeo> 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 <AnMaster> http://tools.ietf.org/html/rfc5841
23:02:53 <oerjan> sorry, you're two minutes too late. i cannot _possibly_ read this now.
23:02:58 <AnMaster> (1 april RFC this year it seems)
23:03:06 <AnMaster> oerjan, two minutes two late?
23:03:07 <AnMaster> what?
23:03:12 <AnMaster> oerjan, also hi
23:03:45 <AnMaster> "Packets do not have birthdays, so packets can be marked as surprised when they encounter unexpected error conditions."
23:04:05 <oerjan> AnMaster: it's April 2 now
23:04:23 <AnMaster> oerjan, well sure, but RFC are published in US timezones
23:04:29 <AnMaster> oerjan, also it isn't April 2 in UTC
23:04:47 <AnMaster> in UTC you have two hours - 5 minutes left
23:04:50 <AnMaster> get going
23:05:16 <oerjan> 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 <AnMaster> no it wouldn't
23:19:58 <AnMaster> 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 <Gregor> Hahahah, Wikipedia's being clever by using misleading wording instead of outright lies :P
23:26:27 <Gregor> "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 <Gregor> (Sony investigating the PS3 date bug)
23:26:51 <Sgeo_> Gregor, Wikipedia always does that
23:27:01 <Gregor> Never looked before :P
23:27:22 <Sgeo_> Hulu has a 3d button
23:27:56 <Sgeo_> 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 <pikhq> :)
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 <pikhq> Mmm, BSV files.
00:20:41 -!- augur_ has joined.
00:21:18 -!- augur has quit (Read error: Connection reset by peer).
00:21:24 <mibygl> Now I'd like to generate a three-word Markov chain out of this.
00:23:36 <mibygl> I guess three words is too much to ask, so I'm generating a seven-character one instead.
00:24:04 <mibygl> Since the average word contains one and a third characters.
00:26:03 <lament> t a wo c o an a t ch.
00:27:13 <oerjan> ancient inca god of markov chains
00:32:22 -!- adam_d_ has quit (Ping timeout: 265 seconds).
00:37:19 <mibygl> "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 <mibygl> 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 <AnMaster> <Gregor> (Sony investigating the PS3 date bug) <-- link?
00:59:01 <AnMaster> oh
00:59:02 <AnMaster> front page?
00:59:08 * AnMaster looks there
00:59:16 <oerjan> that's some nice timing
01:03:59 <AnMaster> oerjan, ?
01:04:46 <oerjan> AnMaster: try reloading now
01:04:56 * oerjan whistles innocently
01:05:25 <AnMaster> oerjan, I got the old version still
01:05:28 <AnMaster> in another tab
01:05:35 <oerjan> good :D
01:23:34 <mibygl> Wow, it's surprisingly difficult to create a user from the command line in OS C.
01:23:55 <mibygl> I can't believe that in the 90 versions they've released since OS X, they still haven't fixed that.
01:26:05 <AnMaster> <mibygl> 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 <AnMaster> 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 <Sgeo_> Got a wireless mouse!
04:51:37 <Sgeo_> It's working
04:51:42 <Sgeo_> Feels a bit fast though
04:52:01 <Sgeo_> 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 <Sgeo_> No one minds if I mutter to myself in the channel, right?
06:57:33 <pikhq> Not generally.
06:58:27 <Sgeo_> 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 <Sgeo_> 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 <Sgeo_> Names do not have to be unique
07:00:46 <Sgeo_> 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 <Sgeo_> 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 <Sgeo_> However, names can be changed, and not just by sending and receiving signals
07:01:54 <Sgeo_> I have too much of a headache to think about all of this. I should really just sleep.
07:10:42 <Sgeo_> 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 <alise> 14:31:55 <Sgeo> This is the Epigram language?
10:14:09 <alise> no it's just me
10:14:26 <alise> 15:04:05 <oerjan> AnMaster: it's April 2 now
10:14:34 <alise> Then you are very late: 12 am is the end of the fools.
10:16:26 <alise> Mart
10:16:47 <alise> A dark delimitation.
10:21:36 <alise> so hey, |Sigma x:T, P| = sum x:T, P
10:21:52 <alise> this is i think one of my favourite isomorphisms ... |x op y| = |x| op |y|
10:22:09 <oklopol> what does it mean?
10:22:13 <oklopol> |.|
10:30:55 <alise> cardinality
10:30:56 <alise> although since we're talking type theory and have no |.| :: Type -> Cardinality
10:30:56 <alise> it's actually more involved
10:30:56 <alise> like |a+b|=|a|+|b| is actually
10:30:56 <alise> hc(a,n) -> hc(b,m) -> hc(a+b, n+m)
10:30:56 <alise> where hc = "has cardinality"
10:30:57 <alise> for instance the statement about sigma would require some sort of function
10:31:11 <alise> ((y:T) -> hc(P[x := y], something))
10:31:22 <alise> where x[y:=z] is variable substitution
10:31:30 <alise> as an assumption
10:34:36 <alise> oklopol: but err you know the type theory notation in general right?
10:34:42 <alise> like a+b is Either a b
10:34:47 <oklopol> no not really
10:34:49 <oklopol> ah okay
10:34:51 <oklopol> yeah i know that
10:34:57 <alise> a*b is -- cartesian product here -- a pair of a and b (cardinality |a|*|b|)
10:35:26 <alise> (non-dependent) a -> b has cardinality |b|^|a|, but using b^a for that like in set theory is ugly
10:35:32 <alise> because, you know, we like our functions
10:35:40 <alise> and having it all in hugely nested superscripts would be silly
10:36:25 <oklopol> sure
10:36:26 <alise> i wonder what the cardinality of Pi (x:T). S is...
10:36:57 <oklopol> where T and S are types?
10:36:57 <alise> product (x:T), |S|? if so that would be so perfect
10:37:00 <alise> yeah
10:37:07 <alise> well let's see
10:37:11 <alise> say cardinality of 3 -> 3
10:37:17 <alise> (a, b, c : 3)
10:37:26 <alise> |3| = 3, obviously
10:37:33 <alise> so it's 3 * 3 * 3
10:37:35 <alise> = 3^3
10:37:38 <alise> yay
10:37:39 <alise> it's right
10:38:07 <oklopol> Pi (x:T). S is basically a definition of TxS where i live
10:38:19 <oklopol> normal math that is
10:38:21 <oklopol> :P
10:39:03 <oklopol> no wait
10:39:34 <alise> oklopol: yeah but S can include x
10:40:05 <alise> refl : Pi (T : *). Pi (x : T). x = x
10:40:31 <alise> * is type of types smaller than *... I don't want to think about its cardinality right now
10:40:53 <alise> but for a given type T, Pi (x : T). x = x has the cardinality of T...
10:40:55 <alise> but you could have more complex things
10:40:55 <alise> consider
10:41:10 <alise> Pi (x : N). Pi (y : N). x = y -> ()
10:41:13 <alise> remember -> is shorthand for Pi so
10:41:20 <alise> Pi (x : N). Pi (y : N). Pi (_ : x = y). ()
10:41:33 <alise> now of course this is the same as Pi (x : N). ()
10:41:34 <oklopol> and to continue my sentence ...it's S^T
10:41:48 <alise> so it certainly isn't the obvious thing
10:42:02 <alise> also () = 1...
10:42:06 <alise> well not the number
10:42:06 <alise> but we call it 1
10:42:10 <alise> because it has one value
10:43:59 <alise> \prod_{E:n=m} -- there's only ever 1 or 0 values of type n=m
10:44:53 <oklopol> Pi (x : T). x = x <<< what does this mean, the type of functions that ...?
10:45:11 <oklopol> sorry about the asynchronicity, i'm doing two things at once and i suck at it.
10:45:51 <alise> Pi (x:T).S is like T->S, but the value of the T is bound to x in S
10:46:08 <alise> its cardinality is product (x:T). S which is fitting because the tw are the same notation
10:46:12 <alise> which is just this isomorphism again
10:47:00 <oklopol> so in Pi (x : T). x = x what does = x mean
10:47:42 <alise> oh
10:47:44 <oklopol> obviously the cardinality of Pi (x : T). x is 1
10:47:47 <alise> x = x is just nice notation for Eq x x
10:47:52 <oklopol> hmm
10:47:58 <oklopol> which is?
10:48:00 <alise> for all values x and y of the same type Eq x y is a type
10:48:10 <alise> and there is
10:48:11 <alise> refl : x -> x = x
10:48:16 <alise> (it has a more complicated type but ... that is the relevant parts)
10:48:19 <alise> (the rest is just type stuff)
10:48:32 <alise> so if we have a value of type x = y, we know that x and y are completely indistinguishable...
10:48:37 <alise> it's just equality
10:49:01 <alise> so we have m,n : N, and we know that m = n
10:49:03 <alise> so the two must be exactly the same
10:49:10 <alise> so we have \x. f x x refl
10:49:18 <alise> which is exactly the same as f, just with less stupid arguments
10:49:23 <alise> http://1.618034.com/blog_data/math/formula.3405.png
10:49:54 <alise> so the cardinality of functions (n:N) -> (m:N) -> n = m -> ()
10:49:59 <alise> is the same as the cardinality of the naturals
10:50:18 <alise> because the only function of type N -> () is \_.()
10:50:24 <alise> well
10:50:27 <alise> not quite
10:50:28 <oklopol> Pi n : N . 1 has cardinality |N|?
10:50:31 <alise> er wait
10:50:35 <alise> the last bit is wrong
10:50:47 <alise> sec
10:50:52 <alise> http://1.618034.com/blog_data/math/formula.3406.png
10:50:53 <alise> obviously
10:50:59 <alise> because 1*1*1*1*... = 1
10:51:16 <alise> note the bold 1 in the |...| denotes the type with one value, tt : 1
10:51:23 <alise> the non-bold 1s are just the regular number 1
10:51:36 <alise> also the product in the |...| denotes dependent functions...
10:51:43 <alise> whereas after it's normal numbery products
10:52:07 <oklopol> so say n : N, then Eq n n is a type? what values are of that type?
10:53:05 <alise> let me just give you the definition in pseudohaskell
10:53:28 <alise> data Eq : forall a, a -> a -> Type where
10:53:37 <alise> refl :: a -> Eq a a
10:53:39 <alise> erm
10:53:45 <alise> refl :: (x:a) -> Eq x x
10:54:29 <alise> http://1.618034.com/blog_data/math/formula.3407.png
10:54:33 <alise> generalised for non-1 result types
10:54:48 <oklopol> 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 <alise> note that if T = Bool, |T| = 2, so we have 2^N_0, which is the cardinality of the reals...
10:54:57 <oklopol> *knew
10:55:00 <alise> actually they're the computable reals for us, but
10:55:03 <oklopol> *Eq x x
10:55:11 <alise> no, you are wrong
10:55:17 <alise> if x is of type a, and y is of type a, then Eq x y is a type
10:55:31 <alise> when I restate things it's because you said something that was wrong
10:55:42 <oklopol> x:a -> Eq x x is a type is just a special case of that
10:55:47 <alise> nope
10:55:49 <alise> that isn't even true
10:55:53 <alise> that isn't even remotely correct
10:55:56 <alise> Eq :: (A : Type) -> A -> A -> Type
10:56:05 <alise> refl :: (A : Type) -> (x : A) -> Eq x x
10:56:11 <alise> one is a type one is a value
10:56:15 <oklopol> "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 <alise> and Eq x y is a type for ALL x and y
10:56:24 <alise> oklopol: but it's IMPORTANT
10:56:29 <alise> because if they had to be the same it would be a useless type
10:56:31 <oklopol> 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 <oklopol> IT'S A FUCKING USELESS TYPE ANYWAY BECAUSE YOU HAVEN'T TOLD ME WHAT IT CAN CONTAIN
10:56:51 <oklopol> god you suck at explaining things
10:56:53 <alise> <alise> refl :: (A : Type) -> (x : A) -> Eq x x
10:56:56 <alise> I have; several billion times.
10:57:08 <oklopol> i'll ask fax at some point
10:57:17 <alise> 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 <alise> refl does not return a type.
10:57:26 <oklopol> oh refl is a value :P
10:57:26 <alise> It returns a value of type Eq x x.
10:57:34 <alise> So is Eq, actually, because types are values. But.
10:57:35 <oklopol> okay thanks
10:57:58 <alise> So we have Eq x y, but only Eq x x is inhabited.
10:57:58 <oklopol> yeah okay i see it now
10:58:05 <alise> All the rest are uninhabited, so we can't prove (give a value) them.
11:03:31 <oklopol> yeah okay i see what Eq is now, the haskell does indeed explain it completely
11:04:26 -!- tombom has joined.
11:05:32 <oklopol> so Eq x y is inhabited by ":)" if x = y, otherwise there's no value of that type
11:06:02 <alise> pretty much yep
11:06:05 <alise> except it's refl not :)
11:06:15 <alise> 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 <AnMaster> <alise> 15:04:05 <oerjan> AnMaster: it's April 2 now
11:35:26 <AnMaster> <alise> Then you are very late: 12 am is the end of the fools. <-- ?
11:35:33 <AnMaster> is that UK tradition?
11:35:34 <alise> What?
11:35:42 <alise> Oh; perhaps it is only UK tradition.
11:35:51 <alise> It certainly is but I assumed it was so elsewhere too.
11:35:55 <AnMaster> I never heard of it before at least.
11:36:06 <alise> Well, it has fallen out of favour in this interblaggy world.
11:36:15 <AnMaster> I thought it went on for the whole day
11:36:28 <AnMaster> alise, oh?
11:37:19 <alise> 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 <AnMaster> 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 <alise> 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 <AnMaster> alise, XD
14:51:32 <AnMaster> 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 <AnMaster> "
14:51:41 <alise> Biggybacked!
14:52:03 <AnMaster> alise, grandma, what a big back you have!
14:52:23 <alise> ALL THE BETTER TO LAY YOU WITH
14:52:24 <alise> Get it?
14:52:26 <alise> Lie on your back?
14:52:27 <alise> Lay?
14:52:28 <alise> It's hilarious?
14:52:29 <AnMaster> augh
14:52:41 <AnMaster> alise, oh it wasn't innuendo?
14:52:42 <alise> I had no idea I was so awesome
14:52:46 <alise> AnMaster: Of course it was!
14:53:09 <AnMaster> as I thought to begin with then
14:57:02 <AnMaster> 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 <AnMaster> 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 <AnMaster> (either that, or Japanese sounding names with an email @intel.com, that is fairly too)
14:58:12 <AnMaster> fairly common*
14:59:39 <alise> Yeah; Standard Japanese Programmer English is a strange breed.
15:00:02 <AnMaster> I wonder why, hm
15:00:30 <alise> Japanese is very different from English.
15:00:40 <alise> And Engrish is ubiquitous in Japanese culture.
15:00:55 <AnMaster> hm
15:01:18 <AnMaster> what about Hollywood movies and such on TV?
15:02:44 <AnMaster> or do they dubb those?
15:02:55 <alise> Presumably.
15:03:00 <alise> They do everywhere else :-)
15:03:05 <AnMaster> not here
15:03:12 <AnMaster> generally they just add text lines at the bottom
15:03:15 <alise> Also I'd say that Japan imports less culture from other countries.
15:03:20 <alise> Probably because we're too busy importing all theirs.
15:04:56 <AnMaster> 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 <AnMaster> In Sweden only movies aimed at children are generally dubbed.
15:05:52 <alise> I suppose you strongly push English there.
15:06:02 <alise> Less so in Germany I would imagine.
15:06:08 <alise> Because people actually speak German ;-)
15:06:22 <alise> Anyway, shoulda pirated it!
15:06:29 <AnMaster> we do generally speak Swedish though :P
15:06:38 <AnMaster> alise, this was during the early 1990s iirc
15:06:45 <AnMaster> so well, that would have been fun
15:06:52 <alise> Hells yeah, ZMODEM!
15:07:31 <alise> "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 <AnMaster> har
15:07:32 <alise> 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 <AnMaster> AC is not alternating current here right?
15:08:23 <Deewiant> Axiom of choice
15:09:03 <AnMaster> 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 <alise> I am pretty sure that is trivially contradictory.
15:13:12 <alise> After all, they were proven to be equivalent.
15:13:21 <alise> So the rejection would be "LOL you made mistake"
15:13:29 <alise> Not "Nice paper, boy. It's shit."
15:17:20 <alise> 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 <AnMaster> alise, I think "LOL you made mistake" would be "somewhat" anachronistic in this case
15:19:07 <alise> STFU Cantor --Wittgenstein
15:19:15 <AnMaster> hah
15:19:33 <alise> Hilbert, you're a fag. Please commit program-suicide. --Godel
15:19:47 <AnMaster> meh
15:20:06 <AnMaster> alise, Pretty sure it was "Gödel"?
15:20:15 <alise> Lazy.
15:20:23 <AnMaster> and that should be transcribed as "Goedel" in English then, shouldn't it?
15:20:50 <alise> Yeah but nobody does.
15:20:57 <alise> lol - "Axiom of Life" = "~choice"
15:21:11 -!- Sgeo has quit (Ping timeout: 258 seconds).
15:21:15 <AnMaster> alise, that's what Hamlet said!
15:21:17 <alise> http://www.facebook.com/group.php?v=wall&gid=2243319629 group of idiots
15:21:49 <alise> well we know that 2b = 2*b
15:21:52 <alise> and as far as types go
15:21:53 <alise> 2 = bool
15:21:55 <Sgeo_> ?
15:21:56 <alise> and a*b = (a,b)
15:21:56 <alise> so
15:22:02 <AnMaster> eh?
15:22:05 <alise> (Bool,b) \/ ~(Bool,b)
15:22:12 <alise> if we interpret ~ as implication of falsehood
15:22:18 <alise> (Bool,b) \/ ((Bool,b) -> False)
15:22:34 <alise> so either you can construct a value of type (Bool,b) or you cannot
15:22:40 <AnMaster> what sort of strange syntax for "and" is (a,b)?
15:22:46 <alise> It's not and.
15:22:53 <AnMaster> oh multiplication then?
15:22:54 <alise> a*b = (a,b) in type theory
15:22:57 <AnMaster> hm
15:22:59 <alise> tuple
15:23:01 <AnMaster> right
15:23:02 <alise> because
15:23:08 <AnMaster> alise, * is somewhat overloaded :P
15:23:12 <alise> |a*b| = |a|*|b|
15:23:17 <alise> and also cartesian product
15:23:37 <AnMaster> alise, is that * = multiplication for the last one?
15:23:39 <alise> plus it meshes well with disjoint union - a+b - |a+b| = |a|+|b|
15:23:42 <alise> yes
15:23:48 <alise> if we do dependent tuples then we have
15:23:58 <AnMaster> wait, does that hold true for C? It doesn't, does it?
15:23:59 <alise> |sum x:T, P| = sum x:t, |P|
15:24:02 <alise> where P involves x
15:24:07 <alise> AnMaster: || is cardinality
15:24:08 <alise> not absolute
15:24:24 <alise> |sum x:T, P| = sum x:t, |P| --- if P is constant, i.e. doesn't involve x
15:24:26 <AnMaster> alise, in "<alise> |a*b| = |a|*|b|" ?
15:24:28 <alise> then this is just |T|*|P|
15:24:29 <alise> AnMaster: yes
15:24:43 <alise> so normal tuples are the degenerate case of dependent tuples
15:24:48 <alise> dependent function arrows:
15:24:48 <AnMaster> well the result is the same for abs() for R though
15:24:59 <alise> ???
15:25:00 <alise> cardinality
15:25:02 <alise> is about sets
15:25:04 <alise> not absolute
15:25:04 <AnMaster> well yes
15:25:08 <alise> |prod x:T, S| = prod x:T, |S|
15:25:15 <alise> if we assume that S doesn't involve x
15:25:17 <alise> then we get
15:25:18 <AnMaster> but the overloaded syntax gets confusing
15:25:22 <alise> |S|*|S|*...|T| times...
15:25:28 <alise> so |S|^|T|
15:25:37 <alise> we actually say the function arrow is S^T in set theory...
15:25:47 <alise> if we assume it involves x of course both of these are more complicated
15:25:54 <AnMaster> where ^ is?
15:25:55 <alise> but it's cool
15:25:59 <alise> AnMaster: exponentiation, obviously
15:26:24 <AnMaster> alise, not that obvious since most of the other syntax wasn't :P
15:26:38 <alise> well it is not my fault you don't know type theory :)
15:26:53 <alise> but sum/product types ar enamed that way because they're basically identical
15:26:55 <alise> *are named
15:27:07 <alise> they're how you['d define addition/multiplication on things like sets if you had to
15:27:12 <AnMaster> alise, It is just that I get confused when the line is possible to interpret sensibly as more than one thing
15:27:16 <alise> addition is obviously union - you add all the elements together
15:27:28 <alise> AnMaster: learn to disambiguate based on context
15:28:24 <AnMaster> alise, well, then ^ could have been XOR as well, not that likely but...
15:29:02 <alise> Incredibly unlikely - because |S|*|S|*...|T| times is obviously |S|^|T|.
15:29:11 <AnMaster> true
15:41:04 -!- Sgeo_ has changed nick to Sgeo.
15:45:52 -!- lereah_ has quit (Quit: Leaving).
15:55:35 <alise> I wish oerjan was here
15:58:49 <Sgeo> He was
15:58:53 <Sgeo> Don't know when
16:02:27 <alise> I mean now
16:05:33 * alise proves False from
16:05:35 <alise> Axiom func : nat -> (nat -> bool).
16:05:36 <alise> Axiom surj : forall f, exists n, forall x, func n x = f x.
16:05:39 <alise> oerjan was right, obviously
16:05:44 <alise> just felt like formalising it...
16:06:47 <Sgeo> I take it to mean that that either at least one of those axioms is self-contradictory, or they contradict eachother
16:07:11 <Sgeo> Wait, surj uses func
16:08:45 -!- MigoMipo has joined.
16:08:58 <alise> Sgeo: it's basically just one axiom
16:09:00 <alise> basically
16:09:11 <alise> if we have a surjective mapping from naturals to functions from naturals to booleans, we're fucked
16:09:12 <alise> restated:
16:09:20 <alise> there are more functions from naturals to booleans than there are naturals
16:09:59 <alise> Informal proof, due to oerjan: Say the mapping is called magic. Consider f n := not (magic n n).
16:10:10 <alise> This is a function nat -> bool.
16:10:21 <alise> 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 <alise> Sgeo: simply the above
16:10:37 <alise> Call f's magic number fn.
16:10:43 <alise> Now consider (f fn).
16:10:47 <alise> = not (magic fn fn)
16:10:50 <alise> magic fn = f, so this is
16:10:54 <alise> = not (f fn)
16:10:59 <alise> So, f fn = not (f fn).
16:11:03 <alise> Contradiction. Q.E.D.
16:11:55 <alise> 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 <alise> otherwise our nat -> (nat->bool) mapping could just be
16:12:11 <alise> \n.\m.true
16:12:56 <alise> Sgeo: incidentally the axiom of choice is about surjective functions
16:13:18 <alise> it states that every surjective function has a right inverse
16:13:23 <alise> or rather is equivalent to such
16:13:27 <Sgeo> "right" inverse?
16:13:58 <alise> 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 <alise> 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 <Sgeo> Is this Coq?
16:16:06 <alise> I had to define not myself - it seems Coq doesn't have it for booleans.
16:16:06 <alise> Yes.
16:16:31 <alise> Then the proof just went by picking out what surj says about our f - that func n x = f x
16:16:46 <alise> then expanding this to not x = x
16:16:50 <alise> tada
16:17:08 <alise> here's the steps as it goes:
16:17:11 <alise> after the destruction:
16:17:13 <alise> x : nat
16:17:14 <alise> H : forall x0 : nat, func x x0 = notb (func x0 x0)
16:17:14 <alise> ============================
16:17:14 <alise> False
16:17:20 <alise> after the notdistinct:
16:17:22 <alise> x : nat
16:17:22 <alise> H : forall x0 : nat, func x x0 = notb (func x0 x0)
16:17:23 <alise> ============================
16:17:23 <alise> func x x = notb (func x x)
16:17:27 <alise> then I just apply H and tada
16:17:35 * Sgeo needs to learn Coq before attempting to understand this
16:17:41 <alise> (we apply notdistinct because (b <> notb b) is shorthand for (b = notb b) -> False)
16:17:51 <alise> (so if we apply it, Coq realises we need to prove (b = notb b) to achieve our goal of False).
16:18:02 <alise> (which we can do: because surj tells us it is so)
16:18:25 <alise> Sgeo: This also suffices as a proof that the reals are more numerous than the naturals, btw.
16:18:52 <alise> 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 <alise> (nat -> bool) - f n is the bit at position n
16:19:03 <Sgeo> Reals can be treated as functions from .. ah
16:19:08 <alise> so (nat -> bool) ~~ real
16:19:17 -!- jcp has joined.
16:19:24 <alise> 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 <alise> erm
16:19:28 <alise> 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 <alise> *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 <alise> Agda is crazy
17:14:31 <alise> /home/ehird/code/univ.agda:16,8-11
17:14:32 <alise> □∏_ is not strictly positive, because it occurs in the 5th clause
17:14:33 <alise> in the definition of □_, which occurs in the first argument to □∏_
17:14:33 <alise> in the 5th clause in the definition of □_, which occurs to the left
17:14:33 <alise> of an arrow in the type of the constructor all in the definition of
17:14:33 <alise> □∏_.
17:14:38 <alise> AnMaster: You'd like Agda; it has nice error messages!
17:14:45 <alise> Now to figure out what that perfectly well-formed English is trying to tell me.
17:21:22 <pikhq> Hail, alise.
17:21:32 <alise> Ho.
17:21:43 <alise> You have me on Monday, too - such a special week's end this is.
17:22:24 <pikhq> Whoo.
17:27:50 <alise> I was here yesterday, too: but I was too tired to come here.
17:27:54 <alise> I was on my iPhone here, though.
17:27:57 <alise> So, yeah.
17:36:02 -!- adam_d has quit (Ping timeout: 265 seconds).
17:49:32 -!- ais523 has joined.
17:51:22 <AnMaster> alise, "□" is a square box?
17:51:27 <alise> yes.
17:51:29 <alise> hi alise
17:51:33 <AnMaster> right, not font issues then
17:51:35 <AnMaster> alise, XD
17:51:37 <AnMaster> hello ais523
17:51:42 <alise> AnMaster: it's the magical box of interpretation (I probably should have used brackets)
17:51:46 <alise> err lol hi alise
17:51:56 <ais523> hi
17:51:58 <pikhq> ... Man. Microsoft *still* gets buffer overflows.
17:52:13 <ais523> pikhq: I'm not surprised, that's inherent in C
17:52:20 <ais523> that it's hard to check for them
17:52:28 <pikhq> ais523: Not really. It's inherent in bad programmers for C.
17:52:30 <ais523> in theory, Splint can statically prove a program has no buffer overflows, but it's not very good at it
17:52:33 <AnMaster> ais523, you can avoid such data structures when possible
17:52:55 <AnMaster> of course for a binary stream there isn't any good alternative
17:53:03 <pikhq> 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 <AnMaster> (and C doesn't really help with providing other good data structures)
17:54:12 <AnMaster> anyway, why this? Has there been a new windows exploit recently or what?
17:54:29 <pikhq> Nah, reading about how they've started doing... Fuzz testing.
17:55:27 <pikhq> And seeing bunches of buffer overflows in office.
17:56:05 <ais523> pikhq: in binary formats, or XML formats?
17:56:32 <pikhq> As it's the latest version of Office, I'm going to guess "both".
17:57:11 <ais523> buffer overflows in XML is just embarrassing
17:57:14 <AnMaster> 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 <pikhq> AnMaster: What's surprising is that they only started doing it.
17:58:07 <AnMaster> 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 <ais523> hmm, I wasn't online yesterday
17:59:02 <ais523> any good April Fool's stuff I should look at?
17:59:34 <Sgeo> Two in Agora
17:59:34 <AnMaster> ais523, google used microweeks amongst other things to measure how long searches took
17:59:56 <Sgeo> One good, the other mine
18:00:13 <alise> pikhq: Programming in C is nearly impossible for a human!
18:00:18 <AnMaster> ais523, gigawatts, parsecs, "shakes of a lamb's tail" and Planck times were used too
18:00:22 <ais523> hmm, ok
18:00:27 <ais523> seems surprisingly uncreative for Google
18:00:30 <AnMaster> ais523, oh and the RFC was quite funny too
18:00:33 <AnMaster> ais523, they did other ones too
18:00:40 <Sgeo> ais523, you mean Topeka, right?
18:00:44 <ais523> what was the RFC this time?
18:00:58 <AnMaster> ais523, maps.google.com.au, did directions in Australian slang
18:01:05 <pikhq> alise: I can do it. For many cases not involving stack munging.
18:01:05 <AnMaster> s/u,/u/
18:01:11 <pikhq> (getcontext et al scares me)
18:01:16 <alise> pikhq: Yeah, with what error rate?
18:01:24 <Sgeo> Google was renamed to Topeka
18:01:26 <AnMaster> ais523, oh and the Topeka stuff too yeah
18:01:38 <Sgeo> YouTube videos had a TEXTp option
18:01:42 <AnMaster> oh yeah that
18:01:49 <Sgeo> [not Google] Reddit made everyone an admin
18:01:50 <ais523> Sgeo: ASCII art?
18:01:53 <AnMaster> Sgeo, never got that working, was it flash only?
18:01:55 <Sgeo> Fark headlines were acrostics
18:01:59 <Sgeo> AnMaster, I.. guess
18:02:01 <ais523> also, that reddit thing sounds like utter chaos
18:02:03 <Deewiant> Topeka? Missed that
18:02:09 <AnMaster> Sgeo, as in, couldn't get the html5 stuff to work for it.
18:02:22 <Sgeo> AnMaster, I imagine it might be Flash only
18:02:23 <pikhq> alise: Lower than you'd expect, actually.
18:02:32 <alise> pikhq: I doubt that highly :)
18:02:39 <pikhq> When using getcontext, nearly 100%. :P
18:02:39 <Deewiant> ais523: I think the admin-mode changes were local-only
18:02:58 <Sgeo> The admin stuff including infinite upvotes/downvotes
18:03:01 <pikhq> (which leads me to suspect that I should never, ever touch that.)
18:03:09 <AnMaster> ais523, the RFC was about a tcp option to mark packet mood
18:03:21 <ais523> hmm, as in you could perform admin actions but reddit faked the result rather than actually doing it?
18:03:30 <AnMaster> ais523, mood would be encoded as a string of ASCII chars making up a smiley
18:03:35 <Sgeo> ais523, and stored the result per user, I think
18:03:44 <AnMaster> (don't remember if IANA were supposed to assign them or not)
18:03:48 <ais523> AnMaster: ah, OK
18:03:55 <Sgeo> [unless you changed your own headline, I think]
18:03:56 <Deewiant> 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 <ais523> and putting unreasonable registration requests onto IANA is standard with April Fools' RFCs, IIRC
18:04:10 <AnMaster> ais523, anyway: http://tools.ietf.org/html/rfc5841
18:04:19 <AnMaster> Deewiant, hm
18:04:36 <alise> ais523: haha, that's great
18:04:39 <Sgeo> ais523, check Agora?
18:04:44 <ais523> Sgeo: I am
18:05:09 -!- adam_d has joined.
18:05:13 <ais523> Sgeo: the first one where you submitted half the proposal is much funnier, given what happened to Nomicapolis
18:05:35 <AnMaster> <alise> pikhq: Programming in C is nearly impossible for a human! <-- hm. That raises some interesting questions about Kernighan and Ritchie....
18:05:41 <Sgeo> What happened to Nomicapolis?
18:06:30 <ais523> Sgeo: there was an attempt to copy B's ruleset to it, but accidentally only the first half was copied
18:06:38 <AnMaster> ais523, what did reddit do?
18:06:39 <ais523> and the resulting ruleset didn't allow rule changes
18:06:44 <alise> AnMaster: They can't manage it either, they just only publish their successes
18:06:52 <AnMaster> alise, hm...
18:06:55 <ais523> AnMaster: see above, it's me who was asking rather than answering
18:07:09 <Sgeo> ais523, o.O
18:07:11 <alise> In fact almost all existing programming languages are completely infeasible for programming which is why we have so many bugs.
18:07:19 <Sgeo> That does make the accidental post funny
18:07:24 <AnMaster> 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 <alise> 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 <ais523> AnMaster: they made everyone an admin
18:07:40 <ais523> or at least, to think they were, according to what I was told earlier in this channel
18:07:45 <AnMaster> ah
18:07:48 <ais523> this is all second-hand info, though, and the people who actually told me are still here
18:07:53 <ais523> which is why I'm confused as to why you're asking me
18:07:55 <AnMaster> right
18:07:55 <pikhq> alise: ButbutPOINTERS ARE MORE EFFICIENT
18:08:02 <pikhq> :P
18:08:05 <Sgeo> There was a "turn admin on" link for logged in users
18:08:20 <Sgeo> It made an [A] thingy appear next to other user's name
18:08:30 <Sgeo> Which gave options like ban, x-ban
18:08:33 <alise> AGDA I AM CONFUSED
18:08:51 <Sgeo> It randomly did things like 16.14% shill account
18:08:59 <Sgeo> Let you "edit" headlines
18:09:30 <Sgeo> 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 <Sgeo> Similar in the other direction
18:09:56 <Sgeo> I might be forgetting some stuff
18:10:15 <ais523> 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 <ais523> for purporting to do exactly what I want, and failing at it
18:10:49 <alise> Repeated variables in left hand side: n
18:10:52 <alise> I know Agda, god damn!
18:11:01 <AnMaster> 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 <Sgeo> Watching Ark of Truth now
18:11:56 <alise> How the hell do you do dependent pattern matching in this thing?
18:12:06 <alise> head (witness (S n) f) (successor n) = ?
18:12:09 <alise> complains about repeated ns
18:12:17 <AnMaster> 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 <ais523> AnMaster: even without parse errors, some of its decisions are just bizzare
18:12:43 <alise> sjgdflkgjdfhdklgfhg
18:12:54 <AnMaster> 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 <ais523> 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 <AnMaster> ais523, huh?
18:13:33 <Deewiant> ais523: Well, lint-type things tend to be about style as much as semantics
18:13:38 <AnMaster> ais523, what is it that it warns about then?
18:13:45 <ais523> AnMaster: my guess is, it's just wrong
18:13:57 <ais523> I can't see any explanations for that behaviour other than a bug in Splint
18:14:04 <AnMaster> ais523, if it is just about indention style or something like that, it seems reasonable
18:14:14 <AnMaster> and yes, splint is buggy and unmaintained
18:14:34 <ais523> AnMaster: no, it was about memory leaks
18:15:22 <Deewiant> Well that's a bit messed up, isn't it :-P
18:16:02 <ais523> yes
18:16:29 <AnMaster> 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 <AnMaster> Not as in coredump, but as in assert(0 && "Message that only makes sense to a LLVM developer").
18:17:08 <AnMaster> (they seem to love assert(0 && "string") btw)
18:17:23 <Deewiant> Would you prefer assert(!"string")? :-P
18:17:56 <AnMaster> heh
18:18:10 <AnMaster> Deewiant, I would prefer never seeing either when running the program :P
18:18:16 <alise> I HAAAAAAAAAAAATE THIS
18:18:18 <Deewiant> Well yeah
18:18:24 <Deewiant> But you can't have everything :-P
18:18:50 <alise> THIS DOESN'T WORK
18:20:07 <AnMaster> 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 <AnMaster> 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 <AnMaster> alise, define "THIS"
18:21:22 <AnMaster> Deewiant, why not btw?
18:21:35 <alise> AnMaster: stuff
18:21:50 <AnMaster> alise, ah.
18:22:05 <Deewiant> AnMaster: Dunno
18:22:16 <AnMaster> alise, very precise description that
18:23:06 <AnMaster> Deewiant, so you stated that I can't have everything without having any good explanation for why that is the case?
18:23:50 <Deewiant> It seems to be the way the world works
18:23:58 <AnMaster> ah
18:24:02 <Deewiant> I can't justify why the world works that way
18:24:07 <AnMaster> right
18:24:39 <AnMaster> hm I first considered asking "why not" to that as well, but that would have been silly
18:28:25 <ais523> 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 <pikhq> Hmm.
18:32:34 <ais523> Alex Brown deciding that OOXML is doomed to failure seems to be not an april fool's joke, though
18:32:55 <ais523> and that's the same sort of event as Miguel de Icaza noticing that Mono has an unclear patent situation
18:36:20 <Sgeo> "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 <ais523> what does that do?
19:06:12 <Sgeo> Deferrs the IO operation until the value it gives is needed
19:06:20 <Sgeo> Haven't actually tried it yet
19:06:45 <AnMaster> 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 <AnMaster> that's weird
19:07:05 <ais523> Sgeo: haha
19:07:10 <ais523> so presumably it only works on input?
19:07:43 <AnMaster> 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 <Sgeo> 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 <Sgeo> That's what I'm testing
19:07:59 <ais523> Sgeo: ah
19:08:12 <Sgeo> I'll paste the results
19:08:26 <AnMaster> ais523, I assume you will be able to explain this
19:08:38 <Ilari> AnMaster: Your hand scatters/reflects more of the signal?
19:08:47 <ais523> AnMaster: probably you're reflecting the signal
19:08:57 <ais523> human skin is pretty reflective wrt microwaves
19:09:06 <AnMaster> ais523, it doesn't work unless I actually touch the plastic on the lid though
19:09:41 <Ilari> -90dBm is 1pW and -79 dBm is ~12.6pW... So about tenfold difference...
19:10:01 <AnMaster> if I hold my hand slightly away (a few mm I guess, hard to measure), I get the bad signal
19:10:26 <AnMaster> hm
19:11:35 <AnMaster> Ilari, is that p as in pico?
19:11:46 <AnMaster> oh btw, what does the m stand for in dBm?
19:12:13 <fizzie> The "m" there denotes the reference power is 1 mW.
19:12:16 <Ilari> AnMaster: dB relative to mW. That p was supposed to be multiplier for 10^-12...
19:12:35 <ais523> Ilari: why convert? 10 dBm is a tenfold difference
19:12:39 <ais523> you don't need to convert back into watts
19:13:39 <AnMaster> fizzie, reference as in?
19:13:48 <Ilari> AnMaster: 0dBm => 1mW
19:13:50 <AnMaster> ah
19:14:08 <Sgeo> ais523, http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24603#a24603
19:14:20 <AnMaster> hm, wlan signals are _extremely_ weak then...
19:14:30 <fizzie> AnMaster: Yes, dB is a dimensionless unit; -90 dB could be anything, as long as it is 10^-9 of something.
19:14:41 <Ilari> 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 <ais523> Sgeo: ah, it didn't work?
19:14:56 <Sgeo> ais523, it worked perfectly!
19:14:57 <Sgeo> Look at it
19:15:10 <Sgeo> It only did the interleaved one when it was needed
19:15:18 <ais523> oh, I didn't notice the first wasn't interleaved
19:15:45 <fizzie> 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 <AnMaster> fizzie, isn't dB basically "the range we want is awkwardly large, lets use something logarithmic"? ;P
19:16:16 <Sgeo> alise, I'm in love with unsafeInterleaveIO
19:16:53 <alise> Sgeo: it is as unsafe as the name suggests.
19:17:01 <Sgeo> Howso?
19:17:06 <AnMaster> fizzie, for ratios that is
19:17:14 <alise> Sgeo: it breaks Haskell's purity
19:17:22 <pikhq> It is somewhat less unsafe than unsafePerformIO, but still unsafe.
19:17:26 <AnMaster> though I wrote that above... seems I only thought it
19:17:28 <alise> Shun it.
19:17:35 <alise> getContents is acceptable in small utilities but not large programs.
19:17:52 <Sgeo> Why?
19:17:53 <pikhq> Sgeo: It means that you can suddenly have errors occuring in any function.
19:17:58 <ais523> presumably, because if you use it twice it might only run once
19:18:01 <AnMaster> what does the "interleave" in it signify?
19:18:02 <alise> Sgeo: Because it breaks Haskell's purity.
19:18:09 <alise> Why not just use unsafePerformIO if you don't care about that?
19:18:14 <Sgeo> I meant, how does it break Haskell's purity?
19:18:16 <ais523> oh, that's unsafePerformIO
19:18:17 <alise> AnMaster: basically it splits off a lazy thread of IO
19:18:17 <pikhq> AnMaster: Side effects are interleaved with pure code.
19:18:29 <alise> so unsafeInterleaveIO (... read a file byte by byte)
19:18:30 <AnMaster> alise, ah
19:18:32 <alise> produces a lazy string of the whole file
19:18:33 <Ilari> Satellite signals are usually extremely weak. That's why one usually sees modulations that have low SNR requirement (like QPSK).
19:18:36 <alise> only read as required by evaluation
19:19:02 <alise> consider an unsafePerformIO call that does output
19:19:02 <alise> then random pure code could cause unpredictable output
19:19:06 <alise> depending on the evaluation semantics of the implementation
19:19:09 <alise> all haskell specifies is non-strict
19:19:17 <pikhq> Sgeo: getContents >>= return foo -- You get errors in foo.
19:19:25 <AnMaster> pikhq/alise: and the "perform" in the other one signifies that it isn't lazy then I guess?
19:19:46 <alise> AnMaster: unsafeInterleaveIO :: IO a -> IO a
19:19:53 <alise> unsafePerformIO :: IO a -> a
19:19:57 <AnMaster> aha
19:19:59 <alise> unsafeInterleaveIO is just return (unsafePerformIO x)
19:20:08 <alise> unsafePerformIO is, of course, an abomination of the highest order.
19:20:10 <Sgeo> Wait, what's that in do notation? do { a <- getContents; return a}
19:20:21 <AnMaster> alise, ouch, unsafeInterleaveIO seems very nasty
19:20:25 <AnMaster> why does haskell even have it?
19:20:29 <alise> do {a <- getContents; return foo }
19:20:32 <alise> where foo is a pure expression
19:20:37 <alise> *do { a <-
19:20:47 <alise> AnMaster: because it is useful: consider interact :: (String -> String) -> IO ()
19:20:48 <alise> it is
19:20:58 <AnMaster> ah
19:20:59 <alise> interact f = do s <- getContents; putStr (f s)
19:21:06 <alise> AnMaster: getContents lazily returns all of stdin
19:21:08 <alise> this is convenient
19:21:12 <alise> it is a hack - but it is convenient
19:21:13 <pikhq> AnMaster: unsafeInterleaveIO is useful for various small utilities.
19:21:15 <alise> so the answer is convenience
19:21:16 <AnMaster> hm
19:21:32 <Sgeo> 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 <AnMaster> are the usual "safe" IO facilities implemented using these unsafe ones internally?
19:21:57 <pikhq> AnMaster: No, the unsafe ones are done in terms of the safe ones.
19:22:11 <alise> AnMaster: Neither.
19:22:13 <alise> pikhq: that's nonsensical
19:22:19 <AnMaster> pikhq, err. It isn't 1 April any more...
19:22:23 <Sgeo> alise, maybe pikhq was being sarcastic?
19:22:25 <alise> AnMaster: unsafePerformIO is just an internal thing that hacks around with the uber-internal IO data structure.
19:22:28 <alise> The default IO operations are primitives.
19:22:36 <AnMaster> alise, hm
19:22:40 <alise> The IO data structure is not exposed unless you import internal GHC modules.
19:22:49 <pikhq> alise: getContents is done in terms of unsafeInterleaveIO and 'safe' IO operations. My statement of this came out confused.
19:22:54 <Sgeo> Is my unterstanding correct?
19:22:55 <alise> pikhq: Right.
19:23:02 <alise> Sgeo: pretty much
19:23:07 <alise> it's more insidious but that is one special case
19:23:18 <Sgeo> Examples of insidiousness please?
19:23:39 <AnMaster> alise, hm what language is the io primitives implemented in?
19:23:48 <AnMaster> it would be neat if it was haskell
19:23:52 <AnMaster> but I guess it can't be then
19:23:56 <pikhq> AnMaster: They're part of the Haskell runtime, I'm pretty sure.
19:24:03 <pikhq> Erm. Part of the GHC runtime.
19:24:08 <pikhq> The one bit of GHC that's not in Haskell.
19:24:11 <alise> AnMaster: what pikhq said
19:24:13 <AnMaster> ah
19:24:14 <alise> although the IO data structure is defined in haskell
19:24:20 <alise> and GHC itself is written in haskell (but the RTS is C)
19:24:24 <pikhq> (exception: random things like the evil mangler)
19:24:25 <alise> GHC is really gnarly code
19:24:31 <alise> some parts define the Monad class themselves
19:24:35 <alise> because haskell didn't have it at the time!
19:25:24 <AnMaster> I assume the stuff not implemented in haskell is kept to a minimum?
19:25:48 <alise> What, the RTS?
19:25:54 <alise> It's quite big but it's also rather good.
19:25:58 <AnMaster> hm
19:26:02 <alise> And most of the Prelude is in Haskell.
19:26:05 <alise> Almost all, in fact.
19:26:11 <alise> It's just auto-specialised behind the scenes.
19:29:20 <Sgeo> I just start experimenting with unsafeInterleaveIO, and I get told to avoid it :(
19:29:51 <alise> Well, it is bad.
19:31:24 <Sgeo> My computer just started singing "Good Morning" to me
19:32:23 <alise> :D
19:33:20 <Sgeo> Dear Megavideo: I waited 54 minutes. Now please let me continue watching my video
19:34:57 <alise> Metamath is cool
20:09:14 -!- Oranjer has joined.
20:31:41 -!- alise has quit (Ping timeout: 258 seconds).
20:37:38 <fizzie> 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 <fizzie> 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 <Sgeo> Sounds fun
20:42:10 <Ilari> Reminds me of programming assignment from one course...
20:45:06 <AnMaster> fizzie, so it doesn't work for non-text files?
20:45:28 <AnMaster> fizzie, as for using timing: would be unreliable on a non-realtime OS
20:45:29 <fizzie> AnMaster: Right. But be honest, how often do you need to copy non-text files anyway? Almost never!
20:45:43 <fizzie> Oh, but it's not a problem if you use long enough pauses.
20:45:48 <AnMaster> fizzie, more often than text files!
20:46:02 <AnMaster> only cp command today was to copy a kernel image to /boot
20:46:12 <fizzie> 20 milliseconds between bytes and 100 milliseconds between words, it seems.
20:46:26 <ais523> I don't think I've used cp for about a week now
20:46:38 <AnMaster> I use mv a lot more often than cp
20:46:40 <ais523> I don't copy very often; I did yesterday, but via the GUI
20:53:36 -!- alise has joined.
21:00:12 <pikhq> Gregor: Think maybe you could add the &butiwouldratherbereading= feature to Lonely Dino?
21:00:41 <Gregor> Shouldn't be /too/ difficult, I could cut up the images as they are ...
21:00:55 <pikhq> Mmkay.
21:02:49 -!- adam_d_ has joined.
21:06:17 -!- adam_d has quit (Ping timeout: 265 seconds).
21:06:27 <alise> butiwouldratherbereading?
21:06:35 <ais523> sounds like an April Fool's URL param
21:06:54 <alise> 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 <alise> 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 <alise> http://www.qwantz.com/index.php?comic=290&butiwouldratherbereading=nedroid
21:07:06 <alise> amazing
21:07:42 <Gregor> http://www.qwantz.com/index.php?comic=35&butiwouldratherbereading=nedroid
21:07:45 <alise> other params: achewood, pennyarcade, wigu, pokey
21:07:56 <alise> http://www.qwantz.com/index.php?comic=&butiwouldratherbereading=pokey -- thus creating the best comic strip conceivable
21:08:17 <alise> Gregor: MISSINGNO
21:08:30 <Gregor> ...?
21:08:51 <alise> more parameters:
21:08:53 <alise> xkcd
21:08:56 <alise> problemsleuth
21:08:58 <alise> daisyowl
21:09:11 <alise> also
21:09:11 <alise> onewheretrexswearsmore
21:09:27 <alise> 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 <ais523> it's pretty comprehensible anyway
21:13:08 <ais523> it's basically what you do in Haskell if you really want to make it an imperative lang
21:13:26 <ais523> although, more fun would be some sort of State variant that stored an associative array with ways to update individual elements
21:13:47 <Sgeo> Like the ST monad except with STRefs only storing one type?
21:14:14 <ais523> that way, you could compile imperative langs almost literally
21:14:25 -!- oklopol has quit (Ping timeout: 248 seconds).
21:15:43 <alise> Sgeo: It's nothing to do with ST.
21:15:49 <alise> ST is an entirely different strange beast altogether.
21:16:14 <pikhq> ST is a safe IO monad.
21:16:22 <Sgeo> alise, different from State [I know], or different from what ais523 is describing [please explain]?
21:16:25 <alise> Well, just the reference part.
21:16:27 <alise> Its semantics are odd.
21:16:30 <alise> Sgeo: oh, I see
21:16:32 -!- kar8nga has joined.
21:16:37 <pikhq> alise: Well. Yes. That's what makes it safe.
21:16:41 <alise> State is simply - you know how you could pass an extra argument to every function, Sgeo?
21:16:47 <alise> And just call with a modified argument to change state?
21:16:55 <alise> State just wraps that into a monad so you don't have to pass it around.
21:16:58 <alise> The semantics are identical,
21:16:59 <ais523> State is pretty much the purest form of a Haskell monad, I think
21:17:00 <alise> *identical.
21:17:03 <Sgeo> 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 <ais523> it's a monad, and the monad chain is accessible and user-defined
21:17:36 <ais523> 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 <alise> Monads are so pass.
21:18:43 <ais523> yep, they just get all the press because they're unusual to people who don't know Haskell
21:19:33 <alise> Dependent types are the shiznit.
21:19:51 <ais523> wait, people actually use the word "shiznit"?
21:20:15 <Sgeo> 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 <pikhq> I have talked to people who think monads are a gargantuan, subtle, and strange library.
21:20:29 <alise> ais523: Especially when talking about mathematics!
21:20:37 <pikhq> Sgeo: Yes.
21:20:37 <alise> Sgeo: Of course.
21:20:52 <ais523> Sgeo: that's what it's /for
21:20:53 <ais523> /
21:20:55 <pikhq> The State monad is a fairly simple thing. That'd be pretty easy to do.
21:21:12 <alise> ais523: no, he means
21:21:16 <alise> accessing state directly using the constructors
21:21:20 <pikhq> The only thing the State monad grants you is nice sugar for that.
21:21:37 <ais523> alise: ah
21:21:43 <Sgeo> Just to clarify my understanding quickly, a >>= b >>= c is parenthesized as a >>= (b >>= c) ?
21:21:56 <alise> Sgeo: It does not matter.
21:22:02 <alise> The monad laws require the two to be equal.
21:22:09 <pikhq> Sgeo: Yes, but it does not matter for any proper monad.
21:22:24 * Sgeo mindbreaks
21:22:41 <pikhq> That's one of the monad laws.
21:22:57 <Sgeo> Which way of thinking about it would make the definition of >>= for State easier to understand?
21:22:59 <alise> Sgeo: why do you struggle with simple identities?
21:23:02 <alise> Neither.
21:23:17 <ais523> Sgeo: think of "a >> b" as "do a then b"
21:23:25 <ais523> then it's obvious that a >> b >> c the parens don't matter
21:23:34 <ais523> and >>= is just a version where you can grab a return value
21:23:57 <Sgeo> alise, surely there was a time when you struggled with this stuff. When was that?
21:24:32 <ais523> Sgeo: I picked up monads pretty quickly
21:24:34 <Sgeo> [Not necessarily THIS stuff in particular, but Haskell in general, or specific parts of Haskell]
21:24:34 <alise> Oh, absolutely, I struggled with monads.
21:24:55 <alise> 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 <alise> Maybe I'm wrong.
21:25:17 <alise> Certainly I must have my own flaws in understanding that I do not myself notice.
21:25:54 <pikhq> 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 <Sgeo> syntactic sugar doesn't count as magic? :D
21:26:45 <Gregor> Rule four with monads: you may need more pixie dust.
21:27:33 <pikhq> Sgeo: That's no magic.
21:27:38 <pikhq> Gregor: Hah.
21:30:25 * Sgeo thinks he gets State's >>=
21:33:11 <alise> I wish fax was here
21:33:15 -!- comex has quit (Ping timeout: 268 seconds).
21:33:25 -!- comex has joined.
21:34:04 <alise> hi comex
21:34:50 <Sgeo> alise, fax is in #haskell
21:34:57 <alise> Ah.
21:35:10 <Gregor> <alise> I wish fax was here // Awwwww
21:35:19 <alise> to ask about type theory kthx
21:38:33 -!- oerjan has joined.
21:45:31 <Sgeo> Now, I need to learn to understand Functors and Arrows
21:46:04 <pikhq> Functors are trivial.
21:46:09 <pikhq> As are arrows.
21:46:09 <Sgeo> alise, about my learning, I've noticed that I like to read a lot of different tutorials
21:46:15 <oerjan> <alise> 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 <pikhq> Functors are objects where fmap makes sense.
21:46:33 <Sgeo> oerjan, the real numbers don't make up a set?
21:46:53 <oerjan> Sgeo: _in both places_
21:47:33 <Sgeo> >.>
21:47:48 <oerjan> it is indeed true (in ZFC) that there is no surjective mapping from reals to functions from reals to booleans.
21:48:47 <oerjan> 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 <Sgeo> How much of that relies on the C in ZFC?
21:49:23 <oerjan> (i said it that complicatedly because i'm not sure if those are equivalent concepts in ehird's type theory stuf)
21:49:28 <oerjan> oh, nothing at all
21:49:31 <oerjan> *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 <oerjan> 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 <alise> it is true in type theory of course
21:51:05 <alise> certainly so since I formalised it
21:51:40 <oerjan> in my intuition type theory is almost the same thing as constructive set theory.
21:51:50 <alise> Almost, but not quite.
21:51:54 <alise> Type theory has an equality type for instance.
21:52:09 <alise> And set theory, well, doesn't really have "dependent" sets in any meaningful sense.
21:52:13 <oerjan> i suppose you could have a simpler constructive set theory than that
21:52:15 -!- coppro has joined.
21:52:26 <alise> Plus things like quotient sets and the like - but the fundamental theories, sure.
21:52:31 <alise> oerjan: http://pastie.org/900901.txt?key=gfjqr1tonuchocnutw2dqw
21:53:23 <alise> I am surprised Coq does not already have notb/notdistinct. Or maybe it does?
21:53:30 <oerjan> 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 <alise> Oh, wait.
21:54:09 <alise> It exists.
21:54:10 <alise> negb
21:54:27 <alise> Diagonalisation is beautiful.
21:56:00 -!- coppro has quit (Client Quit).
21:58:35 <alise> oerjan: http://pastie.org/900907.txt?key=ny2be0sujqn23hvkcty1fa
21:58:45 <alise> Could generalise it from bool if you want, but...
21:59:41 <oerjan> mhm
21:59:47 -!- pikhq has joined.
22:01:44 <Sgeo> Should I consider rewriting some of my Python stuff in Haskell?
22:02:01 <Sgeo> Actually, most of it is on my old computer, so meh
22:02:20 <alise> oops =
22:02:20 <alise> let e := magic_surj in
22:02:20 <alise> match e (fun n : T => negb (magic n n)) with
22:02:20 <alise> | ex_intro x H =>
22:02:20 <alise> let n := no_fixpoint_negb in
22:02:21 <alise> match n (magic x x) (sym_eq (H x)) return False with
22:02:22 <alise> end
22:02:24 <alise> end
22:03:18 <pikhq> 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 <oerjan> 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 <oerjan> <alise> unsafeInterleaveIO is just return (unsafePerformIO x)
22:20:38 <oerjan> except with a guarantee of not evaluating more than once
22:21:19 -!- coppro has joined.
22:22:35 <oerjan> i used it in Malbolge Unshackled to create an infinite lazy datastructure containing IORefs. afaik that usage is perfectly safe.
22:22:57 <Sgeo> unsafePerformIO can't get evaluated more than once?
22:23:04 <Sgeo> erm, things made with
22:23:19 <oerjan> in theory it can
22:24:50 <oerjan> haskell compilers are perfectly permitted to inline pure code in multiple places
22:34:54 <Gregor> (Hence "unsafe" PerformIO)
22:35:30 <Sgeo> I meant unsafeInterleaveIO
22:35:30 <fizzie> 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 <coppro> ha
22:37:40 <oerjan> 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 <oerjan> and getContents uses unsafeInterleaveIO internally
22:38:29 <oerjan> (or something very close to it)
22:39:21 <Sgeo> Isn't there some function (Monad m) => m m a -> m a?
22:39:28 <oerjan> yes, join
22:39:36 <oerjan> *m (m a)
22:39:58 <oerjan> 13:21:43 <Sgeo> Just to clarify my understanding quickly, a >>= b >>= c is parenthesized as a >>= (b >>= c) ?
22:40:01 <oerjan> 13:21:56 <alise> Sgeo: It does not matter.
22:40:04 <oerjan> 13:22:02 <alise> The monad laws require the two to be equal.
22:40:27 <oerjan> no, it must be (a >>= b) >>= c, the other one isn't even well-typed
22:40:44 <oerjan> !haskell :i (>>=)
22:41:04 <oerjan> damn egobot always disappearing
22:41:06 <Sgeo> What does it do with IO, and could unsafeInterleaveIO be written without unsafePerformIO using join somehow?
22:41:18 <alise> oerjan: oh of course
22:41:32 <Sgeo> (>>=) :: (Monad m) => m a -> (a -> m b) -> m b
22:41:34 <alise> Sgeo: ?, and no
22:41:35 <Sgeo> --from memory
22:41:49 <oerjan> Sgeo: it defers running the actual action until the result is needed. no way of doing that with join.
22:42:20 <oerjan> Sgeo: it was the fixity/precedence i was looking for, actually
22:42:34 <Sgeo> Oh
22:42:49 <oerjan> infixl 1
22:42:57 <oerjan> so left as you'd expect
22:43:03 * Sgeo still gets confused by fixity
22:43:22 <oerjan> it's associativity and precedence bundled into one
22:43:37 <Sgeo> Then I'm confused by associativity
22:43:47 <oerjan> where associativity is in the syntactic sense
22:44:21 <oerjan> basically, should a >>= b >>= c mean (a >>= b) >>= c, a >>= (b >>= c) or be disallowed altogether?
22:44:37 <oerjan> those are infixl, infixr and infix, respectively
22:44:41 <Sgeo> Which is which.. oh
22:45:26 <oerjan> which side you start combining terms from, essentially
22:45:49 <Quadrescence> HASKELL HAS NO CONCEPT OF FIXITY
22:45:50 <Sgeo> What happens when you mix in other operators of equal precedency?
22:46:17 <oerjan> Sgeo: note that those first two are foldl (>>=) [a,b,c] and foldr (>>=) [a,b,c] respectively
22:46:29 <Gregor> HASKELL HAS NO CONCEPT OF NULLITY
22:46:35 <Quadrescence> actually it does, I was thinking ARITY
22:46:38 <oerjan> or would be, if they were compatible types
22:47:40 -!- tombom_ has quit (Quit: Leaving).
22:47:43 <oerjan> Sgeo: join x intuitively runs x, then runs the result immediately as an action in the same monad. no deferring involved.
22:48:03 <oerjan> and you cannot simulate it without some special function
22:48:41 <oerjan> (of course monads other than IO may not strictly obey the concept of running things immediately)
22:49:45 <Sgeo> What are Arrows?
22:49:54 <oerjan> a type class
22:51:12 <oerjan> a kind of strange bundling of features afaict
22:51:35 <oerjan> they're morphisms in a category, so functions are your main example.
22:52:00 <oerjan> 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 <oerjan> but they also include operations to combine stuff "in parallel", using pairs
22:52:36 -!- dixon` has joined.
22:52:39 <dixon`> Haskell blows ass
22:52:42 -!- dixon` has left (?).
22:52:58 <oerjan> e.g. (f &&& g) x = (f x, g x) and (f *** g) (x,y) = (f x, g y)
22:53:11 <oerjan> (again using the function example)
22:53:14 <Sgeo> 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 <Quadrescence> hey talk about the monomorphism restriction
22:53:51 <Quadrescence> also talk about how unstandard GHC is
22:54:11 <ais523> hmm, I don't understand that restriction, as it goes away if you add a type signature
22:54:21 <ais523> that says just what the compiler had inferred anyway
22:54:30 <alise> which is why you disable it
22:54:37 <Sgeo> What _is_ it?
22:54:38 <ais523> why is it there?
22:55:09 <oerjan> 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 <ais523> I don't see how that's related...
22:55:55 <oerjan> 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 <ais523> ah, OK
22:57:11 <oerjan> 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 <oerjan> that's my understanding of the x = ... case.
22:57:58 <Sgeo> Semantically that should be equiv unless unsafePerformIO is involved, right?
22:58:34 <ais523> semantically it's irrelevant
22:59:12 <oerjan> 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 <oerjan> although the compiler could try to be cleverer there, the standard does not demand it
23:00:24 <oerjan> Sgeo: yes. but someone has apparently coughed up an example where this causes exponential blowup in execution time
23:00:27 <oerjan> iirc
23:00:44 <Quadrescence> this is why I just use C
23:01:24 <oerjan> as for nonstandardness of GHC i don't know, unless you mean its heap of extensions which are optional...
23:01:34 <Quadrescence> """optional"""
23:01:52 <Sgeo> return quadrescence :: IO Chatter
23:02:38 <Quadrescence> Sgeo: that doesn't even make sense
23:02:40 <Quadrescence> nice try tho
23:03:13 <Sgeo> ??
23:04:31 <Quadrescence> oerjan: optional aka turned on by default
23:05:11 -!- fax has joined.
23:06:15 <oerjan> 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 <Sgeo> oerjan, what do you use? Hugs?
23:07:14 <Quadrescence> Sgeo: oerjan is sane and uses Standard ML with MLton
23:07:18 <oerjan> (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 <oerjan> other than that, winhugs
23:08:35 <oerjan> (i got seriously annoyed when ghci insisted on waiting for the gvim editor to quit and i see winghci avoids that)
23:09:18 <oerjan> (gvim _tries_ to fork itself to avoid such unless you add a flag, but ghci somehow manages to thwart it)
23:09:39 <Quadrescence> oerjan: why isn't Monad a "subtype" of Functor? (why it doesn't inherit from the Functor typeclass)
23:09:54 <oerjan> Quadrescence: hysterical raisins
23:10:00 <Quadrescence> what?
23:10:10 <oerjan> "historical reasons"
23:10:13 <Quadrescence> oh
23:10:39 -!- Deewiant has quit (*.net *.split).
23:10:39 -!- wareya has quit (*.net *.split).
23:10:44 <oerjan> Functor was invented after Haskell 98 was standardized
23:11:05 <Quadrescence> mathematical functors and monads weren't invented with Haskell
23:11:19 <alise> but at first haskell only had monads
23:11:26 <alise> anyway, I'm feeling so sick that I had better go to bed now
23:11:27 <oerjan> and they've never managed to implement the "case class" feature that is supposed to make things seamless
23:11:27 <alise> goodbye
23:11:32 -!- alise has quit (Quit: Leaving).
23:11:45 <oerjan> er it's not case class
23:11:53 * oerjan is channeling scala
23:12:42 <Sgeo> Is Scala any good?
23:12:48 <Sgeo> Or should I stick with Haskell?
23:12:56 <Quadrescence> Scala is great
23:13:06 <oerjan> i don't know i've just read about it's case classes
23:13:08 <Quadrescence> It has type safety, runs on the JVM, object oriented
23:13:16 <Quadrescence> can run on the android platform
23:13:37 <Quadrescence> still functional
23:13:47 <oerjan> 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 <oerjan> 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 <oerjan> 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 <oerjan> 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 <oerjan> and a bit in Data.Foldable
23:24:00 <oerjan> *its ^^^^^
23:24:14 -!- Deewiant has joined.
23:34:50 <fax> 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 <pikhq> INTERNET
23:46:06 -!- Oranjer has joined.
23:46:28 <oerjan> ET INTERN
23:48:44 <fax> if z^5=1 what is the value of z+2z^2+z^4 ?
23:50:00 <fax> apparentnyl it's always a rational, but it's not...
23:50:11 <pikhq> fax: What's the type of z?
23:50:25 <fax> complex number
23:50:31 <fax> complex real*
23:51:30 <fax> I think -1=(z^2+z^4)+(z^3+z^1)=x1 + x2 should mean that x1*x2 is a rational
23:52:57 <Gregor> oerjan: HAWT
23:53:33 <Gregor> 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 <oerjan> Data.Complex> [z+2*z^2+z^4 | let r = mkPolar 1 (pi*2/5) , z <- map (r^) [0..4]]
23:55:50 <oerjan> [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 <fax> :S
23:56:24 <fax> what about z^2+z^3?
23:56:50 <oerjan> Data.Complex> [z^2+z^3 | let r = mkPolar 1 (pi*2/5) , z <- map (r^) [0..4]]
23:56:50 <oerjan> [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 <oerjan> seems to be real
23:57:10 <fax> what the hell
23:57:16 <oerjan> oh
23:57:25 <oerjan> z^2 is the conjugate of z^3
23:57:46 <fax> ooh
23:57:48 <oerjan> since they're inverses and on the unit circle
23:58:10 <oerjan> 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 <oerjan> apparently mkPolar 1 is also known as cis
00:05:21 <fax> yes
00:05:27 <fax> "cos + i sin"
00:05:51 <fax> im pissed off about this cyclotomics
00:06:01 <oerjan> yeah i know, i meant it was a defined haskell function
00:07:07 <oerjan> hm
00:07:23 -!- FireFly has quit (Quit: Leaving).
00:08:04 <oerjan> z^5 = 1 and not z = 1 means z^4 + z^3 + z^2 + z + 1 = 0 fwiw
00:08:25 <oerjan> i suppose that's one of the results, but it also is simply polynomial division
00:08:49 <fax> well
00:08:52 <fax> z^4 + z^3 + z^2 + z = -1
00:09:29 <fax> 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 = <some rational>
00:09:35 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:10:13 <oerjan> ah
00:10:25 <fax> it doesn't seem to be true though :(
00:10:49 <oerjan> well z and z^4 are also conjugate, so z+z^2 and z^4+z^3 are conjugate
00:11:06 <oerjan> and multiplying conjugates at least gives a positive real
00:11:20 <fax> 2.6180339887498945
00:11:36 <fax> (that is 1+phi, which is not rational)
00:11:58 <fax> so I'm a bit lost now as for what I should do
00:12:03 <oerjan> another option would be z+z^3 and z^4+z^2
00:12:16 <fax> well that gives 0.38196601125010515
00:12:30 <fax> which is 1/2.6180339887498945
00:13:29 -!- pikhq has joined.
00:13:49 <oerjan> well i don't know this stuff, anyway
00:16:04 <Quadrescence> cyclotomic polys are easy
00:16:05 <Quadrescence> jeez
00:17:51 <fax> !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 <fax> !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 <fax> `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 <oerjan> egobot is not here
00:18:42 <oerjan> (-4.0) :+ (-5.06434096082401e-016) :: Complex Double
00:20:10 <oerjan> you may try privmsg'ing lambdabot. prepend with "> "
00:20:23 <fax> *Galois Data.Complex> multiplicativeGroupGenerator 52
00:20:23 <fax> *Galois Data.Complex> map(\i->2^i`mod`5)[1..4][2,4,3,1]
00:20:23 <fax> *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 <fax> (-0.9999999999999999) :+ 6.861555643110582e-17
00:20:38 <oerjan> i guess that won't show up here
00:20:53 <fax> multiplicativeGroupGenerator 5 = 2
00:21:13 <fax> orbit of 2 in multiplicative Z/5Z = [2,4,3,1]
00:21:22 <oerjan> hm
00:21:33 <fax> so the periods (w^2+w^3)(w^4+w) = -1
00:21:34 <oerjan> 3 is also a generator, i should think
00:21:37 <fax> but I thought I did this......
00:21:45 <fax> I just pick the first generator
00:22:33 <oerjan> as i said, exp (2*pi*sqrt(-1)*(1/5)) = cis (2*pi/5)
00:22:56 <fax> I don\t understand what I had wrong before
00:23:17 <Sgeo> This mouse still feels too weird
00:23:33 <oerjan> well we didn't try that splitting
00:23:34 <Sgeo> Also, changing the speed of the thing also changes the speed of the trackpad
00:23:39 <fax> (w+w^4)*(w^3+w^4) <------- augh!!!
00:23:41 <fax> im so stupid
00:25:31 * Sgeo switches back to his wired mouse
00:26:28 <oerjan> 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 <fax> oerjan, but you are right -- they are conjugates
00:27:12 <oerjan> um no
00:27:23 <oerjan> if they were conjugates their product would be positive
00:27:42 <oerjan> (w^2+w^3) and (w^4+w), that is
00:27:49 <fax> oh right I see
00:28:23 <fax> so there's a 'fast' way to calculate the value of (w^2+w^3)*(w^4+w)
00:28:31 <fax> but it's really confusind and complicaetd ;D
00:29:03 <oerjan> exactly the right kind of thing for a computer program, you'd think
00:29:46 <fax> I am trying to program this algorithm but it is really a lot harder than anything I have worked on before
00:29:53 <fax> well I guess that is the wrong way to put it
00:29:59 <Sgeo> What if you tried it imperatively?
00:30:01 <Sgeo> >.>
00:34:26 -!- coppro has quit (Ping timeout: 260 seconds).
00:40:17 <fax> this... appears to only work for fermat primes
00:40:27 <fax> but that is not good because there are other primes
00:42:28 <oerjan> oh? what goes wrong for 7, say?
00:42:48 <fax> well give me 10 mins I will try p = 7 on paper
00:43:17 <oerjan> {1,2,3,4,5,6} lessee
00:43:37 <oerjan> {2,4,1} nope
00:44:00 <fax> [3,2,6,4,5,1]
00:44:05 <fax> that's the orbit of 3
00:44:07 <oerjan> {3,2,6,
00:44:13 <oerjan> i was _getting_ there :D
00:44:15 <fax> :P
00:44:16 <fax> sorry
00:45:10 <oerjan> so do you take (w^3+z^2+w^6)*(w^4+w^5+w^1) ?
00:45:19 <oerjan> or would, if it worked
00:46:11 <oerjan> how did i get that z there
00:46:23 <fax> http://www.pasteit4me.com/312001
00:47:01 -!- ais523 has quit (Remote host closed the connection).
00:47:52 <oerjan> huh, so [3,6,5] and [2,4,1], or [3,4] and [6,1]
00:48:36 <fax> [3,4], [2,5] and [6,1]
00:48:45 <fax> so the thing splits into 2*3 or 3*x
00:48:47 <fax> so the thing splits into 2*3 or 3*2 ***
00:48:52 <oerjan> oh any two?
00:49:12 <oerjan> er wait
00:49:17 <oerjan> you multiplied all three
00:49:27 <fax> yeah
00:49:37 <fax> in general if we have an orbit that covers the whole group [a,b,c,d...]
00:50:07 <fax> 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 <fax> but why they multiply to make a rational..... I have no idea
00:50:28 <oerjan> oh you are taking all the cosets of a subgroup?
00:50:38 <fax> hmm
00:50:43 <fax> yes I guess they are cosets aren't they
00:50:54 <fax> the group is Z/pZ by the way (multiplicative)
00:51:10 <fax> (I don'tknow if I neglected to say that earlier)
00:51:31 <oerjan> i understood that much
00:51:42 <oerjan> although i wouldn't call that Z/pZ...
00:52:04 <oerjan> wikipedia used a superscript X
00:53:03 <oerjan> hm since the multiplicative group is cyclic, i guess all subgroups are cyclic too so given by a single element
00:53:26 <fax> oerjan, ooh that explains why you can keep doing it!
00:54:34 <fax> it's a bit usesless to know that y1+y2+y3 = -1 & y1*y2*y3 = 1
00:54:36 <fax> you can't solve this equation
00:54:47 <oerjan> 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 <fax> hmmm
00:55:00 <fax> p-1 is always even
00:55:11 <fax> (p > 2)
00:57:08 <augur> OMG BLUE BUBBLEGUM JONES
00:57:21 <augur> also, fax! :D
00:57:24 * augur glomps fax
00:57:28 <fax> hey augur :)))
00:57:40 <augur> i had an idea for a fun little challenge
00:57:46 <fax> the universe thing?
00:57:51 <augur> yeah did i mention it to you?
00:58:00 <augur> ive been modelling simple universes
00:58:08 <fax> what is a universe ?
00:59:11 <augur> 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 <fax> augur WOLFRAM??
01:00:10 <augur> no.
01:00:19 <fax> this sounds like cellular automata
01:00:24 <augur> im sure you could model (some) of these universes as CAs
01:00:28 <fax> except on arbitrary topology
01:00:31 <augur> but the physics dont have to be defined CAly
01:00:36 <fax> oh there are non-CA rule sets?
01:00:38 <fax> like how
01:00:44 <augur> well you could do so if you wanted.
01:01:21 <augur> just as an example, imagine you had an infinite discrete universe with a particle occupying one position in the universe
01:01:46 <augur> you could say that it has a constant velocity in some direction and so forth
01:01:53 <augur> im sure you could also define a CA for this tho
01:06:12 <augur> so do you know the setup of the game?
01:07:39 <fax> I guess so
01:07:42 <fax> it sounds very difficult
01:08:09 <augur> it is rather, i think
01:08:15 <augur> just to reiterate, the game goes like this
01:08:44 <augur> i secretly design a (simple) universe. then i provide to you the causal graph of the universe
01:08:52 <fax> 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 <augur> and you have to determine the design i used.
01:09:11 <fax> augur, the causal graph is a picture ?
01:09:25 <fax> augur I want to try this but I am not likely to win
01:10:08 <augur> 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 <fax> 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 <augur> ie the configuration the universe would be in after running the physics one time unit forward
01:11:27 <augur> 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 <oerjan> well z^3 is a 7th root of unity, i don't know whether they can be expressed with real roots
01:12:13 <augur> 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 <augur> does this make sense, fax?
01:12:46 <fax> vaugely :)
01:13:00 <augur> or imagine you have a universe that is a string of text
01:13:04 <augur> of length 3
01:13:23 <augur> with say 1 of 26 "particles" (letters) in each position
01:13:34 <augur> "aaa", "aab", ...
01:13:35 <fax> oerjan, well there is a theorem that every root of unity can be expressed in radicals (from Gauss)
01:13:39 <augur> these are the configurations of this universe
01:13:53 <oerjan> fax: oh
01:13:55 <fax> oerjan, but I am completely failing to see how it works for non-fermat primes
01:14:02 <augur> then theres some physics that says each "configuration" is followed by, lets say, the "next" string
01:14:13 <augur> or god only knows what the universe is, right
01:14:22 <fax> 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 <augur> well let me give you a very simple one :)
01:14:37 <fax> ok
01:14:42 <augur> here is a simple causal graph: 1 -> 1
01:16:05 <augur> this is the simplest universe i can think of
01:16:30 <fax> that sucks
01:16:31 <fax> :/
01:16:39 <fax> idiot universe
01:16:41 <augur> cmon, think of what kinds of universes this could be :)
01:16:49 <augur> what is the universe and the physics
01:16:59 <augur> actually its a whole class of universes, but
01:17:01 <fax> the universe is {1} and the physics is I
01:17:35 <augur> basically, yeah. the universe is a 1x1 universe with no particles (or 1 particle) and no physical laws that change anything.
01:17:51 <augur> alternatively it could be seen as any universe with no particles an no physical laws that change anything
01:18:05 <augur> heres the next simplest one i can think of
01:18:08 <augur> 1 -> 1, 2 -> 2
01:18:24 <fax> the universe is {1,2} and the physics is I
01:18:28 <fax> ?
01:18:37 <augur> well, what do you mean bye {1,2}?
01:18:40 <fax> idk
01:18:47 <augur> the 1 and 2 that i used are just names for configurations
01:18:47 <Gregor> What do you mean, BYE! {1,2}
01:18:51 <fax> it's just the nodes of a graph
01:18:55 <fax> there are no edges yet
01:18:56 <Gregor> (Sorry, couldn't help myself)
01:19:10 <augur> but the nodes in the graphs are not the universe
01:19:25 <augur> the universe is a topology plus a physics that this graph describes
01:20:14 <augur> the universe envisioned is as follows:
01:20:30 <augur> a 1x2 universe with one particle (which can be in either location) and no physics
01:20:54 <augur> or, a 1x1 universe with one particle (which can be pointing in either one of two directions) and no physics
01:21:12 <oerjan> no, it's a particle which can be either red or blue!
01:21:17 <augur> the configurations for the former are: [o| ] and [ |o]
01:21:23 <augur> oerjan, :)
01:21:33 <augur> and for the latter: [<] and [>] lets say.
01:22:43 <augur> heres another universe thats similar: 1 -> 1, 2 -> 2, 3 -> 3, 4 -> 4
01:24:34 <augur> im sure you can imagine what this is
01:24:58 <oerjan> yes, it's a 1x2 universe with two particles *ducks*
01:25:04 <augur> nope :)
01:25:14 <augur> unless you hve some physics in there
01:25:24 <oerjan> well no physics
01:25:29 <oerjan> nothing changes
01:25:30 <augur> then definitely not
01:25:38 <augur> because that universe would be [o|o]
01:25:44 <augur> and would have only one state
01:25:55 <augur> making its causal graph the same as the first universe: 1 -> 1
01:25:56 <oerjan> you didn't say particles couldn't be in the same position
01:26:07 <augur> ahhaaa good thinking oerjan :)
01:26:12 <augur> then yes, you're right
01:26:15 <augur> it could be that universe
01:26:42 <oerjan> anyway i predict the number of possibilities will become hopelessly large, fast
01:26:49 <augur> 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 <augur> well, the number of possibilities might
01:27:08 <augur> but im not looking for _my_ solution, just _a_ solution
01:27:28 <augur> so heres another universe thats kind of interesting
01:27:33 <oerjan> "faces directions" sounds similar to momentum.
01:27:47 <augur> :)
01:28:09 <augur> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 1; 7 -> 1; 8 -> 4
01:28:15 * Sgeo wants to use Haskell for everything
01:29:07 <augur> ill even be generous and tell you the physical makeup of the universe
01:29:13 <augur> 1x2, one particle.
01:30:07 <oerjan> well we have 2^3 states, so one bit could correspond to position of particle
01:30:30 <augur> ok :)
01:30:42 <augur> thats a truism, ofcourse
01:30:52 <augur> because, modulo anything else, the particle can be in exactly two positions
01:31:03 <augur> so the universe has at least 2*n configurations
01:31:06 <oerjan> well it means the particle can have 4 inner states in each position
01:31:13 <augur> ok
01:31:27 <augur> you're veeeery close
01:31:33 -!- Oranjer has left (?).
01:31:41 <augur> now just figure out what the physics is :)
01:31:46 <oerjan> it could point in each of four directions
01:31:54 <augur> true.
01:32:44 <oerjan> hm...
01:33:01 <oerjan> i make it a rule that the particle is _always_ changing position, each step
01:33:06 <augur> ok
01:33:50 <oerjan> so 1,3,5 and 8 correspond to the same position, 2,4,6,7 to the other
01:34:02 <augur> ok
01:34:30 <oerjan> now we can say that 7 and 8 are both pointing down
01:34:35 <augur> ok
01:36:20 <augur> btw, when you interpreted 1x2, did you interpret that to be 1 high or 1 across?
01:36:38 <oerjan> the particle always rotates its pointing direction each step, but skipping the down direction
01:37:02 <oerjan> i believe this gives the required graph
01:37:15 <oerjan> 1 high
01:37:19 <augur> ok
01:37:25 <augur> thats what i intended :p
01:37:42 <oerjan> er what's what you intended
01:37:59 <augur> 1 high
01:38:37 <oerjan> 1 and 4 point left, 2 and 5 up, and 3 and 6 right
01:38:45 <oerjan> and rotation is clockwise
01:39:04 <augur> ok
01:40:27 <augur> thatll do it :)
01:41:26 <augur> now let me do one thing to my universe: expand the size to 2x2 now. the causal graph is as follows:
01:41:41 <oerjan> this analysis was made somewhat easier by the fact it contained two aspects that did not interfere with each other
01:42:00 <augur> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 1; 9 -> 10 -> 1; 11 -> 12 -> 3; 13 -> 14 -> 5; 15 -> 16 -> 7
01:42:17 <augur> identical physics, one particle, just in 2x2 not 1x2
01:42:34 <oerjan> what do you mean by identical physics?
01:42:39 <augur> that is, not the physics oyu just devised, but the physics that i had in mind.
01:42:44 <oerjan> ah
01:42:49 <augur> as before.
01:42:57 <augur> so this universe and the previous one are different _only in size_
01:43:02 <oerjan> now we have 4 positions rather than 2
01:43:07 <augur> we do.
01:43:32 <oerjan> and there are still 4 inner states possible
01:43:39 <augur> indeed.
01:43:49 <oerjan> assuming those can be selected independently
01:43:53 -!- coppro has joined.
01:44:21 <augur> well they can, but the physics constraints which configurations are possible as next configurations.
01:44:51 <augur> 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 <oerjan> this time there are 8 non-repeating states, while there were only 2 the last time
01:52:17 <augur> you mean states which, once left, are never again reached?
01:52:18 <augur> yes.
01:52:46 <augur> ill give you an even better hint
01:52:56 <augur> if you think of the particle as a robot instead, the physics makes more sense.
01:53:44 <oerjan> which means doubling the positions did not just add an extra irrelevent bit, it has to interfere with stuff
01:53:53 <augur> nope. :)
01:53:55 <oerjan> *irrelevant
01:54:12 <oerjan> otherwise, there would be only 4 non-repeating states
01:54:14 <augur> there is no constraint on the configurations that the particle can appear in
01:54:40 <augur> the particle can be found in each of the four positions in each of the four states.
01:54:46 <oerjan> i mean the new bit and the old ones have to have physical interaction
01:55:24 <augur> let me know if you want more hints
01:55:40 <oerjan> <augur> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 1; 9 -> 10 -> 1; 11 -> 12 -> 3; 13 -> 14 -> 5; 15 -> 16 -> 7
01:55:52 <augur> yep :)
01:57:01 <oerjan> 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 <augur> 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 <augur> want another hint?
01:57:52 <oerjan> no, but i _am_ assuming i have to come up with something that fits the previous one as well
01:58:11 <oerjan> otherwise this would be easy
01:58:14 <augur> :)
01:58:31 <augur> hint: its not always changing position, nor internal state, during each time step.
01:58:46 <augur> but it *is* at least changing one of them
01:58:59 <oerjan> um the last point is obviouas
01:59:02 <oerjan> *-a
01:59:13 <augur> just making sure that it was :P
02:00:52 <oerjan> hm...
02:02:01 <oerjan> i think i've got it, just checking
02:02:37 <oerjan> <augur> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 1; 7 -> 1; 8 -> 4
02:02:51 <augur> what about it
02:03:00 <oerjan> just checking it gives the same
02:04:48 <oerjan> ok
02:05:57 <oerjan> 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 <augur> bingo. :)
02:07:10 <oerjan> yay
02:07:58 <augur> now figure out the structure of this universe, given those physics, and 1 particle:
02:08:29 <oerjan> hm this is turning out more interesting than i expected :P
02:08:48 <augur> 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 <augur> so tell me the geometry of the universe.
02:09:08 <oerjan> the same physics? ok.
02:09:46 <augur> 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 <oerjan> there is at least some toroidal stuff going on
02:10:44 <oerjan> that's the only way you could flip between two states with those physics
02:11:33 <oerjan> wait four positions...
02:11:44 <oerjan> oh wait yes
02:20:42 <fax> so I'm a bit disappointed
02:20:57 <fax> I thought this program would be able to derive solution for the cubic equation and stuff like that
02:21:03 <fax> but it seems like you have to hard code all that in :[
02:21:12 <fax> (in the roots of unity subroutine)
02:21:24 <fax> (unless I am [hopefully] missing something)
02:25:41 <augur> no ideas yet, oerjan? :)
02:25:53 <oerjan> 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 <oerjan> 1/6/10/15 2/5/12/13
02:25:58 <oerjan> 4/7/9/16 3/8/11/14
02:26:07 <augur> :)
02:26:09 <augur> bingo.
02:27:13 -!- adam_d has quit (Ping timeout: 265 seconds).
02:28:13 <augur> 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 <augur> or see if there are parallels between when you wrap one dimension and when you wrap a second
02:29:10 <augur> oerjan, if you enjoy this, i can try to put up a site with a bunch of these
02:29:44 <oerjan> for the first, there would be 2*n final cycles where n is the number of rows
02:29:58 <oerjan> one for each going left, the other right
02:30:13 <oerjan> and each of length m
02:30:43 <augur> right
02:31:04 <augur> and each of those cycles would have m incoming paths of length n
02:31:14 <augur> well, half of them would
02:31:30 <oerjan> there are 2*m*n cycles
02:32:03 <oerjan> um no
02:32:09 <augur> there are actually 2*n cycles
02:32:16 <augur> you were right the first time
02:32:33 <oerjan> um s/cycles/states in cycles/
02:32:56 <oerjan> actually, only the top and bottom rows would have incoming paths
02:33:05 <augur> right yes, sorry :)
02:33:19 <oerjan> m*n each
02:33:50 <augur> now are there any salient relationships between the unwrapped universe and the wrapped universe?
02:34:12 <oerjan> n to each of the m states in the cycle
02:35:10 <oerjan> well the downwards and upward paths still exist in both
02:35:45 <oerjan> the unwrapped universe has only one cycle, along the border
02:36:30 <augur> true
02:36:37 <oerjan> with 2*(m+n) states in it
02:36:42 <augur> look at the state graphs
02:36:51 <augur> keeping the state labels the same in both
02:37:49 <oerjan> no idea
02:38:40 <augur> try it and see ;)
02:38:55 <oerjan> well, everything _not_ approaching a border is of course the same
02:39:11 <oerjan> edges, that is
02:39:17 <augur> you mean everything that _is_ approaching a border
02:39:23 <augur> well, half the borders
02:39:26 <augur> because half the borders remain
02:40:05 <oerjan> by approaching i mean being next to, about to collide with it or pass through
02:40:32 <oerjan> and yeah only the changed borders
02:40:48 -!- Gracenotes has quit (Quit: Leaving).
02:40:53 -!- samosa has joined.
02:40:58 <oerjan> hm
02:41:06 <samosa> Hello
02:41:19 <samosa> Im new.
02:41:21 * augur eats samosa
02:41:26 <samosa> What is this channel for?
02:41:30 <samosa> :o
02:41:43 <oerjan> augur: conclusion, only 2*n edges are actually removed and 2*n added
02:41:49 <augur> :)
02:41:51 <oerjan> esoteric programming languages
02:42:02 <samosa> ooh
02:42:20 <samosa> ??
02:42:23 <samosa> -__-
02:42:36 <samosa> lulz, i mean what does esoteric mean?
02:43:17 <oerjan> in this case it means weird and often useless
02:43:22 <pikhq> Esoteric, (adj.): unusual and not well-known.
02:43:47 <samosa> i see
02:44:40 <oerjan> ^bf >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-]<.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+.
02:44:40 <fungot> Hello World!
02:45:35 <oerjan> also frequently unreadable
02:45:48 <mibygl> Can fungot do ///?
02:45:48 <fungot> mibygl: you don't know what is correct?) not declared in this scope points to *here*" ( or newline).
02:46:07 <oerjan> not that i know of
02:46:34 <oerjan> unfortunately a couple of our bots are missing, including the one with most esolangs in it
02:46:57 <oerjan> on the other hand, fungot is _written_ in one (and implements two others)
02:46:58 <fungot> oerjan: please note how carefully i used capitalization, rather than against mine except for locative-object ( which makes no sense
02:47:37 <mibygl> Can I ask fungot what languages e implements?
02:47:38 <fungot> mibygl: and the best, mmh.
02:47:43 <oerjan> mibygl: um, someone claimed you were == uorygl, is this correct?
02:47:48 <oerjan> ^help
02:47:48 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
02:47:52 <mibygl> Correct.
02:48:08 <mibygl> If I were not uorygl, I would be impersonating uorygl, which is not a nice thing to do.
02:48:24 <mibygl> So fungot only implements two languages? Bah.
02:48:24 <fungot> mibygl: eh what?
02:48:27 <augur> so oerjan, did you want me to put up one of those sites?
02:48:48 <oerjan> you mean having the same last 3 letters is impersonating?
02:48:58 <mibygl> If those letters are "ygl", yes.
02:49:27 <mibygl> On another network, instead of uorygl/mibygl, I'm Warrigal/Mibbigal. That's also an impersonation sort of thing.
02:49:54 <oerjan> augur: i don't think i'll be spending a lot of time on it, honestly. but who knows.
02:50:04 <augur> aww ok.
02:50:26 <augur> 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 <augur> :p
02:50:48 <oerjan> mibygl: you have to note that fungot implements those languages _in_ befunge
02:50:49 <fungot> 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 <mibygl> Grr, I want a ///bot.
02:51:23 <oerjan> (it does not expose befunge itself to others than fizzie, presumably for security reasons)
02:53:22 <oerjan> hm fungot does have definable commands though
02:53:22 <fungot> oerjan: which wasn't that fnord at all
02:53:30 <oerjan> ^show
02:53:30 <fungot> 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 <oerjan> mibygl: just write a /// interpreter in brainfuck and you'll be all set ;D
02:54:52 <oerjan> Gregor: your bots are missed
02:55:21 -!- pikhq has quit (Read error: Connection reset by peer).
02:55:44 <Gregor> 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 <oerjan> mibygl: did you see me mention itflabijtslwi in response to your comment about /// and input?
02:57:25 <oerjan> !slashes /*/\/.\\0\/,\\,0,\\,1\/\/.\\1\/,\\,1,\\,0\/\/,\\,\/.\//********/.//.0
02:57:31 <EgoBot> 0110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100110100110010110100101100110100110010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110
02:59:57 <mibygl> I don't know.
03:00:07 -!- sshc has quit (Quit: leaving).
03:01:54 <mibygl> !slashes /!/@@@@//@/####//#/$$$$//$/ nom/om!
03:01:55 <EgoBot> 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 <oerjan> *itflabtijtslwi
03:02:28 <mibygl> Now I want to do /// busy beaver stuff.
03:02:46 <mibygl> Try to write the program of length N with the longest finite output.
03:02:52 <oerjan> heh
03:03:34 <mibygl> Call that length ?(N).
03:03:42 * mibygl ponders when ?(N) is first larger than N.
03:04:37 <mibygl> 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 <mibygl> 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 <oerjan> seems hard to do something fancier in that short span
03:06:16 <mibygl> Mmkay, what's the best you can do in 80 characters?
03:06:38 -!- pikhq has joined.
03:07:55 <mibygl> 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 <mibygl> I think it outputs 2,560,000 characters.
03:08:47 -!- pikhq has quit (Read error: Connection reset by peer).
03:08:49 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@@@@@@@@**
03:08:49 <EgoBot> ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
03:09:51 <mibygl> It would be nice if we had a Slashes unescaper.
03:11:14 <mibygl> So the result of that substitution is /*\*/+\+//+\+/*\*\*\*/?
03:11:36 <oerjan> something like that
03:14:09 <oerjan> anyway as you can see it doubles the number of **'s
03:14:27 <mibygl> So, /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\// has 38 characters, right?
03:14:42 -!- fax has quit (Quit: Lost terminal).
03:14:43 <oerjan> if you say so :D
03:15:16 <mibygl> If you just plopped two in, you'd have four characters to spare...
03:15:35 <oerjan> what?
03:15:43 <mibygl> If you use that twice.
03:15:50 <oerjan> oh right
03:16:06 <oerjan> which should give you something 2^2^n
03:16:29 <mibygl> 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 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\\-\//**++
03:19:56 <oerjan> oh wait
03:20:12 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\\-\//**--
03:20:12 <EgoBot> --------------------------------
03:20:25 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\\-\//**--
03:20:26 <EgoBot> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
03:20:48 <oerjan> oh we're already beyond 80
03:22:06 <oerjan> hm...
03:22:47 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**--
03:22:47 <EgoBot> ---------
03:22:59 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**--
03:22:59 <EgoBot> -------------------
03:23:25 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**--
03:23:25 <EgoBot> ---------------------------------------------------------------
03:23:27 <mibygl> Um, I'd think that the second replacement would replace * with yet anther replacer.
03:23:54 <oerjan> what?
03:24:00 <mibygl> Replace @ with * and * with something else in it.
03:24:26 <mibygl> The first one will generate a bunch of *s; the second one will turn each * into a doubler.
03:24:44 <mibygl> Oh, I see that you're doing something like that already.
03:25:02 <mibygl> Uh, put some spaces in there so I see what's going on.
03:25:27 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\// @@@@ /*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\// ** --
03:25:28 <EgoBot> ---------------------------------------------------------------
03:25:49 <mibygl> Brilliant.
03:26:10 <oerjan> i reduced to 3 to keep it below 80 chars
03:26:28 <mibygl> Oh, that actually is what I was looking for.
03:27:05 <oerjan> unfortunately, that causes it to take some more time to get up to speed
03:27:12 <mibygl> Why doesn't that first output a bunch of *?
03:27:20 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**----
03:27:20 <EgoBot> ---------------------------------------------------------------------------------------------------------------------------------------------
03:27:24 <oerjan> er wait
03:27:32 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**--
03:27:43 <mibygl> Since the first /@/\/... just makes the @s into *s, doesn't it?
03:28:00 <oerjan> that must have been fairly big because it doesn't print anything XD
03:28:07 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**--
03:28:07 <EgoBot> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
03:28:42 <oerjan> um no, it turns the @'s into * 3/2-icaters
03:28:59 -!- pikhq has joined.
03:29:08 <mibygl> Mmkay.
03:29:55 <mibygl> 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 <oerjan> well, i _hope_ the thing with 6 @'s above failed to respond because it got really big
03:31:19 <mibygl> Calculate how many it makes!
03:31:45 <oerjan> the 3/2 thing makes that a little awkward :D
03:33:44 -!- pikhq has joined.
03:34:02 <oerjan> !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in iterate m3h 2 !! 5
03:34:13 <EgoBot> 13
03:34:38 <oerjan> !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in iterate m3h 2 !! 6
03:34:40 <EgoBot> 19
03:34:54 <mibygl> What does that mean?
03:35:22 -!- pikhq has quit (Read error: Connection reset by peer).
03:35:32 <oerjan> it means the 5 @'s produce 13 *'s and the 6 @'s produce 19 *'s
03:35:49 <oerjan> !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in iterate m3h 2 !! 1
03:35:51 <EgoBot> 3
03:36:21 <oerjan> !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in map (iterate m3h 2 !!) [13,19]
03:36:23 <EgoBot> [316,3597]
03:37:16 <oerjan> !haskell 6*80-9
03:37:18 <EgoBot> 471
03:37:53 <oerjan> um wait that makes no sense
03:38:37 <mibygl> If 19 is all you get, then this is worthless.
03:39:06 <oerjan> the @@@@@ one above printed more than 316 -'s, something is wrong
03:40:01 <oerjan> !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in map (iterate m3h 2 !!) [1..19]
03:40:03 <EgoBot> [3,4,6,9,13,19,28,42,63,94,141,211,316,474,711,1066,1599,2398,3597]
03:41:07 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@**
03:41:07 <EgoBot> *************
03:41:21 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@@**
03:41:22 <EgoBot> *******************
03:43:09 <oerjan> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
03:43:24 <oerjan> (just checking if my terminal is really 80 wide
03:43:25 <oerjan> )
03:44:31 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**--
03:44:32 <EgoBot> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
03:45:27 <oerjan> what the...
03:45:35 <oerjan> that is _not_ what egobot printed the last time
03:46:24 <oerjan> it had about another line. perhaps that 3597 long one previous caused a bug...
03:46:56 <oerjan> it never printed anything, after all.
03:47:45 <oerjan> anyway 3597 is worthless, as you say, we hadn't even filled in with @'s from the single substitution one
03:49:03 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@@@@@@@@@@@**
03:49:25 <oerjan> that should be 4096, although it seems to stall egobot again
03:49:33 <oerjan> !slashes Boo!
03:49:33 <EgoBot> ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
03:51:10 <oerjan> !slashes /-**/*-/---****************
03:51:10 <EgoBot> **---
03:51:44 <oerjan> hm wait that can be reversed :D
03:52:10 <mibygl> Ooh, it can!
03:52:10 <oerjan> !slashes /-*/**-/--------*
03:52:10 <EgoBot> ****************************************************************************************************************************************************************************************************************************************************************--------
03:52:29 <mibygl> And you can do that lots of times.
03:52:37 <oerjan> _now_ we're kicking :D
03:52:44 <mibygl> Getting something like 2^^14 of them.
03:53:45 <oerjan> !slashes /-*/**-//*-/--*/--*
03:53:51 <oerjan> oh wait
03:53:59 <oerjan> !slashes Boo!
03:54:00 <EgoBot> Boo!
03:54:14 <oerjan> !slashes /-*/**-//*-/--\*/--*
03:54:14 <EgoBot> --------------------------------****
03:55:13 <oerjan> !slashes /@/\/-*\/**-\/\/*-\/--\\*\//@-*
03:55:14 <EgoBot> ----**
03:55:52 <oerjan> !slashes /@/\/-\\*\/**\\-\/\/*\\-\/--\\*\//@-*
03:55:52 <EgoBot> ----**
03:55:58 <oerjan> !slashes /@/\/-\\*\/**\\-\/\/*\\-\/--\\*\//@@-*
03:56:04 -!- Alex3012 has joined.
03:56:10 <oerjan> !slashes Boo!
03:56:11 <EgoBot> Boo!
03:56:23 <oerjan> apparently too much to hope for
03:57:38 <oerjan> !slashes /-*/**-//*-/--\*//-\*/**\-/--*
03:57:47 <oerjan> !slashes Boo!
03:57:48 <EgoBot> Boo!
03:58:31 <oerjan> !slashes /-*/**-/----**
03:58:32 <EgoBot> ********************************----
03:58:50 <oerjan> now why didn't the previous one print the same...
04:00:00 <oerjan> i escaped every relevant *- boundary inside the substitutions that i can see...
04:00:01 <mibygl> What are we hoping for that's too much?
04:00:47 <Sgeo> Quick question about the BSD license: What do I put for "Organization", given that it's myself?
04:00:55 <oerjan> 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 <Sgeo> ??
04:01:28 <oerjan> "No, completely chaotic"
04:01:34 <mibygl> Your name.
04:01:34 <Sgeo> lol
04:01:47 <Sgeo> "Neither the name of the Sgeo"
04:02:04 <mibygl> Last time I put an organization into an Organization box, it credited all my work to that organization.
04:02:24 <oerjan> !slashes /-*/**-//*-/--\*/--*
04:02:25 <EgoBot> --------------------------------****
04:02:29 <Sgeo> What's the MIT license like?
04:02:50 <oerjan> !slashes /-*/**-//*-/--\*/-*
04:02:51 <EgoBot> ----**
04:03:01 <Sgeo> I like it
04:03:06 <oerjan> !slashes /-*/**-//*-/--\*//-\*/**\-/-*
04:03:07 <EgoBot> ********************************----
04:03:26 <oerjan> that was better. and one more iteration would kill it XD
04:04:41 <oerjan> which means two @'s is too much to hope for again. hm...
04:09:15 <oerjan> -* => **- => ----** => 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 <Sgeo> http://codepad.org/wd8oGuUT
04:14:11 <Sgeo> Such a mess :/
04:17:43 <mibygl> What is that code?
04:20:59 <Sgeo> Python mapping of a C API
04:24:09 <Sgeo> http://forums.activeworlds.com/showthread.php?p=124425#post124425
04:32:31 <oerjan> !slashes /*1/11*//*\*/*//1*/*1+//1+/+1/*****1
04:32:44 <oerjan> !slashes Boo!
04:32:44 <EgoBot> Boo!
04:32:57 <oerjan> !slashes /*1/11*//*\*/*//1*/*\1+//1+/+1/*****1
04:32:58 <EgoBot> *++++++++++++++++++++++++++++++++11111111111111111111111111111111
04:41:24 <oerjan> !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 <EgoBot> 000000000000000000000000000000023
04:44:23 <oerjan> !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 <EgoBot> 23
04:45:39 <oerjan> !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 <EgoBot> 2
04:46:41 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1+/(((((((1)
04:46:42 <EgoBot> (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11+
04:49:28 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+/(((((((1)
04:49:29 <EgoBot> (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111+
04:50:15 <oerjan> !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 <EgoBot> 128
04:50:32 -!- Gracenotes has joined.
04:51:59 <oerjan> !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 <EgoBot> 10
04:52:42 <oerjan> !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 <EgoBot> 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 <mibygl> Hey, you got it to output 1024.
05:04:41 -!- adu has joined.
05:07:45 <mibygl> !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 <EgoBot> 4314
05:07:58 <mibygl> !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 <EgoBot> 8231
05:08:07 <mibygl> !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 <mibygl> !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 <mibygl> !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 <EgoBot> 132343
05:08:18 <EgoBot> 2000
05:08:20 <EgoBot> 2662
05:08:24 <mibygl> !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 <mibygl> !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 <mibygl> !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 <EgoBot> 4424
05:08:33 <EgoBot> 13044
05:08:37 <EgoBot> 100000
05:08:40 <mibygl> I must say, this function doesn't make much sense.
05:08:51 <oerjan> what?
05:09:15 <mibygl> This is what I get for trying to understand things without analyzing them.
05:09:36 <oerjan> well what you are doing is changing the output base
05:10:42 <oerjan> !haskell import Data.Char; import Numeric; main = print [showIntAtBase n intToDigit 1024 | n <- [2..10]]
05:10:57 <oerjan> !haskell import Data.Char; import Numeric; main = print [showIntAtBase n intToDigit 1024 "" | n <- [2..10]]
05:11:00 <EgoBot> ["10000000000","1101221","100000","13044","4424","2662","2000","1357","1024"]
05:11:21 * Sgeo is confused
05:11:55 <oerjan> well the parts from 2000 and down, at least
05:13:00 <oerjan> !haskell import Data.Char; import Numeric; main = print [showIntAtBase n intToDigit 1024 "" | n <- [2..12]]
05:13:02 <EgoBot> ["10000000000","1101221","100000","13044","4424","2662","2000","1357","1024","851","714"]
05:14:12 <oerjan> oh!
05:14:46 <oerjan> i need to reorder a bit
05:15:20 <oerjan> !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 <EgoBot> 6
05:15:59 <oerjan> !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 <EgoBot> 432
05:16:39 -!- Copyleftist has joined.
05:17:13 -!- Copyleftist has quit (Client Quit).
05:17:41 <oerjan> !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 <EgoBot> 432
05:18:25 -!- Copyleftist has joined.
05:18:26 <oerjan> !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 <EgoBot> 128
05:18:40 <oerjan> !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 <EgoBot> 32
05:18:51 <oerjan> !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 <EgoBot> 256
05:18:55 <oerjan> !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 <EgoBot> 512
05:19:48 <oerjan> !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 <EgoBot> 96
05:20:23 <oerjan> !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 <EgoBot> 3
05:21:08 <oerjan> !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 <EgoBot> 3 4 5 6 43 8 9
05:21:21 -!- Copyleftist has quit (Client Quit).
05:21:30 <oerjan> !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 <EgoBot> 3 4 5 6 7 8 9
05:27:07 <oerjan> !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 <EgoBot> 1 2 3 4 5 6 7 8 9 A B 100 110 120 130 14
05:27:39 <oerjan> !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 <EgoBot> 1 2 3 4 5 6 7 8 9 A B C0 D0 E0 F0 10
05:27:59 <oerjan> huh
05:28:37 <oerjan> oh
05:28:53 <oerjan> !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 <EgoBot> 1 2 3 4 5 6 7 8 9 A B C D E F 10
05:29:08 <adu> hi
05:29:39 <oerjan> hi
05:29:43 <adu> how are you
05:30:43 <oerjan> well i should be going to bed but instead i'm apparently doing number display in /// :)
05:32:06 <oerjan> (aka slashes)
05:33:52 <adu> i see
05:33:58 <adu> i'm writing an arbitrary-precision lib
05:34:16 <adu> which i will use to write a serialization lib
05:34:28 <adu> which i will use to write a scripting language
05:34:48 <adu> which i will use to write simulation software
05:34:57 <adu> which i will use to write artificial intelligence
05:35:05 <adu> which i will use to take over the world !!!
05:35:20 <oerjan> dammit i was going to joke how this would end :D
05:35:24 <adu> lol
05:35:49 <oerjan> you missed "write an operating system" in there, though
05:36:00 <adu> no, i don't need to write an os
05:36:10 <adu> that's where the AI comes in
05:36:14 <oerjan> ah.
05:36:21 <adu> it will write all the drivers for me
05:36:51 <adu> it will crawl the web for documents about all devices ever made
05:37:25 <adu> it will also reverse engineer Win32 drivers as well
05:37:38 <adu> it will do everyone's homework
05:37:54 <oerjan> um... that's not a good thing?
05:38:07 <adu> huh?
05:38:10 <adu> which part?
05:38:15 <oerjan> doing everyone's homework
05:38:17 <adu> oh
05:38:20 <adu> ya i was jk
05:38:43 <adu> that would be like, some kinda VIP service
05:39:28 <adu> oerjan: what would you have AI do for you?
05:41:42 <oerjan> 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 <Deewiant> 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 <AnMaster> Deewiant, interesting bug
09:43:01 -!- charlls has quit (Ping timeout: 264 seconds).
09:50:50 <AnMaster> 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 <alise> hail
11:53:21 -!- olsner_ has joined.
12:18:50 <AnMaster> alise, hi
12:18:54 <alise> Hi.
12:19:20 <AnMaster> also I found out why I was unable to use some 802.11n networks. Wrong reg domain setting.
12:19:41 <AnMaster> (that issue confused me for months)
12:20:28 <alise> dear diary
12:20:35 <AnMaster> (it was on "world" setting, which is defined as the subset of channels allowed everywhere)
12:20:49 <AnMaster> alise, wrong window :P
12:20:57 <alise> not quite
12:22:14 <AnMaster> what were you going to tell it then?
12:22:47 <alise> Actually I was being a jerk to you
12:22:51 <alise> :P
12:23:56 <AnMaster> I shouldn't be surprised
12:41:18 <alise> 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 <AnMaster> bbl for the rest of the day
13:01:08 <AnMaster> (out of town, no internet)
13:06:08 -!- tombom has quit (Quit: Leaving).
13:08:27 -!- olsner_ has quit (Quit: olsner_).
13:35:38 <alise> fpqrsuvtu
13:38:52 <alise> Oh, dear; an unwinnable game of robotfindskitten.
14:09:09 <Deewiant> 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 <fizzie> 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 <AnMaster> <alise> Oh, dear; an unwinnable game of robotfindskitten. <-- is that possible!?
19:00:34 <AnMaster> fizzie, NKI?
19:03:04 <AnMaster> also I need to figure out how to make ubuntu call iw reg set SV on boot...
19:05:08 <AnMaster> err SE of course
19:05:09 <AnMaster> not SV
19:06:38 <AnMaster> 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 <AnMaster> 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 <alise> Hello, hello, hello, hello!
19:53:26 <pikhq> Hellote.
19:54:33 <alise> 11:00:34 <AnMaster> fizzie, NKI?
19:54:33 <alise> non-kitten items
19:54:35 <alise> 10:59:58 <AnMaster> <alise> Oh, dear; an unwinnable game of robotfindskitten. <-- is that possible!?
19:54:38 <alise> Apparently in the flash version.
19:54:58 <fax> alise
19:54:58 <fax> alise
19:55:04 <AnMaster> alise, I thought the kitten was always generated, but I guess I was wrong
19:55:30 <alise> I am not using my laptop!; I am using the ole' desktop. Not the iMac.
19:55:41 <alise> Is a semicolon after an exclamation mark /really/ valid? I mean, honestly.
19:56:13 <pikhq> It ought to be.
19:56:38 -!- coppro has joined.
19:57:25 <AnMaster> alise, perfectly, ! is logical not, and ; is "skip to next ; in path"
19:57:45 <alise> Your wittosity is unmatched, surely.
19:57:49 <alise> In this world. Universe!
20:00:34 -!- BeholdMyGlory has joined.
20:04:07 <fizzie> AnMaster: In rfk86, at least, the kitten is always generated, but it may be unreachable.
20:04:15 <alise> xD
20:14:41 <alise> gtg
20:14:43 -!- alise has quit (Remote host closed the connection).
20:22:55 <AnMaster> fizzie, heh?
20:22:57 -!- adam_d_ has joined.
20:23:01 <AnMaster> fizzie, does that even make sense?
20:25:59 -!- adam_d has quit (Ping timeout: 265 seconds).
20:31:38 <fax> where is alise
20:31:39 <fax> fffffffffffffffff
20:44:47 <fizzie> 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 <fizzie> (You can move diagonally in the official robotfindskitten, but that just means you need more stuff to block the kitten totally.)
20:49:33 <fizzie> And, after all, robot must touch items to determine if they are kitten or not.
20:51:58 <AnMaster> fizzie, true
20:52:23 <AnMaster> fizzie, I never seen an unreachable object in the "official" one
20:54:48 <fizzie> If you hve a large terminal, it's pretty unlikely. But it's still possible.
20:55:19 <fizzie> With a 20x5 terminal window (where you only get 20x2 cells of grid) it happens more often than not.
20:56:31 <fizzie> 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 <oklopol> lol
20:59:18 <oklopol> i remember when i was 8 and had that bug
20:59:24 <oklopol> in a prog
21:09:32 <AnMaster> 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 <Gregor> And you stuck with it for so long, too.
22:30:51 <hiato> 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 <Gregor> Huh.
22:41:17 <Gregor> .za is to South Africa as .ch is to Switzerland.
22:41:26 <Gregor> In that it's not actually short for any /official/ name.
22:41:27 <Gregor> Weird.
22:42:20 <pikhq> Weird.
22:43:09 <pikhq> Though, .za would have at least made since if the TLDs were done in '65. :P
22:43:51 <pikhq> (.za is an abbreviation of Zuid-Afrika, Dutch for South Africa. Dutch was an official language there before '65.)
22:49:10 <Gregor> You'd have to go back a bit farther for .ch
22:49:27 <pikhq> Confoederatio Helvetica.
22:49:56 <pikhq> Which actually makes a *little* bit of sense. That's apparently minted on Swiss coins...
22:51:08 <pikhq> Hah. .su exists.
22:51:18 <pikhq> (TLD for the Soviet Union)
22:52:40 <Sgeo> There's someone with the email address n@ai
22:53:08 <pikhq> I'd like to see someone with the address root@.
22:53:34 <pikhq> HE ADMINISTERS THE ENTIRE NET
22:53:52 <Sgeo> Well, DNS
22:54:05 <pikhq> ENTIRE. NET.
22:54:36 <Gregor> THE TUBERWEBS
22:54:42 <pikhq> YES
22:55:44 <AnMaster> rebooting, kernel upgrade
22:58:02 <pikhq> DNS TLDs are fairly ridiculous.
22:58:16 <pikhq> .cat is a gTLD.
22:58:23 <pikhq> It is reserved for sites in Catalan.
22:58:34 -!- AnMaster has quit (Read error: Connection reset by peer).
22:58:57 <pikhq> (a somewhat obscure Romance language)
23:00:26 -!- AnMaster has joined.
23:01:37 <oklopol> sometimes i like to pretend pikhq never googles anything but actually just happens to know everything
23:02:10 <pikhq> Hah.
23:02:17 <pikhq> 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 <oklopol> 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 <pikhq> 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 <pikhq> Hah.
23:05:43 <pikhq> Yeah, a UTM is a machine that can compute any algorithm, not a magic machine that does everything. :P
23:05:53 <pikhq> (that's a UTM + magic oracle)
23:06:13 <pikhq> 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 <fizzie> Is hiato's "newly hired councellor" some sort of sneak-dig at the ehird of many names?
23:35:27 <fax> why isn't alise back
23:44:10 -!- Oranjer has joined.
23:53:08 <fax> grrrrrr
23:56:24 <coppro> 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 <AnMaster> 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 <AnMaster> 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 <augur> DOCTORRRRRRRR
02:17:39 <augur> :DDDDDDDDDDDDD
02:19:09 <fax> hi augur
02:19:20 <augur> FAXXXXXX
02:19:28 <fax> help
02:19:35 <augur> i need somebody
02:19:39 <augur> HELP
02:19:42 <augur> not just anybooody
02:19:45 <fax> ;D
02:20:26 <augur> sup girly
02:21:35 <fax> idk I can't figure out what to do now
02:23:05 <augur> for?
02:23:47 <fax> for my self :S
02:23:52 <fax> hey augur
02:23:56 <augur> o.o
02:24:02 <augur> watch the new doctor who episode!
02:24:04 <fax> I understand why you can't trisect an angle :D
02:24:15 <fax> everyone talks about doctor who
02:24:16 <augur> well you CAN trisect an angle
02:24:19 <fax> I haven't been watching it
02:24:23 <augur> just not with a compass and straightedge
02:24:26 <fax> yes
02:24:30 <fax> augur want me to tell you i
02:24:31 <fax> augur want me to tell you it
02:25:55 <augur> what who how huh
02:27:16 <fax> the proof
02:36:40 <fax> augur
02:36:41 <fax> fat head
02:36:47 <augur> :|
02:36:59 * augur rapes fax
02:37:01 <augur> wait damnit
02:37:04 <augur> you're a girl
02:37:05 <augur> fuck
02:37:13 <augur> that didnt happen
02:37:15 <fax> so are you
02:37:30 <augur> am not
02:37:46 <augur> IZE A BOY
02:55:15 <fax> :/
02:58:39 <pikhq> By "rape" he of course means "scour one's existence from the earth".
02:59:08 <pikhq> And I'm not sure where that takes me, but in the end, your mom's a whore.
03:07:13 <fax> I bite off augurs hand
03:07:18 <fax> sucker
03:18:24 <Sgeo> fax, what's the proof?
03:18:42 <fax> Sgeo -- okay
03:19:17 <fax> 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 <Sgeo> How do you do xy and x/y?
03:20:12 <fax> 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 <fax> hm
03:27:05 <fax> you put x and y at right angles
03:30:06 <fax> no you don't sorry
03:30:10 <fax> you put x and 1 at right angles
03:30:17 <Sgeo> 1?
03:30:18 <fax> then you draw the hypotenuse, and exend it out (forever)
03:30:25 <fax> you need a '1' value to multiply things
03:30:39 <fax> I mean you could just use a thumbwidth or something
03:30:41 <Sgeo> Oh, you're responding to my x*y x/y question
03:30:53 <fax> so this is a triangle with sides, 1:x
03:31:24 <fax> 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 <fax> to divide numbers you can just reverse this procedure
03:31:38 <Quadrescence> you can construct sqrt(x) toooooo
03:32:52 <fax> Sgeo, so in effect we have a field (have you met this structure from algebra before??)
03:33:13 <Sgeo> I've heard of fields, don't really know what they are. They define certain operations on them?
03:33:39 <fax> well a field is just something which has +,-,*,/ and stuff like (x+y)z = xz+yz
03:34:03 <fax> so we can construct every element of our field with a ruler and compass!
03:34:51 <fax> 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 <fax> 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 <Quadrescence> Sgeo: you pissed fax offfffffff
06:07:14 -!- oerjan has quit (Quit: Good night).
06:09:47 -!- zzo38 has joined.
06:10:43 <zzo38> I found another esolang called ModanShogi it is based on a shogi game movements
06:10:47 <zzo38> http://github.com/yhara/ShogiModan
06:20:01 <pikhq> 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 <Sgeo> Mind you, with Haskell, I can use Parsec
06:34:43 <pikhq> Which is severe overkill for Brainfuck parsing.
06:37:20 <Sgeo> I guess it's healthier to figure out how to do without
06:58:11 <coppro> Sgeo: you saw my parser in Haskell, did you not?
06:58:12 <zzo38> Nobody expects the Spanish Inquisition.
06:58:26 <Sgeo> coppro, um, part of it
06:58:32 <Sgeo> I don't think I saw the full thing
06:58:48 <Sgeo> And at any rate, I want to process everything into BFCmds before processing
06:58:53 <zzo38> And nobody expects the big monster with three tentacles on the same ship either, unless *I* say so.
06:59:20 <Quadrescence> Sgeo: um
06:59:26 <Sgeo> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24645#a24645
06:59:27 <Quadrescence> are you dumb
06:59:50 <Sgeo> ?
07:00:14 * Sgeo obviously shouldn't have said processing in both places, if that's what you mean
07:01:09 <Sgeo> And yes, I think BFComment can be useful. Say I also want to write a simple optimizer
07:01:19 <Sgeo> Don't need to interpret to do that
07:01:26 <Sgeo> And I can leave comments in place
07:01:49 <Quadrescence> Sgeo: I hope one day you learn python and haskell and maybe even scheme
07:02:08 <Quadrescence> [and brainfuck for that matter]
07:02:11 * Sgeo knows Python fairly well
07:05:43 <Sgeo> Quadrescence, are you going to explain yourself?
07:07:47 <Quadrescence> no
07:08:02 <Quadrescence> If a good friend was here, I'd have him explain
07:09:19 -!- dixon has joined.
07:09:22 <dixon> ohai
07:09:59 <dixon> I heard someone was being stupid and wanted to use monadic parsing for brainfuck.
07:10:15 <dixon> Who gets to wear the dummy hat?
07:10:36 * Sgeo wants to see proof that dixon /= Quadrescence
07:10:49 <dixon> AWWW Sgeo GETS TO WEAR THE DUMMY HAT!
07:11:02 <dixon> Well, first you should /msg nickserv info dixon all
07:11:24 <dixon> And see that I've been registered years before Quadrescence with an entirely different account.
07:12:25 <dixon> 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 <Sgeo> Overkill == bad idea?
07:14:06 <dixon> Always.
07:14:18 <dixon> It'd be like driving your children to school in a tank.
07:14:28 <dixon> When all you really wanted was side-impact airbags.
07:15:18 <zzo38> Do you think 42 is really the proper answer to life, the universe, and everything, or do you think not?
07:15:36 <Quadrescence> zzo38: i think ur homosexual
07:17:02 <zzo38> Quadrescence: Why do you think that, please?
07:17:30 <Quadrescence> zzo38: evidence suggests so
07:18:09 <zzo38> 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 <Sgeo> Turing was gay, we in this channel talk about stuff that Turing did a lot, therefore we are all gay.
07:18:55 <zzo38> Sgeo: That's a dumb way.
07:19:11 <zzo38> Perhaps it was true of Turing but it doesn't make that of everyone
07:19:13 <Quadrescence> zzo38: do you mind if I finish these sun chips and mtn dew
07:19:24 <Sgeo> zzo38, no kidding?
07:19:31 <zzo38> Quadrescence: I really don't care. They aren't mine
07:19:34 <dixon> zzo38: He integrated you over a finite portion of a hypergeometric function and realized you swung the wrong way.
07:19:47 <Quadrescence> thx dixon
07:19:51 <dixon> np
07:19:53 <zzo38> I'm actually asexual
07:19:53 <dixon> (=p)
07:20:01 <dixon> (virgin)
07:21:24 <Quadrescence> zzo38: oh and i have some sixlets to eat too
07:21:48 <dixon> I have some twins to eat later. I'm waiting for them to arrive :3
07:22:02 <Quadrescence> wat
07:22:24 <Quadrescence> was that sexual innuendo
07:22:26 <Quadrescence> "eat"
07:22:47 <dixon> ;)
07:23:10 <zzo38> Why?
07:23:31 <dixon> When?
07:24:08 <zzo38> (In case you didn't know, I was asking "Why?" to Quadrescence's)
07:24:49 <Quadrescence> zzo38: oh I guess I am hungwy
07:25:12 <zzo38> Do you mean "hungry" or "hungwy"?
07:25:42 <Quadrescence> the latter
07:26:12 * Sgeo should really be sleeping
07:26:42 <dixon> Or using Python.
07:27:38 <zzo38> And I have never heard of such a word as "hungwy" and I don't know what it means
07:28:35 <dixon> It's etymologically related to "twat." I would ask if you were familiar, but it seems you've already implied not.
07:37:51 <zzo38> Do you have any idea of making spell in D&D game?
07:40:43 <zzo38> 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 <zzo38> 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 <zzo38> 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 <dixon> 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 <Sgeo> I'm not using Parsec
08:25:15 <dixon> You promise?
08:25:20 <Sgeo> Yes
08:25:36 <dixon> I would give you a hug, but I have a tendency to cop a feel.
08:26:02 <Sgeo> I _am_ using a data BFCmd that means I can't just write parseBFChar '+' = BFInc etc
08:27:43 <dixon> You could always try python-llvm, for the lulz.
08:28:22 * Sgeo should be sleeping
08:28:31 <Sgeo> Sleep will probably let me think better when I awake
08:28:36 <Sgeo> It's 3:26AM here
08:28:43 <dixon> 03:30 here.
08:29:14 <Sgeo> o.O
08:29:32 <Sgeo> Either you're rounding, or there's a mysterious 3min difference
08:29:47 <Sgeo> erm, *looks at timestamp* 4min
08:29:52 <Sgeo> between 3-4
08:30:25 <dixon> Well, I'm using NTP, so I hope it's not wrong.
08:34:25 <Sgeo> night
08:34:33 <dixon> 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 <AnMaster> what is that sort of "always" falling tone called now again?
17:23:25 <AnMaster> well not always falling
17:23:27 <AnMaster> it just sounds like it
17:23:47 <AnMaster> there was one in Mario64, if you went up the final stairs before collecting enough stars
17:24:06 <AnMaster> I remember hearing some name for that sort of sound once
17:25:33 <AnMaster> fizzie, do you happen to know? I think I remember you were involved in a discussion about them here ages ago?
17:31:18 <fizzie> 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 <fizzie> Apparently it's sometimes called Shepard’s paradox, though that name seems to be a bit ambiguous.
17:33:36 <fizzie> http://www.moillusions.com/2006/05/audio-optical-illusions.html
17:34:06 <Gregor> "Audio optical illusions"
17:34:09 <Gregor> Stupidest phrase EVER
17:34:17 <Slereah> heh
17:34:33 <fizzie> Everyone seems to call them that. :p
17:34:57 <fizzie> http://angrydylan.blogspot.com/2007/11/shepards-paradox.html is another bit, and you can obviously google more.
17:35:47 <fizzie> http://en.wikipedia.org/wiki/Shepard_tone is also related.
17:35:52 <fizzie> Phew, maybe that was enough linkery.
17:37:52 -!- olsner_ has joined.
17:39:41 <Gregor> That's a lot less of a trick than I originally assumed it might be :P
17:40:42 <AnMaster> fizzie, no! need more links!
17:40:45 <AnMaster> quick!
17:40:47 <AnMaster> XD
17:43:05 <hiato> www.www.com.com
17:43:29 <hiato> I wonder if someone owns that
17:43:51 <AnMaster> www.com.com seems to redirect to cnet
17:44:00 <AnMaster> so presumably they own www.www.com.com too
17:44:01 <hiato> hmmm
17:44:02 <Deewiant> It's a subdomain of com.com, which belongs to cnet
17:44:10 <hiato> damnit
17:44:11 <AnMaster> though it isn't in dns
17:45:14 <hiato> http://org.org/ --- wth is this place?
17:46:19 <fizzie> Someone's random photos is what it looks like.
17:46:31 <AnMaster> fizzie, why not call it audio illusions instead?
17:46:41 <AnMaster> I mean, there is no good reason to include the word optical there
17:46:57 <hiato> meh, with such n awesome name
17:47:09 <AnMaster> unlike if you were to use the Swedish word for optical illusions: "synvillor" where "syn" refers to "sight"
17:47:27 <AnMaster> calling it "ljudsynvillor" would be quite reasonable then
17:47:56 <AnMaster> (because "villor" alone means nothing related to illusions. It means "villas". Go figure)
17:48:12 <AnMaster> I guess ljudvillor would be interpretable too
17:48:23 <hiato> 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 <Sgeo> *hope
17:51:11 <hiato> Sgeo: BF in Haskell? I have but one question: why?
17:54:44 <oklopol> Sgeo: what's the meaning
17:55:12 <AnMaster> Sgeo, why maybe?
17:55:23 <AnMaster> Sgeo, won't moving right always be possible?
17:55:36 <AnMaster> while moving left might hit the start
17:55:41 <hiato> if there's a wrap
17:55:57 <AnMaster> hiato, then it will always be possible in both directions
17:56:20 <hiato> yeah, that's how i'd do it
17:56:50 <Sgeo> Well, I want there to be several kinds of tape
17:57:03 <Sgeo> It's possible to make tape unbounded at both ends, or bounded at both ends
17:57:40 <AnMaster> hiato, nah I would do infinite tape upwards, but finite downwards
17:57:44 <Sgeo> data Tape a = Tape [a] a [a]
17:57:45 -!- coppro has quit (Ping timeout: 276 seconds).
17:57:52 <AnMaster> thus forming an analogy to N
17:57:59 <Sgeo> With the head of each list being the element closest to the head
17:58:03 <AnMaster> while infinite in both directions would be an analogy to Z
17:58:05 <Sgeo> erm, tape head
17:58:11 <fax> uphill both ways
17:58:26 <AnMaster> 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 <hiato> I guess
17:59:16 <AnMaster> also what a finite, non-wrapping one would be
17:59:20 <AnMaster> a finite set I guess
17:59:25 <hiato> yep
17:59:26 <AnMaster> without modulo
17:59:41 <Sgeo> 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 <Sgeo> No, I don't.. think so
18:00:03 <fax> Sgeo: it's impossible
18:00:04 <AnMaster> now I want an uncountably infinite bf tape :(
18:00:12 <Sgeo> :(
18:00:15 <AnMaster> Sgeo, what is?
18:00:22 <AnMaster> wrapping around in a tape? no
18:00:29 <hiato> 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 <AnMaster> just take the current position modulo the length of the day
18:00:39 <AnMaster> s/day/tape/
18:00:41 <AnMaster> weird typo
18:00:48 <hiato> heh
18:00:55 <hiato> OR do rotatinos
18:01:02 <AnMaster> rotatinos?
18:01:18 <hiato> rotations
18:01:21 <hiato> :P
18:01:30 <AnMaster> hiato, using a linked list?
18:01:31 <hiato> tail a ++ [head a]
18:01:44 <AnMaster> then yes it makes sense to use a circular linked list
18:02:15 <fax> no it doesn't
18:02:27 <AnMaster> hiato, if the language is single assignment that would be rather inefficient
18:02:37 <AnMaster> assuming cons style lists that is
18:02:48 <AnMaster> fax, why not?
18:02:54 <AnMaster> use a double linked circular list
18:02:59 <AnMaster> moving left or right is trivial
18:03:06 <AnMaster> just follow the pointer in the relevant direction
18:03:11 <AnMaster> of course that requires a low level language
18:03:23 <fax> if you are going to use mutable variables then you should make the values mutable rather than the cons
18:03:36 <hiato> 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 <AnMaster> hiato, "mage lazy"?
18:03:54 <hiato> heh
18:04:03 <hiato> I have no idea
18:04:10 <AnMaster> hiato, what the heck was "mage" a typo for...
18:04:12 <hiato> New keyboard layout
18:04:25 <hiato> made?
18:04:28 <AnMaster> aha
18:04:32 <hiato> yeah, made
18:04:37 <AnMaster> hiato, dvorsak?
18:04:44 <AnMaster> err modulo spelling
18:04:51 <hiato> Naah, my own
18:04:57 <hiato> was on colemak
18:05:12 <AnMaster> I'm perfectly happy with qwerty
18:05:24 <AnMaster> I don't type that much, I code. Meaning I think more than I type
18:05:37 <AnMaster> (becuase I don't use asm)
18:05:37 <hiato> Ah, right
18:05:49 <hiato> naah, just an experiment
18:06:00 <hiato> (I do :P)
18:06:11 <AnMaster> well okay I use inline asm in C sometimes...
18:06:38 <hiato> You're just afraid of it's power
18:06:50 <AnMaster> nah
18:06:56 <hiato> :P
18:06:56 <AnMaster> I prefer high level languages
18:07:09 <hiato> I like extremes
18:07:48 <AnMaster> 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 <AnMaster> 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 <AnMaster> it should avoid reading files if possible
18:08:44 <AnMaster> by checking the size of the files
18:08:57 <hiato> yeah, well, if people talk efficiency and anything other than ASM, they're just making up useless -etrics
18:09:07 <AnMaster> hiato, har.
18:09:12 <hiato> heh, 10000's
18:09:14 <AnMaster> hiato, well, efficient in programmer time
18:09:31 <AnMaster> no not 10000s
18:09:39 <AnMaster> I think maybe 1000 lines at most
18:09:45 <AnMaster> some 900 more likely
18:09:53 <AnMaster> but in erlang it took me, what, *checks*
18:10:18 <AnMaster> 232 lines, including comments and blanks
18:10:31 <hiato> Yeah, 10000's because I know no C libraries and would prob implument another language and link to bash or something
18:10:35 <AnMaster> Language Files Code Comment Comment % Blank Total
18:10:35 <AnMaster> ---------------- ----- --------- --------- --------- --------- ---------
18:10:35 <AnMaster> erlang 1 119 81 40.5% 32 232
18:10:45 <AnMaster> according to ohcount
18:10:46 <hiato> nice
18:11:04 <AnMaster> it does it in three steps
18:11:18 <hiato> yeah?
18:11:39 <AnMaster> 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 <AnMaster> so all files with the same size is in the same key
18:12:24 <hiato> clever start
18:13:16 <AnMaster> 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 <AnMaster> step 2/3 are done interleaved to make use of disk cache
18:13:32 <AnMaster> that is, it won't need to read the files in again
18:13:48 <AnMaster> step 2 is done to not have to load as much file data into memory at once
18:13:56 <AnMaster> since I need to run this on fairly large files
18:14:02 <AnMaster> say 200-300 MB each at most
18:14:27 <AnMaster> a lot often the files will be much smaller
18:15:10 <hiato> 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 <hiato> but, still clever
18:15:47 <AnMaster> hiato, the size is to reduce having to read the files from disk
18:15:55 <AnMaster> if there are no two files of the same size
18:16:00 <AnMaster> it doesn't have to read those at all
18:16:10 <AnMaster> since getting the size is way faster than reading the file
18:16:19 <AnMaster> it maps to a simple stat() or such at some level
18:16:21 <hiato> Oh, right. Heh
18:16:37 <hiato> ok, cant fault you then
18:16:38 <AnMaster> hiato, I ran this on the linux source tree with a compiled kernel in it
18:16:50 <AnMaster> it was way faster than a naive bash script that I used before
18:17:07 <AnMaster> as in, 30 seconds vs. 7 minutes
18:17:14 <AnMaster> both on cold cache
18:17:22 <hiato> Really? I thought pipes and such are lazy
18:17:27 <AnMaster> eh?
18:17:30 <AnMaster> what are you talking about
18:17:31 <hiato> wow
18:17:57 <hiato> a | grep b && c
18:18:07 <hiato> or, rather
18:18:26 <hiato> eh
18:18:39 <hiato> wait, I'm slow with kbd
18:18:51 <hiato> Please hold
18:19:30 -!- iamtheobject has joined.
18:19:35 <iamtheobject> -.-
18:20:28 <AnMaster> well
18:20:42 <AnMaster> hiato, they just work concurrentlyu
18:20:45 <AnMaster> concurrently*
18:20:47 <AnMaster> not lazily
18:21:25 <AnMaster> Gregor, btw wth is up with the topic? You set it last it looks like
18:21:57 <Gregor> You don't like it? :P
18:23:19 <hiato> 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 <AnMaster> hiato, no that is incorrect
18:24:12 <hiato> oh?
18:24:22 <AnMaster> pipes are just concurrent, not lazy
18:24:28 <hiato> damnit
18:24:30 <AnMaster> the kernel has a buffer
18:24:38 <hiato> and i did all that typing
18:24:39 <AnMaster> and writes block if that buffer is full
18:25:49 <AnMaster> theoretically I could optimise my implementation by doing the md5 calculation while data is being read in
18:25:55 <AnMaster> shouldn't be too hard in erlang
18:26:09 -!- ehirdiphone has joined.
18:26:14 * hiato wouldn't know
18:26:16 <AnMaster> hi ehirdiphone
18:26:26 <ehirdiphone> Yo
18:26:55 <Sgeo> Hi ehirdiphone
18:27:01 <Sgeo> Why are you on the iPhone?
18:27:04 <hiato> ehirdiphone: phone?
18:27:07 <hiato> Ah
18:27:19 <ehirdiphone> Meh reasons. Not important. Hello!
18:27:42 <Sgeo> I think I'm overengineering my BF interpreter
18:27:54 <hiato> Have you seen the cw input interface for the iPhone?
18:28:04 <Sgeo> BRB
18:28:19 <ehirdiphone> hiato: ?
18:28:22 <ehirdiphone> No?
18:28:44 <hiato> Morse Code iput, er, iDitDah or somesuch
18:28:50 -!- olsner_ has quit (Quit: olsner_).
18:28:54 <fax> ehird god dammit
18:30:06 <hiato> ehirdiphone: http://kb1ooo.com/iditdahtext/iDitDahText.html
18:30:51 <pikhq> Sgeo: You are *probably* overengineering it.
18:30:52 <ehirdiphone> fax: What?!
18:31:20 <fax> I was wanting to talk to you for ages
18:31:57 <ehirdiphone> fax: At most you had to wait two days.
18:32:24 <ehirdiphone> I /do/ have to pick things up from the old house.
18:32:26 <AnMaster> ehirdiphone you and fax have been missing each other with like 5 minutes for *days*
18:32:33 <ehirdiphone> hiato: Ha
18:32:44 <AnMaster> ehirdiphone, have things improved btw?
18:32:50 <ehirdiphone> AnMaster: Aha :-D
18:33:04 <pikhq> fax: Dude, some people have real lives. Granted, ehird is normally an exception. Still. :P
18:33:10 <AnMaster> pikhq, :D
18:34:32 <ehirdiphone> ais formulated me getting a girlfriend as the most ludicrous explanation for the unit absence possible. Nuff said :P
18:34:50 <fax> nuff said??
18:35:10 <oklopol> well gf's are extremely easy to get
18:35:17 <ehirdiphone> Enough. Except more nuff-y.
18:35:36 <ehirdiphone> AnMaster: Answered in MSG
18:35:37 <oklopol> oh she didn't get the nuff
18:35:42 <ehirdiphone> msg
18:36:00 * AnMaster looks
18:36:02 <fax> wnat the fucking hell is going on
18:36:07 <AnMaster> was watching that video hiato linked
18:36:16 <ehirdiphone> fax: Whaddya mean?
18:36:35 <oklopol> is "pareto optimal" in common usage?
18:36:41 <oklopol> do you all know what it means?
18:37:10 <ehirdiphone> no
18:38:01 <oklopol> okay that's enough of an answer for me
18:38:45 <fax> :C
18:39:16 <ehirdiphone> fax: Be more precise and if you want to talk do.
18:40:24 <fax> 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 <ehirdiphone> fax: I was under the impression you wanted to talk :P
18:42:38 <fax> hi
18:43:01 <Gregor> http://www.nuffy.net/pics/funny/toilate/toilete_signs_08.jpg Little did they know that ZW birds are female :P
18:50:10 <AnMaster> <oklopol> is "pareto optimal" in common usage? <-- what *does* it mean
18:50:49 <AnMaster> <ehirdiphone> fax: Be more precise and if you want to talk do.
18:50:49 <AnMaster> <fax> ehirdiphone do you know who I am ??
18:50:50 <AnMaster> * ehirdiphone_ (~ehirdipho@82.132.248.25) has joined #esoteric
18:50:50 <AnMaster> * ehirdiphone has quit (Remote host closed the connection)
18:50:50 <AnMaster> * ehirdiphone_ is now known as ehirdiphone
18:50:50 <AnMaster> <ehirdiphone> fax: I was under the impression you wanted to talk :P
18:50:52 <AnMaster> <fax> hi
18:50:55 <AnMaster> ehirdiphone, in case you missed some of that
18:51:32 <ehirdiphone> fax: What do you mean, do you know who I am?
18:51:34 <AnMaster> <Gregor> 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 <AnMaster> <fax> I'm your father ehirdiphone. <ehirdiphone> NOOOOOOOOOOOOOOOOOOOOOOOOOOO!
18:52:32 <Sgeo> Bleh at there being no Integer -> Char
18:52:36 <Gregor> 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 <ehirdiphone> Sgeo: Int
18:52:54 <AnMaster> Gregor, har
18:52:56 <ehirdiphone> + fromInteger
18:53:04 <AnMaster> Gregor, "restrooms"?
18:53:05 <fax> toEnum ?
18:53:17 <Gregor> ... yes?
18:53:18 <AnMaster> Gregor, do you mean toilets?
18:53:19 <ehirdiphone> Gregor: Hawt :P
18:53:30 <Sgeo> Maybe I should just have the tape be Tape Char
18:53:37 <AnMaster> Gregor, what is the circle and the triangle symbols?
18:53:39 <AnMaster> are*
18:53:40 <Gregor> AnMaster: In the US, that's just about the only word we don't use to refer to the room :P
18:53:47 <AnMaster> Gregor, heh
18:53:48 <Sgeo> Although that complicates + and - slightly
18:53:50 <Gregor> AnMaster: That I can't answer ...
18:53:54 <Sgeo> well, not really, I guess
18:53:57 <AnMaster> Gregor, ah
18:54:11 <ehirdiphone> Sgeo: succ. pred
18:54:19 <ehirdiphone> Char will do fine.
18:55:04 <AnMaster> Gregor, why call it restrooms?
18:55:10 <AnMaster> Gregor, also what about "loo"?
18:55:20 <AnMaster> "water closet: a toilet in Britain
18:55:20 <AnMaster> wordnetweb.princeton.edu/perl/webwn"
18:55:23 <AnMaster> hm I guess not
18:55:23 <Gregor> That's a word with no meaning whatsoever here.
18:55:40 <pikhq> "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 <AnMaster> apparently Gregor didn't
18:55:56 <Gregor> pikhq: GET OUT OF MY COUNTRY YOU TRAITOR COMMY
18:55:58 <AnMaster> pikhq, I would use toilet?
18:56:00 <Gregor> *COMMIE
18:56:01 <pikhq> Gregor: Hah.
18:56:03 <ehirdiphone> Crapper
18:56:10 <pikhq> AnMaster: "Uh, the toilet's in the bathroom..."
18:56:17 <AnMaster> har
18:56:20 <ehirdiphone> Nobody says water closet
18:56:21 <pikhq> ehirdiphone: "Uh, the toilet's in the bathroom..."
18:56:24 <oklopol> you don't need to call them anything, just say you're gonna take a shit
18:56:29 <ehirdiphone> WC, /maybe/.
18:57:13 <oklopol> "i intend to leak fecal matter out of my ass, where should i do this"
18:57:14 <Gregor> OK, OK, so most people would know what "loo" means.
18:57:27 <AnMaster> 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 <Gregor> But it would be like this "loo" -> "funny British word for bathroom" -> "bathroom"
18:57:38 <Gregor> Not "loo" -> "bathroom"
18:57:40 <AnMaster> it wouldn't be used for a room that contained a bathtub or such as well
18:57:48 <Gregor> Whereas WC would just have people scratching their heads.
18:58:07 <Gregor> AnMaster: "handfat" is officially the greatest word ever.
18:58:09 <AnMaster> WC is common on signs for toilets around here
18:58:11 <Gregor> AnMaster: Sink?
18:58:14 <pikhq> AnMaster: A room with just a toilet is also a bathroom. ;)
18:58:18 <AnMaster> no one would *say* it though
18:58:22 <AnMaster> Gregor, ah yes
18:58:25 <ehirdiphone> AnMaster: yeah
18:58:28 <ehirdiphone> Exactly
18:58:31 <AnMaster> pikhq, it is not!
18:58:34 <AnMaster> well maybe in English
18:58:37 <Gregor> "restroom" and "bathroom" are used interchangeably here.
18:58:39 <pikhq> In floor plans, it's termed a "quarter bath". In spite of having 0 baths.
18:58:41 <Gregor> Not in English, in American vernacular.
18:58:50 <ehirdiphone> I always thought that abba song was about toilets when I was really young
18:58:55 <ehirdiphone> WATERLOO!
18:59:02 <AnMaster> ehirdiphone, well no one would say "water closet" in the same way as no one says "dihydrogen monoxide"
18:59:19 <AnMaster> as in, I actually heard people using it, but just as a joke
18:59:31 <AnMaster> ehirdiphone, hehe
18:59:56 <AnMaster> argh now I feel I have that tune on my head
19:01:01 <AnMaster> ehirdiphone, that "water closet: a toilet in Britain" was from define:loo btw
19:17:01 <ehirdiphone> Flood
19:17:03 -!- dixon has quit (Ping timeout: 276 seconds).
19:17:08 <ehirdiphone> Upfpdgkglc fyoddv fypf cups tx hung ufgo
19:17:35 <AnMaster> ehirdiphone, flood?
19:17:53 <ehirdiphone> 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 <ehirdiphone> 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 <AnMaster> -00:01/10:33, and I'm near the end of this file
19:20:46 <AnMaster> says vlc
19:20:47 <AnMaster> near the end
19:21:02 <hiato> 19:33 < AnMaster> was watching that video hiato linked <------ er?
19:21:06 <AnMaster> funny the way it continues to count
19:21:10 <AnMaster> -00:-02
19:21:23 <AnMaster> okay now it is worse
19:21:29 <AnMaster> 01:08/01:03
19:21:46 <AnMaster> hiato, the link you linked
19:21:57 <AnMaster> had a video demoing the thing on it
19:22:11 <hiato> Ooooooh. Heh
19:22:54 <hiato> 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 <AnMaster> hiato, oh?
19:26:51 -!- Sgeo has quit (Ping timeout: 265 seconds).
19:28:06 <hiato> 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 <hiato> i mean, what is that? The radio station is older
19:28:44 <hiato> and I've been listening for maybe ten minutes
19:28:45 <AnMaster> hiato, possibly in the current segment?
19:28:52 <AnMaster> of something
19:29:18 <hiato> Heh, exactly
19:30:33 <AnMaster> hiato, or 99 indicates a stream
19:30:45 <hiato> se posible
19:30:50 <AnMaster> se?
19:31:02 <hiato> it is, IIRC
19:31:10 <hiato> French
19:31:15 <hiato> non?
19:31:16 <AnMaster> 99:01:01:01 <-- is 99 in hundreds of hours?
19:31:18 <AnMaster> or what
19:31:25 <hiato> No idea
19:31:33 <AnMaster> hiato, well what is the last unit in?
19:31:39 <hiato> let me connct now and show you
19:31:41 <AnMaster> seconds? centiseconds?
19:32:37 <hiato> Pfftt.... no idea
19:32:51 <hiato> 07:17:47 is the one pice of info
19:33:04 <hiato> the other is my corroct listen time
19:33:07 * AnMaster has a 3 line, 14 column lcd here
19:33:18 <AnMaster> should I make it possible to get a console on it?
19:33:21 <AnMaster> or try to at least
19:33:27 <AnMaster> would need a user space daemon for it
19:33:28 <hiato> FTW\
19:33:36 <AnMaster> since I need to program it with libusb
19:33:39 <oklopol> isn't se written c'est
19:33:42 <hiato> s/\//!
19:33:48 <AnMaster> it can only display a limited charset btw
19:34:19 <hiato> oklopol: wouldn't know, never took french
19:34:28 <oklopol> ic
19:34:44 <oklopol> ("isn't ic written i see")
19:34:53 <hiato> ;)
19:36:00 -!- MigoMipo has quit (Read error: Connection reset by peer).
19:37:19 <hiato> 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 <Sgeo> My dad stepped on the switch for the power thing that powers the cable modem
19:38:13 <hiato> Gregor: what is a "mandelstam"?
19:38:23 -!- jcp has joined.
19:38:48 <Gregor> It's a verb. "to mandelstam"
19:39:09 <hiato> Ok, and it's meaning is?
19:39:14 -!- dixon has quit (Ping timeout: 276 seconds).
19:39:25 <Gregor> Well ... it's a mandelly kind of ... stamming.
19:39:26 <hiato> *its
19:41:24 <hiato> Oh? Wouldn't have guessed that, sneaky and deceptive. So it's like like a not so frabtious way of presbiedling
19:41:52 <hiato> -like
19:47:54 <Sgeo> I think my bftape.hs is good enough
19:48:10 -!- adam_d has joined.
19:48:51 <Sgeo> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24660#a24660
19:50:39 <hiato> Sgeo: any particular reason for moveby?
19:50:52 -!- lament has joined.
19:51:05 <Sgeo> The main program stores BF commands as, e.g., BFMove 5
19:51:15 <Sgeo> Instead of just BFRight
19:51:17 <Sgeo> or something
19:51:29 <hiato> Oh, ok
19:53:20 <hiato> I like the modifyTapeHead
19:53:38 <hiato> nice thinking
19:53:49 <Sgeo> ty
19:57:24 <Sgeo> 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 <Sgeo> [in general]
19:58:09 <Sgeo> 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 <AnMaster> Gregor, there?
19:59:15 <Gregor> Yes?
19:59:20 <AnMaster> Gregor, I have a little request for your musical skills
19:59:24 <Gregor> Oh?
19:59:27 <AnMaster> Gregor, something I think might be interesting
19:59:54 <Gregor> Go on
19:59:57 <AnMaster> Gregor, the result of merging the internationale and some of Chopin's music
20:00:04 <AnMaster> I have no idea what it would sound like
20:00:12 <AnMaster> but it sounds interesting
20:00:18 <AnMaster> and I lack the skill to do it myself
20:01:19 <Gregor> Guhhh uhh?
20:01:27 <AnMaster> Gregor, eh?
20:02:09 <AnMaster> Gregor, is that a good or bad sign?
20:02:26 <Gregor> I don't yet know :P
20:02:35 <Gregor> However, I do believe this is probably beyond my skills.
20:03:02 <AnMaster> Gregor, ah :/
20:03:09 <Gregor> Did you have anything more specific than "Chopin's music"?
20:03:39 <AnMaster> 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 <AnMaster> Gregor, but iirc you liked him a lot
20:04:03 <AnMaster> so I assumed you would be able to pick a suitable, slow piece that is typical Chopin
20:04:16 <Gregor> e.g. "Any Chopin Nocturne #whatever" :P
20:04:35 <AnMaster> Gregor, well yes sounds good.
20:04:46 <AnMaster> just pick the number you want
20:05:24 <AnMaster> Gregor, you see, I and some other people were discussing this in another channel (on another network).
20:05:55 <Gregor> 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 <AnMaster> Gregor, eh?
20:07:24 <AnMaster> Gregor, you haven't heard the Internationale?!
20:07:29 <Gregor> Well, I have now.
20:07:38 <AnMaster> (assuming that "ever" was a typo for "n&"
20:07:40 <AnMaster> )
20:07:54 <Gregor> Maybe I have before, but dismissed it as "extraordinarily generic anthem-sounding music"
20:08:03 <AnMaster> Gregor, well so it is!
20:08:08 <AnMaster> Gregor, kind of
20:08:27 <AnMaster> Gregor, it is just that it is about as far as you can get from a Chopin nocturne
20:08:34 <AnMaster> which is why we were discussing merging them
20:08:40 <Gregor> I see :P
20:09:09 <AnMaster> Gregor, I have no idea if it is possible, and if it is, if the result is interesting
20:09:11 <Gregor> 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 <AnMaster> but considered that I once heard a boogie-woogie waltz...
20:09:37 <AnMaster> I don't consider it *impossible*
20:10:22 <oklopol> i'm good at mixing X and deathcore for any value of X, if anyone's interested
20:10:30 <AnMaster> heh
20:10:46 <AnMaster> oklopol, to what ratio?
20:11:11 <oklopol> to any X/deathcore ratio less than or equal to 0.5, i suspect
20:11:48 <oklopol> that was actually mostly a joke, deathcore isn't what i usually write (although it is what i usually listen to).
20:11:56 <AnMaster> 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 <AnMaster> the composer and perfomer is the famous (in Sweden) comedian Povel Ramel
20:12:44 <AnMaster> performer*
20:15:26 <oklopol> 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 <ehirdiphone> oklopol: set X = 0
20:19:23 <ehirdiphone> write me some nothing music
20:19:52 <oklopol> if i mix deathcore and nothing, won't the result be just deathcore
20:20:52 <oklopol> 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 <oklopol> *don't
20:20:58 -!- Sgeo has quit (Ping timeout: 265 seconds).
20:21:05 <ehirdiphone> oklopol: hmm right
20:21:10 <oklopol> god i'm getting tired of inequalities
20:21:23 <ehirdiphone> X = -deathcore
20:21:48 <ehirdiphone> Don't what?
20:22:07 <ehirdiphone> X = -deathcore + i :|
20:22:13 <oklopol> there should be a don't somewhere in there
20:22:20 <dixon> X usually denotes a set
20:22:23 <oklopol> they manage not
20:22:32 <dixon> or matrix
20:22:40 <dixon> Or something that isn't a variable.
20:22:50 <oklopol> eh?
20:23:17 <oklopol> you mean in something like let (X, S, m) be a measure space, X is not a variable?
20:23:32 <oklopol> or what do you mean by variable
20:23:39 <dixon> A variable varies.
20:23:52 <oklopol> err no it doesn't, in math
20:23:57 <dixon> Yes, it does.
20:24:02 <dixon> In math.
20:24:03 <oklopol> oh
20:24:07 <oklopol> this is news to me
20:24:11 <dixon> e.g., y = 3x+6
20:24:15 <ehirdiphone> a variable is just something you plug in values for
20:24:18 <oklopol> but i believe you
20:24:24 <dixon> 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 <oklopol> and in (X, S, m), X can VARY to be any set
20:24:51 -!- ehirdiphone has joined.
20:25:27 <dixon> Not ANY set.
20:25:34 <ehirdiphone> dixon: That's a stupid definition of change.
20:25:46 <dixon> ehirdiphone: Thanks?
20:25:53 <oklopol> absolutely any set can be made a measure space out of
20:26:01 <oklopol> x \in R has more constraints
20:26:10 <ehirdiphone> Yw
20:26:38 <oklopol> 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 <oklopol> what's the difference making x a variable and X not one?
20:26:50 <dixon> oklopol: Vitali set, boiiiiii
20:27:26 <oklopol> what
20:28:06 <oklopol> i'll assume you were joking above
20:28:55 <dixon> I'll assume you're pretending not to know about non-measurable sets.
20:29:29 <oklopol> i know about non-measurable sets
20:29:45 <oklopol> 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 <ehirdiphone> Sgeo_: "meh"
20:30:42 <oklopol> oh you meant
20:30:46 <Sgeo_> well, too many ] will probably cause it to ignore everything after the extra [
20:30:48 <Sgeo_> erm ]
20:30:48 <ehirdiphone> Bad program = undefined behaviour :P
20:30:53 <oklopol> if X is a vitali set, then you can't make a measure space out of it?
20:30:55 <Sgeo_> ehirdiphone, heh
20:30:56 <oklopol> that's not true
20:31:04 <oklopol> obviously
20:32:16 <dixon> ...
20:32:49 <Quadrescence> ehirdiphone: wrong
20:33:14 <ehirdiphone> Quadrescence: about what
20:33:16 <Quadrescence> bad program = doesn't do what it's supposed to
20:33:26 <Quadrescence> or it does but exceedingly poorly
20:33:36 <oklopol> 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 <Sgeo_> This parser is getting uglier by the second :/
20:33:42 <oklopol> even a vitali set
20:33:46 <ehirdiphone> Quadrescence: I meant
20:33:47 <dixon> So if a measurable space has a lebesgue measure, and the Vitali set isn't lebesgue measurable
20:33:55 <ehirdiphone> Feed nonprogram to interpreter
20:33:58 <ehirdiphone> => UB
20:34:05 <Quadrescence> oh okay
20:34:12 <Quadrescence> then you're off the hook
20:34:23 <dixon> 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 <ehirdiphone> THE HOOK
20:34:49 <ehirdiphone> Sgeo_: Use parsec :P
20:34:57 <oklopol> 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 <Sgeo_> ehirdiphone, is that a joke?
20:35:04 <oklopol> because you said X can't be *absolutely any set*
20:35:04 <Sgeo_> After several people told me NOT to?
20:35:05 <ehirdiphone> Sgeo_: no
20:35:13 <ehirdiphone> They're fucking idiots
20:35:21 <oklopol> and said this is because "vitali set boiiiiii"
20:35:24 <pikhq> ehirdiphone: Brainfuck parsing.
20:35:25 <ehirdiphone> Were they in #haskell?
20:35:31 <ehirdiphone> If not disregard them
20:35:36 <oklopol> also you can even make R^n into a measure space such that all vitali sets are measurable
20:35:42 <oklopol> i'll leave this as homework
20:35:43 <ehirdiphone> pikhq: Is a two liner in parsec
20:35:52 <Sgeo_> ehirdiphone, pikhq and Quadrescence and dixon
20:35:58 <pikhq> And 4 lines out of it. :P
20:36:10 <Sgeo_> pikhq, um, this is much much more than 4 lines
20:36:27 <ehirdiphone> Sgeo_: dixon is a moron and pikhq should be ashamed :P
20:36:38 <ehirdiphone> And Quadrescence is a fluffy bunny.
20:36:46 <ehirdiphone> Thusly he can do no wrong.
20:36:52 <ehirdiphone> He is excused.
20:37:07 <Sgeo_> How about this: I do it both ways
20:37:19 <ehirdiphone> TMI
20:37:30 <Sgeo_> rofl
20:37:47 <AnMaster> <oklopol> that's some serious liquid insanity <-- what is?
20:37:48 <Quadrescence> ehirdiphone: dixon is certainly not a moron
20:38:21 <oklopol> Quadrescence: can you explain his statement about X vs x?
20:38:45 <oklopol> i hope there's a better argument out there than vitali set boiiiii
20:38:56 <Sgeo_> 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 <ehirdiphone> Boiiiii
20:39:09 <Quadrescence> Sgeo_: neither
20:39:14 <ehirdiphone> Sgeo_: One that's difficult to both!
20:39:22 <Quadrescence> oklopol: I don't really remember what the argument was
20:39:41 <Sgeo_> It's just that it seems that Haskell tends to be a bit of the latter, imo
20:39:51 <oklopol> Quadrescence: then nm
20:40:07 <oklopol> or read logs, it's not a very interesting argument
20:40:14 <ehirdiphone> Sgeo_: Only because it is new to you.
20:40:26 <Quadrescence> you can reiterate the question/whatever so we are all on the same page
20:40:38 <ehirdiphone> Avoid stating informed opinions until you're informed :P
20:41:03 <oklopol> 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 <oklopol> 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 <Quadrescence> dixon: do you agree with what he just said (that this was the claim, be it true or false)
20:41:51 <oklopol> i don't see how there's any distinction between those
20:41:55 <dixon> Quadrescence: I said X can't assume all values.
20:42:08 <oklopol> well X \in Set, of course
20:42:13 <dixon> e.g., a non-measurable set
20:42:27 <dixon> Assuming lebesgue measure
20:42:32 <oklopol> that statement i just find plain weird
20:42:43 <oklopol> why couldn't you make a non-measurable set into a measure space
20:42:44 <Quadrescence> oklopol: X \in Set or MeasurableSet
20:42:48 <oklopol> Set
20:43:13 <oklopol> any set made into a measure space as for instance (X, {{}, X}, m), m(a) = 0 for all a
20:43:25 <oklopol> *can be
20:43:40 <Sgeo_> Dear Notepad++: Please don't attempt to match [ and ] if they're in single quotes
20:43:57 <dixon> Any negative number can be made nonnegative by adding its inverse. That doesn't make it initially nonegative.
20:43:58 <Quadrescence> Dear Sgeo_, learn to use a decent fucking editor
20:44:13 <oklopol> 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 <oklopol> 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 <Quadrescence> Actually I don't think X is a variable now
20:45:01 <oklopol> why? what's the difference?
20:45:09 <dixon> oklopol: It's not Lebesgue measurable!
20:45:16 <oklopol> we say let X \in Set, and we say x \in R
20:45:26 <oklopol> and then we talk about that one x or X that can't change during the discussion
20:45:27 <dixon> I just said "assuming Lebesgue measure" like 10000000 times
20:45:59 <oklopol> err right, the second time i missed that
20:46:01 <Quadrescence> 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 <oklopol> that's a weird assumption because it's not relevant that X can be non-measurable in some measure
20:46:31 <dixon> The most popular measure :\
20:46:39 <dixon> (among the ladies anyway)
20:46:51 <Quadrescence> (i thought boob size was the most pop)
20:46:53 <oklopol> it's still irrelevant if we're talking about whether X can be made into a measure space
20:47:05 <oklopol> obviously there will be some spaces where X is not a measurable set, for any X except {}
20:47:22 <oklopol> and yeah sure it's the most popular
20:47:35 <dixon> Quadrescence: Make a measure space of boobies. Get your sigma algebra all over that :3
20:48:11 <Quadrescence> oklopol: also IIRC you just interchanged "measure space" and "measurable space" a few times
20:48:22 <oklopol> 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 <oklopol> i seriously doubt that, but maybe, let's see
20:48:51 <Quadrescence> oklopol: I can explain if I add more context to the question
20:48:53 <oklopol> oh well
20:49:27 <oklopol> i did talk about non-measurable set, and meant non-lebesque measurable, that might not have been clear from context
20:49:30 <Quadrescence> idk this discussion is boring let's listen to Sgeo_ talk about stuff
20:49:31 <Sgeo_> Awesome, this parser seems to actually be working
20:49:32 <oklopol> sure add context
20:49:37 <oklopol> yes it's very boring
20:49:50 <Quadrescence> cool his parser is working
20:50:14 <Quadrescence> I wonder if his parser is parsing or if he is confusing lexing with parsing or both
20:50:28 <Sgeo_> Well, kind of. Extra ] causes it to cut off, and it seems to automatically put ] at the end if needed
20:50:40 <Quadrescence> What do you guys think?
20:51:19 <oklopol> hmm
20:51:21 <Sgeo_> It's not working
20:51:40 <Quadrescence> Ah nvm guys his parser isn't working
20:51:40 <oklopol> the fact ] is causing him trouble suggests parsing
20:52:23 <oklopol> i ate so much pizza i'm all twitchy
20:52:32 <Quadrescence> oklopol: yes I agree so I suppose he is talking about parsing and not lexing
20:52:38 <oklopol> is that healthy / even possible?
20:52:43 <oklopol> maybe it's caffeine kicking in
20:52:47 <Quadrescence> no that is not healthy and it is not possible
20:52:59 <oklopol> thought so
20:53:31 <oklopol> Quadrescence: but what do you think, is he using a separate module for the parser and the interpreter
20:54:04 <oklopol> speaking of caffeine, i should probably make some coffee before i get tired
20:54:06 <Quadrescence> probably because he seems to be the type that would overengineer the dick out of something
20:54:19 <dixon> God did that to women
20:54:21 <dixon> hence men
20:54:42 <oklopol> "out of something", so i think god did it to guys
20:54:51 <Sgeo_> I have the definition of the tape and functions that operate on it in a separate module
20:54:59 <oklopol> women are more optimal in many ways
20:55:00 <dixon> oklopol: the pizza is slowing you down
20:55:18 <dixon> I'm going to win our pseudo-argument now >:)
20:55:38 <Quadrescence> 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 <oklopol> 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 <Sgeo_> new tape from old ones
20:56:06 <Sgeo_> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24660
20:56:16 <oklopol> which is away from the equilibrium of perfect humanness
20:57:01 <oklopol> dixon: i never considered it a pseudo-argument, although i agree it was a complete waste of everyone's time
20:57:15 <dixon> oklopol: If we didn't have time to waste, we wouldn't be on IRC
20:57:17 <dixon> Haskell is so anti-climactic.
20:57:25 <dixon> You slave for hours and what do you have to show for it? 44 lines.
20:57:44 <Quadrescence> fuck yeah C \o/
20:57:44 <myndzi\> |
20:57:44 <myndzi\> |\
20:57:51 <Quadrescence> haha i love this bot
20:57:59 <dixon> It can't count.
20:58:12 <oklopol> counted just fine on my screen
20:58:24 <dixon> Have a monospaced font?
20:58:26 <Sgeo_> The modify lines seem to be below the 44
20:58:26 <Quadrescence> dixon: you probs have that alignment junk I hate
20:58:33 <dixon> Quadrescence: DO NOT
20:58:33 <Quadrescence> at a margin
20:58:37 <oklopol> yes, i consider non-monospace ugly
20:58:48 <dixon> oklopol: Do you read websites in monospace?
20:58:50 <oklopol> yes
20:58:55 <dixon> haHAHAHahahAHA
20:58:55 <Quadrescence> oklopol: that is terrible
20:58:56 <dixon> so weird
20:59:01 <Quadrescence> that is the worst idea i've ever heard
20:59:10 <oklopol> also i disable all features on pages, they are just white on black monospace
20:59:16 <ehirdiphone> I helped him set up windows. Everything on his screen is
20:59:20 <oklopol> ehirdiphone made the theme for me
20:59:20 <dixon> HAHahaAHaHahhahaHahahAHa
20:59:21 <Quadrescence> jk Sgeo_'s idea of using parsec to parse bf was the worst idea
20:59:21 <oklopol> yeah
20:59:23 <ehirdiphone> White on black
20:59:27 <ehirdiphone> Consolas
20:59:31 <ehirdiphone> EVERY thing
20:59:37 <dixon> You're so weird.
20:59:40 <oklopol> almost everything, some things override it
20:59:42 <ehirdiphone> NO exceptions. It is beautiful.
20:59:51 <Quadrescence> ehirdiphone: not on the internet
20:59:54 <ehirdiphone> even made an IE stylesheet for it
20:59:56 <oklopol> people are like wtf why is your computer broken
21:00:00 <ehirdiphone> Quadrescence: oh yes
21:00:01 <Quadrescence> well, that is, if you use more than 2 websites on the internet
21:00:03 <ehirdiphone> see ^
21:00:06 <dixon> oklopol: That's just because you use Windows.
21:00:21 <oklopol> what's just because? the override?
21:00:36 <Quadrescence> \o/ _o/ \o/ _o_ \o_
21:00:36 <myndzi\> | | | | |
21:00:36 <myndzi\> /'\ >\ /\ >\ |\
21:00:50 <Quadrescence> who decided to give some of these penises?
21:00:52 <ehirdiphone> oklopol: No the broken
21:00:56 <ehirdiphone> he meant
21:00:58 <Deewiant> If he used something other than Windows they'd say that because it's not Windows
21:01:01 <oklopol> oh hmm yeah maybe
21:01:25 <oklopol> 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 <oklopol> i mean i meet people but never here
21:01:42 <hiato> haha
21:01:52 <dixon> oklopol: Sure you did.
21:02:07 <dixon> oklopol: You just go to your measure theory class and home to fap to it.
21:02:16 <dixon> We now know the truth!
21:02:19 <oklopol> :P
21:02:34 <oklopol> measure theory isn't really what i do, measure spaces are just the only thing i was sure everyone would know
21:02:46 <Quadrescence> Sgeo_: what is a measure space???
21:02:58 <oklopol> not like let [n, k, d]_q R be a linear code
21:02:59 <Sgeo_> ?
21:03:08 <Quadrescence> Sgeo_: What Is A Measure Space?
21:03:15 <oklopol> well where everyone = {dixon} :D
21:03:22 <Sgeo_> Why are you asking me?
21:03:30 <oklopol> Sgeo_: i said everyone knows measure spaces
21:03:37 <oklopol> and *someone* decided to take that literally
21:04:08 <Sgeo_> Can you find someone else to assume to be ignorant?
21:04:18 <Quadrescence> yeah fuuuuuuuuk taking "everyone" LITERALLY since there are so many other ways to take it
21:04:23 <Quadrescence> \o_
21:04:23 <myndzi\> |
21:04:23 <myndzi\> >\
21:04:42 <AnMaster> so broken
21:04:52 <oklopol> i never mean what i say
21:04:59 <Quadrescence> bee are bee i hav 2 pee
21:05:03 <ehirdiphone> AnMaster: only for xchat users
21:05:18 <AnMaster> ehirdiphone, and other similar clients
21:05:25 <AnMaster> I made erc format it that way too
21:05:28 <dixon> oklopol: Or because it was the highest level of knowledge you could surmount in order to battle my raging ego.
21:05:49 <AnMaster> but it uses a static value
21:05:52 <Sgeo_> Woohoo, I think it's working
21:05:53 <AnMaster> and a max column
21:05:55 <AnMaster> <Quadrescence> \o_
21:05:55 <AnMaster> <myndzi\> |
21:05:55 <AnMaster> <myndzi\> >\
21:05:56 <myndzi\> |
21:05:56 <myndzi\> |\
21:06:02 <AnMaster> is what I see
21:06:30 <pikhq> AnMaster: That is a fekking bizarre alignment thing.
21:06:50 <oklopol> no, lowest
21:06:50 <AnMaster> 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 <ehirdiphone> pikhq: aligned rightwards
21:06:58 <AnMaster> pikhq, this it overflows into the other area
21:07:02 <dixon> oklopol: Uh huh!
21:07:04 <pikhq> See, that's bizarro.
21:07:11 <pikhq> ehirdiphone: See?
21:07:13 <oklopol> the linear code thing was the highest level
21:07:15 <oklopol> :P
21:07:15 <AnMaster> pikhq, rightwards is normal
21:07:17 <AnMaster> to me
21:07:20 <AnMaster> xchat does it too
21:07:23 <AnMaster> there it looks like:
21:07:27 <oklopol> i assume you don't care what they are
21:07:30 <oklopol> *know
21:07:31 <pikhq> And that's all that does that.
21:07:31 <AnMaster> <Quadrescence> \o_
21:07:32 <AnMaster> <myndzi\> |
21:07:32 <AnMaster> <myndzi\> >\
21:07:32 <myndzi\> |
21:07:32 <myndzi\> /\
21:07:34 <dixon> oklopol: I lol'd.
21:07:38 <AnMaster> pikhq, see ^
21:07:46 <AnMaster> pikhq, when I used irssi it did it too
21:07:48 <Sgeo_> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24662#a24662
21:07:52 <AnMaster> because I set irssi up that way
21:07:53 <Sgeo_> Seems to be somewhat working
21:08:01 <pikhq> AnMaster: Why do you break your IRC clients?
21:08:05 <Sgeo_> Another function will combine BFAlters and BFMoves etc.
21:08:07 <AnMaster> pikhq, I find it *WAY* easier to read
21:08:27 <pikhq> Bah.
21:08:27 * Sgeo_ wishes it wasn't so ugly
21:08:43 <dixon> Sgeo_: Use another language.
21:09:02 <AnMaster> dixon, then it wouldn't be a bf parser
21:09:03 <ehirdiphone> actually Sgeo_ just wrote it badly :P
21:09:08 <AnMaster> but, say, an intercal parser
21:09:21 <Sgeo_> ehirdiphone, any ideas for improvements?
21:09:24 <AnMaster> or do you mean the language the parser is written in?
21:09:27 <dixon> It wouldn't be in Haskell.
21:09:35 <dixon> AnMaster: The language it was written in .
21:10:12 <ehirdiphone> Sgeo_: don't mention parsing the rest twice. using god forbid a monad would avoid such duplication
21:10:25 <dixon> EWW MONADS
21:10:34 <oklopol> 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 <dixon> Keep your sick functors away from my categories
21:10:53 <oklopol> so not very deep
21:11:06 <oklopol> (have to define what you mention)
21:11:06 <Slereah> Functor?
21:11:09 <Slereah> I hardly know her!
21:11:12 * Sgeo_ is not sure how he'd use a monad to help here
21:11:18 <dixon> oklopol: igi
21:11:26 <ehirdiphone> Sgeo_: Just use parsec
21:11:32 <dixon> ew.
21:11:35 <ehirdiphone> It's Easy.
21:11:49 <oklopol> ew at parsec or linear codes?
21:11:55 <dixon> Parsec.
21:12:00 <dixon> Linear codes are fine.
21:12:14 <oklopol> if you like coding theory (the theory of uniform length codes) then linear codes are very useful
21:12:31 <oklopol> ah cool
21:12:38 <dixon> I like cryptography, so some information theoretic properties of coding and error correction come into platy.
21:12:39 <dixon> play*
21:13:01 <Sgeo_> I'll also do it in Parsec
21:13:06 <Sgeo_> Both ways will be available
21:13:07 <ehirdiphone> 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 <ehirdiphone> Sgeo_: now /that/ is pointless
21:13:24 <dixon> ehirdiphone: Or I could not. That works better for me.
21:13:32 <Quadrescence> ehirdiphone: was that a joke
21:13:37 <Quadrescence> "pointless"
21:13:49 <Sgeo_> ehirdiphone, the non-Parsec way teaches me stuff, the Parsec way makes it a bit more useful for checking stuff
21:13:51 <Quadrescence> because haskell can be written in pointless/POINT-FREE style
21:13:51 <ehirdiphone> Quadrescence: no, im not /that/ inanw yet
21:13:55 <ehirdiphone> *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 <oklopol> i know very little cryptography
21:14:41 <ehirdiphone> dixon: Yeah but you're the most irritating person here except me
21:15:03 <dixon> ehirdiphone: I'm also the second-coolest person here.
21:15:03 <ehirdiphone> I have an age exemption; are you royalty?
21:15:09 <dixon> You'll have to live with the paradox.
21:15:27 <oklopol> am i the coolest?!?!?
21:15:38 <oklopol> a i am i ami amiai maimaimaiamiamiamai
21:15:45 <ehirdiphone> oh i am in awe of your cool
21:15:53 <dixon> Peanut is the coolest.
21:15:53 <oklopol> AM I COOLEST I WUN BE COOLAST :<<
21:15:58 <oklopol> oh
21:16:13 <ehirdiphone> I'm peanutacus
21:16:15 <Quadrescence> http://i.imgur.com/cTSP2.jpg
21:16:27 <oklopol> ehirdiphone: you don't have an age exception for long.
21:16:30 <oklopol> *won't
21:16:36 <dixon> Queen of her domain.
21:16:40 <ehirdiphone> oklopol: orly, how about 18
21:16:43 * Sgeo_ wonders how this parser handles lazy lists
21:16:50 <Sgeo_> Erm, that was poorly phrased
21:16:55 <Quadrescence> yes that was
21:16:58 <Quadrescence> you should be embarrassed
21:16:59 <ehirdiphone> sex in USA = unirritatibg
21:16:59 <oklopol> *exemption
21:17:03 <oklopol> that may be better
21:17:06 <ehirdiphone> *unirritatibg
21:17:14 <Quadrescence> *unirritatibg
21:17:44 <ehirdiphone> My spellchecker has now learned unirritatibg.
21:17:45 <oklopol> 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 <oklopol> and everything
21:17:50 <ehirdiphone> No joke
21:18:01 <Sgeo_> It seems to handle strings with _|_ in the middle nicely
21:18:07 <ehirdiphone> oklopol: BAH
21:18:11 <dixon> oklopol: The Swedish have a saying: If it's not in diapers, it's old enough to be stretched.
21:18:14 <tombom> oklopol: i wonder why
21:18:28 <ehirdiphone> dixon: yeah but they're perverts
21:18:35 <oklopol> yeah i'm no pervert
21:18:38 <dixon> ehirdiphone: Neutral perverts.
21:18:42 <ehirdiphone> tombom: 'cuz oklopol just turned 15
21:18:55 <tombom> yes
21:18:59 <tombom> that was what i was thinking
21:19:04 <oklopol> oh
21:19:11 <ehirdiphone> dixon: the swiss are more neutral and THEY DEFEND CATHOLICISM
21:19:15 <dixon> Or because his boyfriend just turned 15
21:19:21 <oklopol> :P
21:19:23 <dixon> And he's CATHOLIC
21:19:28 <ehirdiphone> or well they share a name with the pope's guards
21:19:33 <Quadrescence> purity brick
21:19:37 <ehirdiphone> SAME THING; BOOYAH
21:19:37 <dixon> HAHAHAHAHAHAHHA
21:19:49 <Quadrescence> pure, haskell
21:19:52 <Quadrescence> all makes sense now
21:20:04 <ehirdiphone> anyway oklopol is like 52 now
21:20:16 * oklopol calculates again
21:20:18 <dixon> That makes sense
21:20:23 <dixon> pedopedo
21:20:33 <dixon> Hitting on my young self.
21:20:35 <ehirdiphone> ;)))
21:20:36 <oklopol> well i do find 15-yo girls sexy like any normal male
21:20:39 <Quadrescence> oklopol: how old are you if you can disclose
21:20:42 <oklopol> that's not pedo
21:20:47 <oklopol> i'm 21
21:20:48 <ehirdiphone> Quadrescence: 21 iirc
21:20:53 <oklopol> just turned
21:20:56 <Quadrescence> i c
21:21:00 <dixon> oklopol: Like you are a vampire
21:21:01 <oklopol> had this big party
21:21:04 <dixon> "Just turned"
21:21:16 <oklopol> :)))))))))))))))
21:21:21 <ehirdiphone> oklopol's bf is me he's saving my penile virginity for 15
21:21:22 <Quadrescence> ehirdiphone: how old are you if you can disclose
21:21:23 <oklopol> no wait i forgot fangs
21:21:27 <ehirdiphone> tru story
21:21:48 <ehirdiphone> Quadrescence: 3
21:21:59 <Quadrescence> ehirdiphone: next time just don't answer or say you don't want to
21:22:09 <oklopol> i would tell you but it may have changed since i last heard it
21:22:20 <ehirdiphone> oklopol: Hasn't
21:22:21 <oklopol> i hate ages, should memorize years of birth instead
21:22:28 <ehirdiphone> just retina irritate Quadrescence
21:22:33 <ehirdiphone> *tryina
21:22:42 <oklopol> oh umm then i wish i hadn't said that
21:22:47 <dixon> oklopol: Birthdays. Using coding theory.
21:22:50 <oklopol> because i have two numbers for your age
21:22:55 <oklopol> 14 or 154
21:22:57 <oklopol> *15
21:23:11 <dixon> Has iPhone in his name, obv 14.
21:23:15 <ehirdiphone> birthday PARADOX mathematics is WRONG
21:23:27 <oklopol> what paradox?
21:23:28 <dixon> Because YOU ARE EDUCATED EVIL
21:23:30 <ehirdiphone> dixon: your accuracy is physically painful
21:23:34 <Quadrescence> time cube
21:23:34 <dixon> oklopol: Birthday paradox
21:23:40 <oklopol> i have heard of that
21:23:52 <oklopol> was it about time dilation or something
21:24:01 <Quadrescence> no
21:24:01 <Sgeo_> No
21:24:01 <oklopol> :P
21:24:05 <ehirdiphone> If it redeems me I bought this thing in 2007 when it was still uncool :|
21:24:09 <oklopol> i have a great memory
21:24:16 <dixon> oklopol: EARTH HAS SIMULTANEOUS FOUR 25 HOUR DAYS
21:24:22 <dixon> YOU ARE EDUCATED EVIL
21:24:23 <oklopol> ehirdiphone: and you waited until it was cool till you started using it?
21:24:23 <dixon> etc
21:24:26 <oklopol> that's... much worse
21:24:27 <dixon> http://timecube.com
21:24:28 <hiato> ALL ELSE ARE EVIL
21:24:32 <ehirdiphone> oklopol: No
21:24:34 <ehirdiphone> :P
21:24:35 <Quadrescence> gene ray 2012
21:24:45 <dixon> 100%
21:24:46 <hiato> YOU STUPID BECAUSE OF EDUCATION LIES
21:24:50 <Sgeo_> 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 <coppro> -1 x -1 = -1!
21:25:00 <dixon> Sgeo_: 23
21:25:03 <oklopol> oh that's the paradox?
21:25:07 <oklopol> i would never have guessed
21:25:20 <ehirdiphone> As much of a paradox as banach-tatami
21:25:24 <ehirdiphone> Tatami
21:25:27 <ehirdiphone> Tarski
21:25:30 <hiato> tarski?
21:25:31 <Sgeo_> At 23 the chance of there being two people who share a birthday is 50%
21:25:37 <Sgeo_> iirc
21:25:38 <tombom> i forget, are larouchites rather dismissive of negative numbers
21:25:48 <dixon> then as you get more than 23, that goes up rapidly.
21:26:07 <dixon> http://en.wikipedia.org/wiki/Birthday_problem for epic win
21:26:08 <Quadrescence> Sgeo_: iirc? you mean "if i just looked at wikipedia behind this window a second ago correctly"?
21:26:12 <ehirdiphone> 24 = 100% because of synchronicity
21:26:17 <Sgeo_> Quadrescence, I didn't
21:26:20 <Quadrescence> k
21:26:22 <Quadrescence> jw
21:26:27 <ehirdiphone> dixon: "epic win" oh please
21:26:30 <dixon> Quadrescence: No, because It old him from my cryptographic memory of awesome
21:26:36 <dixon> ehirdiphone: Yes dear?
21:26:36 <oklopol> i remember 23 from reading some book in like 5th grade
21:26:40 <oklopol> for that probability
21:26:47 <oklopol> not what it means, but the number in that context
21:26:47 <ehirdiphone> dixon: I want a divorce
21:26:57 <dixon> ehirdiphone: I keep the house.
21:26:59 <dixon> And your penis.
21:27:10 <dixon> You can have the kids.
21:27:11 <oklopol> i used to read all sorts of crap as akid
21:27:14 <oklopol> *a kid
21:27:20 <dixon> Me too. Like Playboy.
21:27:23 <ehirdiphone> dixon: ok how about an anullment
21:27:43 <dixon> ehirdiphone: It'd be just like you to not put out and call it quits.
21:27:53 <Quadrescence> 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 <dixon> Why did I ever even think you were so much to want to than do anymore like?
21:28:07 <Quadrescence> it is so cool to meet people who know that much about crypto
21:28:18 <ehirdiphone> Quadrescence: but that means dixon will be
21:28:21 <ehirdiphone> INTERNET
21:28:24 <ehirdiphone> FAMOUS
21:28:32 <coppro> meh, it's D
21:28:33 <dixon> Less Internet-famous than Q.
21:28:48 <Quadrescence> coppro: meh it's D, why meh
21:28:49 <coppro> D is a bad attempt at fixing C++
21:28:53 <Quadrescence> wrong
21:28:58 <ehirdiphone> cpressey is more famous than walter bright :p
21:29:19 <oklopol> i'm less known than all of you put together
21:29:20 <Quadrescence> 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 <coppro> no, D as a language is pretty bad
21:29:41 <ehirdiphone> oklopol: you're -1 famous
21:30:01 <ehirdiphone> if not for time cube just become -1 times more famous
21:30:06 <ehirdiphone> coppro: agreed
21:30:10 <dixon> coppro: D as a language is fine. It's just the implementations that suck.
21:30:17 <ehirdiphone> A hodgepodge of features
21:30:18 * Sgeo_ can't seem to copy from GTK+ applications to any other application
21:30:22 <Quadrescence> D as a language is good (pre 2.0)
21:30:27 <oklopol> no D is okay as a language and the politics is okay, but it has a crappy name
21:30:29 <ehirdiphone> all apropos nothing
21:30:39 <coppro> and the syntax, while easier to parse than C++'s, is even uglier
21:30:46 <Sgeo_> Wiat, it's working now?
21:30:50 <dixon> wat
21:30:53 <Quadrescence> wat
21:30:56 <coppro> ! for templates, wtf
21:30:59 <oklopol> Quadrescence: do you think his code is now working?
21:31:00 <ehirdiphone> wiat
21:31:05 <Quadrescence> oklopol: no
21:31:08 <ehirdiphone> oklopol: No copying
21:31:09 <dixon> coppro: Fixes issues with <<<<<<<<this>>>>>>>>.
21:31:12 <ehirdiphone> From gtk apps
21:31:16 <Sgeo_> Why is it that all-of-a-sudden, copy/paste from XChat is working. It never worked before
21:31:19 <coppro> dixon
21:31:21 <Deewiant> I think the ! is much better than <>, parsing problems or not
21:31:22 <Sgeo_> (and Pidgin)
21:31:23 <coppro> *dixon: what?
21:31:28 <ehirdiphone> dixon: Instead !(!(!(!())))
21:32:00 <dixon> ehirdiphone: Much better to parse.
21:32:01 <Quadrescence> 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 <coppro> so is !
21:32:14 <coppro> dixon: yes, much better to parse. Also uglier
21:32:18 <ehirdiphone> I'd prefer SPECS
21:32:22 <Deewiant> ! is prefix
21:32:28 <ehirdiphone> Quadrescence: yes
21:33:39 <Quadrescence> 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 <Sgeo_> Everything should just use Haskell's type system :D
21:33:55 <Gregor> AnMaster: You've inspired me to actually try to learn to /play/ something by Chopin properly :P
21:33:56 <Deewiant> A TRUE FACT
21:34:08 <Quadrescence> Sgeo_: Yes definitely
21:34:28 <Quadrescence> Especially those things which require values to be a part of types
21:34:40 <Quadrescence> You know, like a type like Matrix(2,3)
21:34:45 <Quadrescence> haskell is totes appropriate for this
21:34:49 * Gregor looks up Raven Riley for comparison
21:34:53 <coppro> Haskell's type system is nice but hardly ideal
21:35:05 <ehirdiphone> Sgeo_: Nnnno
21:35:34 <Quadrescence> 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 <Sgeo_> I've been using Haskell for more than one day
21:36:05 <pikhq> NEEDS MORE LAMBDA
21:36:09 <Sgeo_> Just haven't written a large project in it before
21:36:13 <Quadrescence> Sgeo_: sorry 1 week
21:36:16 <Quadrescence> I mean 1/2 weeks
21:36:25 <Quadrescence> (one half)
21:36:38 <pikhq> THOU SHALT HAVE BUT ONE CHARACTER IN YOUR MACHINE ALPHABET. LAMBDA.
21:36:38 <Sgeo_> How about, I started no later than September 26, 2009
21:36:47 <Sgeo_> And have made Haskell puns before then
21:36:52 <Sgeo_> (Well, one pun)
21:36:54 <pikhq> LAMBDA LAMBDA LAMBDA, LAMBDA LAMBDA.
21:36:57 <ehirdiphone> HASKELL PUNNNNS
21:37:06 <ehirdiphone> It was not the best pun tbqh
21:37:07 <Quadrescence> Sgeo_: Oh it seems you've started about 1 day ago
21:37:35 <Sgeo_> ehirdiphone, execution-wise or concept-wise?
21:37:39 <Quadrescence> esp. since just yesterday you said "is it worth learning haskell?!?!?!"
21:37:50 <ehirdiphone> Sgeo_: erm both :p
21:37:57 <Sgeo_> :/
21:38:10 <ehirdiphone> ;(
21:40:26 <coppro> Sgeo_: Did you know that Haskell curries?
21:40:31 <Sgeo_> coppro, yes
21:40:35 <coppro> :P
21:40:45 <pikhq> Did you know that curry is *delicious*?
21:40:48 <Sgeo_> Is there supposed to be a pun based on someone's name in there?
21:40:52 <coppro> uh, yes
21:41:16 <dixon> Howard you figure that out?
21:41:26 <coppro> the guy the language is named after, even
21:41:33 <ehirdiphone> Haskell my anus
21:41:34 <Sgeo_> coppro, yeah yeah
21:41:42 <pikhq> Haskell Curry. Hooray.
21:41:57 <coppro> for whom both Haskell and currying are named
21:42:15 <ehirdiphone> schoenfinkeling is the proper term
21:42:49 -!- impomatic has joined.
21:42:51 <dixon> Only an iPhone user would schoenfinkel
21:42:58 <impomatic> Hi :-)
21:43:04 <ehirdiphone> dixon: wat.
21:43:24 <dixon> wat.
21:43:39 <pikhq> I think it should be "Haskelling".
21:43:47 <pikhq> "In Haskell, every function is haskelled."
21:43:56 <ehirdiphone> but schoenfinkel invented it!
21:44:09 -!- MigoMipo has joined.
21:44:13 <ehirdiphone> pikhq: untrue
21:44:16 <pikhq> Yeah, well. Schoenfinkel should change his name to Haskell.
21:44:24 <ehirdiphone> (A,B) -> C
21:44:26 <Sgeo_> Wasn't currying invented before Haskell? Haskell Curry did Currying stuff, not Haskell stuff
21:44:35 <ehirdiphone> Sgeo_: No duh
21:44:35 <dixon> I think programmers should stop sullying great mathematicians by naming shitty languages after them.
21:44:49 <ehirdiphone> Curry just popularised Schoenfinkeling.
21:45:01 <Slereah> heh
21:45:03 <ehirdiphone> dixon: oh, go away
21:45:13 <dixon> ehirdiphone: no u
21:45:32 <coppro> everyone knows that things in math and science aren't named after the discoverer, but the researcher
21:45:37 <ehirdiphone> dixon: our sole resident /actual/ mathematician has his name in the haskell98 report
21:45:47 <Slereah> http://verrahrubicon.free.fr/Combinator.pdf
21:45:58 <dixon> ehirdiphone: Much to his embarrassment, I'm sure.
21:46:03 <Quadrescence> i agree with dixon
21:46:17 <Sgeo_> ehirdiphone, who?
21:46:20 <ehirdiphone> dixon: why not ask oerjan?
21:46:28 <dixon> And he's not your sole resident mathematician.
21:46:50 * Sgeo_ thinks ais523 counts as a mathematician.
21:47:04 <dixon> Not if that's secretly alise.
21:47:14 <pikhq> Sgeo_: More of a computer scientists.
21:47:33 <Sgeo_> ais523 is multiple people now?
21:47:34 <Quadrescence> i am a journalist
21:47:39 <ehirdiphone> I dunno, the 2,3 TM work was pretty mathy
21:47:40 <pikhq> dixon: Trolltastic.
21:47:45 <pikhq> Sgeo_: Hah.
21:47:51 <dixon> pikhq: No, I'm serious.
21:48:02 <pikhq> dixon: ... Oerjan == alise wha?
21:48:11 <dixon> pikhq: ais--whatever.
21:48:14 <ehirdiphone> dixon: ais solved the 2,3 TM problem
21:48:29 <pikhq> ais523 == oerjan wha?
21:48:34 <ehirdiphone> Admittedly, only Wolfram cared about the implications
21:48:39 <ehirdiphone> pikhq: == me
21:48:44 <ehirdiphone> apparently
21:48:53 <pikhq> ehirdiphone: ... The hell?
21:49:08 <ehirdiphone> I propose we collectively ignore dixon on the grounds that he is duck-fuckingly annoying
21:49:36 <pikhq> 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 <dixon> pikhq: I asked if ais was alise?
21:50:12 <ehirdiphone> dixon prolly hates wp too :p
21:51:37 <dixon> I don't hate anyone.
21:51:55 <ehirdiphone> but you hate entities
21:52:01 <oklopol> i have nothing against dixon but if everyone else ignores him i'll probably start talking to him here
21:52:07 <oklopol> *stop
21:52:25 <dixon> Yes, the world needs more sheep. Good call.
21:52:44 <ehirdiphone> ok operation Duck Fucking begins, im no longer highlighting dixon at all
21:53:16 <oklopol> nothing wrong with sheeps
21:53:33 <dixon> I find it somewhat humorous, ehirdiphone, that you equate ignoring me to bestiality.
21:53:48 * ehirdiphone Fuchs some Duchs
21:53:51 <Quadrescence> 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 <ehirdiphone> (thx iPhone spell corrector)
21:54:02 <oklopol> you wouldn't stop talking to someone if everyone else just saw your half of all your conversations?
21:54:11 <ehirdiphone> Quadrescence: he wasn't exactly trying for that
21:54:14 <oklopol> why not just talk in pm and spam your half on the channel then
21:54:24 <oklopol> well i guess that's more work
21:54:29 <ehirdiphone> he had his proof wolfram demanded shit he collated it
21:54:36 <ehirdiphone> tada money
21:54:50 <ehirdiphone> he was just playing around to find a proof
21:54:56 <oklopol> Quadrescence: why? (i haven't read it)
21:55:01 <oklopol> (well some of it)
21:55:09 * Sgeo_ doesn't ignore people
21:55:11 <Quadrescence> oklopol: idk becuz i sed so
21:55:15 <ehirdiphone> oklopol: it's not in Computer Modern
21:55:29 <pikhq> Quadrescence: Yeah, it's up to Wolfram's standards, not anyone sane's standards. :P
21:55:29 <dixon> oklopol: No, I'd keep talking just to annoy the people who were ignoring others. But I'm a bastard.
21:56:03 <oklopol> i might too, dunno
21:56:06 <ehirdiphone> Quadrescence: Amuway it's being published in Complex Systems
21:56:19 <ehirdiphone> admittedly
21:56:25 <ehirdiphone> a wolfram journa
21:56:25 <ehirdiphone> L
21:56:32 <ehirdiphone> Last I heard they keep asking him to change it
21:56:42 <ehirdiphone> Been years now
21:56:48 <ehirdiphone> Prolly won't ever get published
21:57:14 <oklopol> oh it says "I" instead of "we"
21:57:23 <oklopol> therefore unpublishable
21:58:13 <ehirdiphone> :D
21:58:24 <dixon> I think it has more to do with the Impact headings and whatnot.
21:59:28 <ehirdiphone> he just used the default openoffice style iirc :p
21:59:38 <ehirdiphone> so probably not impact
22:00:23 <dixon> Really? Looks like Impact Condensed :\
22:00:33 <Quadrescence> it looks like shit
22:00:44 <Quadrescence> (literally, look from a distance)
22:01:12 <oklopol> (well of course it looks like shit, it's not monospaced!)
22:01:43 <dixon> Quadrescence: You're just looking at the Perl code.
22:01:44 <ehirdiphone> Quadrescence: Yeah so what
22:01:44 <ehirdiphone> We're talking maths :P
22:02:02 <Quadrescence> dixon: oops yeah you're right
22:02:07 <ehirdiphone> oerjan used latex so mush
22:02:08 <ehirdiphone> *nyah
22:02:13 <dixon> Math can be beautiful.
22:02:15 <Quadrescence> ehirdiphone: actually we are talking about some computer science
22:02:15 -!- jcp has quit (Read error: Connection reset by peer).
22:02:28 <dixon> It's even more beautiful when typeset properly.
22:02:49 <ehirdiphone> Quadrescence: oerjan is no CSer you whore
22:02:57 <Quadrescence> tru
22:02:57 <ehirdiphone> :|
22:03:12 <Quadrescence> i was kidding anyway since CS is a subset of math
22:03:33 <dixon> subfield, it retains its arithmetic and is closed under... I'm kidding.
22:03:38 <ehirdiphone> yeah :P
22:03:42 <Quadrescence> also oklopol http://www.file-pasta.com/file/0/funktio_rec.pdf
22:04:07 <ehirdiphone> closed under actual physical COMPUTERS OMG
22:04:32 <oklopol> 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 <oklopol> 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 <oklopol> well actually my dream is to ever get anything published anywhere, but anyway
22:07:18 -!- charlls has joined.
22:07:26 <ehirdiphone> submit it to Annals of Mathematics then Rejecta Mathematica
22:07:31 <ehirdiphone> infallible
22:07:41 <dixon> Keep your Masterpieces in a Personal Journal.
22:07:48 <Quadrescence> dixon++++++++++++++++++++++++
22:07:56 <ehirdiphone> dixon: you are zeilberger
22:08:00 <pikhq> oklopol: What about if you demand that they be in monospace with *unrendered* TeX?
22:08:01 <dixon> Yeah, so?
22:08:03 <ehirdiphone> this explains EVERYTHING
22:08:12 <oklopol> :D
22:08:27 <dixon> o
22:08:28 <oklopol> actually i'm fine with math notation
22:08:43 <oklopol> well most of it
22:08:46 <dixon> Me too.
22:09:00 <dixon> Except pochhammer.
22:09:09 <Quadrescence> pochhammer l o l
22:09:16 <ehirdiphone> I like it apart from the inconsistent/ambiguous bits
22:09:20 <ehirdiphone> ...wwwwait
22:11:55 <dixon> And there's some abuse of notation with matrices and unit vectors too, but nothing too bad.
22:12:37 <ehirdiphone> |x| is crappy but most of the rest is fine
22:12:58 <ehirdiphone> (1 massively ambiguous 2 starter = terminator)
22:13:05 <dixon> |x| is amazing
22:13:10 <Quadrescence> |x| is wonderful
22:13:18 <ehirdiphone> lol.
22:13:22 <dixon> ||x|| is slightly annoying
22:13:40 <dixon> Not so much when typeset, but in IRC, etc.
22:13:52 <ehirdiphone> ||x||, for all those negative cardinalities
22:14:06 <Quadrescence> wat
22:14:11 <dixon> wat
22:14:16 <ehirdiphone> Precisely!
22:14:26 <AnMaster> fungot, hi there
22:14:27 <fungot> AnMaster: c-h b c-x o c-s eval c-s etc. automatically translating scheme to human language
22:14:36 <AnMaster> <Gregor> AnMaster: You've inspired me to actually try to learn to /play/ something by Chopin properly :P <-- hahah
22:14:40 <ehirdiphone> :D
22:14:51 <AnMaster> ^style
22:14:51 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
22:14:53 <oklopol> if x is a set and its cardinality is negative, you need ||
22:14:54 <AnMaster> aha
22:14:56 <oklopol> ||.||
22:15:03 <AnMaster> oklopol, how rude :P
22:15:11 <oklopol> what is?
22:15:16 <AnMaster> never mind :P
22:15:21 <oklopol> i will
22:15:34 <AnMaster> innuendo
22:15:35 <AnMaster> there
22:16:02 <ehirdiphone> ||.|| looks like very squashed breasts obvs
22:16:18 <AnMaster> ehirdiphone, goatse?
22:16:20 <Quadrescence> ehirdiphone has never seen boobs
22:16:29 <AnMaster> you don't have enough imagination
22:16:42 <ehirdiphone> Quadrescence has never seen ||.|| shaped breasts, ha!
22:16:47 <ehirdiphone> Crazy man!
22:16:49 <AnMaster> nor have I
22:16:56 <ehirdiphone> Or have you
22:17:00 <AnMaster> no
22:17:05 <pikhq> Coreutils... GNU coreutils...
22:17:07 <Quadrescence> ehirdiphone: you have never seen boobs
22:17:18 <pikhq> I have never before seen a 782 line "cat" program.
22:17:24 <AnMaster> Quadrescence, he knows how to use internet. I doubt he hasn't.
22:17:34 <ehirdiphone> Quadrescence: Stuck in a loop there
22:17:34 <Quadrescence> AnMaster: tru
22:17:40 <ehirdiphone> USE INTERNET
22:17:42 -!- hiato has quit (Quit: underflow).
22:18:03 <AnMaster> pikhq, I have! Last time coreutils cat was mentioned in here.
22:18:17 <pikhq> Hahah.
22:18:29 <pikhq> HOW DO YOU MAKE A FREAKING IMPLEMENTATION OF CAT THAT COMPLEX
22:18:42 <AnMaster> pikhq, tell me
22:18:45 <AnMaster> pikhq, what does it do
22:18:46 <Quadrescence> IDK ADDING ERROR CHECKING AND OTHER THINGS THAT COULD FUCK UP IN C
22:18:54 <ehirdiphone> Cats are complex creatures.
22:19:04 <pikhq> Quadrescence: Hah.
22:19:10 <AnMaster> ehirdiphone, yes, what with all the quantum state you have to emulate
22:19:13 <pikhq> AnMaster: ... Significantly more than file concatentation.
22:19:14 <ehirdiphone> Quadrescence: 782 lines? you write really bad C
22:19:16 <AnMaster> in case someone puts it in a box
22:19:25 <oklopol> i have seen more boobs online than irl
22:19:32 <pikhq> It does rather a lot of manual buffering, as well.
22:19:32 <AnMaster> pikhq, you could try mmap()ing the file if possible
22:19:36 <ehirdiphone> oklopol: shicking
22:19:37 <oklopol> hope this isn't too much of a shock
22:19:39 <AnMaster> that should add some 20 lines at least
22:19:39 <ehirdiphone> Shocking
22:19:43 -!- iamtheobject has quit (Quit: Leaving.).
22:19:52 <dixon> oklopol: That's true of anyone. The difference being you have seen boobs IRL. The same cannot be said by ehird.
22:19:56 <Quadrescence> ehirdiphone: i am v bad at c
22:19:59 <AnMaster> ehirdiphone, "shicking"? XD
22:20:02 <pikhq> AnMaster: That would be saner than what this is doing.
22:20:12 <pikhq> Manual. Buffering.
22:20:12 <AnMaster> pikhq, then what *is* it doing
22:20:17 <AnMaster> what the hell
22:20:23 <AnMaster> *why*
22:20:27 <dixon> cat is so well written
22:20:31 <pikhq> "Because."
22:20:34 <Quadrescence> There's something called *portable C*
22:20:45 <AnMaster> but libc has buffering...
22:20:51 <ehirdiphone> dixon and Quadrescence are currently embracing one another discussing their next contrarian move
22:20:55 <pikhq> Quadrescence: And then there's something called "crazy".
22:21:01 <ehirdiphone> sweet, really
22:21:11 <Quadrescence> pikhq: Yes, and it happens this is just written in portable, robust C
22:21:16 <ehirdiphone> they're allergic to agreeing with anyone else
22:21:17 <Quadrescence> Something that is apparently foreign to you all
22:21:32 <AnMaster> I hope you are joking
22:21:37 <dixon> ehirdiphone: Careful, we may include sardonicism.
22:21:43 <AnMaster> also cat is afaik written for posix systems
22:21:50 <Quadrescence> Yes I am definitely joking because that would be a funny joke
22:22:07 <pikhq> Quadrescence: The point is that there are no C systems without buffered IO.
22:22:08 <AnMaster> yeah thought so
22:22:28 <AnMaster> pikhq, ds9k?
22:22:34 <Quadrescence> pikhq: actually, you're wrong
22:22:42 <pikhq> Fine, "almost no".
22:22:48 <Gregor> "Few"
22:22:49 <AnMaster> pikhq, correction: "no hosted"
22:22:50 <Quadrescence> Most of the standard library stuff is *optional*
22:22:51 <pikhq> Probably not any one with libc.
22:22:56 <dixon> The guys ate RedHat generally know what they're doing.
22:22:59 <AnMaster> Quadrescence, freestanding ones
22:23:00 <dixon> -e
22:23:01 <pikhq> Quadrescence: Buffered IO is K&R.
22:23:10 <Quadrescence> pikhq: K&R is not standard
22:23:23 <AnMaster> dixon, I don't think that is good for your digestion
22:23:29 <dixon> AnMaster: Me either :<
22:23:33 <pikhq> 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 <AnMaster> dixon, :/
22:24:06 <Gregor> So what's all this about maniacs thinking they're going to be using a C system where stdio is unbuffered?
22:24:07 <dixon> pikhq: And it was probably written at least 100 years ago.
22:24:10 <Quadrescence> 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 <pikhq> Oh, look. And this is using
22:24:44 <pikhq> *read* instead of any buffered IO.
22:24:51 <Gregor> 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 <pikhq> Note that read is actually less portable than buffered IO.
22:25:07 <AnMaster> dixon, Yes it is well known Ada Lovelace wrote the first version of GNU cat!
22:25:09 <Gregor> 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 <AnMaster> pikhq, wonderful
22:25:35 <AnMaster> pikhq, is it using write() or?
22:25:45 <Quadrescence> Gregor: A standard is made for a reason
22:25:47 <pikhq> AnMaster: read() and write().
22:25:53 <AnMaster> sigh
22:26:03 <pikhq> Which are common to all POSIX systems, sure, but are not standard C.
22:26:07 <Quadrescence> 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 <Deewiant> Of course a specific C function is less portable than a general implementation strategy ;-P
22:26:50 <pikhq> "read" is portable than the buffered IO primitives in ISO C.
22:27:04 <ehirdiphone> pikhq: ^less
22:27:12 <pikhq> ehirdiphone: Dankon.
22:27:36 <pikhq> So, all the manual buffering increases complexity and reduces portability.
22:27:50 <pikhq> That's fucking madness. Sheer fucking madness.
22:27:55 <AnMaster> pikhq, you forgot a word there
22:27:58 <AnMaster> "<pikhq> "read" is portable than the buffered IO primitives in ISO C."
22:28:02 <AnMaster> more or less?
22:28:05 <oklopol> portability is completely irrelevant
22:28:10 <Quadrescence> yeah true it is definitely fucking madness
22:28:19 <pikhq> AnMaster: less.
22:28:21 <Quadrescence> i'd write cat in like 30 lines lol
22:28:22 <AnMaster> right
22:28:27 <AnMaster> 30!?
22:28:31 <dixon> Yes.
22:28:32 <Deewiant> I'd write it in two
22:28:38 <Deewiant> (If in C)
22:28:41 <AnMaster> hah
22:28:42 <pikhq> oklopol: More complex, less portable, harder to read, less efficient.
22:28:44 <ehirdiphone> AnMaster: /msg
22:28:54 <Quadrescence> pikhq: go do some benchmarks
22:28:59 <Quadrescence> then tell me about efficiency
22:29:00 <Deewiant> pikhq: Less efficient?
22:29:10 <AnMaster> ehirdiphone, mhm
22:29:21 <pikhq> This buffering is also done stupidly.
22:30:20 <pikhq> Not that it *matters*, but damn.
22:30:45 <Quadrescence> seriously were the coders drunk or something?
22:30:59 <pikhq> Quadrescence: GNU.
22:31:04 <Deewiant> Ballmer peak
22:31:24 <dixon> pikhq: Patch it?
22:32:03 <AnMaster> I wonder if they would accept a patch for it
22:32:22 <ehirdiphone> No.
22:32:45 <dixon> Probably not.
22:32:47 <AnMaster> ehirdiphone, you are probably correct
22:33:06 <Quadrescence> Nah the implementation is so shitty why wouldn't any sane person accept a patch
22:33:20 <ehirdiphone> brb
22:33:23 <dixon> If you made a funny webcomic about it though, they might.
22:33:26 <ehirdiphone> read /msg people
22:33:29 <dixon> Worked for XKCD.
22:33:38 <Quadrescence> terrible buffering technique
22:33:40 <Quadrescence> 700 lines
22:33:59 <Quadrescence> not portable
22:34:00 <Quadrescence> inefficient
22:34:16 <fax> oh my god shut up
22:34:41 <pikhq> main(){while(!feof(stdin))putchar(getchar());}
22:34:42 <oklopol> :D
22:34:42 <pikhq> Done
22:34:43 <dixon> Quadrescence: http://codepad.org/yG9ubkE2 obv we should've switched to BSD
22:34:58 <dixon> pikhq: That's not standard C.
22:34:59 <oklopol> fax: aren't you interested in portability and buffering?
22:35:12 <Deewiant> pikhq: You may get an error that isn't EOF
22:35:22 <fax> I am only interested in telling people to shut up
22:35:24 <pikhq> Deewiant: Meh.
22:35:25 <pikhq> :P
22:35:34 <oklopol> oh
22:35:43 <Deewiant> Mine'd've been {int c; while((c = getchar()) != EOF) putchar(c);}
22:35:54 <oklopol> if you want your code to be correct, you don't use C
22:36:03 <Quadrescence> dixon: that is 250 lines that is terrible inefficient etc
22:36:11 <dixon> Both aren't standard C.
22:36:38 <Deewiant> What's nonstandard?
22:36:56 <dixon> main() is assumed int and must return a value.
22:37:03 <fax> nonstandard C can do computation with infintesimals
22:37:11 <Deewiant> Mine was just a compound statement, not the whole thing
22:37:15 <oklopol> heh
22:37:41 <dixon> Deewiant: But it was in { } which was assumed to be main.
22:37:47 <Deewiant> Yes
22:37:50 <Deewiant> In standard C99 you don't have to explicitly return a value
22:38:07 <Quadrescence> main must return
22:38:12 <oklopol> both aren't standard C, but one is!
22:38:13 <Deewiant> Not in C99.
22:38:16 <oklopol> hahahahaha
22:38:42 <dixon> Yes you do.
22:38:49 <Deewiant> No, you don't.
22:38:58 <fizzie> 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 <oklopol> if only there were specs where you could check this stuff
22:39:07 <dixon> Further, the standard restricts main() to main(void) and main(int argc, char **argv)
22:39:13 <pikhq> 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 <Deewiant> (Really, I left out #include <stdio.h> and int main(void) and return 0; because I couldn't be bothered to type them out)
22:39:22 <dixon> Though main() is "acceptable"
22:39:25 <dixon> But not recommended
22:39:47 <dixon> :3
22:39:49 <pikhq> Anyways. How's about non-retarded arguments?
22:39:54 <fax> yeah
22:39:57 <fax> like your mom
22:39:58 <pikhq> Love me some non-retarded arguments.
22:40:05 <Quadrescence> like acne and boils
22:40:17 <dixon> like fax's fagoo
22:41:14 <oklopol> which do you think is better, O(n/\epsilon^2) or O(n^2/\epsilon)?
22:41:23 <Deewiant> (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 <oklopol> \epsilon is the parameter of the approximation, n is the size of input
22:41:47 <dixon> Deewiant: Yes, but still not recommended.
22:42:00 <pikhq> dixon: Yeah, shaddup.
22:42:01 <Deewiant> Your recommendations weren't under consideration. :-P
22:42:11 <Quadrescence> not his recommendation
22:42:29 <fax> I recommend you all STFU
22:42:35 <Quadrescence> tru
22:44:00 <Quadrescence> 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 <Quadrescence> pikhq: yeah, shaddup
22:44:30 <Quadrescence> brb ham
22:44:35 <dixon> OMG I WANT HAM
22:44:38 <pikhq> Quadrescence: We're in agreement, then.
22:45:24 <Deewiant> Quadrescence: It's not in the TC2 changes, I'm pretty sure it was there from the original 9899 onwards...
22:45:27 <fizzie> 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 <Deewiant> Yeah, it's not in the TC1 changes either.
22:46:46 <coppro> I don't think it's 1999-specific
22:47:08 <coppro> C++98 had it, and it's something that would only have been considered as a legacy feature
22:47:19 <dixon> It certainly wasn't in C89 or C90.
22:47:47 <dixon> And I don't know why they'd put it in TC2 if it was in the original draft.
22:48:44 <Deewiant> 9899:TC2 meant the original standard with TC up to 2 applied to it.
22:49:34 <coppro> I don't think so
22:49:34 <fizzie> 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 <coppro> The corrigenda are individually referred to as ISO/IEC 9899/Cor.#:200#
22:50:36 <coppro> err
22:50:44 <coppro> ISO/IEC 9899:1999/Cor.#:200#
22:50:57 <coppro> I do not believe there is a term to indicated the consolidated Standard
22:51:22 <Deewiant> 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 <Deewiant> "ISO/IEC 9899:TC2" was from the header of http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1124.pdf
22:51:48 <fizzie> The WG14/N1124 draft pdf has... right.
22:52:00 <fizzie> Deewiant-ninjutsu is too fast.
22:52:08 <Deewiant> Quite.
22:52:17 <coppro> anyways
22:52:25 <dixon> Speaking of C99, does anyone know a compiler that implements the full standard?
22:52:43 <ehirdiphone> Cormac or something?
22:52:46 <ehirdiphone> Almost does it
22:52:48 <Deewiant> Sun Studio, supposedly.
22:52:52 <coppro> Sun's supposedly does
22:53:09 <coppro> 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 <oklopol> supposedly sun does that
22:53:33 <ehirdiphone> SUN
22:53:38 <ehirdiphone> ... supposedly
22:54:19 <dixon> coppro: It was a compiler extension long before it became standard, but it was never standard.
22:54:25 <dixon> I fucking hate GNU compilers.
22:54:46 <coppro> dixon: like I said, I cannot imagine this feature being included in C++ unless it was standard in C prior
22:55:00 <pikhq> "before it became standard, but it was never standard"
22:55:11 <dixon> Yes.
22:55:25 <ehirdiphone> oh please guys, dixon is just changing his opinions according to ours
22:55:34 <ehirdiphone> First it was LOL GNU IS ROBUST
22:55:39 <pikhq> So, what you're saying is that it is not standard and that it was an extension before it was standard.
22:55:45 <ehirdiphone> Then LOL CRAZY CODE
22:55:47 <pikhq> You're an idiot, and /ignore.
22:55:56 <fax> woah wait are you saying dixon is trolling
22:55:57 <dixon> pikhq: To C89, yes.
22:56:04 <pikhq> fax: Nah, really?
22:56:09 <fax> woah woah that is a pretty strong statement
22:56:15 <ehirdiphone> fax: GOSH
22:56:37 <dixon> pikhq: You can't honestly think implicitly returning 0 was in the C89 standard.
22:56:40 <coppro> unfortunately, I cannot see a public list of DRs for C90
22:57:00 <coppro> btw, let us discuss C90, not C89
22:57:08 <ehirdiphone> Bet dixon doesn't even know there was a C94; well, almost.
22:58:39 <dixon> C89 and C90 are equivalent
22:59:08 -!- augur has quit (Ping timeout: 246 seconds).
22:59:53 <coppro> how do I generate numerals from 000-999 in bash?
23:00:07 <dixon> jot perhaps?
23:00:29 <ehirdiphone> coppro: seq
23:00:39 <coppro> thanks
23:00:56 <ehirdiphone> a nice command
23:02:27 -!- calamari has joined.
23:02:27 <oklopol> ehirdiphone: are you sure all your insults to dixon are justified?
23:02:36 <fax> lol
23:03:07 -!- Mibbigal has joined.
23:03:23 <Quadrescence> bak
23:03:54 * coppro wants a 'wgrep' command
23:04:00 <Quadrescence> also btw C89 is the best
23:04:01 -!- charlls has quit (Ping timeout: 264 seconds).
23:04:08 <Quadrescence> C99 is only good for crypto libs
23:04:10 <Quadrescence> but that's it
23:04:13 <Quadrescence> no exceptions
23:04:14 <ehirdiphone> coppro: w?
23:04:23 <dixon> 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 <fizzie> But seq(1) is not POSIX! How can you suggest such a thing!
23:04:29 <pikhq> Quadrescence: Sorry, I like for(int i = ...)
23:04:34 <pikhq> fizzie: Nor's bash.
23:04:40 <Quadrescence> pikhq: I feel sorry for you too
23:04:54 <pikhq> int i = 0;for(...) is dumb.
23:05:02 <fizzie> pikhq: Yes, though bash was already given in the question.
23:05:07 <Quadrescence> int i; for (i = 0; ...) is not, however
23:05:20 <pikhq> Anyways. Imma go do something more intelligent than talk to you.
23:05:26 <Quadrescence> tru
23:05:32 <dixon> Like feign intelligence.
23:06:01 <dixon> The irony of him ignoring me because his misunderstood what I said is just precious.
23:06:01 <Quadrescence> 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 <dixon> he*
23:06:37 <oklopol> i don't understand it at all
23:06:45 <oklopol> hmm oh
23:07:08 <oklopol> well maybe i wouldn't understand it either
23:07:40 <oklopol> but i know for a fact maintainability is really uninteresting
23:07:52 <Quadrescence> tru
23:08:20 <oklopol> 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 <oklopol> why not write small ones and not write big ones
23:08:37 <fizzie> 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 <fax> ummm
23:09:19 <Quadrescence> fizzie: suppose you are changing variables from int to long in order to use arrays larger than 4GB
23:09:28 <Quadrescence> But god damnit you can't seem to find that bug in your program
23:09:33 <fax> 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 <Quadrescence> fax has never written in C, btw
23:09:57 <dixon> fizzie: You haven't worked on any REAL programs.
23:09:59 <calamari> that's funny...
23:10:09 <Quadrescence> also fax forgot an apostrophe in "trolls"
23:10:13 <fizzie> 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 <Quadrescence> fizzie: no
23:10:27 <calamari> 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 <calamari> **pile
23:10:39 <dixon> Why would you use size_t for loop indexes? It can be negative.
23:10:47 <dixon> unsigned int all the way, baby.
23:10:54 <fizzie> size_t is unsigned, you know.
23:10:57 <fizzie> ssize_t is signed.
23:11:02 -!- coppro has joined.
23:11:12 <Quadrescence> And noone argue with me saying my situation is impractical because it indeed is!
23:11:55 <ehirdiphone> fizzie: See /msh
23:12:01 <ehirdiphone> /msg
23:12:55 <dixon> 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 <calamari> 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 <ehirdiphone> dixon: I'm not annoyed.
23:13:35 <fax> the biggest problem with programs like that is idiots that can't be flexible
23:13:46 <dixon> ehirdiphone: tru
23:13:50 <Quadrescence> (fax has never written a program before)
23:13:56 <fax> they spend years trying to save themselves from getting into fights by making up 'guidlines' and stuff
23:14:20 <dixon> (fax has never followed a guideline before)
23:14:59 <calamari> guidelines change.. so I don't see how that helps long term
23:15:13 <Quadrescence> calamari: really?
23:15:29 <Quadrescence> Well, guidelines never work out in the open source world where there are no dictators
23:15:35 <dixon> calamari: You have to be like the ISO people and have your guidelines change once a decade or so.
23:15:44 <calamari> yes.. short term it helps but long term you're still going to have a mess
23:16:10 <dixon> 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 <Quadrescence> hahaha
23:17:02 <ehirdiphone> fizzie: ping
23:17:12 <dixon> But if you find yourself unstandardized, then you get the mess of incompatibility that is D, Python, Java, etc.
23:17:18 <Quadrescence> hahahahahahhahahaha i found a video of fax on youtube
23:17:20 <ehirdiphone> ^echo hi fizzie
23:17:21 <fungot> hi fizzie hi fizzie
23:17:46 <Quadrescence> 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 <dixon> I wonder how they talked their mom into doing this.
23:19:15 -!- augur has joined.
23:19:30 <fax> shut up augur
23:19:40 <augur> :(
23:19:47 <dixon> Someone fax hates more than me? Pleasure to meet you.
23:19:48 <augur> fax = pthug? :(
23:20:08 -!- tombom has quit (Quit: Leaving).
23:20:38 <dixon> Nevermind, sad face and lack of retort means he's a pussy.
23:20:42 <Quadrescence> dixon: oblique raises [in the] neuromuscular junction
23:21:00 <dixon> Quadrescence: Bicept Lift Ankle Krossover
23:21:11 <Quadrescence> That's Krossover with a K
23:21:14 <dixon> :3
23:21:30 * Sgeo_ tries to again focus on Brainfuck
23:21:47 <ehirdiphone> I'm amazed what bad trolls you are.
23:21:50 <oklopol> Quadrescence: sexy
23:21:55 <oklopol> i took my pants of
23:21:56 <oklopol> *off
23:22:06 <Quadrescence> oklopol: me too
23:22:17 <ehirdiphone> Do you think we would have talked to you if we had anything interesting to discuss?
23:22:33 <augur> oklopol: :o
23:22:35 <fizzie> 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 <Quadrescence> oklopol: this is also worth seeing: http://www.youtube.com/watch?v=4MjTb5A68VA&feature=channel
23:22:53 <ehirdiphone> fizzie: hi
23:22:54 * Quadrescence gets augur off
23:22:57 <Quadrescence> f u
23:23:00 <augur> nooo
23:23:03 <augur> oklopol is MINE >O
23:23:06 <augur> ehirdiphone: hey
23:23:19 <augur> Quadrescence: maybe. if you're nice.
23:23:25 <Quadrescence> 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 <augur> since when am i yours >|
23:23:48 <augur> also, possession is not a transitive relation.
23:23:58 <augur> infact, it's antitransitive
23:24:00 <Quadrescence> uh since I beat some sense into you about rewrite rules
23:24:09 <augur> YOU? hah!
23:24:20 <augur> you're the one who was all like "yeah ok i see your point ill take that into consideration"
23:24:44 <oklopol> "ehirdiphone: Do you think we would have talked to you if we had anything interesting to discuss?" <<< what do you mean?
23:24:49 <Quadrescence> 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 <oklopol> are there older women in that vid too?
23:25:57 <oklopol> ah younger women and pencils with faces. you know what i like man
23:26:24 <Gregor> wtfbbq
23:27:54 <oklopol> pedopen's signature of approval
23:28:57 <dixon> http://image.fpsbanana.com/ico/sprays/pedobear4dzsmalll.jpg
23:31:02 -!- Mibbigal has changed nick to mibygl.
23:31:39 <dixon> Anyone have a suggestion for a good high-school level algebra book?
23:31:55 <oklopol> my suggestion is no one learns high school level algebra
23:32:17 <dixon> Who's the author?
23:32:34 <oklopol> everyone is their own author in that one
23:32:44 <oklopol> no wait
23:32:57 <oklopol> 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 <Quadrescence> hay guise
23:35:39 <dixon> Welcome back, Quadrescence.
23:35:50 <dixon> We missed you.
23:36:06 <Quadrescence> Thanks
23:36:17 <oklopol> don't worry oerjan we noticed you too
23:37:23 <oerjan> argh!
23:37:29 * oerjan tries to be invisible
23:37:52 <oerjan> it says i have the +i flag, why isn't it working?
23:40:54 <oerjan> 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 <Quadrescence> fax: ping
23:43:07 <dixon> oerjan: It's alright, we know The Truth(R)(TM)(C)
23:43:15 <oklopol> oerjan: you shouldn't, there was this fascinating conversation about all sorts of things
23:44:11 <dixon> Yes, it was wonderful. Especially the part about measure spaces, linear coding, and compiler extensions.
23:44:48 <oklopol> actually part of both conversations was about variables
23:45:16 <dixon> They're an important topic.
23:45:28 <fax> variables don't exist
23:46:13 <dixon> Your mood is a variable.
23:46:15 <oerjan> afk
23:53:42 <fizzie> 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 <fizzie> Also preliminary apologies if I mess up chanserv manipulatations somehow. It's amazing what I can mess up.
23:54:12 <Sgeo_> Hm. Besides dealing with consecutive + and -, and > and <, what optimizations can I easily make
23:54:31 <ehirdiphone> fizzie is so soft and sensitive
23:54:40 <Quadrescence> Sgeo_: printing using printf or equivalent, and not simple char in and char out
23:54:41 <Sgeo_> Obviously, two loops means the second can be discarded
23:55:10 <Sgeo_> Quadrescence, I'm talking about manipulating the BF at this point, not the interpreter
23:55:23 <Quadrescence> idgi
23:55:51 <Sgeo_> optimize :: [BFCmd] -> [BFCmd]
23:56:01 -!- ChanServ has set channel mode: +o fizzie.
23:56:16 <ehirdiphone> fizzie: Chanserv is hard. Let's go shopping!
23:56:27 <ehirdiphone> —and neutralised...
23:56:34 <fizzie> Yes, I don't really know why I bother with it anyway.
23:56:37 <ehirdiphone> the Lord Pilot.
23:56:37 <Quadrescence> ...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 <pikhq> Quadrescence: ...
23:56:46 <ehirdiphone> fizzie: You missed one.
23:57:07 <Quadrescence> fizzie: ban me too plz
23:57:33 <fizzie> Quadrescence: I'm trying, I'm trying. It's not as easy as it looks like.
23:57:46 <Quadrescence> any day now
23:57:58 <fizzie> You have a very difficult nickname to spell.
23:58:03 <oklopol> :P
23:58:05 <Quadrescence> q u a d r e s c e n c e
23:58:18 <fizzie> 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 <fizzie> That "akick" thing is really brain-dead.
23:58:49 <fizzie> 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 <ehirdiphone> And nothing of value was lost.
23:59:11 <pikhq> Beats me.
23:59:13 <ehirdiphone> Thanks fizzie!
23:59:26 <ehirdiphone> Have you considered therapy for your op allergy? :D
23:59:40 <fizzie> 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 <ehirdiphone> Topological cream.
00:03:40 -!- mibygl has quit (Quit: Page closed).
00:04:17 <fizzie> 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 <fizzie> (In the "ERROR:main.c:94:main: code should not be reached. Aborted (core dumped)" sense of unfinished.)
00:05:56 <fax> hey ehird
00:06:06 <fax> ever heard of finite fourie transform
00:06:14 <fax> finite fourier transform
00:06:14 <ehirdiphone> So I want a language where self-concatenation results in nop.
00:06:26 <ehirdiphone> So for all code x, xx = nop
00:06:31 <ehirdiphone> fax: Yes....
00:06:37 <fax> :(
00:06:57 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:07:11 <oerjan> ehirdiphone: that's probably easy if you don't also want concatenation to mean execution chaining :D
00:07:12 <ehirdiphone> Flip bit, *, is a self negating op.
00:07:41 <oerjan> otherwise, cpressey already tried that. (burro, was it?)
00:07:47 <ehirdiphone> oerjan: hey, cpressey managed it but hs inverses weren't thr same
00:07:49 <ehirdiphone> His
00:07:58 <ehirdiphone> They were different code iirc
00:08:25 <ehirdiphone> say % moves cell
00:08:51 <ehirdiphone> "If M, then move left; else move right. Toggle M.@
00:09:00 <ehirdiphone> *M."
00:09:06 <ehirdiphone> %% is nop
00:09:08 <oerjan> oh true
00:09:15 <oerjan> xyxy wouldn't be nop
00:09:16 <ehirdiphone> Then suppose ! = toggle M
00:09:22 <ehirdiphone> %!%!
00:09:31 <oerjan> even if primitive operations had that property
00:09:34 <ehirdiphone> That's not nop.
00:09:49 <ehirdiphone> So let's say % doesn't toggle M.
00:10:00 <ehirdiphone> Then %!%! is a nop.
00:10:02 <oerjan> you would need xyx = y for all x,y, essentially
00:10:13 <oerjan> oh right, an _abelian_ group
00:10:22 <ehirdiphone> oerjan: well that's what im doing
00:10:26 -!- dbc has joined.
00:10:45 <ehirdiphone> * flip; % if m then leftelse right; ! toggle m
00:10:46 <oerjan> you end up just xoring bits of features, that way
00:10:56 <oerjan> *bit fields
00:10:58 <ehirdiphone> this is ok so far, right?
00:11:12 <ehirdiphone> %*!%*!
00:11:31 <ehirdiphone> .0 0 0
00:11:37 <ehirdiphone> 0 .0 0
00:11:52 <ehirdiphone> 0 .1 0 (not m)
00:12:06 <ehirdiphone> .0 1 0 (not m)
00:12:12 <ehirdiphone> .1 1 0
00:12:15 <ehirdiphone> dammit
00:12:51 <oerjan> ehirdiphone: each operation would essentially be a flip of some set of bits
00:12:56 <ehirdiphone> eliminate ! Then
00:13:07 <ehirdiphone> > if m then right else left
00:13:17 <ehirdiphone> < if m then left else right
00:13:22 <ehirdiphone> both toggle m
00:13:37 <ehirdiphone> oerjan: new idea
00:13:48 <ehirdiphone> p(reverse p) = nop
00:14:12 <ehirdiphone> *>*< <*>*
00:14:22 <ehirdiphone> 1 0 0 0
00:14:31 <ehirdiphone> 1 .0 0 0
00:14:33 <oerjan> well that's easy since you only need each primitive operation to have that property
00:14:40 <ehirdiphone> 1 .1 0 0
00:14:51 <ehirdiphone> 1 1 .0 0
00:14:58 <ehirdiphone> 1 .1 0 0
00:15:03 <ehirdiphone> yeah that works
00:15:08 <Sgeo_> My optimizer stripped 1781 bytes off of Lost Kingdom
00:15:22 <ehirdiphone> oerjan: is pp = nop feasible
00:15:28 <ehirdiphone> as in potentially tc?
00:15:34 <ehirdiphone> Or at least nontrivial
00:15:38 <oerjan> i don't think so
00:16:05 <ehirdiphone> Then reversing it is.
00:16:32 <oerjan> 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 <ehirdiphone> symmys, is the name.
00:16:56 <calamari> Sgeo_: nice
00:17:11 <Sgeo_> calamari, how so?
00:17:16 <ehirdiphone> oerjan: ha
00:17:20 <calamari> Sgeo_: closer to 2 mb :P
00:17:57 <ehirdiphone> oerjan: ok what about pp=opposite of p
00:18:09 <oerjan> ehirdiphone: that just means ppp = nop, right?
00:18:09 <Sgeo_> 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 <ehirdiphone> oerjan: hmm.. yes, I suppose
00:19:08 <calamari> Sgeo_: my bfbasic language produces rather bloated code, so I'm sure you can do better :)
00:19:21 <oerjan> that seems trickier to understand. hm.
00:19:31 <ehirdiphone> calamari: it is truly hideous code! :)
00:19:41 <Sgeo_> 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 <ehirdiphone> Oppoppo would be a nice name for the pp=opposite p Lang.
00:21:21 <oerjan> 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 <oerjan> hm for finite groups, now what was that theorem...
00:23:07 <ehirdiphone> :D
00:23:31 <calamari> Sgeo_: ???
00:23:49 <Sgeo_> No what I'll call "flat" code (code made up of +-<>) should need to change direction more than twice
00:24:05 <Sgeo_> calamari, Lost Kingdom begins with [-][.].
00:24:10 <Sgeo_> erm, not the last .
00:24:16 <Sgeo_> I'm curious as to why
00:24:40 <calamari> maybe he added that on, but I don't see that in the actual compiler
00:25:01 <Sgeo_> Erm, 3 times, not twice
00:25:07 <coppro> [-][.] seems... dumb
00:25:17 <pikhq> Sgeo_: It's omittable in its entirety.
00:25:30 <pikhq> coppro: I think that's a stripped out set of comment blocks?
00:25:43 <oklopol> p^3 = 1 can be non-abelian iirc
00:26:11 <Sgeo_> pikhq, my optimizer currently isn't perfect
00:26:12 <oklopol> 3x3 upper triangle matrices
00:26:19 <oklopol> err no wait
00:26:21 <Sgeo_> It just emits loops after loops at this point
00:26:29 <pikhq> Hrm.
00:26:54 <oklopol> well anyway there was some sort of example i'm too tired to come up with
00:27:06 <Sgeo_> Also, it won't attempt to optimize + -
00:27:10 <Sgeo_> And I consider that a feature
00:28:24 <oerjan> hm sylow's theorem, but i'm not sure it helps
00:28:27 <oerjan> *theorems
00:28:59 <oerjan> oklopol: oh fine
00:29:16 <oklopol> i'm trying to find it but it seems the webpage of our algebra course is down
00:29:30 <oklopol> somehow you can do it with matrices
00:29:41 <oklopol> 1 on the diagonal ofc
00:29:47 <ehirdiphone> oerjan: or how about p^length(p) = nop :)
00:29:54 <oerjan> now if it's finite it must have order 3^n, at least
00:30:15 <oerjan> ehirdiphone: aigh
00:30:54 <oerjan> hm actually that might give some restrictions
00:30:59 <Sgeo_> It occurs to me that loops nested thus: [++[-]] means that the outer loop doesn't need to be a loo\
00:31:01 <Sgeo_> loop
00:31:09 <ehirdiphone> so
00:31:13 <ehirdiphone> ** is nop
00:31:18 <ehirdiphone> as is ******
00:31:19 <oerjan> ehirdiphone: um wait then every primitive operation is a nop :D
00:31:21 <ehirdiphone> :D
00:31:29 <oklopol> ((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 <oerjan> *^1 you see
00:31:35 <ehirdiphone> oerjan: er I mean
00:31:43 <ehirdiphone> length+1
00:31:48 <oerjan> ok
00:32:00 <ehirdiphone> ********* is nop
00:32:12 <Sgeo_> Or am I incorrect somehow?
00:32:41 <oerjan> ehirdiphone: how do you get the last one?
00:33:20 <ehirdiphone> oerjan: #*** = 3; ***^4 = ************
00:33:21 <oerjan> Sgeo_: the outer loop could still be done 0 or 1 times
00:33:42 <ehirdiphone> #** = 2; **^3 = ******
00:33:44 <Sgeo_> Oh, right
00:33:44 <ehirdiphone> huh
00:33:58 <oerjan> ehirdiphone: l*(l+1) is always even
00:34:10 <ehirdiphone> right...
00:34:15 <oerjan> you are simply getting everything (**)^n
00:34:25 <oerjan> which is equivalent to having just **
00:34:40 <ehirdiphone> x^#x-1 = nop :D
00:34:53 <oklopol> okay checked
00:35:07 <ehirdiphone> so nop from ** is **
00:35:16 <ehirdiphone> from ***, ******
00:35:24 <ehirdiphone> ****, ************
00:35:34 <oklopol> 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 <oklopol> everything except p^3 is obvious, i couldn't do that with ascii notation
00:36:15 <oklopol> would've been much easier to work out in my head
00:36:33 <oklopol> p^3 = 1
00:36:56 <oerjan> ehirdiphone: still all even. and _you_ do realize that concatenating nops gives a nop, right?
00:37:17 <ehirdiphone> oerjan: i'm being silly
00:37:31 <oklopol> CAN WE PLEASE TALK ABOUT THESE GROUPS NOW
00:38:00 <ehirdiphone> oklopol: make em eso
00:38:09 <oklopol> groups are very eso
00:38:19 <oklopol> non-abelian ones
00:38:23 <oklopol> at least
00:38:27 <fax> groups don't exist
00:39:00 <oerjan> oklopol: 3x3 matrices, you said?
00:39:11 <oklopol> yes
00:39:35 <oerjan> so just 3 degrees of freedom...
00:39:58 <ehirdiphone> p^63 = nop
00:40:03 <ehirdiphone> happy? :P
00:40:05 <oklopol> what are degrees of freedom? i've heard of them but didn't really gut it
00:40:37 <oerjan> dimension of space, mostly?
00:40:58 <oklopol> oh
00:41:00 <oklopol> cool :)
00:41:24 <oklopol> 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 <ehirdiphone> fizzie: you're still op >:)
00:42:56 -!- fax has quit (Ping timeout: 265 seconds).
00:43:09 <oerjan> [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 <oerjan> if i did it correctly
00:43:32 <ehirdiphone> iidic
00:44:36 -!- fax has joined.
00:44:49 <fax> ehird
00:45:38 <ehirdiphone> Fax
00:45:45 <fax> hi
00:45:49 <ehirdiphone> hi
00:46:12 <oklopol> oerjan: looks plausible
00:46:15 <ehirdiphone> will you still ignore me if I mention p, q and <-> fax
00:47:24 <ehirdiphone> answer: yes
00:47:47 <oerjan> 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 <fax> I PMd you
00:47:57 <oklopol> = 1, yes
00:47:58 <oerjan> er, = 1
00:48:17 <oklopol> cuz non-abelian
00:48:25 <oklopol> ...and cuz matrix i guess
00:48:45 <oerjan> non-abelian doesn't apply when multiplying a matrix with itself, though
00:48:53 <fax> yo
00:49:22 <oklopol> yeah but you don't use 0 for identity in one place and 1 in another
00:49:33 <oklopol> so because the group isn't altogether abelian, you'd use 1
00:49:36 <oerjan> it was a typo :D
00:49:51 <oerjan> and 1 = identity matrix
00:49:56 -!- jcp has joined.
00:49:59 <oklopol> 02:47… oklopol: cuz non-abelian
00:50:00 <oklopol> 02:47… oklopol: ...and cuz matrix i guess
00:50:06 <oklopol> i included both reasons
00:50:30 <oerjan> WHATEVER
00:50:47 <oerjan> using Z_3 as the field, that gives 9 elements
00:50:50 <oklopol> i mean because the 0 couldn't have been interpreted as the zero matrix
00:50:59 <oklopol> it would definitely still have been the identity matrix
00:51:20 <oerjan> oklopol: oh, and it doesn't need to be a field, a commutative ring is sufficient
00:51:34 <oklopol> so i think the non-abelian thing is a better reason-
00:51:35 <oklopol> *.
00:51:47 <oklopol> well sure
00:54:08 <oerjan> food ->
00:54:16 <oklopol> dog ->
00:58:55 <ehirdiphone> Dog food
01:00:45 <oerjan> now the _next_ question is, can we get an infinite group of this type with finitely many generators?
01:02:14 <oerjan> and then something whose word problem is unsolvable, to perhaps give us TC?
01:02:38 <fax> im TC
01:02:40 <fax> (turning crazy)
01:09:47 -!- Gracenotes has quit (Ping timeout: 260 seconds).
01:09:54 <oklopol> 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 <oklopol> and it's a group because p^-1 = pp
01:10:32 <oerjan> ooh
01:10:37 <oerjan> "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 <ehirdiphone> xD
01:10:54 <oklopol> oh umm
01:10:56 <ehirdiphone> DEAD END REACHED
01:11:02 <oklopol> yeah okay then there must be something wrong with mine
01:11:07 <oklopol> ehirdiphone no the answer is no
01:11:18 <ehirdiphone> :D
01:11:22 <oerjan> it's not entirely unanswered, mind you
01:11:24 <oklopol> so no dead end
01:11:31 <oklopol> huh, isn't it completely answered?
01:11:37 <oerjan> could be
01:11:41 <ehirdiphone> what about ppppp = nop
01:11:43 <oerjan> i'm just reading the article
01:11:49 <oklopol> i think it was by some russians
01:11:54 <oerjan> ehirdiphone: that falls under burnside too.
01:11:57 <oklopol> construction was like 200 pages
01:12:06 <oerjan> however, burnside is generally false, it seems
01:12:12 <ehirdiphone> p^1001 = nop
01:12:12 <oklopol> i just said that
01:12:19 <oerjan> yeah
01:12:22 <oklopol> the answer is no
01:12:40 <oklopol> also that's why construction an not proof
01:12:42 <oerjan> but that doesn't tell us which particular powers are possible
01:12:43 <oklopol> *and
01:13:09 <oklopol> ohhhhhhh
01:13:16 <ehirdiphone> HA
01:13:17 <oklopol> okay i just realized what was wrong with my idea
01:13:25 <ehirdiphone> TIME TO SEARCH FUCKERS
01:13:58 <oklopol> 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 <oklopol> 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 <oklopol> err {a, b}^* obviously
01:14:57 <oerjan> oklopol: um any monoid in which everything has w^3 = 1 is a group
01:15:15 <oerjan> because you have an explicit inverse w^2
01:15:25 <oklopol> hmm well umm yes
01:15:28 <oklopol> so what's wrong
01:15:42 <oerjan> well you haven't proved it's actually infinite...
01:15:54 <oklopol> the thue morse word has no repetition of order more than 2
01:15:59 <oklopol> take subwords
01:16:06 <oklopol> ah!
01:16:25 <oklopol> they need not be different
01:16:54 <oklopol> because you can expand any 1
01:16:57 <oklopol> in the middle
01:18:09 <oerjan> "By contrast, very little is known when exponents are small, exponents 2,3,4 and 6 excepted."
01:19:01 <oerjan> in other words, it's probably still unsolved for many of them
01:19:17 <oerjan> but solved for 3, so probably it's finite then
01:20:41 <oklopol> 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 <oklopol> then you can find an infinite amount of words in a binary alphabet by taking thue-morse
01:22:10 <oklopol> and we have 0*u = 0 = u*0, obviously not a group
01:22:48 <oerjan> "B(m,3), B(m,4), and B(m,6) are finite for all m."
01:22:52 <oklopol> 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 <oklopol> m is the size of finite basis?
01:23:17 <oerjan> (and B(m,2) is even simpler, it's what we discussed above)
01:23:20 <oerjan> yeah
01:23:21 <oklopol> or maybe not basis set of generators
01:23:29 <oerjan> *yeah
01:26:17 <oerjan> "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 <fax> of course it's finite
01:27:02 <oerjan> um and you know this how? :D
01:29:13 <fax> I'm just saying random stuff sorry :(
01:29:32 <impomatic> 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 <fizzie> (Oh, I completely forgot about that.)
01:40:50 <oerjan> "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 <ehirdiphone> so uh all exponents n
01:41:27 <ehirdiphone> would be another way of saying that.
01:41:28 <oerjan> might mean it is hard to make something TC even if B(m, n) is infinite
01:42:10 <oerjan> ehirdiphone: well, it is at the end of a section where every other result _does_ distinguish odd and even
01:42:48 <oerjan> even being apparently more complicated in several respects
01:43:20 <oerjan> s/section/paragraph/
01:45:30 <oerjan> also, http://en.wikipedia.org/wiki/Tarski_monster_group
01:45:52 <oerjan> 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 <fax> oho
01:47:11 <fax> I lik monster groups
01:47:23 <fax> I want to study moonshine but I have to learn some stuff first.....
01:47:30 <oerjan> that's not _the_ monster group though
01:47:34 <fax> yeah
01:47:40 <fax> I didn't realize there was other ones actually
01:47:45 <oerjan> these are actually infinite
01:47:52 <fax> oh :(
01:48:09 <oerjan> but have _only_ finite subgroups
01:48:20 <fax> :D
01:48:21 <oerjan> and only of a particular, prime order
01:49:10 <ehirdiphone> tarski & hutch
01:51:04 <oerjan> ehirdiphone: there are google hits for that
01:52:10 * Sgeo_ somewhat mindboggles at a package that provides isBottom
01:54:09 <ehirdiphone> Sgeo_: there is a package by conal containing a function f such that
01:54:25 <ehirdiphone> f _|_ y = y
01:54:32 <ehirdiphone> f x _|_ = x
01:54:36 -!- charlls has joined.
01:54:45 <ehirdiphone> if neither are _|_, it returns either
01:55:08 <ehirdiphone> (psst: the one that evaluates first)
01:55:11 <Sgeo_> I guess it deals with nontermination by being whichever is .. riht
01:56:47 <ehirdiphone> Definition isBottom {A} (x : A) : bool := true.
01:56:50 <ehirdiphone> Erm
01:56:54 <ehirdiphone> false
01:57:17 <fax> ehird lol I just wrote that in #haskell a moment ago
01:57:25 <ehirdiphone> heh
01:57:36 <ehirdiphone> GET TO BED :|
01:57:42 <fax> I want to try to program for a bit first
01:57:47 <fax> but it probably wont work and I'll go
01:58:11 <ehirdiphone> do computable reals
01:58:24 <ehirdiphone> prove some thing about them
01:59:55 <oerjan> every function on them is continuous, i hear. you could prove that.
01:59:58 <fax> ehird yeah I have been meaning to write in the bit about reals from my book
02:00:07 <fax> oerjan, I'm not sure if that is provable!
02:00:22 <oerjan> oh well
02:00:23 <fax> oerjan, I think it's _true_ but may be sort of like the continuum hypothesis or similar
02:00:43 <fax> I'm thinking interally though
02:00:50 <fax> like inside the type theory
02:00:58 <fax> yeah I hope I am not making this up
02:01:29 <fax> hmm
02:01:42 <fax> I suppose it's related to the unprovability of trichotomy
02:02:00 <fax> 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 <ehirdiphone> fax: you can't prove the trichotomy for comp reals?
02:02:41 <fax> I should try to get a better understand of this stuff
02:02:48 <ehirdiphone> huh
02:02:52 <fax> and write a note on it or something
02:03:03 <ehirdiphone> I wonder if there's q middle ground
02:03:05 <ehirdiphone> *a
02:03:08 <fax> this computable reals and analysis stuff (and meta theory)
02:03:38 <ehirdiphone> maybe continued fractions?
02:04:03 <fax> continued frractions are something I am not very comfortable with...
02:04:11 <ehirdiphone> Why not?
02:04:18 <fax> I never used them
02:04:32 <ehirdiphone> 1+1/1+1/...
02:04:39 <ehirdiphone> there's the golden ratio
02:04:42 <ehirdiphone> DONE
02:04:45 <ehirdiphone> :p
02:04:45 <fax> I know that one :P
02:04:51 <oerjan> 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 <oerjan> (prove forall ...)
02:05:02 <fax> can you solve every quadratic as a continued fraction?
02:05:05 <ehirdiphone> I'll play with them tomorrow I guess
02:05:23 <ehirdiphone> fax: every real has a continued fraction
02:05:32 <Sgeo_> Are there any BF optimizers that optimize back into BF code?
02:05:40 <ehirdiphone> Well Chaitins constant...
02:05:46 <ehirdiphone> Sgeo_: Yes
02:05:48 <oerjan> but you still must be able to define functions on them, and therefore any functions must also have their value close
02:05:57 <fax> x=(-b/a)+(-c/a)/x
02:05:57 <ehirdiphone> Same site as list kingdom
02:06:03 <ehirdiphone> Jonripley or sth
02:06:15 <fax> (-b/a)+(-c/a)/((-b/a)+(-c/a)/((-b/a)+(-c/a)/((-b/a)+(-c/a)...
02:06:16 <fax> I guess
02:06:24 <fax> but that will never give a complex value
02:06:29 <fax> that can't be right
02:06:37 <fax> maybe it diverges on those cases
02:06:43 <ehirdiphone> I'll define continued fractions in coq tomorrow
02:06:53 <Sgeo_> ehirdiphone, no unitness tomorrow?
02:07:10 <ehirdiphone> Not tomorrow. M
02:07:11 <oerjan> fax: quadratics have _periodic_ continued fractions iirc
02:07:18 <oerjan> and only they
02:07:26 <oerjan> *roots of
02:07:41 * Sgeo_ doesn't see any optimization stuff on the site
02:07:53 <ehirdiphone> well a continued fraction still has to be a function...
02:07:58 <ehirdiphone> nat->nat
02:08:03 <ehirdiphone> hmm
02:08:15 <oerjan> oh, well real ones i guess
02:08:36 * Sgeo_ pokes ehirdiphone
02:08:56 <ehirdiphone> Search more
02:09:09 -!- charlls has quit (Quit: Saliendo).
02:09:14 <ehirdiphone> hmm
02:10:04 <ehirdiphone> wait does 0 have a continued fraction
02:10:23 <fax> 0 = 0 + 0/(0 + 0/(0 + ...
02:10:31 <ehirdiphone> 0 repeated means that 0 = 0 + 1/0 = 1/0
02:10:46 <Sgeo_> ehirdiphone, are you sure there's something there?
02:10:49 <ehirdiphone> but 0(1/0) =/= 1
02:10:56 <ehirdiphone> Sgeo_: 80%
02:11:08 <ehirdiphone> fax: oh 0/
02:11:14 * Sgeo_ sees nothing relevant
02:11:23 <fax> is 0/ allowed in a continued fractin?
02:11:30 <fax> it must be...
02:11:33 <ehirdiphone> Just 1/ afaik
02:11:48 <coppro> 0/ would be pretty dumb in a continued fraction
02:12:19 <ehirdiphone> f : N -> N; R(f) = f(0) + 1/(f(1) + 1/...)
02:13:45 <Sgeo_> ehirdiphone, I'm still not seeing it
02:13:50 * Sgeo_ should probably stop whining
02:14:05 <fax> im curious abuot the convergence of this continued fraction for quadratic
02:14:23 <oerjan> Sgeo_: it's clearly been optimized away
02:14:50 <oerjan> fax: no, 1/ only in ordinary continued fractions
02:14:56 <fax> ahhh
02:14:57 <fax> okay
02:15:01 <Sgeo_> If he has one, he either didn't realize the pointlessness of ][loop]
02:15:03 <fax> that makes things harder
02:15:04 <fax> well
02:15:08 <fax> 1/infinity = 0
02:15:16 <Sgeo_> Or he doesn't run his own code through it
02:15:17 <fax> so what's the continued fraction for infinitY?
02:15:24 <oerjan> fax: 1/0 ?
02:15:25 <fax> 1 + 1/0 I guess
02:15:31 <fax> so 0 = 0 + 1/infinty
02:15:48 <fax> so 0 = 0 + 1 /( 1 + 1 /( 0 + 1 /(
02:15:57 <oerjan> i think 0 and infinity are sort of boundary cases
02:16:10 <oerjan> you just let the fraction _end_ there
02:16:19 <ehirdiphone> f 0 := 1; f (S _) := 2 // sqrt 2
02:16:27 <oerjan> or any integer for that matter.
02:16:56 <fax> it seems to orbit around e-4
02:17:01 <fax> and not get smaller
02:17:18 <fax> oh it's getting smaller... just takes some time
02:18:24 <fax> I wonder which infinity it is
02:18:33 <fax> zero is all the same but infinity is all different
02:18:34 <Gregor> The tastiest one.
02:18:46 <fax> one of my favorite infinity is sqrt(2pi)
02:19:01 <fax> thats' 1 + 2 + 3 + 4 + 5 + ... IIRC
02:19:03 <oerjan> >_>
02:19:19 <fax> no sorry it's 1 * 2 * 3 * 4 * 5 * ...
02:19:30 <fax> 1 + 2 + 3 + 4 + 5 + ... = -1/12
02:19:41 <oerjan> clearly.
02:20:08 <fax> hey everyone makes mistakes
02:20:08 <fax> :)
02:20:32 <oerjan> hey wait a minute. now _you_ are doing math and _i_ am saying random nonsense.
02:20:57 <ehirdiphone> fax: also of course all rationals only have finite continued fractions
02:21:09 <ehirdiphone> So really it is nat -> maybe nat
02:21:19 -!- sshc has quit (Quit: leaving).
02:21:24 <fax> oerjan, the old 3/5-switch :)
02:21:29 <ehirdiphone> (two; irrationals have one infinite one)
02:21:46 <fax> (fuck yeah I just referenced wiles proof of fermats lol theorem)
02:22:00 <oerjan> 1 = 1/(0+1/(0+1/(... *whistles innocently*
02:22:16 <fax> ehirdiPHONE can you prove that every rational is finite?
02:22:25 <fax> finite continued fraction
02:22:32 <fax> I am sure that it is true but I wonder how to actually build it
02:22:36 <ehirdiphone> fax: no but wikipedia can
02:22:43 <ehirdiphone> Euclidean algorithm
02:22:48 <ehirdiphone> Checkout
02:22:51 <ehirdiphone> ...
02:22:55 <ehirdiphone> Checkkit
02:23:00 <ehirdiphone> >_>
02:23:07 <oerjan> induction on the size of numerator and denominator
02:23:30 <ehirdiphone> lol
02:24:12 <oerjan> s/and/+/ if you want a specific measure
02:25:00 -!- sshc has joined.
02:26:12 <fax> http://upload.wikimedia.org/math/f/9/7/f9729d86173eced1bc46aeb6087dada9.png <------ nice picture
02:26:57 <oerjan> but but... it's not fractal!
02:27:49 <ehirdiphone> I like the .
02:28:01 <ehirdiphone> The 0 at the end of the recurring 9s
02:30:23 <Sgeo_> New Autotune the news tomorrow!
02:31:51 <coppro> :( Autotune
02:32:00 <oerjan> obama the musical?
02:32:20 * oerjan googles that
02:32:56 <ehirdiphone> Autotune the news!
02:33:02 <ehirdiphone> Autotune the news!
02:33:09 <ehirdiphone> Everything sounds beeettet
02:33:12 <ehirdiphone> Beetter
02:33:16 <ehirdiphone> Autotuuuuuuned
02:34:07 <Sgeo_> 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 <fax> oklopol
03:14:34 <fax> ?
03:25:47 <oklopol> me?
03:27:02 <fax> ffffffff
03:27:08 <fax> I can't remember what I was going to say to you
03:27:22 <fax> oh yeah have you seen divisibility lattices?
03:29:32 <oklopol> yes
03:30:19 <Gregor> Lesse ... 1 is bottom ... is there a top?
03:30:31 <fax> well the top is the number you are factoring
03:30:32 <fax> oh
03:30:35 <oklopol> obviously not
03:30:35 <fax> no I guess it's not
03:30:40 <oklopol> if you take all nats
03:30:43 <fax> what about infinity!
03:30:49 <fax> 1*2*3*4*5*..
03:30:50 <Gregor> Who says you can't divide by infinity?
03:30:58 <fax> that's divisible by everything infinetly many times
03:31:06 <oklopol> that's the obvious way to make it bounded i guess
03:31:18 <fax> you add infinity to make it bounded? :D
03:32:06 <oklopol> well... yes :P
03:32:42 <oerjan> but now you must add more infinities, like 2*2*2*... >:)
03:33:05 <fax> I wonder which ones have values and which dont
03:33:14 <oklopol> what do you mean?
03:33:21 <fax> apparently harmonic series doesn't have a value
03:33:29 <fax> but I am not sure about htat..
03:33:39 <oerjan> although 1*2*3*4*5*... is still on top, all primes divide it infinitely often
03:34:13 <fax> man I just can't understand this chapter
03:44:29 <oklopol> fax: don't be your brain's bitch
03:45:15 <oerjan> pain's bridge
03:45:59 <fax> seriously I have been working on this stuff for 3 days now
03:46:08 <fax> it's very difficult
03:46:10 <fax> I am not Gauss
03:46:26 <oerjan> completely degaussed, in fact
03:46:32 <fax> ..................................................... lol
03:46:43 <oklopol> okay seems the divisibility lattices are distributive
03:47:14 <oerjan> it's just the sum of one N lattice per prime, isn't it
03:48:00 <fax> oklopol, how dod you prove it?
03:48:13 <oklopol> i proved it using the cool characterization i mentioned
03:48:16 <oerjan> (that's how you can use it to program in fractran)
03:48:18 <fax> yes I want to see :)))
03:48:20 <oklopol> in burris' book on universal algebra
03:48:23 <fax> did you find two numbers?
03:48:29 <fax> one for each of those lattices
03:48:34 <oklopol> oh it's really easy to prove
03:48:45 <oklopol> you can just check it yourself if you know the characterization
03:48:53 <oklopol> dunno if it's easy from the definition
03:49:20 <oklopol> 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 <oklopol> oerjan: how do you define the sum of two lattices?
03:50:01 <oerjan> of an infinite number of them, actually...
03:50:11 <oerjan> oh wait
03:50:18 <oklopol> like (x, y) <= (z, w) iff x <= z, y <= w?
03:50:24 <oerjan> yes.
03:50:41 <oerjan> although i realized only a finite number can be different from 0
03:50:41 <oklopol> and that extended to infinite products
03:50:55 <oklopol> hmm
03:51:14 <oerjan> which is analogous to sums of modules/abelian groups
03:51:26 <oerjan> vs. products that are unrestricted
03:51:45 -!- fax has quit (Quit: Lost terminal).
03:52:14 <oerjan> also one thing i remember about distributive lattice is that they are exactly the sublattices of boolean algebras
03:52:20 <oerjan> *lattices
03:52:32 <oklopol> okay so we can take the sublattice of N^P generated by the individual primes, maybe
03:52:44 <oklopol> they are?!?
03:52:49 <oklopol> that's an even cooler characterization.
03:52:51 <oerjan> yes iirc
03:53:05 <oklopol> there's a whole chapter about boolean algebras in the universal algebra book
03:53:16 <oklopol> unfortunately not in the exam so i'm probably not going to read it anytime soon
03:54:00 <oerjan> one way of showing this is that _both_ classes of algebras have only {0,1} as their subdirectly irreducible members
03:54:21 <oerjan> (up to isomorphism)
03:55:29 <oerjan> there's probably a less heavy-weight method, i just happened to learn about subdirectly irreducible algebras once
03:55:41 <oklopol> okay i've actually proved the former
03:55:55 <oerjan> proved what?
03:56:08 <oklopol> err
03:56:21 <oklopol> i seem to have expanded both and said former about one of the two
03:56:28 <oklopol> i've proved that for distributive lattices
03:56:50 <oerjan> proved _what_ for distributive lattices?
03:56:56 <oklopol> xD
03:56:59 <oklopol> err
03:57:19 <oklopol> that the class of distributive lattices has only {0,1} as a subdirectly irreducible member
03:57:30 <oklopol> Exercise 1.11. Show that a distributive lattice is subdirectly irreducible if and only if it
03:57:30 <oklopol> is a 2-element lattice.
03:57:35 <oerjan> ah.
03:57:49 <oklopol> harder than it sounds, that one
03:57:54 <oerjan> from this it should be trivial actually
03:58:01 <oerjan> you don't need the other one
03:58:02 <oklopol> it should, huh.
03:58:34 <oerjan> just note that a product of 2-element lattices is also a boolean algebra
03:58:53 <oklopol> 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 <oklopol> oh
03:59:09 <oklopol> hmm
03:59:35 <oerjan> well the thing is every algebra is a subdirect product of irreducible ones
03:59:52 <oklopol> yes
03:59:55 <oerjan> where a subdirect product is a special kind of subalgebra of a product
03:59:57 <oklopol> right
04:00:13 <oklopol> yeah i know what it is, and i'm starting to see how the proof would go
04:01:06 <oklopol> so umm first of all every distributive algebra must be a subdirect product of {0, 1}'s, which are boolean algebras
04:01:14 <oerjan> yep
04:01:20 <oerjan> *lattice
04:01:28 <oklopol> err right
04:01:39 <oklopol> but why is the subdirect embedding also a boolean algebra?
04:01:47 <oklopol> or wait is that obvious
04:01:59 <oerjan> it's not, it's a _sublattice_ of one
04:02:15 <oklopol> oh lol
04:02:22 <oklopol> okay so actually it is totally trivial
04:02:46 <oklopol> once you get the lemma proved
04:03:00 <oerjan> yeah
04:04:06 <oklopol> 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 <oklopol> so you can separate any pair by a nontrivial congruence, which is equivalent to not being subdirectly irreducible
04:04:38 <oklopol> i'm not sure why i told you that
04:04:45 <oklopol> maybe just because i remembered it.
04:05:47 <oklopol> 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 <oklopol> i have many more uninteresting stories, if you wanna hear
04:06:40 <oerjan> 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 <oerjan> or rather, i though in terms of quotients
04:07:00 <oerjan> *thought
04:07:44 <oerjan> and these congruences exist both for distributive lattices and for boolean algebras
04:08:22 <oklopol> (boolean algebras sort of are distributive lattices, so isn't that obvious)
04:08:27 <oklopol> (?)
04:08:44 <oerjan> well yes as long as you prove "not" is also preserved
04:08:58 <oklopol> hmm right
04:10:30 <oklopol> "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 <oerjan> a /\ ~(a /\ x) = a /\ ~a \/ a /\ ~x = a /\ ~x
04:11:00 <oklopol> i don't like it when people leave things out of definitions, everything starts feeling all blurry and scary
04:11:20 <oklopol> that's not a very clear definition
04:11:43 <oklopol> oerjan: so wait what did that prove exactly
04:12:02 <oerjan> that ~ is preserved by the congruence. at least i think it implies it.
04:12:30 <oerjan> oklopol: well just after i said that you told you already knew about it
04:12:32 <oklopol> let's see if i can even see what it means to be preserved by a congruence...
04:12:56 <oerjan> oh
04:13:06 <oklopol> oerjan: yes, i didn't mean "why did you leave this open", i just needed to fill it
04:13:08 <oerjan> i'm still thinking in terms of quotients, you see
04:13:11 <oklopol> **you*
04:13:19 <oklopol> oh umm hmm right
04:14:11 <oerjan> 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 <oklopol> a is just some element you choose?
04:14:33 <oerjan> yeah
04:14:42 <oerjan> and quotient maps give congruences, of course
04:14:59 <oerjan> um i shouldn't even call it quotient
04:15:06 <oklopol> homomorphism
04:15:13 <oklopol> the kernel is a congruence
04:15:14 <oerjan> yeah
04:15:34 <oerjan> it's just isomorphic to the quotient of the congruence
04:16:07 <oklopol> yes, by the famous whatevermorphism theorem
04:16:35 <oerjan> so essentially all you have to prove is that applying a /\ ... liberally on the right side _does_ make it a homomorphism
04:17:07 <oerjan> and the above equation does that for ~
04:17:41 <oklopol> so you proved h(~(h(x))) = h(~x)?
04:17:48 <oerjan> for /\ it's almost trivial, and for \/ you need the distributive law
04:17:49 <oklopol> where h is the homom
04:18:05 <oerjan> well yeah
04:18:25 <oerjan> where h is the map
04:18:53 <oklopol> shouldn't you prove ~h(x) = h(~x), that is, ~(a ^ x) = a ^ ~x
04:18:59 <oklopol> wait...
04:19:10 <oklopol> i think i'm a bit lost.
04:19:26 <oerjan> nope the thing is that we don't use the same operations on the range (even if it is a subset)
04:19:50 <oerjan> we use the operations with the h liberally reapplied at the end
04:20:15 <oklopol> so like ~y : range = a ^ ~y : domain
04:20:16 <oerjan> so we're defining a new algebra which just happens to share some points
04:20:23 <oerjan> yeah
04:21:05 <oerjan> and this works very well for distributive lattices and boolean algebras
04:21:30 <oerjan> i also played around with doing it for heyting algebras
04:21:46 <oerjan> i got kripke models that way
04:24:08 <oerjan> (heyting algebras are to intuitionistic logic what boolean algebras are to boolean logic)
04:24:23 <oklopol> okay i finally get your one-liner up there.
04:24:31 <oklopol> the range vs domain issue was a bit confusing
04:25:11 <oklopol> oh they are now? i just know they have ->.
04:25:32 <oklopol> and i remember most of the axioms
04:26:09 <oerjan> 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 <oklopol> do you know cylindrical algebras of dimension n and n-valued post algebras?
04:26:31 <oerjan> heck no
04:27:07 <oklopol> okay those were the two weirder examples of algebras in the book
04:28:10 <oklopol> was just wondering because you seem to have an intimate relationship with all the others
04:28:27 <oklopol> i had never heard of heyting algebras either
04:28:40 <oklopol> boolean algebras i had heard of, surprisingly enough
04:28:45 <oerjan> 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 <oklopol> what does true mean? :)
04:29:52 <oklopol> x is true iff 1 -> x or something?
04:29:54 <oklopol> eh
04:29:57 <oklopol> what does that even mean
04:30:04 <oklopol> let me rethink
04:30:07 <oerjan> well 1 is the true element i guess
04:30:25 <oklopol> so x is true means x = 1?
04:30:28 <oerjan> yeah
04:30:51 <oklopol> was that subdirectly irreducible or directly?
04:31:05 <oerjan> subdirectly
04:31:19 <oklopol> i don't know which is more common, prolly subdirect because of the problems direct has
04:31:21 <oerjan> that's what i was dabbling with at the time
04:31:30 <oklopol> right, right
04:32:14 -!- calamari has quit (Ping timeout: 276 seconds).
04:32:58 <oklopol> 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 <oerjan> i also _think_ that if x is not 0, then there is a heyting algebra homomorphism sending x to 1 != 0
04:33:52 <oklopol> there's too much axioms for me to wanna try that straight from the definition
04:34:25 <oklopol> actually not that many but anyway
04:34:28 <oerjan> well it may have been just using a map like x /\ ... and the above trick
04:34:46 <oerjan> or possibly x => ...
04:34:49 <Sgeo_> I.. think, now that I understand how to use StateT, the actual implentation of the interpreter just became trivial
04:34:50 <oerjan> *->
04:35:00 <oerjan> Sgeo_: heh
04:35:22 <Sgeo_> Although not quite.. I don't think sequence does quite what I want it to do
04:35:45 <Sgeo_> Actually, hm. That "trivial" function doesn't quite ty.. n/m
04:35:50 <oerjan> sequence does them one after the other, passing each state to the next, iirc
04:36:08 <oerjan> (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 <oerjan> Sgeo_: what did you want sequence for?
04:39:07 <oerjan> maybe sequence_ would be better?
04:39:29 <oerjan> (you're not interested in any results not in the state, so)
04:40:05 <Sgeo_> oerjan, getting my point about being confused across, I know the difference
04:40:29 <oerjan> ok
04:41:29 <Sgeo_> Besides, if I want to use sequence, I can always use (const () . ) (sequence_ $)
04:41:38 <Sgeo_> Um, don't know if that's exactly what I'd use
04:41:48 <Sgeo_> Also, no _ obviously
04:41:56 * Sgeo_ is not quite a master of pointfree
04:42:35 <oerjan> const () `fmap`
04:42:54 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
04:44:00 <oerjan> however, i think sequence_ sometimes is more tail recursive
04:44:27 <oerjan> since it doesn't need to put on the return value remembered
04:45:37 -!- calamari has joined.
04:48:15 <Sgeo_> Going to go eat now
04:48:27 -!- sshc has joined.
04:55:17 <pikhq> 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 <oerjan> s/use.*: // *whistles innocently*
04:57:24 <pikhq> 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 <Sgeo_> legalify = cmdsToBF . parseBF -- Turns any string into legal BF
05:15:05 <Sgeo_> Well, not checking for hitting the left edge or negatives or anything
05:17:55 <oerjan> any string already is legal BF, unless it has mismatched brackets >:)
05:18:27 <Sgeo_> legalify fixes mismatched brackets
05:18:35 <oerjan> ok then
05:18:48 <Sgeo_> Although fixing might not be what's wanted
05:18:59 -!- lament has joined.
05:19:20 <Sgeo_> (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 <Sgeo_> oerjan, does sequence_ work well with infinite lists?
05:23:22 <oerjan> i think so
05:24:00 <oerjan> sequence_ = foldr (>>) (return ())
05:24:04 <Sgeo_> sequence = fold.. was about to ask
05:24:21 <Sgeo_> Might have said foldl though :/
05:24:37 <Sgeo_> well, sequence_, yeah
05:25:15 <Sgeo_> Well, with >>, there's supposed to be no difference, right?
05:25:20 <Sgeo_> And foldr works with infinite lists
05:25:39 <oerjan> i should think it's intended to be usable
05:26:35 <oerjan> 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 <augur> hey kidos
07:26:15 -!- FireFly has joined.
07:39:43 <adu> hi augur
07:39:51 <augur> 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 <fizzie> 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 <fizzie> s, I think I'm going to unban the other one.
10:11:23 <fizzie> 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 <AnMaster> 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 <AnMaster> ais523, hi btw
13:23:40 <ais523> hi
13:24:55 <AnMaster> any idea about the weird cpu time btw, ais523 ?
13:25:13 <ais523> no
13:25:22 <ais523> hmm... are you overclocking/underclocking the system?
13:25:36 <ais523> it's possible that the CPU has a bogus idea of how much time it's taking, I suppose
13:25:47 <AnMaster> ais523, ondemand cpu speed is in use
13:25:51 <AnMaster> but no overclocking
13:26:24 <AnMaster> but since this process is baiscally CPU bound it is eating about 99% of the CPU all the time
13:26:28 <ais523> hmm
13:26:31 <AnMaster> so the system should be at top speed
13:26:44 <AnMaster> yep, cpufreq-info confirms that system is running at 2 GHz
13:26:58 <AnMaster> and there the process finished
13:27:05 <AnMaster> so hard to tell now afterwards
13:28:02 <AnMaster> (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 <AnMaster> btw, is it just me, or has spam decreased drastically during the past 2 days or so
14:04:44 <AnMaster> I only got one spam during that period, normally I get something like 30 / day or so...
14:05:25 <AnMaster> ais523, ^
14:05:38 <ais523> I'm still getting just as much spam as before
14:05:42 <AnMaster> hm
14:06:00 <AnMaster> pure chance then I guess
14:07:14 <AnMaster> 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 <AnMaster> (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 <AnMaster> "./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 <ais523> AnMaster: those registers do work
14:32:15 <ais523> at least in the UK, telemarketing companies don't want to be tracked down and fined
14:32:41 <AnMaster> true
14:34:44 <AnMaster> ais523, what I meant was that it wouldn't work for spam
14:34:53 <ais523> no, it wouldn't
14:35:04 <ais523> although, a spammer was arrested and fined in California recently
14:35:18 <ais523> it made the headlines, on the basis that nobody expected they'd actually catch one
14:35:50 <AnMaster> ah
14:38:06 -!- fax has joined.
14:38:52 <Gregor> 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 <ais523> yep, the spammer in question was a business doing it deliberately, and even turned up in court to defend itself
14:44:10 <ais523> which is also rather bizzare
14:47:48 <Gregor> AnMaster: Did I ever link http://codu.org/music/vg/gm1.ogg at you?
14:48:17 <AnMaster> not sure
14:48:25 * AnMaster wgets
14:48:55 <AnMaster> Gregor, piano, some sort of synth?
14:49:22 <Gregor> 's more video game music (created per request)
14:49:25 <AnMaster> and hm... some string instrument
14:49:37 <AnMaster> and huh, a lot more
14:49:40 <Gregor> OK, it's an odd ensemble :P
14:49:46 <AnMaster> Gregor, nice though
14:49:51 <AnMaster> so far at least
14:49:59 <AnMaster> Gregor, was there a xylophone?
14:50:05 <ais523> hmm, I generally like video game music
14:50:19 <Gregor> AnMaster: Nothing even similar :P
14:50:35 * ais523 plays it
14:50:51 <AnMaster> Gregor, some percussion thing that sounded somewhat wooden?
14:51:04 <AnMaster> only for a very short period
14:51:14 <Gregor> I assume that you're referring amusingly to the Shamisen :P
14:51:22 <Gregor> Which is a plucked string instrument.
14:51:34 <AnMaster> huh, never heard of Shamisen before
14:51:39 <AnMaster> but yes very nice.
14:52:19 <AnMaster> Gregor, but please provide me a list of the instruments
14:52:30 <AnMaster> also, for which video game was it created?
14:52:50 <Gregor> Just a class project of a friend of a friend.
14:53:02 <Gregor> I can do one better, I think ...
14:53:20 <Gregor> http://codu.org/music/vg/gm1.mid
14:53:26 <Gregor> http://codu.org/music/vg/gm1.rg even
14:54:05 <AnMaster> aargh wth. That isn't the QT theme in rosegarden
14:54:13 * AnMaster wonders why it is mostly black
14:54:21 <Gregor> lol
14:54:23 <AnMaster> it looks like a cross of blender and QT
14:54:26 <AnMaster> awful
14:54:37 <Gregor> 'snot supposed to look like that :P
14:54:50 <AnMaster> Gregor, yeah, let me check other QT apps...
14:55:05 <ais523> yay, I use Rosegarden to
14:55:05 <AnMaster> kate looks normal
14:55:06 <ais523> *too
14:55:14 <AnMaster> hm
14:55:20 <Gregor> konsole and Rosegarden are the only Qt apps I use regularly, and konsole is supposed to be mostly black :P
14:55:22 <ais523> Gregor: why does it go silent from 1:00 onwards?
14:55:38 <oklopol> i like the theme 0.....0b3.....32e.....edge......
14:55:42 <AnMaster> ais523, it isn't?
14:55:49 <AnMaster> ais523, maybe your download failed?
14:55:50 <Gregor> ais523: "It"?
14:55:53 <AnMaster> or youy hit mute?
14:55:56 <ais523> Gregor: your music
14:56:03 <oklopol> with chromatic scale fedcba0123
14:56:06 <Gregor> ais523: Yeah, that's a "you" fail, since it does not :P
14:56:15 <ais523> OK, that's strange, I rewound past 1:00 and then it started working
14:56:17 <oklopol> i guess it's pretty much the only theme
14:56:23 <AnMaster> Gregor, which version of rosegarden do you have?
14:56:36 <Gregor> AnMaster: 1.7.3
14:56:59 <AnMaster> 10.02 here???
14:57:06 <AnMaster> what happened there
14:57:16 <AnMaster> did they jump or something
14:57:22 <Gregor> Guhhh ...? :P
14:57:41 <AnMaster> http://www.rosegardenmusic.com/
14:57:42 <Gregor> Apparently they did.
14:57:48 <AnMaster> aaargh it *is* supposed to look like that
14:57:57 <Gregor> I just use whatever the latest in Debian is X-P
14:58:13 <AnMaster> Gregor, but the gui is supposed to look black, see screenshot on their website
14:58:15 <AnMaster> how awful
14:58:28 <Gregor> Oh, they're doing the retarded year = release number thing.
14:58:35 <AnMaster> it doesn't even fit together
14:58:36 <oklopol> was there a matrix mode in rosegarden
14:58:43 <AnMaster> since it seems to use the GTK style for some stuff
14:58:44 <Gregor> oklopol: Sure
14:58:50 <AnMaster> (as I set up qtconfig to do)
14:58:57 <oklopol> can you get it for win?
14:58:57 <AnMaster> (because I like clearlooks)
14:58:58 <Gregor> But matrix mode is weird and pointless.
14:59:02 <oklopol> eh?
14:59:06 <oklopol> what do you compose in?
14:59:12 <Gregor> NOTATION
14:59:16 <oklopol> 8|
14:59:19 <oklopol> you're insane
14:59:25 <oklopol> music notation is the worst thing ever invented
14:59:26 <AnMaster> same as Gregor said. A lot easier that way
14:59:31 <Gregor> And/or actually a half-competent musician :P
14:59:45 <AnMaster> oklopol, also you record it mostly
15:00:00 <Gregor> Right, yeah, I've got my digital piano plugged into my computer.
15:00:01 <ais523> OK, something is /very/ wrong with Totem ATM
15:00:10 <ais523> Gregor: heh, I used to use NOTATION when I was on Windows
15:00:13 <AnMaster> and then use some quantisise or whatever
15:00:17 <AnMaster> forgot what it was called
15:00:33 <AnMaster> ais523, is this a nodepad joke?
15:00:37 <ais523> no
15:00:38 <oklopol> well sure if you like, but music notation is still a really ugly way to look at the result
15:00:48 <ais523> it's an actual program
15:00:54 <ais523> it's not very good, but it's good /enough/
15:00:56 <oklopol> i mean unless piano music, then it's useful for playing sure
15:01:01 <Gregor> 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 <ais523> 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 <oklopol> STOP DISAGREEING WITH MY INSANE OPINIONS
15:02:20 -!- tombom_ has joined.
15:02:23 <oklopol> i bet i've composed more music than you! (maybe not as much good music, but that's probably not relevant)
15:02:31 <AnMaster> heh
15:03:03 <Gregor> That may or may not be true, I've thrown away vastly more music than I've kept.
15:03:27 <Gregor> But I guess when you make it that fine-grained, it all becomes meaningless :P
15:03:29 <AnMaster> 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 <oklopol> 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 <AnMaster> ah found where to change it
15:04:25 <AnMaster> yay
15:04:26 <oklopol> Gregor: i think the best measure is to measure the amount of measures
15:04:35 <oklopol> ...ever written
15:04:36 <AnMaster> remove thick in preferences for "use thorn style"
15:04:49 <AnMaster> which seems to be the codename of this release or something
15:04:57 <Gregor> þorn
15:05:27 <oklopol> 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 <Gregor> WAIT if that counts then http://codu.org/algorhythms/
15:05:45 <AnMaster> Gregor, huh, how did you manage to not make it play using the sound card?
15:05:46 <oklopol> :D
15:06:03 <Gregor> AnMaster: I have an absurdly complicated system for recording via fluidsynth.
15:06:16 <AnMaster> Gregor, but that is a *.mid, not a *.rg
15:06:28 <ais523> hmm, rosegarden doesn't seem to be working with timidity on this computer
15:06:36 <Gregor> AnMaster: Oh, from rosegarden; it's all configurable somewhere ...
15:06:43 <AnMaster> okay something must be wrong on my side
15:06:44 <AnMaster> hm
15:06:46 <Gregor> oklopol: And more specifically, http://codu.org/music/auto/OUT-T5.ogg (IIRC the link)
15:07:35 <AnMaster> ah found it
15:07:39 <AnMaster> no sound font loaded
15:07:40 <AnMaster> huh
15:07:50 <AnMaster> that is supposed to happen in rc.local wonder what went wrong
15:08:04 <Gregor> ais523: fluidsynth is (way) better anyway (or at least, it would be if it wasn't hugely buggy)
15:08:22 <ais523> meh, all I really care about is being able to hear the notes
15:08:54 <AnMaster> 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 <AnMaster> so rc.local won't work
15:09:32 <AnMaster> Gregor, sb live 5.1 beats fluidsynth IMO
15:09:35 <Gregor> AnMaster: Is it sufficient to just unload the driver, do whatever you need to, then reload the driver?
15:09:58 <Gregor> AnMaster: Yes, probably, but producing recordings of it is annoying (well, OK, same for fluidsynth ... )
15:10:14 <AnMaster> 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 <AnMaster> iwlagn*
15:10:18 <ais523> 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 <AnMaster> Gregor, it won't work right away
15:10:37 <AnMaster> for unknown reason
15:11:02 <Gregor> 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 <AnMaster> or even down but with driver loaded
15:11:17 <AnMaster> tried that too
15:12:33 <ais523> strange; Timidity is working on its own, just not from Rosegarden, but Rosegarden says everything's fine with the MIDI
15:13:09 <AnMaster> 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 <AnMaster> ah I did ask it, but didn't get an answer as far as I can tell
15:13:45 <Gregor> AnMaster: Just a class project of a friend of a friend.
15:14:05 <Gregor> Sort of a StarCraft ripoff :P
15:14:07 <AnMaster> ah right
15:14:09 <AnMaster> heh
15:14:30 <AnMaster> Gregor, starcraft is rts right?
15:14:34 <Gregor> Yes
15:14:37 <oklopol> Gregor: that's completely computer generated?
15:14:45 <oklopol> i've just heard a few of these
15:14:53 <Gregor> oklopol: OUT-T5 is computer-generated notes, human-generated dynamics
15:15:02 <AnMaster> ais523, hm
15:15:12 <oklopol> okay so what does that mean exactly?
15:15:14 <AnMaster> ais523, why timidity?
15:15:19 <oklopol> or maybe i should read the page
15:15:27 <ais523> AnMaster: because I have it handy, for playing MIDI files
15:15:44 <Gregor> 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 <ais523> and Rosegarden's supposed to work out of the box
15:16:00 <ais523> with it
15:16:03 <AnMaster> ais523, hm
15:16:20 <AnMaster> I never got timidity to _not_ crash
15:16:21 <ais523> and did, on my last computer
15:16:27 <oklopol> so... what does human-generated dynamics mean, you play something on the piano, and random notes are substitute?
15:16:27 <AnMaster> it is the most unstable thing I ever seen
15:16:28 <oklopol> *d
15:16:57 <ais523> hmm, and it works fine from Totem
15:16:57 <oklopol> i need technical details
15:17:22 <Gregor> oklopol: Google for a program called Tapper (maybe "tapper conductor program" or something like that)
15:17:37 <AnMaster> 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 <Gregor> 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 <AnMaster> Gregor, dynamics include everything except the which note is played?
15:18:23 <Gregor> 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 <AnMaster> 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 <Gregor> Basically.
15:19:05 <AnMaster> Gregor, what about the pedal?
15:19:42 <AnMaster> (well pedals I guess. But I was thinking of sustain mainly)
15:20:22 <Gregor> That too.
15:20:40 <oklopol> oh dynamics, right, i don't care about dynamics
15:20:46 <AnMaster> huh
15:21:08 <oklopol> you can do that stuff arbitrarily, as long as it's consistent
15:21:14 <AnMaster> Gregor, and I have to say http://codu.org/music/auto/OUT-T5.ogg wasn't very good
15:21:18 <AnMaster> no offence meant
15:21:23 <oklopol> OUT-T5 has its moments
15:21:38 <oklopol> but there's not themes, so it's sort of non-music
15:21:41 <oklopol> *no
15:21:44 -!- alise has joined.
15:21:47 <AnMaster> moments of fits yes.
15:21:48 <AnMaster> ;P
15:22:05 <oklopol> the listener needs a clear melody they analyze
15:22:07 <oklopol> *can analyze
15:22:17 <AnMaster> oklopol, yes indeed
15:22:40 <alise> fax: Aye!
15:23:25 <oklopol> 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 <AnMaster> is it?
15:23:48 <oklopol> for me
15:23:52 <AnMaster> ah
15:23:54 <oklopol> for some reason that's enjoyable
15:25:03 -!- alise_ has joined.
15:25:11 <AnMaster> hi Alex3012
15:25:13 <AnMaster> errr
15:25:15 <AnMaster> hi alise_
15:25:17 <AnMaster> I meant
15:25:34 * AnMaster wonders why the tab order was alise -> alex -> alise_
15:25:36 <oklopol> should i wash the dishes and clean the apartment of just laze around the whole day
15:25:41 <AnMaster> oh wait, last spoken
15:26:03 <oklopol> what, some irc client is actually non-retarded enough to do that?
15:26:08 <alise_> oklopol: many :P
15:26:15 <AnMaster> oklopol, cleaning the apartment of just laze around for an entire day?
15:26:17 <AnMaster> is it that large?
15:26:34 <oklopol> i've tried irssi, xchat and mirc and then something with a bird none of them did
15:26:42 <AnMaster> oklopol, most clients can be set to do last spoken
15:26:48 <oklopol> and various webchats and other things i don't recall
15:26:52 <AnMaster> xchat can definitely, pretty sure irssi can too
15:27:01 <alise_> oklopol: pidgin?
15:27:02 <oklopol> "can", python can do it too
15:27:02 <AnMaster> but yeah I don't think it is default in xchat at least
15:27:06 <alise_> xchat can do it yeah
15:27:08 <alise_> it's just a setting
15:27:08 <oklopol> who gives a fuck, they *don't do it*
15:27:10 <alise_> one flick to do
15:27:14 <AnMaster> oklopol, as in, there is a simple setting
15:27:19 <AnMaster> a single checkbox or such
15:27:22 <oklopol> so why isn't it on
15:27:24 <alise_> prefs -> input box -> last spoken
15:27:30 <alise_> oklopol: 'cuz sometimes it's annoying
15:27:31 <AnMaster> oklopol, because many people don't want that I guess?
15:27:34 <alise_> like if i'm talking to awesome
15:27:35 <alise_> for hours
15:27:38 <oklopol> THOSE PEOPLE ARE WRONG
15:27:38 <alise_> then suddenly asshole butts in
15:27:41 <alise_> and i end up talking to asshole
15:27:54 <fax> o_o
15:27:56 <oklopol> well umm SHUT UP
15:28:05 <oklopol> you too fax
15:28:08 <fax> sorry
15:28:09 <oklopol> nah jk
15:28:21 <oklopol> you don't have to shut up
15:28:30 <fax> but it helps
15:28:38 <oklopol> but you have to agree with me on something, i'm getting tired of being different
15:28:38 <AnMaster> alise_, like: "a<tab>, you are an a<tab> 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 <oklopol> that's a great real life example
15:29:09 <alise_> AnMaster, you are an asshat person.
15:29:15 <oklopol> alise_ you're an alise_ person
15:29:31 <AnMaster> alise_, yeah you can get mistakes like that
15:29:40 <AnMaster> clearly it should be that I'm an awesome person
15:29:44 <oklopol> fax is a fax person
15:29:45 <fax> :(
15:30:01 <AnMaster> oklopol, I know the example is far fetched!
15:30:04 <oklopol> that means frequent teleporter
15:31:09 <oklopol> 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 <ais523> ouch
15:31:45 <oklopol> well assuming it's not my mistake, probably the case is that there's a simple way to fix it
15:32:07 <oklopol> 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 <oklopol> i would explain it but what the algo does is a bit random without context
15:33:25 <deschutron> final year research project eh?
15:34:24 <oklopol> 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 <oklopol> this is my second year
15:34:33 <fax> loll
15:35:31 <oklopol> 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 <oklopol> or not
15:35:46 <oklopol> also not that many mistakes actually
15:35:48 <oerjan> ouch
15:37:51 <Gregor> AnMaster: I didn't write it, so I don't care what you think :P
15:38:27 <oklopol> Gregor: i liked the notes but the dynamics sucked ass!
15:38:35 <Gregor> *sobblecopter* :P
15:38:42 <oklopol> what about rhythm
15:38:45 <oklopol> was that yours?
15:38:49 <Gregor> No
15:38:54 <oklopol> ...because that was pretty good too
15:38:58 <Gregor> :P
15:39:26 <oklopol> shoppe tiem.
15:39:32 <oklopol> ~~>
15:39:38 <oklopol> or wait maybe not just yet
15:40:34 <fax> ~~~~~~~~~>
15:40:54 -!- deschutron has quit (Ping timeout: 258 seconds).
15:46:25 -!- deschutron has joined.
15:47:42 <deschutron> i see
15:49:07 <oklopol> 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 <fax> 15:23 < benmachine> besides which there are languages which are deliberately obnoxious
16:25:34 <fax> 15:23 < EvanR-work> right
16:25:36 <fax> 15:24 < Jafet> PLEASE DO NAME ONE
16:26:32 <ais523> which channel? I recognise Jafet from #nethack
16:26:44 <ais523> Malbolge's probably the best example of a deliberately obnoxious lang, though
16:26:55 <oklopol> i recognize jafet from people pasting what he's said
16:27:29 <fax> lol
16:27:50 <fax> #haskell
16:28:02 <oklopol> so maybe there too
16:29:19 <ais523> fax: did you reply?
16:29:20 <oklopol> Gregor: then why not also put the undynamic'd versions up?
16:29:36 <fax> no
16:29:37 <oklopol> oh wait you do
16:30:00 <fax> I jost hjojddd
16:30:32 <oklopol> oh wait maybe you don't
16:31:06 -!- deschutron has left (?).
16:31:47 <alise_> hi ais523
16:31:59 <ais523> hi
16:32:46 * alise_ is defining the reals via continued fractions in coq
16:35:37 <oklopol> call me 0400243514 and whatever thing finland has, i can't find my cellphone, won't answer
16:35:59 <oklopol> should be something like +358 prolly
16:37:16 <alise_> oklopol: who, me?
16:37:16 <fizzie> Callerying.
16:37:23 <fax> o---:)
16:37:24 <oklopol> whoever
16:37:24 <oklopol> thanks
16:37:28 * alise_ looks up the dailing code
16:37:31 <fax> why do you want called
16:37:34 <oklopol> too late
16:37:36 <fax> why do you want called
16:37:40 <oklopol> fizzie called
16:37:45 <oklopol> i told you
16:37:47 <alise_> yeah it's +358
16:37:53 <alise_> oklopol: what only one call accepted?
16:37:55 <fax> why would anyone want to talk on a phone??????
16:37:59 <oklopol> fizzie: also good, now i can harrass you if i come to helsinki
16:38:08 <fizzie> 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 <oklopol> fax: no one, cell phones are clocks you can find by calling them.
16:38:22 <fax> oh
16:38:34 -!- adam_d_ has joined.
16:38:45 <fizzie> oklopol: The number's on the first google-hit anyway, so no great loss there.
16:38:54 <oklopol> :P
16:39:16 <oklopol> alise_: i don't mind if you call me
16:39:32 <oklopol> now the fucking shoppe ->
16:40:12 <alise_> oh won't answer
16:40:14 <alise_> lame
16:40:17 <alise_> oh well
16:40:23 <alise_> 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 <ais523> 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 <ais523> 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 <Gregor> oklopol: They're there.
17:00:06 <Gregor> oklopol: It's Onerously Uptight Toccata
17:00:11 <Gregor> 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 <alise_> what it was actually played?
17:04:13 -!- coppro has joined.
17:08:53 <Gregor> alise_: Sort of :P
17:09:25 <alise_> link
17:12:52 <Gregor> http://codu.org/music/auto/OUT-T5.ogg
17:13:02 <Gregor> It was "played" with Tapper, so I played the dynamics and tempo, not the notes.
17:14:21 <alise_> eh?
17:14:49 <alise_> I like it
17:16:16 <Gregor> 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 <Gregor> So when it's wildly impossible to play, you can still play it :P
17:19:58 <ais523> Gregor: you have a gift for naming autogenerated music
17:20:16 <Gregor> Random-adverb random-adjective random-type-of-music.
17:20:19 <Gregor> Yes, quite the gift.
17:20:54 -!- adam_d_ has joined.
17:21:08 <ais523> yep
17:21:18 <alise_> ais523: the name is autogenerated too though :P
17:21:18 <ais523> just you manage to pick particularly amusing random choices
17:21:33 <Gregor> Where by "you", you mean "rand()" :P
17:21:40 <ais523> alise_: heh, then he has a gift for amusing random number generators
17:21:46 <Gregor> YES.
17:22:52 -!- charlesq__ has joined.
17:26:19 -!- charlls has quit (Ping timeout: 258 seconds).
17:27:27 <oklopol> ais523: i've done it before, it's always either a finn who calls or no one :<
17:27:42 <oklopol> 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 <ais523> oklopol: ah
17:34:01 <alise_> oklopol: i can tryyyy
17:34:02 <alise_> if you'll answer.
17:34:26 <oklopol> i will then
17:35:09 <alise_> okayyyyyyyyyyyyy what is the number againyyyyyyyyyyy
17:35:26 <oklopol> 0400243514
17:35:45 <alise_> 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 <oklopol> (i seriously hope you don't actually do it... :P)
17:43:25 <alise_> why not
17:43:49 <oklopol> because phone calls are scary
17:44:18 -!- lament has quit (Ping timeout: 276 seconds).
18:15:40 <alise_> this will be so cool i could...
18:15:41 <alise_> submarine it
18:20:38 * Sgeo is alarmingly tired
18:25:49 -!- jcp has joined.
19:03:29 <alise_> hey guyez
19:03:30 <alise_> I wrote a function
19:03:33 <alise_> http://pastie.org/904126.txt?key=dmlvdatdbqpi68fo3gwjg
19:04:23 <alise_> http://pastie.org/904128.txt?key=x8d87tccpvmsig80c46r3w here's the auxiliary proof i used
19:04:31 <alise_> totally by hand i swear
19:05:40 <oklopol> that's fucking beautiful man
19:07:29 <pikhq> alise_: Hmm. For a second there I was going "wait, it's Monday... What's he doing here..." XD
19:07:57 <alise_> pikhq: why's that funny
19:08:21 <alise_> oklopol: sorry to disappoint you man but this is what i actually wrote http://pastie.org/904133.txt?key=sgwgk3z0vdxdip61onraow
19:08:28 <alise_> conclusion: computers are better at writing progams than humans
19:08:29 <alise_> *progams
19:08:32 <alise_> *programs
19:09:00 <alise_> 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 <alise_> and you type omega
19:09:05 <alise_> then you press '.'
19:09:12 <alise_> and it spits out something like http://pastie.org/904128.txt?key=x8d87tccpvmsig80c46r3w
19:09:16 <alise_> and WHAMM totally proved man
19:09:19 <oklopol> alise_: that's pretty too, but not nearly as.
19:09:28 <alise_> eventually we'll just have OmegaCoq
19:09:38 <pikhq> alise_: Unit-ness.
19:09:40 <alise_> Theorem riemannhypothesis : blah blah blah.
19:09:42 <alise_> omega.
19:09:43 <alise_> Qed.
19:09:54 <alise_> 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 <fax> :/
19:10:08 <pikhq> Ah.
19:10:13 * alise_ defines rational and irrational : R -> Prop
19:10:47 <alise_> oh dear wait i need the continued fraction part to be optional
19:11:48 * alise_ defines sqrt(2)
19:13:15 <alise_> Program CoFixpoint twos : CF := step 2 _ twos.
19:13:17 <alise_> 2 is not 0?
19:13:19 <alise_> proved beyotch
19:13:27 <alise_> Program is beautiful
19:13:47 <alise_> Definition sqrt2 : R := real 1 (Some twos).
19:13:49 <alise_> yeah some twos
19:13:51 <alise_> just some of 'em
19:13:56 <alise_> infinity of them to be precise
19:14:24 <alise_> http://pastie.org/904145.txt?key=jynafvfiitwk3wphbwoqfq
19:14:30 <alise_> here's what i need to do to prove that sqrt(2) is irrational
19:15:35 <oklopol> okay could we do as follows, you stop talking about coq till i learn it?
19:16:16 <alise_> oklopol: no :D
19:16:22 <alise_> don't worry, the wildcard' stuff makes no fucking sense to me either
19:16:26 <alise_> it's just coinduction wizardry...
19:16:45 <alise_> seriously you should learn coq though, i'm pretty sure i could prove anything... even that the world is flat
19:16:48 <alise_> that's how awesome it is
19:17:09 <oklopol> have you actually proven anything nontrivial?
19:17:23 <oklopol> sqrt(2) irrational is like elementary school biology homework
19:17:44 <fax> oklopol, he's not even shown that it's sqrt(2)
19:19:22 <alise_> oklopol: no :P
19:19:26 <alise_> i'm only doing this
19:19:29 <alise_> to test my reals
19:19:32 <alise_> via continued fractions
19:19:37 <alise_> Program CoFixpoint twos : CF := step 2 _ twos.
19:19:37 <alise_> Definition sqrt2 : R := real 1 (Some twos).
19:19:37 <alise_> Theorem sqrt2_irrational : irrational sqrt2.
19:19:37 <alise_> intro i.
19:19:37 <alise_> induction i.
19:19:38 <alise_> simpl; auto.
19:19:40 <alise_> assumption.
19:19:44 <alise_> Qed.
19:19:45 <alise_> and yes i didn't even prove it's the square root of two
19:19:48 <alise_> i have no... arithmetic, as such
19:20:10 <oklopol> fax: okay lulz. i just glance at the codes to assess their prettiness.
19:20:11 <alise_> oklopol: also, biology?
19:20:25 <oklopol> yeah biology, it's so easy it doesn't even need to be *math* homework
19:20:32 <fax> oklopl im mad at alise for being a dick to me
19:20:51 <oklopol> she was a dick to you?
19:20:55 <alise_> 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 <alise_> then he said if i don't do it right now she won't talk to me any more
19:21:05 <alise_> *she
19:21:08 <alise_> fucking pronouns and irc
19:21:15 <alise_> then I didn't, then she stopped talking to me
19:21:35 <fax> you are so short sighted alise that has nothing to do with it
19:21:48 <oklopol> alise_: it's not what you said, it's the way you said it
19:22:12 <alise_> yawn
19:22:22 <oklopol> IT'S FUNNY TO ME
19:22:31 <oklopol> fax: i'm mad at her too now
19:22:47 <fax> http://fermatslasttheorem.blogspot.com/2006/05/basic-properties-of-cyclotomic.html
19:22:50 <alise_> 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 <alise_> now let that be the end of it
19:23:55 <fax> no
19:25:12 <alise_> no howso
19:34:08 <Sgeo> In case anyone cares, the interpreter part of the interpreter was a bit easier than I thought it would be
19:34:22 <Sgeo> Still need to make some tweaks though, but it can run Hello world
19:37:40 -!- charlls has joined.
19:52:10 <alise_> fff
19:52:14 <alise_> coq needs smarter pattern matching
19:54:10 -!- cheater2 has quit (Ping timeout: 264 seconds).
19:56:36 -!- zzo38 has joined.
19:56:41 <zzo38> 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 <alise_> 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 <alise_> i got coq to print out "Anomaly. Please report."
20:10:19 -!- atrapado has joined.
20:14:54 <ais523> heh
20:17:42 <alise_> H : nat
20:17:42 <alise_> n : nat
20:17:42 <alise_> wildcard' : n <> 0
20:17:42 <alise_> cf' : CF
20:17:42 <alise_> H0 : rational (real H (Some (step n wildcard' cf')))
20:17:44 <alise_> ============================
20:17:45 <alise_> exists n0 : nat, rational (real n0 (Some cf'))
20:17:47 <alise_> ouch
20:17:54 <alise_> that was /not/ the issue i was expecting with this function
20:18:16 <alise_> H0 : rational (real H (Some (step n wildcard' cf')))
20:18:16 <alise_> ============================
20:18:16 <alise_> rational (real n (Some cf'))
20:18:42 <alise_> 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 <alise_> the problem arises if we expand what rational is shorthand for:
20:19:01 <alise_> exists i : nat, is_None (a_Sn i (real n (Some cf')))
20:19:11 <alise_> where a_Sn is a rather complex recursive function.
20:19:58 <alise_> H0 : is_None (a_Sn x (real H (Some (step n wildcard' cf'))))
20:19:59 <alise_> ============================
20:19:59 <alise_> is_None (a_Sn (pred x) (real n (Some cf')))
20:20:00 <alise_> this should be easier
20:23:18 * alise_ rejiggles is_Some and is_None a bit to make things easier
20:32:53 <alise_> bye for a bit
20:32:55 <Sgeo> jiggles?
20:32:57 <Sgeo> 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 <Gregor> oobe: It's spelled "oboe"
21:14:32 <oobe> i think i know how to spell my own name
21:16:44 <Gregor> However, you shall now become the new pooppy (coppro) in my head :P. How about ... carlinet.
21:18:48 <oklopol> is oobe an actual norwegian name`?
21:18:49 <oklopol> *?
21:19:43 <oobe> nope
21:19:53 <oobe> its just my nick i use
21:20:23 <oklopol> oh sorry didn't notice your name is actually ascii pr0n
21:20:39 <fax> \o/
21:20:45 <fax> :(
21:20:55 <oklopol> you're too short
21:21:05 <oklopol> so you don't get a body
21:21:05 <fax> \o/
21:21:09 <fax> \o/
21:21:09 <myndzi\> |
21:21:09 <myndzi\> |\
21:21:24 -!- augur has quit (Ping timeout: 276 seconds).
21:32:06 <uorygl> I'm not sure I see the pr0n interpretation very well.
21:32:34 <oklopol> 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 <augur> george carlinet
22:34:07 -!- alise has joined.
22:36:04 <alise> 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 <alise> anyone wanna do my proof for me
22:39:12 <fax> alise it's because you don't listen to me
22:39:27 <alise> 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 <Gregor> MISSING: One underscore
22:46:11 <Gregor> REWARD: $0
22:49:33 <alise> H0 : is_None (a_Sn x (real H (Some (step n wildcard' cf'))))
22:49:33 <alise> H1 : x <> 0
22:49:34 <alise> ============================
22:49:34 <alise> exists i : nat, is_None (a_Sn i (real n (Some cf')))
22:49:34 <alise> 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 <alise> H0 : is_None (CF_a_Sn x (step n wildcard' cf'))
22:53:58 <alise> H1 : x <> 0
22:53:58 <alise> ============================
22:53:58 <alise> is_None (CF_a_Sn (safe_pred x H1) cf')
22:54:01 <alise> this should honestly be really trivial :P
22:55:25 <alise> 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 <alise> Program Fixpoint Q_of_rational_CF (cf : CF) (H : exists n, rational (real n (Some cf))) : Q :=
22:55:31 <alise> match cf with
22:55:31 <alise> | final n _ => Q_of_nat n
22:55:31 <alise> | step n _ cf' => Q_of_nat n + 1 / Q_of_rational_CF cf' _
22:55:31 <alise> end % Q.
22:55:33 <alise> that's the entire function
22:55:41 <alise> the whole complexity is that tiny _ in the Q_of_rational_CF recursive call
22:55:45 <alise> 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 <alise> gah, I'm stuck!
23:01:27 <Sgeo> alise, hm?
23:01:38 <alise> trying to do this proof
23:03:15 <alise> http://pastie.org/904537.txt?key=rqxoszxqfg7nkfvbf8jwa
23:03:29 <alise> I think I can think of Yet Another definition for rational/irrational that makes this easier
23:03:47 <alise> not based on the hugely complicated CF_a_Sn function
23:04:27 <alise> hmm ... no
23:04:29 <alise> I need CF_a_Sn to access elements
23:05:29 <Sgeo> 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 <alise> Sgeo: i presume the computerised sort
23:32:21 <oerjan> "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 <ais523> yep, there was an accident and every active player won Agora
23:36:33 <alise> here's some wonderful noise: http://pastie.org/904583.txt?key=bg0znn8ou1ynm5vozuag
23:36:34 <alise> everything after exist (fun m : nat => m <> S n0) n0
23:36:42 <alise> is a computer-generated proof that... drumroll... n is not S n
23:36:49 <alise> it actually gets cut off:
23:36:51 <alise> (fun .. => ..
23:36:51 <alise> ..
23:36:52 <alise> ..
23:36:52 <alise> ..
23:36:52 <alise> end) I 0%Z Omega19 in
23:36:54 <alise> for being too absurdly long to display
23:37:23 <alise> 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 <alise> http://pastie.org/904585.txt?key=5ijpll8mfjaxlpcn9wthq
23:38:15 <alise> 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 <alise> wat
00:14:31 <pikhq> So I was curious how silly-small I could get something.
00:14:57 <Gregor> Funny, that's exactly what she said.
00:15:06 <Gregor> Also, just have a kernel with no userland, that'll be small :P
00:16:14 <pikhq> Gregor: Close.
00:18:40 <alise> combinatorial explosion of linux distros/penises
00:19:47 -!- adam_d_ has changed nick to adam_d.
00:26:18 <calamari> pikhq: what did you come up with?
00:27:08 <pikhq> Currently at 344 kIb...
00:27:27 <pikhq> It possesses the following programs: /bin/sh, /bin/clear.
00:27:32 -!- Gracenotes has quit (Read error: Connection reset by peer).
00:27:47 <pikhq> And its kernel has the following features: initramfs, ELF support.
00:27:53 <calamari> why /bin/clear?
00:28:13 <pikhq> Otherwise, the BIOS text doesn't get cleared in Qemu.
00:28:19 <Gregor> Tragic :P
00:28:22 <calamari> lol
00:28:46 <Gregor> I hope /bin/clear is a shell script ...
00:28:47 <calamari> actually, I would have to say sh makes it more feature rich than dos
00:29:04 <Gregor> Quite possibly
00:29:20 <pikhq> calamari: Heavily, heavily pared down shell.
00:29:21 <Gregor> Ohwait, echo isn't built into sh, is it :P ... so /bin/clear couldn't be a shell script probably.
00:29:24 <Gregor> cat is pretty useful too ...
00:29:31 <calamari> what kernel?
00:29:36 <calamari> 2.6?
00:29:40 <pikhq> 2.6.31 ATM.
00:29:49 <pikhq> I may experiment with other kernels.
00:29:49 <calamari> wow, didn't realzie 2.6 could get that small
00:30:00 <pikhq> Though 2.6 has the nice feature that you can *compile in the initramfs*.
00:30:10 <Gregor> There's a bunch of "tiny" patches to 2.6 that help downsize it.
00:30:25 <pikhq> Those tiny patches were put into the main tree a while back.
00:30:38 <Gregor> ORLY?
00:30:39 <Gregor> Sweet.
00:30:50 <pikhq> I'm going to compare compression formats for the initramfs...
00:30:51 <Gregor> So it just takes some special .config frunging.
00:31:26 <pikhq> I may be at the point where the compression overhead of LZMA negates the benefits for the filesystem. :P
00:31:33 <calamari> all you need now is to add egobfi
00:31:40 <Gregor> 8-D
00:31:49 <Gregor> How much does TCC cost?
00:31:50 <pikhq> Hmm.
00:32:00 <Gregor> Oh, but eh, headers >_>
00:32:13 <Gregor> What's the world's smallest scripting language that borders on usable? :P
00:32:13 <pikhq> 339 KB without compressing the root filesystem.
00:32:22 <pikhq> sh.
00:32:22 <calamari> but anyhow, impressive.. could boot that off a 5 1/4" floppy :)
00:32:47 <Gregor> Maybe I missed something, but does that 339K /include/ the kernel?
00:33:09 <Gregor> I thought that was the FS, which actually sounded pretty big for sh and clear :P
00:33:49 <pikhq> Gregor: Yes.
00:33:52 <Gregor> How much of busybox can you stuff in before you can't boot from a floppy?
00:34:00 <pikhq> All of it.
00:34:08 <Gregor> WELL THEN GET STUFFING
00:34:16 <calamari> Gregor: tomsrtbt
00:34:30 <Gregor> calamari: That's ancient, and has ancient utils, things tend to grow over time :P
00:34:41 <Ilari> BTW: What is maximum one can put into floppy (using normal 1.44M floppy drive)?
00:34:43 <pikhq> Actually. I'm going to go check and see if dietlibc and manual-built dash gets me a smaller shell. :P
00:34:43 <Gregor> Also, isn't it a superformatted floppy?
00:34:50 <Gregor> Ilari: 2.88M
00:34:50 <Sgeo> http://wormtube.worms2d.info/?id=4 [some NSFW language]
00:34:55 <calamari> Ilari: I think you can get like 2 mb
00:35:02 <ais523> there's a man page somewhere which goes into ridiculous difficulty
00:35:07 <ais523> *ridiculous detail
00:35:13 <Gregor> <Ilari> 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 <Ilari> My first computer had 2.88M floppy drive... :-)
00:35:22 <ais523> talking about things like interleaving sectors, and forcing the drive head past the normal limits
00:35:31 <ais523> (which might break your drive, or might give you an extra couple of tracks)
00:35:41 <calamari> Gregor: 2.88? wow.. so there must be no error correction at all?
00:36:03 <pikhq> calamari: Actually, floppy drives are just horribly overengineered.
00:36:05 <pikhq> Even today.
00:36:25 -!- ais523 has quit (Remote host closed the connection).
00:36:37 <pikhq> Aaaw, with dietlibc I can only get the shell down to 96k. :(
00:36:41 <calamari> the drives, maybe.. but the media, no
00:36:46 <Ilari> Apparently the I/O interface supports up to 255 sectors and 256 tracks (but only up to two sides).
00:36:49 <Gregor> calamari: By the time floppies died, most floppy drives supported 2.88MB, there just were no 2.88MB disks ...
00:37:04 <calamari> Gregor: yeah but he said standard 1.44 hehe
00:37:07 <pikhq> (currently, my busybox is down to 72k.)
00:37:20 <Gregor> calamari: I assume "1.44M" means "3 1/4 in" :P
00:37:37 <Ilari> Good quality 1.44MB disks formatted as 2.88MB without bad sectors (and appeared to work).
00:37:49 <pikhq> Hmm. I'm going to (quickly) overengineer "clear".
00:37:54 <Ilari> Actually, 90mm. :-)
00:38:47 <Deewiant> Ahem-hem! Everybody quiet, it's ANNOUNCEMENT TIME. http://iki.fi/deewiant/
00:38:48 <Deewiant> 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 <Deewiant> Also: Fungicide, the Befunge-98 benchmark suite!
00:38:53 <Deewiant> (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 <Deewiant> Finally: I am tired, and am going to bed. Complaints can be directed to /dev/null. ->
00:38:59 <Deewiant> As you were.
00:40:59 <uorygl> 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 <Gregor> *keyboard
00:41:53 <uorygl> Quite right.
00:42:00 <calamari> that's because there are 95 ascii characters
00:42:02 <uorygl> 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 <pikhq> $ wc -c clear
00:42:18 <pikhq> 55 clear
00:42:19 <uorygl> Well, I guess technically, the backspace, enter, tab, etc. keys type ASCII.
00:42:26 <pikhq> Okay, then. clear overengineered.
00:42:37 <Gregor> pikhq: If you installed echo, you could replace clear with an echo-based version for much fewer bytes.
00:42:50 <uorygl> But I meant the 95 printable ASCII characters, of course.
00:42:51 <pikhq> Gregor: But echo involves a larger shell.
00:42:57 <calamari> smallest executable you can make is 45 bytes
00:43:07 <pikhq> calamari: Well aware.
00:43:18 <Gregor> pikhq: Guh?
00:43:28 * uorygl tries to make a smaller executable.
00:43:41 <pikhq> Gregor: echo is only a shell builtin in busybox. And you can remove it.
00:43:52 <calamari> hmm of course that's assuming elf
00:44:03 <uorygl> touch blih; chmod +x blih; ./blih;. Which doesn't count, of course.
00:44:06 <calamari> what was before elf?
00:44:06 <Gregor> pikhq: OK, but you'll gain a lot with echo ... such as the ability to do anything useful at all :P
00:44:16 <Gregor> calamari: COFF
00:44:18 <Gregor> calamari: Then a.out
00:44:21 <pikhq> Gregor: Your point?
00:44:28 <calamari> how small could coff get
00:44:34 <Gregor> calamari: Ask Windows.
00:44:40 <calamari> oh god
00:44:44 <Sgeo> Is there anything that was just machine code?
00:44:51 <Gregor> Sgeo: DOS COM files
00:44:55 <uorygl> Hmm, it would be plausible to make a platform where all executables are shell scripts.
00:45:04 <calamari> yeah .com was the ultimate
00:45:04 <uorygl> Of course, that would require the kernel to have a built-in shell.
00:45:06 <Gregor> Sgeo: Well, more accurately, it's just "throw this crap in memory"
00:45:09 <pikhq> Oh, hey. Busybox has a smaller shell.
00:45:31 <pikhq> Interactive execution is optional.
00:45:34 <Sgeo> What would happen if you renamed a .exe to .com ?
00:45:35 <uorygl> Throw-this-crap-in-memory works best when you can do relative jumps, I imagine.
00:45:42 <Gregor> 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 <Gregor> Sgeo: I don't know what DOS .exe files are, but they're not raw.
00:45:55 <calamari> Sgeo: depends on the exe
00:46:04 <Gregor> It's probably not dissimilar to a.out
00:46:20 <calamari> exe's have memory segment information
00:46:21 <pikhq> "Support if/then/elif/else/fi"
00:46:29 <pikhq> Now *there's* a useless feature if ever I saw one.
00:46:30 <Sgeo> 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 <Sgeo> He showed removing the registry entry that tells Explorer how to open .exe files
00:46:55 <Gregor> lol
00:47:01 <Sgeo> Someone actually followed the instructions on one of the computers.
00:47:33 <Sgeo> I fix it by using Start->Run to open command.com, and from there opening regedit.exe
00:47:41 <Ilari> 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 <Sgeo> And then copying the relevant entries from a good computer
00:47:56 <calamari> Ilari: yep
00:48:11 <Sgeo> 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 <Gregor> My memory of useless binary formats is slightly bitrotted.
00:48:23 <calamari> I guess you could hack a headerless executable format into the kernel
00:48:23 <pikhq> 64K busybox
00:48:25 <Sgeo> The guy who gave the instructions wanted to rename regedit.exe to regedit.com
00:48:25 <pikhq> :)
00:48:28 * uorygl runs command.com and finds that it works.
00:48:45 <Ilari> Is there similar registry entry for .com?
00:48:59 <Sgeo> Ilari, I think so, but it was untouched by these instructions
00:49:08 <calamari> well you can try exe2bin ;)
00:49:14 <pikhq> 62240 busybox <-- without echo 62240 busybox <-- with echo.
00:49:25 <Gregor> http://codu.org/projects/gelfload/
00:49:34 <pikhq> Okay then. echo uses no space, so I'm satisifed.
00:49:49 <Sgeo> Echo.. uses no space..?
00:49:49 <Ilari> Some malware uses that EXE registry entry (but I haven't heard of using COM entry yet).
00:50:05 <calamari> take a look at the files it compiled.. might have some other freebies in there like true and false
00:50:43 <pikhq> Sgeo: Somehow.
00:50:48 -!- zzo38 has joined.
00:50:54 <zzo38> I invented a game http://zzo38computer.cjb.net/GAMES/meskilb.png http://zzo38computer.cjb.net/GAMES/meskilb.zip
00:51:04 <uorygl> Huh. What's the extension of the filename foo.bar.baz?
00:51:09 <uorygl> Is it baz or bar.baz?
00:51:14 <zzo38> Instructions: T to display level description text. Arrows or vi keys to move.
00:51:21 <Gregor> uorygl: baz
00:51:21 <zzo38> uorygl: In Windows, just "baz"
00:51:44 <zzo38> Instructions: R to reset, numpad -/+ to prev/next
00:51:54 <zzo38> Top row is inventory row.
00:52:05 <uorygl> That slightly implies that if a file is just named "foo", its extension is "foo".
00:52:09 <pikhq> Sgeo: I'm going to guess it has something to do with padding.
00:52:19 <fax> zzo that looks cool!!
00:52:30 <zzo38> pikhq: I can see that, but at least Windows treats as no extension in that case
00:52:38 <fax> I guess I can't play it
00:52:41 <uorygl> Wow, that game is huge.
00:52:43 <fax> I like the graphics though
00:52:45 <zzo38> UNIX doesn't care about extensions, o it is OK
00:53:01 <fax> zzo did you make them
00:53:07 <zzo38> That game is not finish yet I will add in more objects and levels more later
00:53:12 <fax> I should install windows so I can play this
00:53:16 <zzo38> fax: I didn't make the graphics I found icons in various things
00:53:17 <pikhq> zzo38: Context makes you confusing.
00:53:19 <pikhq> :P
00:53:21 <Gregor> fax: That's what wine is for
00:53:25 <uorygl> I'm not pikhq!
00:53:28 <pikhq> I'm discussing how echo takes no extra space in Busybox.
00:53:39 <calamari> 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 <zzo38> 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 <calamari> pikhq: it probably got compiled anyways
00:54:05 <pikhq> 333 kib!
00:54:09 <zzo38> The .GMD is the source-file, you don't need it to run
00:54:20 <calamari> pikhq: what files is busybox compiling?
00:54:52 <zzo38> Or possibly I might later re-write a similar engine in C so that it can be cross-platform
00:54:57 <uorygl> Can you make a version with a volume control? This computer doesn't have one.
00:54:59 <pikhq> calamari: Not many.
00:55:01 <zzo38> And make the same game using that
00:55:10 <pikhq> Don't have an exact figure, though.
00:55:15 <calamari> pikhq: do any of them look like linux commands?
00:55:33 <pikhq> I could probably get things down by passing the whole thing to the compiler at once.
00:55:36 <calamari> I should say GNU commands shouldn't I
00:55:37 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
00:55:39 <alise> <Deewiant> (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 <alise> oh
00:55:39 <alise> uber
00:55:39 <alise> snappeth
00:57:54 <Gregor> That's so much snap I've got ropeburn.
00:59:37 <uorygl> 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 <uorygl> Is the idea that you're only allowed to make one attempt every fifteen seconds?
01:01:01 -!- oklopol has joined.
01:01:26 <Gregor> How does "because the door is locked" strike you? :P
01:01:44 <uorygl> That doesn't answer my question; it just leaves me wondering why the door is locked.
01:02:33 <calamari> Ilari: man 4 fd
01:03:00 -!- Gracenotes has joined.
01:03:01 <zzo38> Yes, it is becausey ou need the key
01:03:06 <zzo38> It is obvious, isn't it?
01:03:17 <calamari> /dev/fd0u1920
01:03:19 <zzo38> There is no idea of attempt
01:03:19 <uorygl> It's not obvious why that locked door is there.
01:03:37 <uorygl> Every time I hear "ow!", that's one attempt.
01:03:38 <zzo38> 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 <uorygl> 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 <zzo38> Just once. The other three times are completely different kind of puzzles having to do with key
01:05:03 <zzo38> If you don't like it, skip that level (push numpad + sign)
01:05:15 <uorygl> I still have to go get the key multiple times on level 2 if I want to pass that level.
01:05:35 <zzo38> I should also say something else: You can push F5/F6 to quicksave/quickload
01:05:52 <uorygl> Ah, that changes things.
01:06:04 <zzo38> 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 <oklopol> what game
01:07:27 <zzo38> oklopol: You can check the log if you don't know what game?
01:07:52 <oklopol> i can, yes
01:09:50 <Sgeo> What game?
01:10:18 <oklopol> Sgeo: you can check the log if you don't know?
01:10:27 <zzo38> 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 <oklopol> HEY
01:10:35 <oklopol> that's not fair
01:10:37 <oklopol> i had to work for it
01:10:53 <zzo38> Sorry I just posted now because enough people ask
01:10:57 <oklopol> i know
01:11:01 <oklopol> i'm being silly
01:11:05 <zzo38> Somebody else could also have posted the same message
01:11:22 <oklopol> cuz i'm a funny dude
01:12:30 <calamari> so what are the absolutely essential features of a linux shell? starting programs and globbing?
01:12:54 <zzo38> calamari: Perhaps also environment variables
01:12:58 <uorygl> Bah, who needs globbing.
01:13:10 <calamari> uorygl: echo *
01:13:17 <calamari> so that you don't need ls
01:13:18 <calamari> :)
01:13:27 <uorygl> Well, just use ls. :P
01:13:31 <uorygl> Hum, are environment variables really a shell thing?
01:13:40 <zzo38> ls actually does some additional things too like ls -l and ls -la and so on
01:13:54 <calamari> zzo38: of course :)
01:14:03 <zzo38> Yes, environment variables are a shell thing because no program can set environment variables of their parent process
01:14:41 <zzo38> 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 <Gregor> But the env program can set environment variables for its child even if you can't set them in the shell.
01:15:24 <calamari> I was going to say create a glob program and use backticks.. but backticks aren't free either
01:15:33 <zzo38> OK, then, if that is how you want, so.
01:16:01 <calamari> oh, there is a glob call.. include glob.h hehe
01:16:49 <calamari> pikhq: how big is your busybox
01:17:16 <Gregor> Don't you think that's an awfully personal question?
01:17:17 <Gregor> :P
01:17:31 <calamari> haha
01:22:22 <pikhq> calamari: 64k
01:22:50 <calamari> not bad at all! were you able to include any more executables after looking at the compiles?
01:22:58 <pikhq> Nope.
01:23:24 <pikhq> I'm trying to find a smaller shell.
01:23:43 -!- jcp has joined.
01:23:47 <oklopol> do i need diagonal movement in level 2?
01:24:03 <calamari> pikhq: if you compile without the shell, how big is it?
01:24:35 <pikhq> calamari: Uh... 0k, I'd imagine?
01:24:38 <pikhq> That's... All I have.
01:24:49 <calamari> you have echo
01:24:57 <oklopol> zzo38: do i?
01:25:03 <zzo38> oklopol: There is no diagonal movement.
01:25:06 <oklopol> ah okay
01:25:09 <pikhq> Ah, right.
01:25:13 <oklopol> just left up right down
01:25:29 <zzo38> 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 <pikhq> I'm still trying to find a smaller shell. ;)
01:26:10 <pikhq> Hmm. Actually...
01:26:32 <pikhq> How small is Tcl?
01:27:01 <Gregor> Just roll your own shell.
01:27:09 <Gregor> while (true) + strtok + fork + execl = bad shell
01:27:52 <pikhq> Heheh.
01:28:05 <pikhq> Tempting.
01:28:06 <calamari> shsh.. short for shit shell
01:28:09 <Gregor> I forgot about fgets ...
01:28:21 <Gregor> while (true) + fgets + strtok + fork + execl
01:28:34 <Gregor> Or hell, so long as it's an intentionally terrible shell, use gets :P
01:28:38 <calamari> +glob
01:28:43 <calamari> lol
01:28:56 <Gregor> globbing is for pussies, real men remember all the files they have and type out the names.
01:29:27 <calamari> the question is whether you can make it smaller by excluding libc and using int 0x80 calls
01:29:30 <zzo38> Yes, if you are trying to write a shell using as small codes as possible that's OK I suppose
01:29:54 <zzo38> calamari: You can try writing in asm or machine-codes and see if you can do that
01:29:56 <pikhq> calamari: Probably.
01:30:04 <pikhq> Though, my libc is pretty darned small.
01:30:05 <Gregor> Hmmm, FORTH is an idea. FORTH doesn't have to be big ...
01:30:11 <oklopol> zzo38: okay i'm giving up at level 2
01:30:26 <pikhq> Gregor: Hmm.
01:30:33 <calamari> pikhq: well the thing is that executables are slightly bigger when they have to use libc
01:30:38 <zzo38> oklopol: Try the other level then (push -/+ numpad)
01:30:40 <fax> what is the fourth programming language you learned?
01:31:05 <Gregor> fax: ... lesse ... do different dialects of BASIC count as different languages?
01:31:14 <fax> only if they are called FORTH
01:31:21 <Gregor> ...........
01:31:34 <pikhq> 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 <calamari> hmmm 1) gwbasic, 2) quickbasic extended 3) x86 asm 4) c?
01:31:51 <oklopol> may have been logo
01:32:07 <calamari> oh damn you're right.. logo is in there
01:32:13 <Gregor> Could've been logo for me too, that was the first thing that came to mind.
01:32:19 <oklopol> 8
01:32:19 <calamari> hmmm 1) gwbasic, 2) quickbasic extended 3) logo 4) x86 asm
01:32:22 <oklopol> |
01:32:24 <Gregor> But I don't know if it was logo or AVR ASM
01:32:31 <zzo38> 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 <oklopol> no one knows logo
01:32:50 <oklopol> zzo38: you probably aren't one to give hintss?
01:32:52 <oklopol> *hints
01:32:53 <fax> I know logo
01:33:00 <oklopol> everyone knows logo
01:33:06 -!- atrapado has quit (Read error: Operation timed out).
01:33:08 <zzo38> oklopol: What hint did you want?
01:33:13 <oklopol> HOW IS 2 SOLVED :p
01:33:15 * Sgeo has heard of logo, but that's pretty much it
01:33:20 <calamari> 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 <Sgeo> I should probably actually play the game
01:33:29 <fax> calamari hahaha
01:33:37 <Sgeo> nerd hell?
01:33:44 <Gregor> I should probably rewrite the game in JavaScript.
01:33:46 <Gregor> Because that's what I do.
01:33:50 <Gregor> Rewrite things in JavaScript.
01:33:57 <fax> Gregor that would mean I could play it !!!
01:34:00 <zzo38> oklopol: Which part are you stuck on?
01:34:13 <Gregor> fax: Play http://sibeli.us/ instead.
01:34:20 <fax> I have I didn't like it :(
01:34:30 <fax> you're like pushing buttons in time I can't do that
01:34:33 <fax> it made me ill
01:34:33 <Sgeo> 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 <zzo38> Sgeo: I have in fact done that.
01:35:01 <oklopol> 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 <Sgeo> zzo38, with this game, or a different game?
01:35:14 <zzo38> Many times.
01:35:32 <zzo38> oklopol: You need the arrow in the other room to block the stones falling
01:35:36 <pikhq> Well, I found a more... complete shell that's about 72k.
01:35:47 <zzo38> Sgeo: No, not this game. A different game (actually multiple different games)
01:35:51 <oklopol> zzo38: yeah i was just thinking i might actually try using them for something
01:35:58 <pikhq> Sorry. 60k if I use dietlibc.
01:36:05 <pikhq> I <3 dietlibc.
01:36:24 -!- adam_d has quit (Ping timeout: 265 seconds).
01:36:33 <zzo38> oklopol: You can also push the stones left/right
01:36:40 <oklopol> i know
01:36:42 <pikhq> Look mah, I've got tar!
01:36:58 <oklopol> and yeah okay it's really obvious now, i just, for some reason, completely dismissed the ball and the arrow
01:37:09 <Gregor> pikhq: What a sticky situation HYUK HYUK
01:37:19 <fax> Grogor did you make sibelius
01:37:23 <zzo38> 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 <Gregor> pikhq: I assume you have tar without gz or whatnot.
01:37:29 <pikhq> Gregor: Hmm. More features in less space, or fewer features. Tricky.
01:37:31 <pikhq> And yes.
01:37:35 * Sgeo is still trying to figure out what the card suites are for
01:37:37 <pikhq> I disabled the builtin gzip.
01:37:37 <Gregor> fax: What a hilarious statement when you don't make it clear that you're referring to sibeli.us :P
01:37:38 <alise> 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 <Gregor> fax: But yes, I wrote that code.
01:37:48 <fax> oh sorry :(((
01:37:49 <alise> since you can't redistribute non-gpl software linked with dietlibc
01:37:52 <fax> I didn't realize this
01:37:59 <pikhq> alise: Yes, that's my only issue with dietlibc.
01:38:04 <alise> pretty big issue
01:38:15 <zzo38> Sgeo: Did you push "T" at the first level it will explain you need to get four suits, please.
01:38:20 <pikhq> Though that's not *entirely* true. You can redistribute anything "gpl-compatible" linked with dietlibc.
01:38:25 <pikhq> This includes 3-clause BSD.
01:38:30 <pikhq> (note: whole thing is GPL now)
01:38:32 <fax> I just never managed to play these kinds of game, the music/timing type
01:38:41 <Sgeo> Oh. Thought I had to get to the peace thing
01:38:43 <pikhq> Sadly, that limits dietlibc's usage a lot.
01:38:50 <Gregor> fax: This exists mainly as a hilariously bad idea for such a game :P
01:39:04 <pikhq> 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 <zzo38> Sgeo: Yes you do but you need 4 suits
01:39:11 <pikhq> Now *there's* a build command. :)
01:39:21 <zzo38> It shows the inventory row on the top
01:39:30 <pikhq> I need no mount! I need no chattr! I need no gzip!
01:40:11 <oklopol> zzo38: is there a way to restart the game
01:40:33 <oklopol> 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 <zzo38> oklopol: Push R key
01:40:44 <oklopol> kay
01:40:47 <zzo38> Push -/+ to skip levels
01:40:56 <zzo38> Or use P/N if you don't have numpad -/+
01:40:57 <oklopol> doesn't do anything
01:41:01 <oklopol> oh okay
01:41:06 <Sgeo> Can I move on diagonals?
01:41:15 <zzo38> Sgeo: No. Orthogonal only.
01:41:29 <Sgeo> And I don't QUITE understand the logic of the stone
01:41:36 <oklopol> wwwhat was the point of level 3 :D
01:41:39 <zzo38> You can also save/load at any time by pushing F5/F6.
01:41:50 <oklopol> how many levels are there?
01:42:08 <zzo38> oklopol: No much yet, but it will have a lot more levels and more objects later.
01:42:18 <oklopol> can i have a number, i have to decide whether to play them all
01:42:30 <oklopol> or to do something i consider more useful
01:42:37 * Sgeo does NOT understand how the stone decides to move
01:42:50 <oklopol> go near it and move once or soemthing like that?
01:42:52 <oklopol> *something
01:43:17 <Sgeo> Going near it does not always cause it to move
01:43:26 <oklopol> oh.
01:43:27 <zzo38> 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 <zzo38> 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 <Sgeo> So I walk into that space and then move, that's when it falls
01:44:27 <Sgeo> So above it is a blind spot
01:44:29 <zzo38> Yes.
01:44:33 <oklopol> okay so '8
01:44:34 <oklopol> *8
01:44:49 <oklopol> that's a bit too much, i'll mention if i do it some other time
01:45:21 <oklopol> also Sgeo part of the puzzle if to figure out the rules
01:45:24 <oklopol> *is
01:45:28 <Sgeo> Ah :/
01:45:29 <zzo38> Arrows and balloons move in a similar way to stones but a different direction
01:45:31 <oklopol> i mean
01:45:32 <oklopol> at least imo
01:45:39 * pikhq wonders how well upx works on Linux kernels
01:45:52 <pikhq> Apparently "no longer".
01:46:17 <oklopol> that's why they're interactive, so the rules need not be stated
01:46:21 <oklopol> well dunno
01:47:10 <zzo38> 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 <Sgeo> Got it!
01:51:58 <alise> (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 <alise> ha fax was wrong it is feasible
01:54:53 <fax> what exactly did I say that is "wrong"?
01:56:51 <fax> 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 <zzo38> Have you ever made music using Bohlen-Pierce?
01:58:08 * Sgeo should learn what Pi Calculus is
01:59:07 <alise> Sgeo: not related
01:59:17 <alise> fax: well you didn't seem to know that automath did that at the time
01:59:17 <fax> alise stop being an ass
01:59:26 <alise> also i feel cheated on by coq after how nice mizar proofs are :(
01:59:34 <alise> fax: no.
01:59:47 <fax> just shut up about stuff you have no clue about
02:00:48 -!- zzo38 has quit (Remote host closed the connection).
02:04:39 <alise> fax: i don't remember you having contact with the authority of having clueness...
02:09:58 <alise> Anyway, g'bye everyone: see you Friday.
02:10:15 <oklopol> see ya
02:11:47 -!- alise has quit (Quit: Leaving).
02:15:32 <Sgeo> Oh, crud
02:24:36 <Sgeo> http://arstechnica.com/microsoft/news/2010/04/why-microsoft-did-the-right-thing-in-ditching-xp-for-ie9.ars
02:24:47 <Sgeo> That Low Integrity thing sounds.. excellent
02:28:40 -!- coppro has joined.
02:29:45 <Gregor> POOPPY!
02:29:55 <Gregor> pooppy, meet carlinet. carlinet, meet pooppy.
02:30:43 <Gregor> Both people whose names I cruelly massacre for no good reason.
02:31:02 <pikhq> Heheh.
02:31:37 <pikhq> Okay, 339k and it's not going down much further...
02:35:25 * Sgeo looks at the HTML5 Quake2
02:36:40 <Sgeo> Um, is there a link to actually try it somewhere?
02:36:48 <pikhq> 329k. And fin.
02:51:19 * oerjan went for a walk. Great northern lights tonight.
02:52:28 <oklopol> can you upload the mental pictures
02:53:15 <oklopol> actually i would interpret that as "describe them", but i'm not sure that's a very fair thing to ask.
02:53:25 <oerjan> no, but if you're in finland maybe you can see them too?
02:53:48 <oklopol> i've never seen northern lights in turku
02:53:52 <oklopol> a few times in lapland
02:53:56 <oerjan> oh
02:54:17 <oerjan> they were very fast-moving tonight, and in a broad band straight overhead
02:54:27 <oklopol> :o
02:54:28 <oklopol> cool
02:54:37 <oerjan> not very colorful though, i've seen that a few times
02:54:52 <oerjan> 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 <Gregor> It's not what it looks like, Mr. roper!
03:12:03 <calamari> pikhq: http://asm.sourceforge.net/asmutils.html
03:12:37 <oerjan> !userinterps
03:12:37 <EgoBot> 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 <Gregor> !aol Hello my friends!
03:13:08 <EgoBot> HELO MY FR1END5!!!!!!!!!!1
03:13:31 <pikhq> calamari: Doesn't build on modern nasm.
03:13:42 <calamari> 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 <Gregor> calamari is actually building shsh :P
03:14:59 <calamari> yeah, took a break when my mom called hehe
03:15:13 <calamari> at an amazing 26 lines of code
03:15:38 <Sgeo> sadbf?
03:15:42 <Sgeo> !sandbf Testing
03:15:45 <calamari> school me please:
03:15:47 <Sgeo> !sadbf Testing
03:15:55 <Sgeo> !sadbf +[.+]
03:15:55 <calamari> char * args[16];
03:15:55 <EgoBot> <CTCP>
03:16:05 <calamari> args[0] = strtok(cmd, " ");
03:16:21 <Sgeo> Why did EgoBot want to DCC Chat with me?
03:16:30 <calamari> that line gives me a "you retard" error
03:16:43 <Sgeo> Oh, to send me "Hey, here are the results"
03:16:53 <oerjan> !show sadbf
03:16:53 <EgoBot> sadol :M$0 :d:i,45000@>i-01(2]M0:i-i1:S$0:C;3:l#C-01:p:m0@<pl(2?=#Cp"1+:#Mm%+#Mm1,3255?=#Cp"1-:#Mm?<-#Mm10,3254-#Mm1?=#Cp"1>: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 <calamari> holy crap what is in this thing, it's 10k already
03:17:58 <calamari> oh, forgot to strip
03:21:20 <Sgeo> Please don't >.>
03:21:46 <calamari> har har
03:22:00 <calamari> :)
03:25:07 <Gregor> Please do :P
03:25:38 <Gregor> Can you be more specific about the error?
03:26:08 <calamari> warning: assignment makes pointer from integer without a cast
03:27:15 <Gregor> You #include'd string.h?
03:27:35 <calamari> nope
03:27:54 <calamari> wow it compiles, thanks :)
03:28:28 <Sgeo> Why not switch to Haskell!
03:28:35 * Sgeo has become a fanatic almost overnight
03:28:50 <calamari> actually.. why fork?
03:29:06 <Gregor> calamari: Because system() requires a shell and exec() needs a fork.
03:29:07 <oerjan> Sgeo: that was fast
03:29:12 <Gregor> Unless you want a one-time-use shell :P
03:29:59 <oerjan> Sgeo: i don't think haskell is very good for making supertiny executables
03:30:09 <Sgeo> Ah
03:30:41 <oerjan> although i recall something about a jhc compiler being better at it
03:31:17 <oerjan> whole program optimization iirc
03:31:39 <oerjan> 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 <oerjan> couldn't compile itself
03:32:07 <oerjan> Sgeo: yay
03:32:47 <Sgeo> 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 <oerjan> paste?
03:33:48 <Sgeo> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24710#a24710
03:33:59 <Sgeo> Oh, you want the whole interpreter to help me debug?
03:34:25 <oerjan> well let me look at that first
03:34:44 <Sgeo> It's working, it's just ugly
03:34:53 <calamari> yay it's working
03:34:59 <oerjan> lots of superfluous parentheses, i see :D
03:35:52 <Sgeo> I'm not really all that certain which are superfluous
03:36:37 <Sgeo> And there's no where that ... wait. I could have written a function with type BFCmd -> String -> ([BFCmd], String)
03:36:45 <Sgeo> And have passed stuff into that function for most of those
03:36:55 <Sgeo> (but not all)
03:38:05 <oerjan> yeah all those fst and snd really beg for a common where clause and pattern matching
03:39:30 <Sgeo> Is it possible to have a common where clause to all those definitions?
03:40:05 <oerjan> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24710#a24711
03:40:10 <oerjan> less parentheses
03:40:49 <oerjan> basically function application has higher precedence than _all_ operators
03:41:26 -!- jcp has joined.
03:41:31 <oerjan> (technically one pattern matching exception, @)
03:41:34 -!- coppro has quit (Ping timeout: 258 seconds).
03:42:08 <oerjan> and not at the top level, no, but just a moment...
03:43:33 <oerjan> i need vim for this...
03:49:42 <oerjan> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24710#a24712
03:49:49 <oerjan> using a case expression
03:50:34 <oerjan> oh damn wait
03:50:48 <oerjan> code is not defined there
03:53:14 <oerjan> fixed http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24710#a24713
03:56:23 <augur> anyone know of an english parser grammar?
04:00:15 <oerjan> 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 <calamari> Gregor: it actually looks like wordexp will do nearly everything in one call
04:00:48 <calamari> just need to figure out some quirks
04:05:07 <calamari> got it
04:05:42 <calamari> I wonder if ithis would be smaller if I wasn't compiling on x64
04:06:56 <calamari> yep, slightly
04:07:16 <calamari> okay.. shit shell is 5684 bytes
04:09:29 <pikhq> calamari: Pastebin?
04:12:01 <calamari> pikhq: http://pastebin.com/xJUQuFWX
04:12:12 * Sgeo feels guilty for not having written the code himself
04:12:17 <Sgeo> Erm, the cleaned code
04:12:22 <Sgeo> 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 <calamari> lol I didn't need the variable pid did I
04:14:33 <calamari> doesn't save any byyes.. oh well
04:16:54 <pikhq> calamari: I'll see what I can do to it.
04:16:58 <calamari> http://pastebin.com/aMmXde7G
04:17:00 -!- myndzi has joined.
04:17:12 <calamari> little less crap in that one
04:19:31 <pikhq> 41824 shish
04:19:38 <pikhq> ... When you stop including malloc...
04:19:38 -!- myndzi\ has quit (Ping timeout: 246 seconds).
04:19:46 <calamari> ?
04:19:57 <calamari> it's actually bigger with uclibc?
04:20:11 -!- fax has quit (Quit: Lost terminal).
04:20:25 <pikhq> That's bytes.
04:20:31 <pikhq> Erm.
04:20:44 <calamari> so was mine
04:20:49 <pikhq> 44K? WTF?
04:21:03 <pikhq> Wait. Are you dynamic linking?
04:21:07 <calamari> yes
04:21:13 <pikhq> Failure.
04:21:19 <pikhq> Yours is several megabytes.
04:21:34 <pikhq> (as it needs all of glibc.)
04:21:48 <calamari> I assumed you had uclibc already
04:21:53 <calamari> doesn't work with it?
04:22:07 <pikhq> I do not have a dynamic uclibc.
04:22:09 <pikhq> ;)
04:22:12 <calamari> ah
04:22:37 <pikhq> Among other things, this means the fewer functions you use the smaller your program is.
04:22:54 <pikhq> Also, perror? Bah.
04:23:11 <calamari> if you are static linking, then int 0x80 asm would be smaller
04:23:22 <calamari> did not realize you were
04:23:34 <calamari> what's wrong with perror.. doesn't even increase the size
04:23:46 <pikhq> It's a function.
04:24:00 <pikhq> Including functions from libc means those functions are included in the binary.
04:24:43 <pikhq> 113 shish
04:24:45 <calamari> oh well
04:24:46 <pikhq> Same damned program without perror.
04:24:55 <calamari> 113 bytes?
04:25:13 <pikhq> Yes.
04:25:19 <calamari> holy crap
04:25:27 <calamari> perror took 44k?
04:25:44 <pikhq> Erm. Sorry, no.
04:25:52 <pikhq> wc -l instead of -c somehow. WTF, me?
04:26:04 <pikhq> 41824 shish
04:26:09 <pikhq> That's more not fucking nuts.
04:26:15 <calamari> yeah
04:26:25 <pikhq> But, yeah... perror includes stdio.
04:26:36 <pikhq> Though, so does fgets. :P
04:26:42 <calamari> yeah that program sucks for static
04:26:52 <pikhq> It's probably wordexp.
04:27:04 <pikhq> Yup.
04:27:04 <calamari> yeah, wordexp is doing a lot
04:27:30 <pikhq> What you really want to do is tokenise. And that's it.
04:27:50 <calamari> yeah well it would have to be in asm next time
04:30:09 <calamari> out of curiousity, how big is it when dynamically linked against uclibc
04:30:29 <pikhq> Dunno. I don't have a dynamic uclibc.
04:30:36 <calamari> k
04:30:42 <calamari> well it was fun writing it
04:30:49 <pikhq> Though probably about a megabyte if you *include* uclibc. ;)
04:31:41 <pikhq> Well, I'm going to go ahead and fix it to do utterly naive tokenizing.
04:32:04 <calamari> 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 <pikhq> 9040 shish
04:40:00 <pikhq> Could probably be made smaller.
04:40:33 <oerjan> shish kebab
04:46:40 <pikhq> 5288 shish
04:46:41 <pikhq> That's using read.
04:46:43 <calamari> 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 <calamari> not bad
04:47:10 <calamari> does it still work?
04:47:52 <pikhq> Yes.
04:49:37 <pikhq> 1948 shish
04:49:40 <pikhq> With dietlibc.
04:51:39 <calamari> cool
04:51:45 <calamari> pastebin?
04:52:36 <pikhq> http://sprunge.us/ShKE
04:54:45 <pikhq> Fun fact: uninitialised static variables use 0 space in the output binary. :)
04:55:47 <pikhq> I could probably make this smaller by plopping down into assembly, but not by much.
04:56:06 <calamari> YEAH THAT'S NOT BAD
04:56:17 <pikhq> ... What's with the capslock?
04:56:26 <calamari> does it help to remove the function call
04:56:27 <calamari> sorry
04:56:38 <calamari> was in ASM programming mode.. that's a caps lock operation :)
04:56:38 <pikhq> Which function call?
04:56:53 <calamari> tokenise
04:56:58 <pikhq> That's inlined.
04:57:05 <calamari> oh, true
04:57:19 <calamari> ++cmd_offset?
04:57:47 <pikhq> Where at?
04:57:49 <calamari> dunno if that is a rumor or truth when they say x++is bigger than ++x
04:57:55 <calamari> two places
04:58:21 <calamari> for(cmd_offset = 0; cmd[cmd_offset] != 0; cmd_offset++) {
04:58:26 <pikhq> In any sane compiler, there's not any difference unless you're using the result value.
04:58:29 <calamari> cmd_offset++;
04:58:32 <calamari> ahh k
04:58:48 <pikhq> And if you're using the result value, you're getting bigger code regardless.
04:59:08 <calamari> so how many bytes did that save on your disk?
04:59:33 <pikhq> Let me go make a new image. Without anything. Bwahahah.
05:01:31 <pikhq> System is 301 kB
05:01:51 <pikhq> Okay, 301 kiB for a Linux bzImage which does nothing but start shish.
05:03:15 <pikhq> That is the shittiest shell ever.
05:03:30 <calamari> yay!!!!
05:03:31 <calamari> :D
05:03:43 <pikhq> And this... Is the shittiest Linux distro ever.
05:04:01 <pikhq> You actually can't do anything on it. :)
05:04:22 <pikhq> Not even error messages, because dietlibc doesn't have any, and nor does this kernel build.
05:04:28 <calamari> well you can run more shells
05:04:35 <pikhq> Yes. Yes you can.
05:04:59 <calamari> so I take it echo is gone?
05:05:05 -!- Oranjer has left (?).
05:05:09 <pikhq> Yes.
05:05:15 <pikhq> As is everything else.
05:05:29 <pikhq> I was previously using sash, which had a few builtins, and was 60k.
05:05:59 <calamari> 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 <calamari> does ctrl-D still work to terminate the shell?
05:07:46 <pikhq> Yes.
05:07:55 <Sgeo> dietlibc?
05:08:07 <pikhq> Sgeo: Yes. It's freaking tiny.
05:08:07 <Sgeo> shish?
05:08:13 <pikhq> Shit Shell
05:09:03 <pikhq> calamari: When read reads nothing, it returns 0. So, it exits. :)
05:14:27 <calamari> shsh turned into a fork bomb lol
05:14:41 <pikhq> Hahah.
05:15:11 <pikhq> Yeah, might want to fix that...
05:15:15 <calamari> come on linux you can kill this thing
05:15:43 <Sgeo> You're not running this in a VM?
05:15:51 <calamari> nope haha
05:16:49 <calamari> whew, closing the term did it
05:17:03 <calamari> 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 <calamari> 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 <pikhq> 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 <pikhq> I love how we're at the point that malloc is absurd bloat.
05:33:01 -!- oerjan has quit (Quit: leaving).
05:33:42 <calamari> fixed it
05:33:49 <pikhq> Whooo.
05:33:54 <calamari> for (--tokened_offset; tokened_offset < MAXSIZE; ++tokened_offset)
05:33:54 <calamari> tokened[tokened_offset] = NULL;
05:34:38 <pikhq> Ah.
05:34:50 <calamari> seems to break the ctrl-d after a cmd tho
05:34:58 <calamari> maybe unrelated
05:36:12 <pikhq> Works here.
05:37:19 <pikhq> Hrm. Still seeing that bug, though.
05:37:38 <calamari> yeah maybe that wasn't the fix
05:42:12 <pikhq> for(;read_result < MAXSIZE; read_result++)
05:42:12 <pikhq> cmd[read_result] = 0;
05:42:35 <pikhq> Might be more than is needed, but it works.
05:43:23 <pikhq> It is.
05:43:27 <pikhq> cmd[read_result + 1] = 0;
05:43:29 <pikhq> There.
05:43:47 <calamari> so it was an off by one error?
05:44:36 <pikhq> Yes.
05:46:07 <Sgeo> Even though it's 12:44, and I need to be up early, I need to go wash clothes now
05:46:52 <Sgeo> Dear Gmail: Emails from the email list I'm on are not spa
05:46:53 <Sgeo> spam
05:48:19 <pikhq> http://sprunge.us/NWgK
05:48:47 <Sgeo> " 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 <Sgeo> 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 <pikhq> I particularly love how this shell cannot handle spaces in any arguments.
05:56:50 <calamari> I think you want a break; after the exec, otherwise syntax errors are a problem
05:57:16 <calamari> and cmd[read_result + 1] = 0; was right I think you may have a typo on your new source
05:58:38 <pikhq> calamari: "break"? "break"? That is a forkbomb.
05:58:48 -!- MizardX has quit (Ping timeout: 276 seconds).
05:58:48 <Sgeo> comex is a redditor?
05:58:51 <pikhq> The new source does not have read_result any more.
05:59:14 <calamari> oh, okay
06:01:51 <calamari> why is it a fork bomb?
06:02:10 <calamari> it should never get to the line after the exec, unless the exec fails
06:02:12 <pikhq> Oh, wait, no it's not.
06:02:30 <pikhq> It'll just jump out of the while loop and exit.
06:02:35 <pikhq> Unlike now, where it exists.
06:02:36 <calamari> yep
06:02:38 <pikhq> Erm. Exits.
06:02:52 <pikhq> I'm pretty sure GCC will compile the two as equivalent.
06:02:53 * Sgeo should be washing clothes right now
06:02:57 <Sgeo> In fact, I'll go do that
06:03:12 <calamari> if it doesn't break, then the child won't terminate
06:03:30 <pikhq> ... Uh, return from main *is termination*.
06:03:38 <pikhq> Note that it currently does a "return 0".
06:03:41 <calamari> and how does it return
06:03:46 <pikhq> return 0;
06:03:55 <calamari> how does it get out of the loop
06:04:05 <pikhq> It returns from main.
06:04:37 <calamari> put a puts about return.. you wont get there with a syntax error
06:04:41 <calamari> above
06:04:41 <pikhq> _start then calls the exit system call with the return value from main.
06:05:01 <pikhq> Yes, and with a syntax error the forked process exits from main.
06:05:17 <pikhq> Unlike what you propose, which is... A jump to a return from main.
06:05:40 <calamari> puts("e");
06:05:40 <calamari> return 0;
06:05:42 <pikhq> Do I need to beat "return 0;" into your head some more?
06:05:46 <pikhq> execvp(tokened[0], tokened);
06:05:47 <pikhq> return 0;
06:06:04 <calamari> oh, my bad, you do have it
06:06:15 <pikhq> *Yes*.
06:06:23 <calamari> the old source didn't
06:06:35 <calamari> yeah either one is pretty much the same
06:06:46 <pikhq> Yes, and I added it because it was going to forkbomb otherwise. :P
06:07:03 <calamari> yeah that is why I added break
06:07:09 <calamari> we just solved the same problem two different ways
06:07:31 <pikhq> And GCC compiles them equivalently.
06:07:42 <calamari> good
06:10:23 <calamari> changing the directory doesn't work lol.. duh the environment goes bye bye
06:10:53 <calamari> I think in order to do that, parsing of the command will have to go before the fork
06:11:16 <pikhq> Yes.
06:14:40 <calamari> got it
06:19:05 <calamari> http://sprunge.us/GFKJ
06:30:30 <calamari> hmm unsetenv isn't working for some reason
06:31:15 <calamari> } else if (strcmp(tokened[0], "unset") == 0) {
06:31:16 <calamari> puts(tokened[1]);
06:31:16 <calamari> printf("%i\n", unsetenv(tokened[1]));
06:32:05 <calamari> unset PATH prints PATH then 0, indicating success
06:32:31 <calamari> set works though
06:34:58 <calamari> does adding cd bloat it quite a bit?
06:36:16 -!- coppro has joined.
06:36:52 <calamari> since unset didn't work:
06:37:00 <calamari> if (strcmp(tokened[0], "cd") == 0) {
06:37:01 <calamari> chdir(tokened[1]);
06:37:01 <calamari> } else if (strcmp(tokened[0], "set") == 0) {
06:37:01 <calamari> setenv(tokened[1], tokened[2], 1);
06:37:01 <calamari> } else if (fork() == 0) {
06:37:01 <calamari> execvp(tokened[0], tokened);
06:37:03 <calamari> break;
06:37:06 <calamari> }
06:37:16 <calamari> there.. feature complete, right? :P
06:37:58 <calamari> pikhq: thanks for the fun
06:38:58 <pikhq> calamari: No problem.
06:39:32 <calamari> I'm guessing adding strcmp, chdir and setenv adds a bit to the size
06:39:48 <calamari> can't really see it here since I'm compiling dynamic
06:40:02 <pikhq> I'll check.
06:40:30 <calamari> http://sprunge.us/OfEd
06:40:49 <pikhq> shish.c:(.text+0xcb): warning: setenv calls malloc. Avoid it in small programs.
06:41:06 <calamari> change it to putenv then
06:41:25 <calamari> oh wait
06:41:51 <calamari> one minute, that will require a code change
06:41:53 <pikhq> That'll... do the same thing.
06:42:06 <pikhq> 4448 shish
06:42:10 <calamari> not exactly, different args
06:42:30 <calamari> wow
06:42:45 <pikhq> malloc is overheady.
06:43:00 <calamari> putenv shouldn't require malloc
06:43:27 <pikhq> 2032 shish
06:43:32 <pikhq> Without the setenv.
06:43:48 <pikhq> "so altering the string changes the environment."
06:44:03 <calamari> yeah, fun huh?
06:44:20 <calamari> } else if (strcmp(tokened[0], "export") == 0) {
06:44:21 <calamari> putenv(tokened[1]);
06:44:55 <calamari> so the syntax is export PATH=/bin or whatever
06:45:36 <pikhq> Then the PATH will be /bin/ until you have a command long enough to overwrite the PATH.
06:46:43 <Sgeo> Wait, "long enough"? As in, buffer overflow?
06:46:58 <pikhq> Sgeo: Well, not really a buffer overflow.
06:47:27 <pikhq> 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 <calamari> dunno, it seems to work
06:47:55 <pikhq> As it just so happens, that buffer is also where command parsing happens.
06:48:35 <calamari> it doesn't seem to overwrite it
06:48:36 <pikhq> calamari: I'm going to statically allocate an array of buffers for that.
06:49:16 <Sgeo> Touching my chin no longer means blood on my hand, yay!
06:49:17 <calamari> although I can't explain WHY it isn't
06:49:27 <calamari> Sgeo: hows that laundry coming along
06:49:33 <Sgeo> In the drier
06:49:47 <Sgeo> I'll go to sleep when it's time for the dryer to be off
06:51:33 <calamari> it's possible that libc is doing a malloc for me
06:51:54 <calamari> put that would break the spec
06:51:57 <calamari> *but
06:53:31 <Sgeo> Wait, nope, there's still blood on my hands
06:53:36 <calamari> 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 <calamari> got primitive \ escape sequences working
07:11:55 <calamari> so now you can escape spaces
07:12:21 <calamari> http://sprunge.us/iFNP
07:12:50 -!- augur has joined.
07:13:09 <calamari> \space is special, everything else turns back to whatever it was after the \
07:13:23 <calamari> well space does too, but it sets a flag
07:16:05 <calamari> and with that, I think it actually is usable now
07:17:10 <pikhq> Give it rawirc, and you'd make zzo38 happy. :P
07:17:20 <Sgeo> vonkeror?
07:17:28 <pikhq> telnet.
07:17:39 <calamari> pikhq: so how big is http://sprunge.us/iFNP
07:18:39 <pikhq> 4448 bytes.
07:18:59 <calamari> whats odd
07:19:03 <calamari> **err that's odd
07:19:07 <calamari> why is it so big
07:19:30 <calamari> putenv?
07:19:35 <pikhq> Probably.
07:19:52 <calamari> well the next closest shell was 60k, right?
07:20:05 <pikhq> 2108 without putenv.
07:20:08 <pikhq> So, yeah.
07:20:17 <calamari> well kinda need putenv
07:20:30 <pikhq> Or setenv.
07:20:38 <calamari> yeah
07:20:50 <calamari> but that was even bigger
07:21:03 <pikhq> That was about the same size, actually.
07:21:43 <calamari> hmm then we should definitely use setenv since it is safer
07:21:56 <pikhq> 4448 with setenv.
07:22:14 <pikhq> ... Yeah, no reason not to.
07:22:23 <calamari> what syntax did you use for it?
07:22:33 <pikhq> set foo bar
07:23:01 <calamari> setenv(tokened[1], tokened[2], 1); ?
07:23:14 <pikhq> Yeah.
07:23:19 <calamari> okay cool
07:23:47 <calamari> well there you go then .. shsh lives :)
07:23:57 <pikhq> :)
07:24:14 <calamari> I guess that put it at around 335k
07:24:49 <calamari> er 305k
07:25:09 <pikhq> i'll check.
07:26:08 <pikhq> 302k.
07:26:18 <calamari> not bad!
07:26:42 <calamari> btw does ctrl-z do anything?
07:27:10 <pikhq> No, you need more logic for job control.
07:27:33 <calamari> in the kernel?
07:27:39 -!- MigoMipo has joined.
07:27:44 <pikhq> No, in the shell.
07:28:04 <pikhq> For job control, you need to actually watch the terminal for Ctrl-Z to send sigsusp.
07:28:53 <calamari> I guess I'm wondering how you could ever run more than one thing at a time with our shell :)
07:29:08 <pikhq> nohup?
07:29:11 <pikhq> Erm.
07:29:13 <pikhq> No.
07:29:19 <pikhq> Detaching from the terminal.
07:29:49 <calamari> yeah would have to daemonize
07:30:14 <pikhq> Which is nearly what a job-controlling shell does anyways.
07:31:22 <calamari> we could almost use vfork instead of fork
07:31:27 <calamari> wonder if it's smaller
07:32:10 <pikhq> They're system calls.
07:32:24 <calamari> true
07:32:27 <pikhq> The libc functions literally do nothing but jump to the kernel.
07:33:03 <calamari> guess putenv isn't a system call
07:33:04 <pikhq> It would be *saner* to use vfork, though.
07:33:26 <pikhq> Not at all.
07:33:45 <pikhq> The environment is done entirely in userspace, IIRC.
07:34:50 <calamari> oh, then execv might be smaller
07:36:33 <pikhq> Not really.
07:37:18 <pikhq> The environment is just extern char **environ.
07:37:42 <calamari> but the call has to get the PATH and find the command
07:37:54 <calamari> maybe that's not much code
07:38:21 <pikhq> Ah, that.
07:39:03 <pikhq> I doubt it's much code.
07:40:23 <calamari> I wonder how hard it'd be to hack shsh into busybox
07:40:38 <calamari> haven't ever tried adding a command to bb before
07:40:40 <pikhq> Probably not very.
07:42:28 <Sgeo> Why am I still up?
07:42:49 <calamari> 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 <Sgeo> 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 <calamari> good luck with that
08:25:04 <coppro> 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 <AnMaster> <alise> <Deewiant> (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 <AnMaster> but did you compare with all fingerprints disabled for both?
13:49:26 <AnMaster> after all, last I looked ccbi 2 implemented way fewer fingerprints
13:49:34 <fizzie> Here's a nice Microsoft support experience: https://connect.microsoft.com/VisualStudio/feedback/details/546053/
13:49:36 <fizzie> "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 <Deewiant> All fingerprints enabled for both
13:49:54 <fizzie> I especially like the "thanks for playing" bit.
13:49:56 <AnMaster> Deewiant, then what bit is so much faster?
13:50:12 <Deewiant> Last I looked cfunge doesn't implement any of the mainloop-intrusive fingerprints like IMAP/TRDS? :-P
13:50:19 <AnMaster> Deewiant, true
13:50:32 <AnMaster> my question still stands
13:50:33 <Deewiant> (They're the only ones that really matter)
13:50:46 <Deewiant> A better Funge-Space helps
13:50:55 <AnMaster> Deewiant, better in what way?
13:50:58 <AnMaster> as in, how do you do it
13:51:10 <Deewiant> I haven't profiled both cfunge and CCBI to see where exactly each one spends their time, you know ;-P
13:51:17 <Deewiant> Complicatedly
13:51:34 <AnMaster> 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 <AnMaster> env -i reduces it of course ;)
13:52:01 <AnMaster> Deewiant, how do you mean "Complicatedly"
13:52:02 -!- augur has joined.
13:52:16 <Deewiant> How about you check out the benchmarks and the results at iki.fi/deewiant/befunge/fungicide.html first :-P
13:52:39 <AnMaster> Deewiant, is this not on mycology?
13:52:40 <AnMaster> then
13:53:01 <Deewiant> You could read the whole announcement instead of just that one line, you know :-)
13:53:07 <AnMaster> Deewiant, well I couldn't find it
13:53:10 <Deewiant> Mycology is pointless to benchmark
13:53:15 <AnMaster> Deewiant, that line I quoted was first in my scrollback
13:53:15 <Deewiant> Since both cfunge and ccbi do it in 0.000s
13:53:23 <AnMaster> it is now out of it completely
13:53:37 <Deewiant> Fortunately /topic
13:53:47 <AnMaster> Deewiant, 0.000? You have a fast computer then
13:53:53 <Deewiant> Yes, I do. :-P
13:53:55 <AnMaster> I get it down to two zeros at best
13:54:06 <Deewiant> (That's with fingerprints disabled)
13:54:25 <AnMaster> even with fingerprints disabled iirc it is something like 0.0024s for both here
13:54:38 <Deewiant> 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 <AnMaster> "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 <Deewiant> You probably don't want to run the benchmarks yourself.
13:55:58 <AnMaster> oh?
13:56:00 <AnMaster> why not
13:56:19 <AnMaster> it is hard to profile to find out where the issue is without running them myself
13:56:42 <AnMaster> Deewiant, anyway, you didn't explain how your funge space works...
13:57:27 <fizzie> "Lastly, a table." What a wonderful sentence.
13:57:41 <Deewiant> 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 <AnMaster> ah not only me then
13:58:07 <fizzie> Deewiant: Your Funge benchmarks generated too much traffic for it to handle.
13:58:18 <Deewiant> I seriously doubt that :-P
13:58:27 <AnMaster> 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 <fizzie> 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 <Deewiant> fizzie: I wouldn't be that surprised, since they do say that they don't like that.
13:59:09 <Deewiant> But I would be surprised if it were /that/ popular. :-P
13:59:26 <Deewiant> 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 <Deewiant> AnMaster: Maybe around 20 hours for cfunge on my machine
13:59:49 <AnMaster> Deewiant, then it is useless to test improvements with basically then?
13:59:53 <AnMaster> sigh
14:00:00 <Deewiant> Well, you can run individual ones of course
14:00:09 <AnMaster> Deewiant, well, don't they take as long?
14:00:15 <Deewiant> Not all of them
14:00:24 <AnMaster> Deewiant, and for 2)?
14:00:37 <Deewiant> Like said, it's complicated :-P
14:00:38 <AnMaster> I seem to be unable to access the source and read it atm
14:01:13 <AnMaster> Deewiant, so complicated that you don't know how it works?
14:01:15 <AnMaster> or what
14:01:31 <AnMaster> (I mean, seriously, I can't see a good reason for not being able to explain it...)
14:02:04 <Deewiant> FWIW I think stinkhorn does something similar since it has similar performance characteristics (and beats cfunge often enough)
14:02:11 <AnMaster> Deewiant, also, how much ram do they use?
14:02:32 <Deewiant> If the site weren't timing out I could answer you
14:02:38 <AnMaster> I assume nothing too excessive. Since otherwise I won't be able to run them
14:02:49 <Deewiant> Depends on the interpreter :-P
14:02:54 <fizzie> Deewiant: It stopped timing out for me when I did one stop + reload now.
14:03:00 <AnMaster> Deewiant, if it is more than 2 GB then I will end up swap trashing
14:03:10 <AnMaster> fizzie, still times out for me
14:03:18 <Deewiant> For cfunge it'll be more than that on a few of the bigger ones, IIRC
14:03:23 <Deewiant> For ccbi it won't be, IIRC.
14:03:31 <AnMaster> mhm
14:03:48 <Deewiant> fizzie: I'm getting this on ssh to kirves: 'NFS server korppu not responding still trying'
14:03:51 <AnMaster> 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 <fizzie> Deewiant: Well, "broken" *is* the natural state of a NFS system.
14:04:38 <Deewiant> Basically, AABBs whose contents are stored as arrays, with a hash table as a fallback
14:04:41 <Deewiant> fizzie: :-D
14:04:47 <AnMaster> Deewiant, AABBs?
14:04:52 <Deewiant> It's a term.
14:04:55 <AnMaster> meaning?
14:05:07 <Deewiant> Axis-Aligned Bounding Box.
14:05:13 <AnMaster> huh.
14:05:29 <AnMaster> Deewiant, something similar to what glfunge was doing?
14:05:41 <Deewiant> I don't know what GLfunge was doing.
14:06:04 <AnMaster> something with octtrees iirc
14:06:07 * AnMaster looks at fizzie
14:06:33 <AnMaster> Deewiant, anyway, how large is each such AABB?
14:06:33 <fizzie> 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 <Deewiant> AnMaster: Dynamic.
14:07:08 <AnMaster> Deewiant, okay, but do you have some size limits for it?
14:07:11 <Deewiant> No.
14:07:14 -!- augur has quit (Read error: Connection reset by peer).
14:07:20 <AnMaster> how do you decide when to split them off then?
14:07:32 <AnMaster> and when do you use the hash table fallback?
14:07:34 <Deewiant> "Split them off"?
14:07:46 <AnMaster> Deewiant, well, maybe I misunderstood how you were doing it then
14:07:59 <Deewiant> See, it's complicated. ;-P
14:08:07 <AnMaster> Deewiant, I assume you create new such ones at runtimes?
14:08:23 <AnMaster> Deewiant, well I can't access the code to read it myself atm
14:08:28 <fizzie> 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 <AnMaster> since the server is still down for me
14:08:41 <AnMaster> fizzie, hehe
14:09:13 <Deewiant> 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 <fizzie> 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 <AnMaster> Deewiant, if you were to make windows binaries you surely have the source for *making* them around too?
14:09:48 <Deewiant> fizzie: The -p style ones loop.
14:09:55 <Deewiant> AnMaster: I was going to download it from the site.
14:09:57 <AnMaster> haha
14:10:13 <Deewiant> Since I forgot to copy it over to the NTFS disk.
14:10:20 <AnMaster> Deewiant, reboot then? Btw tried mingw? Debian/Ubuntu has a package for mingw cross compiler iirc
14:10:47 <Deewiant> I don't think cross compiling D is easy enough
14:10:53 <AnMaster> hm true
14:11:00 <AnMaster> Deewiant, well it should be with llvm :P
14:11:11 <Deewiant> No, because LLVM bitcode is not platform-independent
14:11:20 -!- adam_d has quit (Ping timeout: 245 seconds).
14:11:26 <Deewiant> There's platform-specificity before the code reaches LLVM.
14:11:34 <AnMaster> isn't the llvm asm in theory if you do it right?
14:11:43 <AnMaster> mostly platform independent
14:12:00 <AnMaster> a few things like type sizes need to be adjusted
14:12:33 <Deewiant> Rebooted.
14:12:44 <Deewiant> AnMaster: "Mostly" != "fully".
14:13:04 <AnMaster> Deewiant, but the remaining bits shouldn't be *too* hard to account for
14:13:17 <Deewiant> 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 <AnMaster> some of the OS API + some type sizes
14:13:23 <Deewiant> I.e. DWARF instead of SEH.
14:13:26 <Deewiant> OS API, exactly.
14:13:32 <Deewiant> Which is a big thing and nontrivial to convert. :-P
14:13:58 <AnMaster> Deewiant, well, stuff like D already does it, doesn't it? Since there are linux and windows versions
14:14:11 <Deewiant> The LLVM D compiler doesn't support Windows.
14:14:15 <AnMaster> ah
14:14:23 <AnMaster> good for their sanity
14:14:29 <Deewiant> And even if it did, it wouldn't "do that"
14:14:36 <AnMaster> do what?
14:14:41 <Deewiant> It just grabs the appropriate #ifdef-equivalent when compiling
14:14:45 <Deewiant> LLVM can't see that
14:14:51 <AnMaster> well yes you would need system headers
14:14:59 -!- augur has joined.
14:15:24 <Deewiant> Temp copy of my site hosted locally at http://tar.us.to:5423/
14:15:25 <AnMaster> like any cross compiler it would need headers from the target system
14:15:38 <Deewiant> And since a cross compiler doesn't exist... :-P
14:16:14 <AnMaster> Deewiant, what the hell is txz?
14:16:27 -!- augur_ has quit (Read error: Connection reset by peer).
14:16:44 <Deewiant> tar.xz
14:16:53 <AnMaster> and what is xz?
14:17:17 <Deewiant> http://tukaani.org/xz/
14:17:20 <AnMaster> Deewiant, did ccbi use 32-bit or 64-bit cells?
14:17:26 <AnMaster> and which did cfunge use?
14:17:32 <AnMaster> because cfunge defaults to 64-bit cells
14:17:34 <Deewiant> Look.at.the.results.
14:17:42 <AnMaster> Deewiant, yes it says ccbi2-32/64 and so on
14:17:43 <AnMaster> but
14:17:50 <AnMaster> it doesn't tell me if that is -m64 or -DUSE64
14:17:58 <AnMaster> which are *very* different things
14:18:04 <AnMaster> the fastest variant is -m64 -DUSE32
14:18:09 <Deewiant> All executables involved (the interpreters themselves or the interpreters’ interpreters, such as perl and python) were x86–64 ELF binaries.
14:18:16 <AnMaster> hm
14:18:20 <Deewiant> It says that on the page, you know.
14:18:26 <AnMaster> brb phone
14:18:37 <Deewiant> Hmm, my SVGs aren't working.
14:22:03 <Deewiant> 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 <AnMaster> back
14:33:42 <Deewiant> tkk.fi seems back as well.
14:33:45 <AnMaster> ah
14:33:57 <AnMaster> Deewiant, 403?
14:34:05 <AnMaster> hm reloading two times helped
14:34:11 <AnMaster> weird
14:35:20 <AnMaster> Deewiant, anyway, if this is mostly due to funge space (and I have no clue about profiling D code...)
14:35:27 <AnMaster> then I'm lucky
14:35:39 <AnMaster> because my funge space code is well abstracted
14:35:48 <AnMaster> good generic API against it
14:35:59 <Deewiant> So you'll just copy it over as usual? ;-P
14:36:03 <AnMaster> Deewiant, nah
14:36:25 <AnMaster> Deewiant, did you implement BOOL btw? And what about REXP?
14:36:34 <AnMaster> if you did, then surely you just copied it from me!
14:36:46 <AnMaster> since I implemented those before you did
14:36:53 <Deewiant> REXP and FING are the two new ones in CCBI2, for fungot
14:36:53 <fungot> Deewiant: letrec is fine, i can verify it
14:37:05 <AnMaster> Deewiant, you copied it from me then clearly :P
14:37:08 <Deewiant> AnMaster: Hey, at least you have a history of taking code from CCBI :-P
14:37:19 <AnMaster> Deewiant, not really. Of studying it yes
14:37:45 <Deewiant> Weren't the original issues with TURT in cfunge due to my buggy implementation? ;-)
14:38:46 <AnMaster> Deewiant, that wouldn't have been an issue if you hadn't made it buggy
14:38:47 <AnMaster> ;P
14:38:50 <Deewiant> :-D
14:39:27 <AnMaster> Deewiant, but yes, TURT and I guess the matrix fingerprint were based on your ones
14:39:41 <AnMaster> because at the time I implemented those I didn't really know much about the underlying areas
14:39:48 <AnMaster> that would be required to implement them
14:40:39 <AnMaster> Deewiant, looks like cfunge won at http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/horizontal.b98.html
14:40:45 <AnMaster> wait
14:40:46 <AnMaster> misread
14:40:47 <AnMaster> hrrm
14:41:04 <AnMaster> Deewiant, where does it list the size of the program?
14:41:09 <Deewiant> IIRC cfunge wins at diagdown,diagup,hollow-square
14:41:12 <Deewiant> It doesn't
14:41:20 <AnMaster> Deewiant, you said that varied on the main page
14:41:23 <AnMaster> based on some parameter
14:41:51 <Deewiant> Oh, you meant the parameter value?
14:41:53 <AnMaster> Deewiant, also I care much more about speed than memory usage. Relatively speaking, memory usage is not very interesting to me
14:41:56 <AnMaster> Deewiant, yes
14:42:05 <Deewiant> Where are you looking for it?
14:42:18 <AnMaster> at http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/horizontal.b98.html
14:42:19 <Deewiant> On that page the graphs at the top have it as the x-axis
14:42:34 <AnMaster> Deewiant, eh? where are the graphs
14:42:37 <AnMaster> I didn't see any graphs
14:42:46 <Deewiant> SVG :-/
14:42:53 <AnMaster> Deewiant, I use firefox
14:43:06 <Deewiant> They work for me at tkk.fi but they didn't at my locally-hosted one, which was weird
14:43:18 <AnMaster> Deewiant, they don't work on tkk.fi for me
14:43:31 <AnMaster> Deewiant, they do work on wikipedia
14:43:38 <AnMaster> (tried http://en.wikipedia.org/wiki/File:SVG.svg )
14:43:50 <AnMaster> (and also clicking the image)
14:43:58 <Deewiant> That's a PNG
14:43:59 <Deewiant> :-P
14:44:05 <AnMaster> Deewiant, not if you click the image
14:44:19 <Deewiant> Yes, that works but embedding seems a bit unfortunately random
14:44:55 <AnMaster> <object type="image/svg+xml" data="plots/cactus-time.svg">Cactus plot for time used.</object>
14:44:55 <Deewiant> I presume you see the text instead? "Line plot of foo bar" or whatever
14:44:56 <AnMaster> what?
14:45:05 <Deewiant> For example that text, yes
14:45:08 <Deewiant> What what
14:45:13 <AnMaster> Deewiant, why not <img>?
14:45:17 <AnMaster> I thought that was the normal way
14:45:18 <Deewiant> Because that doesn't work in Firefox :-P
14:45:22 <AnMaster> Deewiant, eh!?
14:45:31 <Deewiant> SVG img doesn't work in Firefox: it's a known bug
14:45:39 <Deewiant> https://bugzilla.mozilla.org/show_bug.cgi?id=276431
14:45:40 <AnMaster> Deewiant, I'm pretty sure it worked for me with .svg in 3.0.x versions
14:45:44 <AnMaster> haven't tested recently
14:45:46 <Deewiant> You're wrong
14:46:00 <AnMaster> Deewiant, shouldn't this be a trivial fix
14:46:14 <AnMaster> I mean, rewriting them to object tags internally or something
14:46:15 <Deewiant> It's a security issue since SVGs can be scripted
14:46:19 <Deewiant> Or something like that
14:46:25 <Deewiant> Can't remember the details but no, it's not trivial.
14:46:26 <AnMaster> Deewiant, but so can web pages...
14:46:36 <Deewiant> But other images can't... I DUNNO
14:46:58 <Deewiant> AnMaster: Anyway I presume you see that "cactus plot" text?
14:47:09 <AnMaster> okay what the hell
14:47:14 <AnMaster> after view source I do see the images
14:47:17 <AnMaster> ..................
14:47:19 <Deewiant> :-D
14:48:03 <AnMaster> Deewiant, anyway it is pretty much guaranteed that whatever-32 is faster than whatever-64
14:48:08 <AnMaster> since more data fits in cache
14:48:09 <Deewiant> Yes, it is.
14:48:33 <AnMaster> how comes mine was so fast for the squares?
14:49:05 <AnMaster> Deewiant, anyway the table below, it doesn't state what problem size it is for
14:49:16 <Deewiant> It's a summary, it includes all problem sizes
14:49:23 <AnMaster> so the total memory?
14:49:26 <AnMaster> is it average?
14:49:27 <AnMaster> peak?
14:49:35 <Deewiant> It is the total memory.
14:49:40 <Deewiant> Sum.
14:49:43 <AnMaster> you mean run1 + run2 + run3 ...?
14:49:49 <Deewiant> Yes, that is what "total" means.
14:49:49 <AnMaster> Deewiant, and in what unit
14:50:00 <Deewiant> "All time measurements are in seconds (s) and all memory measurements are in mebioctets (Mio)."
14:50:25 <AnMaster> ... that unit...
14:50:31 <Deewiant> :-D
14:51:02 <AnMaster> it took like 3 seconds to figure out what was written. Because "word form" reading broke down
14:51:13 <AnMaster> and then another second to parse it
14:51:49 <fizzie> 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 <AnMaster> fizzie, :D
14:52:11 <AnMaster> fizzie, there is fungot
14:52:12 <fungot> AnMaster: magic takes away most of the " _" is 0???
14:52:16 <Deewiant> Yes, that would be a minor problem if there were any.
14:52:42 <AnMaster> you could test fungot's ul and bf interpreters instead
14:52:43 <fungot> AnMaster: nngh or something? ( so when cmuscheme48 sends the ' ,from-file foo.scm' command, it would be.
14:52:45 <AnMaster> as free standing
14:53:28 <AnMaster> Deewiant, ccbi1 stats for hollow square are amazing
14:53:34 <AnMaster> how did it even manage that
14:53:37 <Deewiant> CCBI1 is quite amazing :-D
14:53:43 <AnMaster> slower than language::befunge
14:53:50 <AnMaster> Deewiant, why does it say language-befunge there?
14:53:52 <AnMaster> not the proper name
14:54:09 <Deewiant> None of them say the proper name because I was too lazy to prettify them
14:55:00 <Deewiant> AnMaster: And hey, cfunge is slower than Language::Befunge on the two biggest fork.b98
14:55:00 <AnMaster> heh read that as petrify
14:55:10 <AnMaster> Deewiant, fork.b98 as in t?
14:55:11 <AnMaster> well
14:55:22 <AnMaster> Deewiant, I will argue that forking a lot is not realistic
14:55:32 <AnMaster> thus it is a pretty useless stats
14:55:42 <Deewiant> Sure
14:55:53 <AnMaster> most programs won't have more than 2 or 3 threads. I can't imagine anything with more than 50 say
14:56:38 <AnMaster> 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 <AnMaster> what I'm confused about is diagup/diagdown being efficient in cfunge
14:57:14 <AnMaster> Deewiant, is that x to set a delta of 1,1?
14:57:37 <Deewiant> It uses x to do that, yes (what else?)
14:57:45 <AnMaster> Deewiant, oh and if I implement another funge space, expect it to be a compile time option.
14:57:55 <AnMaster> so you have to list 4 variants of cfunge next time ;P
14:58:08 <AnMaster> Deewiant, well, then it goes like 11x11x? diagonally
14:58:23 <AnMaster> or what does it travel over
14:58:27 <AnMaster> empty space?
14:58:28 <Deewiant> No? It travels over z
14:58:31 <AnMaster> ah
14:58:37 <Deewiant> "11x followed by the given number of z in a diagonal line."
14:58:50 <AnMaster> Deewiant, well I don't know how you implement z...
14:58:59 <Deewiant> :-D
14:59:08 <Deewiant> sleep(1); return;
14:59:13 <AnMaster> sleep(1)? ;P
14:59:14 <AnMaster> why
14:59:18 <Deewiant> Of course not :-D
14:59:21 <AnMaster> har
14:59:54 <Deewiant> The problem is that CCBI doesn't handle loading of sparse files efficiently
14:59:57 <AnMaster> Deewiant, how many decimals did you use for http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/diagdown.b98.html ?
15:00:01 <AnMaster> more than is listed I assume
15:00:13 <AnMaster> look at cfunge-32/64 ordering down ther
15:00:14 <AnMaster> there
15:00:16 <Deewiant> gettimeofday()
15:00:20 <AnMaster> on "Individuals"
15:00:24 <Deewiant> So microseconds, I guess
15:00:29 <AnMaster> since the sorting shows more than what you list
15:00:46 <Deewiant> It really doesn't matter if the difference is that small :-P
15:00:59 <AnMaster> Deewiant, each is an average over how many runs?
15:01:17 <Deewiant> http://users.tkk.fi/~mniemenm/befunge/fungicide.html#measurements
15:01:56 <AnMaster> "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 <AnMaster> what?
15:02:03 <AnMaster> Deewiant, how can it not vary?
15:02:10 <Deewiant> Why would it vary?
15:02:25 <AnMaster> Deewiant, oh you mean vary between runs, not vary during a run
15:02:34 <Deewiant> Yes, of course :-D
15:02:56 <Deewiant> I suppose I could just always take the memory usage as the first value
15:03:03 <AnMaster> Deewiant, well, since cfunge sets up randomness at startup, presumably the code path to write it could look slightly different
15:03:18 <AnMaster> so srandom(19847682764) vs. srandom(19847682372)
15:03:20 <AnMaster> or whatever
15:03:22 <Deewiant> I also assume that that makes absolutely no difference
15:03:29 <AnMaster> hm wait
15:03:39 <AnMaster> I think I use the microseconds from gettimeofday()
15:05:17 <AnMaster> Deewiant, the thing to do is to make it double fork and run the original process only for console IO
15:05:22 <AnMaster> that should confuse your stuff ;P
15:05:42 <AnMaster> Deewiant, also I notice you skipped efunge
15:05:43 <AnMaster> how comes
15:05:45 <Deewiant> I'll disqualify such an implementation for being abusive :-P
15:06:17 <Deewiant> "There have not yet been any release, first release (0.0.1) is expected in late October or early November (2008)."
15:06:29 <AnMaster> Deewiant, anyway, what does mmap() calls show up as in /proc/self/smaps ? heap?
15:06:39 <AnMaster> err
15:06:44 <AnMaster> s/self/pid/
15:06:47 <Deewiant> I'll be honest: I don't know. The numbers seemed representative so I went with them.
15:07:36 <AnMaster> Deewiant, also since cfunge mmap()s the input file I assume it will drop sharply once the file is loaded
15:08:51 <AnMaster> Deewiant, what is up with plots/horizontal.b98/1000000/line-memtime.svg
15:09:17 <Deewiant> Something up?
15:09:32 <AnMaster> yes?
15:10:19 <AnMaster> Deewiant, it looks weird for the lower one
15:10:20 <Deewiant> 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 <AnMaster> ah
15:10:42 <AnMaster> Deewiant, and why is the cfunge plot in plots/horizontal.b98/100000/line-memtime.svg discontinuous?
15:10:59 <AnMaster> it goes to almost zero at one point?
15:11:54 <Deewiant> I don't know; that happens as well, with many interpreters; they start out high, then drop, then climb "normally"
15:11:58 <AnMaster> Deewiant, and uh plots/horizontal.b98/10000000/line-memtime.svg has two red lines at once?
15:12:06 <AnMaster> memory is no longer a function of time
15:12:16 <AnMaster> since there is more than one value
15:12:23 <Deewiant> Huh?
15:12:35 <AnMaster> Deewiant, there is a constant red line at the top
15:12:45 <AnMaster> and there is one normal one further down
15:12:48 <Deewiant> Yes; that's in all the plots
15:12:53 <AnMaster> ah indeed
15:12:55 <Deewiant> It just marks the theoretical maximum
15:12:55 <AnMaster> and why=
15:12:59 <Deewiant> I.e. the amount of memory in my system
15:13:02 <AnMaster> ah
15:13:14 <Deewiant> The time ones have something similar, for the timeout of 10800 seconds
15:13:17 <AnMaster> Deewiant, I thought it was ccbi1 :P
15:13:24 <AnMaster> maybe some other way to mark it
15:13:26 <AnMaster> say dashed line
15:13:29 <AnMaster> would work better
15:13:48 <Deewiant> 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 <AnMaster> Deewiant, did cfunge ever hit the timeout?
15:14:05 <Deewiant> You can see that in the main summary: no, it didn't
15:14:17 <Deewiant> 2318.5 seconds was the maximum for cfunge-32
15:14:41 <AnMaster> mhm
15:14:49 <AnMaster> Deewiant, and what about memory limits
15:14:53 <AnMaster> plus the graphs on the main page
15:14:57 <Deewiant> ?
15:14:57 <AnMaster> I haven't figured them out
15:15:05 <AnMaster> they make little sense
15:15:17 <AnMaster> benchmarks completed -> time?
15:15:21 <AnMaster> that doesn't make sense to me
15:15:34 <Deewiant> There's a textual explanation above, you know
15:15:36 <AnMaster> how is time a function of how many of the benchmarks were successfully completed?
15:15:42 <AnMaster> Deewiant, read it, confused me even more
15:16:03 <Deewiant> It's just the maximum time needed to complete that many benchmarks
15:16:05 <AnMaster> "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 <Deewiant> No, I don't
15:16:18 <AnMaster> then I can't read it still
15:16:29 <AnMaster> oh it is a sum?
15:16:36 <AnMaster> of the time up until then?
15:16:45 <Deewiant> No, it's not cumulative, it's the maximum. :-P
15:16:56 <AnMaster> what?
15:17:00 <AnMaster> that makes NO sense
15:17:21 <Deewiant> 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 <Deewiant> (With the x-coordinate increasing by one each time)
15:18:16 <AnMaster> hm
15:18:26 <Deewiant> 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 <AnMaster> Deewiant, so what if the ten benchmarks take:
15:18:55 <AnMaster> 1 1 1 1 1 2 2 2 3 3 2
15:19:01 <Deewiant> Same thing
15:19:01 <AnMaster> or 11 I guess
15:19:08 <Deewiant> Or wait, that's one more 3
15:19:10 <Deewiant> But anyway
15:19:11 <AnMaster> Deewiant, so you get three or two three dots?
15:19:12 <Deewiant> It's sorted first
15:19:17 <AnMaster> ...........
15:19:25 <Deewiant> So that's equivalent to 1 1 1 1 1 2 2 2 2 3 3
15:19:31 <AnMaster> Deewiant, that is useless for getting an overview of which ones are slow
15:19:45 <Deewiant> It's meant for comparing the interpreters, not the benchmarks
15:19:55 <AnMaster> Deewiant, and didn't stinkhorn complete any btw?
15:19:58 <AnMaster> well
15:20:02 <AnMaster> only a few
15:20:04 <AnMaster> it looks like it
15:20:05 <Deewiant> ?
15:20:11 <AnMaster> oh wait
15:20:13 <AnMaster> that is pyfunge
15:20:18 <AnMaster> so pyfunge crashed?
15:20:27 <Deewiant> This is all explained in the text
15:20:32 <AnMaster> which part
15:20:40 <Deewiant> "Note on misbehaviour"
15:21:16 <AnMaster> # CCBI 1.0.20 can’t handle fork.b98 past 4096 threads at all, crashing in some way.
15:21:18 <AnMaster> oh?
15:21:19 <AnMaster> why?
15:21:27 <Deewiant> "in some way" == "I don't know"
15:21:30 <AnMaster> Deewiant, does it stop at the first one crashed?
15:21:37 <Deewiant> "it"?
15:21:41 <AnMaster> ...
15:21:47 <AnMaster> the diagram
15:21:59 <AnMaster> since it seems cut short very early for ccbi if just the fork one failed
15:22:20 <Deewiant> You can see the number of benchmarks run in the table below
15:22:27 <Deewiant> 74 for most, 69 for CCBI 1, 42 for PyFunge
15:22:33 <AnMaster> hm
15:22:57 <AnMaster> Deewiant, do the fork threads exit right away?
15:23:02 <AnMaster> or do they continue to run?
15:23:08 <Deewiant> They're all alive when the first one hits @
15:23:29 <AnMaster> hm
15:23:52 <AnMaster> for the forks one, I think that simply tuning the realloc() growing size for threads would change it a lot
15:24:03 <Deewiant> Possibly
15:24:29 <AnMaster> http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/fork.b98.html <-- why are there extra smaller diagrams?
15:24:30 <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)
15:24:42 <Deewiant> There are no extra diagrams, they're all the same
15:24:51 <AnMaster> there are a lot of tiny ones at the end
15:24:54 <Deewiant> Why Firefox displays some as small, I do not know
15:24:59 <AnMaster> ah
15:24:59 <Deewiant> Move your mouse over them
15:25:24 <AnMaster> Deewiant, does nothing?
15:25:36 <Deewiant> For me it enlarges them if they're small :-P
15:25:53 <AnMaster> reloading the page makes them large
15:25:55 <Deewiant> View in a separate tab/window/program if they're problematic
15:26:03 <AnMaster> Deewiant, btw I found out I have to allow scripts if I want the svgs to show
15:26:15 <Deewiant> Yes, that blocks them
15:26:31 <AnMaster> which is silly, it noscript only blocks the scripts, not the whole page normally
15:26:37 <AnMaster> so why should it be any different for svgs
15:26:44 <AnMaster> only block the scripts in the svgs
15:26:50 <Deewiant> Shrug
15:27:15 <Deewiant> 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 <AnMaster> Deewiant, anyway I bet I could make a number of benchmarks where cfunge would be way faster :P
15:28:21 <AnMaster> ccbi1 as the fastest one would have a hard time though
15:28:27 <AnMaster> bbl making food
15:28:46 <Deewiant> 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 <Deewiant> So suffer ;-P
15:34:52 <Deewiant> 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 <AnMaster> Deewiant, well life.bf is useful
16:00:05 <AnMaster> and so is fungot's ^bf and ^ul
16:00:05 <fungot> AnMaster: misc/ packages.scm
16:00:39 <AnMaster> 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 <AnMaster> quite easy to benchmark
16:01:06 <AnMaster> Deewiant, I think I told you the command line I used before
16:01:23 <AnMaster> so it is very benchmarkable yes
16:01:35 <Deewiant> Changes there might even depend on the level of I/O buffering
16:01:44 <Deewiant> Which has nothing to do with performance
16:02:13 <AnMaster> Deewiant, stdout redirected to something tends to become fully buffered
16:02:46 <Deewiant> Where the buffer size can vayr.
16:02:47 <Deewiant> vary.
16:03:05 <fizzie> Fungot seems to suggest using "misc/packages.scm", but I'm not sure how that'd work.
16:04:14 <fizzie> 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 <Deewiant> AnMaster: Preferably: replace the , with $ and set it up so that it stops after some (preferably easily changeable) number of iterations
16:04:35 <Deewiant> (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 <oerjan> spot the difference.
16:49:36 -!- augur has quit (Read error: Connection reset by peer).
16:58:23 <AnMaster> Deewiant, IO tests are interesting too
16:59:08 -!- adam_d__ has joined.
16:59:09 <Deewiant> But try not to conflate it with non-IO.
17:01:58 -!- adam_d_ has quit (Ping timeout: 265 seconds).
17:02:12 <AnMaster> Deewiant, hm?
17:02:28 <AnMaster> 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 <AnMaster> not sure about anon mmap
17:02:56 <Deewiant> I.e. if you're going to benchmark IO, try to benchmark only IO, not IO + something otherwise performance-intensive.
17:03:00 <AnMaster> there are also lines like:
17:03:02 <AnMaster> /proc/8939/maps:7fab50ecf000-7fab50f2f000 rw-s 00000000 00:04 23592979 /SYSV00000000 (deleted)
17:03:03 <AnMaster> /proc/9438/maps:7f1396aa0000-7f1396b00000 rw-s 00000000 00:04 23756833 /SYSV00000000 (deleted)
17:03:05 <AnMaster> quite interesting
17:03:19 <AnMaster> fizzie, btw for bf benchmark that mandelbrot in bf wasn't very fast iirc
17:03:23 <AnMaster> it should be useful
17:03:35 <AnMaster> as in, extremely slow without optimising
17:03:43 <AnMaster> and still slow with optimising compiler
17:04:20 <AnMaster> /proc/2407/maps-7f7165c88000-7f7165c89000 ---p 00000000 00:00 0
17:04:20 <AnMaster> /proc/2407/maps-7f7165c89000-7f7166489000 rw-p 00000000 00:00 0
17:04:25 <AnMaster> now those are some strange mappings
17:04:40 <AnMaster> that is - after since it was from grep -C
17:05:08 <AnMaster> Deewiant, and smaps is iirc the same, just with more info
17:05:12 <AnMaster> so harder to grep in
17:05:17 <AnMaster> since it is not one entry per line
17:06:03 <AnMaster> Deewiant, looks like firefox mmap()s ~/.mozilla/firefox/profilename/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}/chrome/adblockplus.jar and so on
17:06:06 <AnMaster> for all the extensions
17:06:09 <AnMaster> interesting
17:06:46 <AnMaster> Deewiant, btw as far as I can tell erlang doesn't use the system heap
17:06:54 <AnMaster> it is zero in size
17:07:04 <AnMaster> it mmap()s areas and use those I think
17:07:21 <AnMaster> Deewiant, so yeah testing efunge that way would require adjustments
17:08:01 <Deewiant> I'm /fairly/ sure that anon mmap() is included.
17:08:18 <Deewiant> I'd be very surprised if those programs all used only brk(), at least.
17:08:39 <AnMaster> Deewiant, no, I'm pretty sure there isn't
17:08:46 <AnMaster> 7f55b454e000-7f55b46e5000 rw-p 00000000 00:00 0
17:08:46 <AnMaster> 7f55b4762000-7f55b7f18000 rw-p 00000000 00:00 0
17:08:46 <AnMaster> 7f55b7f84000-7f55b8085000 rw-p 00000000 00:00 0
17:08:46 <AnMaster> 7f55b80f2000-7f55b8572000 rw-p 00000000 00:00 0
17:08:49 <AnMaster> those are anon mmaps
17:08:52 <AnMaster> as far as I can tell
17:09:05 <AnMaster> Deewiant, because the way that erlang works, I can see how those varies
17:09:12 <AnMaster> both in number and in size
17:09:13 <AnMaster> when it runs
17:09:33 <Deewiant> I mean, included by my measurer: it doesn't grep over anything that looks like that IIRC
17:09:42 <Deewiant> (I.e. I don't really know what you're talking about)
17:10:26 <AnMaster> Deewiant, you said you added heap + stack from smaps iirc?
17:10:30 <AnMaster> or did I misunderstood you?
17:10:42 <Deewiant> I didn't say anything, I wrote something on the web page
17:10:42 <AnMaster> misunderstand*
17:10:47 <AnMaster> Deewiant, well okay
17:11:02 <AnMaster> Deewiant, but [heap] is brk() as far as I can tell in some simple tests
17:11:04 <Deewiant> 'Memory usage is measured using a Python script which repeatedly reads the /proc/<pid>/smaps pseudofile, summing up any “Shared” and “Private” values.'
17:11:06 <AnMaster> and anon mmaps are not there
17:11:31 <AnMaster> Deewiant, Shared_Clean or Shared_Dirty?
17:11:40 <AnMaster> or both?
17:11:48 <Deewiant> Both
17:11:51 <AnMaster> both Shared and Private seems to be split into Clean/Dirty here
17:12:09 <Deewiant> Anything that starts with "Shared" or "Private" is summed
17:12:25 <AnMaster> Deewiant, due to COW and such on I'm not sure this is actually good
17:12:30 <AnMaster> you should look at the type of the object
17:12:32 <Deewiant> Neither am I
17:12:34 <AnMaster> probably
17:12:36 <Deewiant> But it seemed representative
17:12:45 <AnMaster> Deewiant, like libc seems mapped more than once into some processes
17:12:47 <AnMaster> which is weird
17:12:56 <AnMaster> wait no
17:13:03 <AnMaster> those are read/readonly/nx and so on
17:13:29 <Deewiant> 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 <AnMaster> Deewiant, well for one, erlang -smp would cause problems I think
17:14:16 <AnMaster> let me check
17:15:03 <AnMaster> ah hm
17:15:29 <AnMaster> seems the threads go into /proc/<pid>/task/<pids(?)>/smaps
17:15:49 <AnMaster> hm
17:16:06 <AnMaster> aha
17:16:15 <AnMaster> the thread specific stacks are gone from the main one it seems
17:16:22 <AnMaster> 7f1106688000-7f1106699000 rw-p 00000000 00:00 0 [threadstack:0000fff0]
17:16:36 <AnMaster> or wait
17:17:14 <AnMaster> well not sure
17:17:26 <AnMaster> linux does seem to try to do something "reasonable" for phtreads apps
17:17:54 <AnMaster> Deewiant, is there any graph over which test took the longest for a given implementation?
17:18:06 <AnMaster> Like I want to see what else than t that cfunge was extremely slow at
17:18:14 <AnMaster> if anything
17:19:04 -!- augur_ has quit (Ping timeout: 268 seconds).
17:19:11 <AnMaster> Deewiant, oh btw:
17:19:13 <AnMaster> // For concurrent funge: how many new IPs to allocate in one go?
17:19:13 <AnMaster> #define ALLOCCHUNKSIZE 1
17:19:17 <AnMaster> that explains a lot I think
17:19:18 <Deewiant> How would one graph that? :-P
17:19:29 <AnMaster> Deewiant, as a venn diagram!
17:19:32 <AnMaster> (not really)
17:19:33 <Deewiant> >_<
17:19:50 <AnMaster> Deewiant, was that >_< over the #define?
17:19:53 -!- augur has joined.
17:19:57 <Deewiant> No, the venn diagram
17:20:01 <Deewiant> But I suppose it works for that too
17:20:35 <fizzie> It is soon AI competition time again; I get to invent new plots to draw about the games, yay.
17:20:41 <Deewiant> For finding the "worst" for anything, grab the preprocessed data and do some awk or something...
17:20:45 <AnMaster> Deewiant, I'm not sure non-1 sizes will work properly
17:20:52 <AnMaster> I have to check
17:21:01 <Deewiant> AnMaster: Some #define if only one value is ever correct :-D
17:21:03 <AnMaster> (ipList*)malloc(sizeof(ipList) + sizeof(instructionPointer[ALLOCCHUNKSIZE]))
17:21:07 <AnMaster> I thought I fixed that code?
17:21:13 <AnMaster> (ais helped me figure it out)
17:21:24 <AnMaster> hint: instructionPointer is a *type*
17:22:01 <AnMaster> Deewiant, fizzie now one C nerd mark if you can tell me what it does and why it works.
17:22:18 <AnMaster> also, it confused no ends out of the static analyser sparse
17:22:42 <Deewiant> Isn't it just taking the sizeof of a static array?
17:22:48 <Deewiant> Seems rather trivial to me...
17:22:49 <AnMaster> Deewiant, not a static array no
17:22:56 <AnMaster> Deewiant, but yes in that case
17:22:59 <AnMaster> the other case was better
17:23:04 -!- adam_d__ has changed nick to adam_d.
17:23:19 <AnMaster> Deewiant, there it was sizeof(instructionPointer[(*me)->size + ALLOCCHUNKSIZE])
17:23:22 <AnMaster> Deewiant, :)
17:23:23 <Deewiant> Yes, I remember that VLA one... but I guess that should be equally obvious
17:23:24 <AnMaster> ah
17:23:57 * AnMaster wonders why he cast the value of malloc()
17:24:04 <AnMaster> I mean, it isn't like this is C++...
17:24:41 <AnMaster> uh, what did I just do...
17:24:45 <AnMaster> recursive sshfs I think
17:26:15 <AnMaster> Deewiant, where was the link to the .xz tools now again?
17:26:28 <AnMaster> because
17:26:33 <AnMaster> it isn't in repos
17:26:38 <AnMaster> of ubuntu 9.04 it seems
17:26:43 <Deewiant> O_o
17:26:53 <Deewiant> It's in [core] in Arch
17:27:07 <Deewiant> You sure you don't have it already?
17:27:27 <fizzie> Indeed, xz-utils only appears in karmic and lucid.
17:27:32 <AnMaster> Deewiant, I'm on my laptop...
17:27:38 <AnMaster> since it has a better CPU
17:27:42 <AnMaster> way better one
17:27:45 <fizzie> (C.f. http://packages.ubuntu.com/search?keywords=xz-utils&searchon=names&suite=all&section=all)
17:28:05 <AnMaster> meh *third level recurses ssfs to uncompress it*
17:28:21 <AnMaster> (since I mounted a different subtree before
17:28:23 <AnMaster> )
17:28:24 <AnMaster> hm
17:28:28 <Deewiant> AnMaster: What do you decompress lzma with?
17:28:45 <AnMaster> Deewiant, lzma -d ?
17:28:50 <Deewiant> Where lzma is from?
17:29:02 <Deewiant> $ which lzma
17:29:03 <Deewiant> /usr/bin/lzma -> /usr/bin/xz
17:29:06 <AnMaster> $ lzma --help
17:29:07 <AnMaster> lzma 4.32.0beta3 Copyright (C) 2006 Ville Koskinen
17:29:07 <AnMaster> Based on LZMA SDK 4.43 Copyright (C) 1999-2006 Igor Pavlov
17:29:17 <AnMaster> $ file /usr/bin/lzma
17:29:17 <AnMaster> /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 <Deewiant> Huh.
17:29:41 <AnMaster> Homepage: http://www.7-zip.org/sdk.htm
17:29:44 <AnMaster> says apt-cache
17:29:49 <AnMaster> if I guessed the right package
17:29:50 <AnMaster> bbl
17:29:58 <fizzie> You did.
17:30:00 <AnMaster> got to do something other, more important, RL
17:30:12 <Deewiant> Well, with luck, that'll decompress it as well :-P
17:31:15 <fizzie> fis@eris:~$ apt-cache show $(dpkg-query -S $(which lzma) | cut -d ':' -f 1) | grep ^Homepage:
17:31:15 <fizzie> Homepage: http://www.7-zip.org/sdk.htm
17:40:43 <fizzie> 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 <AnMaster> Deewiant, so the xz file is just lzma?
17:52:32 * AnMaster looks for the README on fungicide
17:52:46 <Deewiant> It might be different if xz does something different based on argv[0]...
17:53:24 <AnMaster> 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 <Deewiant> That's GNU tar specific anyway
17:53:40 <fizzie> The page about xz-utils did say that .xz is a newer container, even though the LZMA algo is still LZMA.
17:53:51 <AnMaster> Deewiant, true, but that is the tar I normally use
17:54:05 <fizzie> And lucid's GNU tar has a -J flag for xz.
17:54:10 <fizzie> -J, --xz
17:54:10 <fizzie> filter the archive through xz
17:54:31 <fizzie> And --lzma for lzma. And --lzop for lzop.
17:54:39 <Deewiant> Lzo too? Nice.
17:54:40 <AnMaster> lzop?
17:54:42 <fizzie> (The latter is yet another LZMA-based thing.)
17:55:00 <Deewiant> Isn't LZO completely different?
17:55:00 <fizzie> Oh, right, lzop *was* LZO-based.
17:55:03 <AnMaster> Deewiant, anyway, I can't figure out how to just run a timed test on forking
17:55:10 <fizzie> Yes, I was just under the impression that lzop had a silly name.
17:55:19 <pikhq> lzop is deliciously fast.
17:55:28 <AnMaster> pikhq, bad compression ratio iirc?
17:55:28 <Deewiant> AnMaster: You can comment stuff out from runs.dat with #
17:55:33 <fizzie> 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 <Deewiant> Then make an interpreters.dat and use runallruns
17:55:41 <fizzie> There's certainly a number of them.
17:55:47 <pikhq> AnMaster: Not too far from gzip, actually.
17:56:06 <AnMaster> Deewiant, yes but where do I run just the fork test. Like I need to run it under valgrind --tool=cachegrind
17:56:20 <AnMaster> Deewiant, (for small sizes only of course)
17:56:23 <pikhq> AnMaster: The nice thing about lzop, though, is tat it means your compression is likely IO bound. ;
17:56:27 <pikhq> ;)
17:56:35 <AnMaster> pikhq, what about from ramdisks ;P
17:56:56 <AnMaster> (where small is something like mycology sized)
17:56:57 <Deewiant> AnMaster: Just set up an interpreters.dat with valgrind
17:57:19 <AnMaster> Deewiant, that needs to be valgrind --tool=cachegrind --lots-of-other-parameters build_opt_dbg/cfunge
17:57:24 <AnMaster> hm
17:57:27 <Deewiant> So do that? :-P
17:57:35 <Deewiant> You can use runone.pl directly too I guess
17:57:51 <AnMaster> Deewiant, okay, and where does that helper fungify need to be?
17:57:55 <Deewiant> In path
17:58:03 <AnMaster> Deewiant, and how does one compile it?
17:58:08 <Deewiant> ghc --make
17:58:16 <pikhq> AnMaster: The speed of LZO is approx. 1/6th that of memcpy.
17:58:20 <AnMaster> Deewiant, in the same dir as the .hs file?
17:58:22 <AnMaster> that's all?
17:58:25 <Deewiant> ghc --make file.hs
17:58:29 -!- MizardX has joined.
17:58:40 <AnMaster> fungify.hs:54:7:
17:58:40 <AnMaster> Could not find module `Test.ChasingBottoms.TimeOut':
17:58:40 <AnMaster> Use -v to see a list of the files searched for.
17:58:41 <Deewiant> AnMaster: Well, you need to have the dependencies installed, which you may or may not
17:58:42 <AnMaster> Deewiant, any clue?
17:58:51 <Deewiant> cabal install chasing-bottoms IIRC
17:59:01 <Deewiant> If you lack cabal... blame your distro
17:59:23 <AnMaster> bash: cabal: command not found
17:59:24 <AnMaster> yeah
17:59:46 <AnMaster> nothing matching "chasing-bottoms" either
18:00:00 -!- cal153 has joined.
18:00:26 <AnMaster> Deewiant, if I compile it on another system, will it run on this one?
18:00:31 <AnMaster> also what the heck is up with ghc on arch:
18:00:46 <Deewiant> If it's the same arch and dynamic library versions, it probably will
18:00:46 <AnMaster> Targets (1): ghc-6.12.1-4
18:00:47 <AnMaster> Total Download Size: 54.21 MB
18:00:47 <AnMaster> Total Installed Size: 665.06 MB
18:01:00 <Deewiant> That's normal, isn't it?
18:01:01 <AnMaster> Deewiant, I have 6.8.2 on ubuntu
18:01:06 <AnMaster> sigh
18:01:16 <Deewiant> AnMaster: Get cabal
18:01:18 <AnMaster> Deewiant, can you provide a static binary of it?
18:01:19 <Deewiant> On your ubuntu
18:01:21 <AnMaster> the file
18:01:22 <Deewiant> AnMaster: x86-64
18:01:27 <AnMaster> Deewiant, yes that is fine
18:01:33 <AnMaster> it is exactly what I need
18:01:39 <Deewiant> tar.us.to:12345
18:02:12 <AnMaster> lets try it
18:02:40 <AnMaster> ./fungify: error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directory
18:02:41 <AnMaster> :/
18:02:46 <Deewiant> :-P
18:02:51 <AnMaster> Deewiant, doesn't it support static linking?
18:03:05 <Deewiant> To GMP, I don't think so
18:03:08 <Deewiant> Since that would violate GPL
18:03:10 <Deewiant> IIRC
18:03:15 <AnMaster> -_-
18:03:22 <Deewiant> Hooray for GPL :-P
18:03:24 <AnMaster> Deewiant, wouldn't even using GMP at all do so then?
18:03:30 <Deewiant> No, dynamic linking is fine
18:03:44 <Deewiant> (Note: I can't remember but I think this was an issue once)
18:04:12 <AnMaster> Deewiant, and how can I quickly check that it works. Just running it does nothing
18:04:21 <Deewiant> fungify 123
18:04:38 * AnMaster copied /usr/lib/libgmp.so.10 from another computer and is using LD_LIBRARY_PATH
18:04:44 <AnMaster> Deewiant, '{ ?
18:04:54 <Deewiant> If it outputs something it probably works :-P
18:05:13 <AnMaster> right. what a mess though :P
18:06:02 <Deewiant> It was originally just meant for my own use but then it turned out to be very handy in fungicide
18:06:11 <AnMaster> 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 <Deewiant> AnMaster: If you use runone.pl directly it'll take the program as an argument (i.e. the generated file)
18:06:51 <AnMaster> hm
18:07:40 <AnMaster> 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 <AnMaster> eh?
18:07:53 <Deewiant> Use the CPAN, Luke
18:08:10 <Deewiant> And if your distro doesn't have /that/, take it around the corner and shoot it :-P
18:08:15 <AnMaster> is it BSD::Resources?
18:08:40 <AnMaster> ah libbsd-resource-perl seems relevant
18:09:15 <AnMaster> why is there a libbsd-resource-perl-dbgsym I wonder...
18:09:50 <AnMaster> hm it installs a *.so, right
18:10:41 <AnMaster> Deewiant, okay this one is more confusing:
18:10:43 <AnMaster> "make_path" is not exported by the File::Path module
18:10:43 <AnMaster> "remove_tree" is not exported by the File::Path module
18:10:54 <AnMaster> File::Path *does* seem to be there
18:11:15 <Deewiant> Which version?
18:11:24 <Deewiant> Mine is 2.08
18:11:35 <AnMaster> eh, trying to find out
18:11:44 <Deewiant> cpan<CR>i File::Path
18:11:47 <Deewiant> <CR>
18:12:15 <AnMaster> cpan starts asking me questions instead
18:12:33 <Deewiant> Answer it? ;-P
18:12:46 <AnMaster> well I don't know them, about build dirs and such
18:13:00 <AnMaster> Deewiant, anyway I don't want to end up with non-distro files in /usr
18:13:37 <Deewiant> Then set up some kind of site_perl in $HOME, which I would guess is possible
18:13:42 <AnMaster> Deewiant, is it libfile-path-expand-perl ?
18:13:58 <AnMaster> Deewiant, it seems File::Path is built into perl?
18:13:59 <Deewiant> How would I know? It is File::Path
18:14:04 <AnMaster> as in, same package
18:14:21 <AnMaster> perl v5.10.0 btw
18:14:29 <Deewiant> 5.10.1 here
18:14:48 <Deewiant> Feel free to modify runone.pl if you think that'll be easier :-P
18:15:06 <AnMaster> nah
18:15:13 <Deewiant> http://search.cpan.org/~dland/File-Path-2.08/Path.pm
18:15:31 <AnMaster> /usr/share/perl/5.10/File/Path.pm
18:15:32 <AnMaster> wth
18:15:42 <AnMaster> there is /usr/lib/perl and /usr/share/perl
18:15:44 <Deewiant> INST_FILE /usr/share/perl5/site_perl/5.10.1/File/Path.pm
18:16:10 <AnMaster> Deewiant, how wound one tell version from the *.pm file?
18:16:19 <Deewiant> I don't know
18:16:26 <AnMaster> ah
18:16:29 <AnMaster> version is 2.04
18:16:37 <AnMaster> at least it says $VERSION = '2.04'
18:16:49 <AnMaster> s/$/;/
18:17:09 <AnMaster> Deewiant, bbl, have to rush, will be back in ~1 hour, 20 minutes
18:17:10 <Deewiant> I know very little Perl-the-language and practically none Perl-the-community apart from that CPAN typically works very well
18:18:23 <Deewiant> 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 <Deewiant> s/them/the benchmarks/
18:20:32 -!- uorygl has quit (Quit: leaving).
18:22:22 <fizzie> 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 <fizzie> 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 <ehirdiphone> Teleparts of? Pseudo-dispatch time.
18:39:10 <pikhq> Yote.
19:01:40 <pikhq> ehirdiphone: How farest thou?
19:01:59 <ehirdiphone> Shitty.
19:02:24 <ehirdiphone> I need to figure out a way to code on this thing.
19:02:50 <pikhq> Jailbreak + terminal.app?
19:04:53 <Deewiant> SSH over IRC?
19:05:16 <pikhq> Deewiant: Ow
19:05:17 <Deewiant> 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 <ehirdiphone> Well, the keyboard is an issue.
19:10:48 <ehirdiphone> And considering my language preferences the lack of Greek letters ;-)
19:11:51 <ehirdiphone> :•) it can type €$¥• though
19:11:57 <ehirdiphone> 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 <AnMaster> 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 <AnMaster> in fact I can't find any *,b98 files in there
19:33:27 <Deewiant> AnMaster: The scripts in benchmarks/ generate the files run
19:33:32 <Deewiant> They're all self-contained
19:33:43 <AnMaster> hm
19:33:44 <AnMaster> okay
19:33:59 <AnMaster> Deewiant, why not use y to get the the value on the command line?
19:34:34 <Deewiant> Too complicated :-P
19:34:41 <AnMaster> Deewiant, So I run something like: perl fork.b98.pl 123 > fork-123.b98?
19:34:47 <Deewiant> Yep
19:35:01 <Deewiant> Note that for fork it has to be a power of two; not sure what'll happen if not
19:35:03 <AnMaster> but I can't see where fork invokes fungify?
19:35:11 <Deewiant> They don't /all/ need it
19:35:15 <AnMaster> heh? why?
19:35:26 <AnMaster> I mean
19:35:27 <Deewiant> Why would they all need it? :-P
19:35:28 <AnMaster> the power of two
19:35:32 <AnMaster> not the needing of the script
19:35:43 <Deewiant> Because it was easy to write it that way
19:36:04 <Deewiant> 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 <Deewiant> s/next/previous/
19:36:12 <AnMaster> hm the output size of the fork one grows one line per power of 2?
19:36:23 <Deewiant> Yeah, something like that
19:37:25 <AnMaster> Deewiant, does language::befunge have some huge fixed overhead? Since it was way slower than cfunge until the 65536 graph
19:37:37 <Deewiant> Of course it does
19:37:38 <Deewiant> It's in PERL
19:37:57 <AnMaster> 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 <AnMaster> maybe I'm too tired
19:38:17 <AnMaster> been up for 15 hours now
19:38:18 <Deewiant> The plot is logarithmic, remember
19:38:29 <AnMaster> ah
19:38:29 <Deewiant> (IIRC)
19:38:43 <AnMaster> I always disliked log plots. Don't know why.
19:38:52 <AnMaster> maybe because they are so wooden?
19:39:01 <Deewiant> Har de har
19:39:54 <AnMaster> Deewiant, oh and I think that fork script rounds down to nearest power of two
19:39:58 <AnMaster> at least it looks like that
19:40:09 <AnMaster> eh
19:40:12 <AnMaster> round to nearest?
19:40:15 <Deewiant> Yes, that's what I guessed
19:40:22 <Deewiant> Oh, nearest?
19:40:34 <Deewiant> I'd think it goes down but whatever
19:41:05 <AnMaster> Deewiant, no. It is inconsistent. 32767 and 32768 are same size, but 32769 is one larger
19:41:14 <AnMaster> and isn't 32768 a power of two?
19:41:21 <AnMaster> so rounds upwards
19:41:25 <AnMaster> not downwards
19:41:29 <Deewiant> Alright
19:41:35 * AnMaster *is* tired
19:41:41 <Deewiant> Yeah, that actually makes sense
19:44:16 <AnMaster> Deewiant, okay, so the thing to do is to grow it by 2^16 bytes each time right? ;P
19:44:21 <AnMaster> that will lead to few reallocs
19:44:35 <AnMaster> or maybe 2^24
19:44:39 <AnMaster> even fewer reallocations
19:44:58 <Deewiant> You're hopeless, you know that? :-P
19:45:07 <AnMaster> Deewiant, you know I'm joking right
19:45:08 <AnMaster> ?
19:45:16 <Deewiant> Yes
19:46:00 <AnMaster> Deewiant, I may allow all these as user tunables btw
19:46:38 <AnMaster> 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 <AnMaster> Deewiant, what do you think about that?
19:49:29 <Deewiant> Go ahead? Nobody will tune them :-P
19:49:41 <AnMaster> Deewiant, you know iirc ATLAS does something like that
19:49:51 <AnMaster> s/ow/ow,/
19:51:09 -!- ehirdiphone has joined.
19:53:41 <AnMaster> Deewiant, how many IPs does ccbi allocate in one go?
19:53:58 <Deewiant> 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 <AnMaster> Deewiant, oh I thought that was CCBI1?
19:54:15 <Deewiant> Didn't change it in 2
19:54:20 <AnMaster> hm
19:54:35 <AnMaster> Deewiant, is that a linked list?
19:54:42 <Deewiant> Nah, array
19:54:56 <AnMaster> Deewiant, high level array that might allocate in chunks internally?
19:55:41 <Deewiant> Yeah, the builtin array that does whatever and in practice does something poor
19:56:02 <AnMaster> hm
19:56:49 <AnMaster> well strange, allocating 32 ips per chunk doesn't change the time very much
19:57:11 <AnMaster> about 10 seconds, from 3 minutes, 13 seconds, to 3 minutes, 2 seconds
19:57:14 <AnMaster> wtf
20:02:46 <AnMaster> also wtf at cpufreq-info:
20:02:48 <AnMaster> current policy: frequency should be within 800 MHz and 1.60 GHz.
20:02:50 <AnMaster> and I can't change it
20:02:58 <AnMaster> as in, changing seems to work but does nothing
20:10:25 <AnMaster> Deewiant, Wait, do you append the ip even if it isn't the last one that is forking?
20:10:30 <AnMaster> how would that work
20:10:40 <Deewiant> I memmove it to the right place
20:11:01 <AnMaster> I think I found the issue, and that I need to reverse the order I traverse the ip list in
20:11:36 <AnMaster> hm
20:16:11 <AnMaster> Deewiant, do you memmove to delete an IP in the middle too?
20:16:20 <Deewiant> Yeah IIRC
20:16:56 <AnMaster> hm
20:19:39 -!- tombom_ has joined.
20:20:44 <AnMaster> Deewiant, okay the issue seems to be the code that basically does memmov
20:20:53 <AnMaster> Deewiant, do your list only contain pointers to IPs or such?
20:20:58 <AnMaster> that could explain it somewhat
20:21:19 <Deewiant> Yes, it does
20:21:22 <AnMaster> right
20:21:56 <AnMaster> 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 <AnMaster> of course, that backfires for this weird case
20:22:13 -!- tombom has quit (Ping timeout: 268 seconds).
20:22:26 <AnMaster> Deewiant, because for smaller cases I found it was faster than storing a list of pointers
20:22:39 <Deewiant> How big is one of your IPs?
20:22:51 <AnMaster> Deewiant, not sure on the top of my head
20:22:53 <AnMaster> let me check
20:22:57 -!- jcp has joined.
20:22:58 <Deewiant> s/on/off/
20:23:57 <AnMaster> right
20:24:11 <AnMaster> 680 bytes according to gdb
20:24:27 <AnMaster> most is due to the array of fingerprint stacks being inline in the IPs
20:24:31 <ehirdiphone> gtg, bye!
20:24:33 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
20:24:56 <AnMaster> Deewiant, this works very well when we have a "realistic" number of IPs. Which would be something less than 10.
20:25:15 <AnMaster> maybe I will provide a compile time option for another variant
20:25:45 <Deewiant> So 85 pointers' worth; moving that around will obviously be more expensive, yes
20:26:06 <AnMaster> Deewiant, for most programs the locality of reference wins over that easily.
20:26:22 <AnMaster> I would say that this is a non-realistic test case anyway.
20:27:19 <AnMaster> 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 <AnMaster> those add 9 bytes in total (1 x pointer to HRTI data + 1 x bool for SUBR being relative)
20:28:13 <AnMaster> Deewiant, so yeah, I'm going to make a "stupidly large" variant a compile time option
20:28:54 <Deewiant> You don't have to win on every stupid benchmark :-
20:28:54 <Deewiant> P
20:29:09 <AnMaster> Deewiant, sure I do. If I make a better funge space it will also be an option
20:30:44 <AnMaster> 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 <AnMaster> so far
20:31:11 <Deewiant> I'm not going to test every silly variant :-P
20:31:20 <AnMaster> Deewiant, well, drop 64-bit cells then
20:31:51 <AnMaster> 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 <Deewiant> I'd rather drop 32-bit ones
20:31:57 <AnMaster> Deewiant, why?
20:32:05 <Deewiant> It's a 64-bit machine...
20:32:13 <AnMaster> Deewiant, but 32-bit *cells* are faster
20:32:17 <AnMaster> quite obviously
20:32:58 <Deewiant> The difference is small enough that I don't really care
20:33:10 <AnMaster> $ bzr branch trunk alt_ip_list
20:33:32 <AnMaster> Deewiant, hey, in one place it was cfunge-32 - stinkhorn - cfunge-64 iirc
20:33:47 <Deewiant> So improve cfunge, not my problem ;-P
20:34:05 <AnMaster> Deewiant, I could make 32-bit cells default, and hide 64-bit on the advanced page or such
20:34:59 <AnMaster> 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 <pikhq> Clearly you should use 8 bit cells and assembly.
20:36:56 <pikhq> (so you can use ah, al, and friends)
20:37:13 <Deewiant> ah is slow, don't use that.
20:38:52 <AnMaster> pikhq, funge-98 requires 32-bit or more
20:39:19 <AnMaster> Deewiant, the text on http://users.tkk.fi/~mniemenm/befunge/mycology.html seems outdated
20:39:45 <Deewiant> Whoops, forgot to change the year
20:39:47 <Deewiant> Anything else?
20:39:56 <AnMaster> Deewiant, well, don't know, is the file the current one?
20:40:03 <Deewiant> Should be
20:40:05 <AnMaster> the zip to be specific
20:40:14 <pikhq> AnMaster: Fine, fine. Do it on a 32-bit Brainfuck then.
20:40:46 <AnMaster> pikhq, yes that is what I use for speed testing
20:40:56 <pikhq> Ah, good.
20:41:37 <AnMaster> 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 <AnMaster> what?
20:41:43 <AnMaster> after you unloaded it?
20:41:50 <Deewiant> >_<
20:41:58 <AnMaster> Deewiant, typo?
20:42:02 <Deewiant> No
20:42:06 <AnMaster> then what does it mean
20:42:08 -!- ais523 has joined.
20:42:11 <Deewiant> It means that it assumes FPSP works
20:42:12 <AnMaster> I can't make sense out of it
20:42:13 <AnMaster> hi ais523
20:42:23 <ais523> hi
20:42:27 <Deewiant> It has successfully loaded and unloaded FPSP but didn't test any further
20:42:28 <AnMaster> Deewiant, what happens if FPSP is not implemented then?
20:42:35 <ais523> presumably it reflects on loading
20:42:36 <Deewiant> Then it shouldn't have loaded it
20:42:45 <AnMaster> Deewiant, and then will it skip the 3DSP test?
20:42:49 <Deewiant> Yes
20:42:55 <AnMaster> mhm
20:55:09 -!- adam_d has joined.
20:56:51 -!- charlls has joined.
20:57:53 -!- charlesq__ has joined.
20:57:53 <AnMaster> 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 <AnMaster> 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 <AnMaster> Deewiant, real 0m0.699s
21:45:31 <AnMaster> for that fork test (not largest one)
21:45:42 <Deewiant> Parameter?
21:45:51 <Deewiant> Compare to stinkhorn, it's the fastest on those
21:45:58 <AnMaster> let me grep shell history
21:46:10 <AnMaster> Deewiant, also note this runs on a 2.26 GHz Core 2 Duo
21:46:10 <Deewiant> Just wc -l the file :-P
21:46:23 <AnMaster> Deewiant, 17
21:46:39 <AnMaster> so 2^16 I guess
21:46:44 <AnMaster> since the last line has no forks
21:46:47 <Deewiant> Yeah, presumably
21:47:07 <AnMaster> or what about trailing newline?
21:47:08 <AnMaster> meh
21:47:22 <Deewiant> wc -l doesn't count that
21:47:23 <AnMaster> Deewiant, anyway, I don't have stinkhorn around
21:47:28 <AnMaster> so can't compare
21:47:43 <Deewiant> So obtain it? :-P
21:47:48 <AnMaster> Deewiant, I allocate 4096 IPs in each chunk.
21:47:54 <AnMaster> Deewiant, link? I'm lazy
21:47:54 <Deewiant> >_<
21:48:05 <Deewiant> code.google.com/p/stinkhorn IIRC
21:48:36 <Deewiant> 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 <AnMaster> 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 <AnMaster> Deewiant, wth
21:49:22 <AnMaster> Deewiant, why not a makefile, or even a build.sh
21:49:36 <Deewiant> That is my build.sh for it :-P
21:50:10 <AnMaster> well, there should be one there
21:50:18 <Deewiant> It has a VS solution and project file but you probably don't care about those
21:50:20 <AnMaster> what does -fpermissive do?
21:50:27 <Deewiant> Make it build
21:50:35 <AnMaster> huh?
21:50:50 <AnMaster> Deewiant, it errors
21:50:54 <olsner> -fignore-errors-just-compile
21:50:57 <AnMaster> let me pastebin
21:51:08 <AnMaster> because it is a HUGE C++ error
21:51:10 <Deewiant> Oh, one diff
21:51:14 <AnMaster> also it hasn't finished yet
21:51:16 <AnMaster> Deewiant, oh?
21:51:23 <Deewiant> src/interpreter.cpp line 111, I think
21:51:27 <Deewiant> Change const_iterator to iterator
21:51:50 <AnMaster> Deewiant, chhm
21:51:52 <AnMaster> hm*
21:51:58 <AnMaster> no compile errors so far
21:52:18 <AnMaster> but why does it swap trash...
21:52:37 <AnMaster> Deewiant, oh wait, building all in one go. Bad idea. Per object file is better
21:53:04 <AnMaster> if you do it that way for stinkhorn you should gcc -combine and such for cfunge as well ;P
21:53:31 <Deewiant> cfunge has a build system, which I use: your problem if it's not optimal
21:54:24 <AnMaster> hm
21:55:06 <AnMaster> 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 <AnMaster> Deewiant, some testing indicates stinkhorn has a faster setup time than cfunge. While the difference is near none for large cases
22:00:53 <AnMaster> the break-even seems to be around 2^17 threads or so
22:01:12 <AnMaster> or perhaps 2^18
22:01:52 <AnMaster> it doesn't seem statistically significant at 2^18 though. Sometimes one is slightly faster, sometimes the other
22:01:52 <AnMaster> bbl
22:02:58 <AnMaster> and then stinkhorn is faster again for a bit, strange
22:03:08 -!- Gregor has joined.
22:03:17 <AnMaster> well I believe some code could possibly be tuned
22:03:38 <AnMaster> oh I know
22:03:49 <AnMaster> I set the pointer array realloc size to 1 again for testing something
22:04:23 <pikhq> Statically. Allocate. Everything. :P
22:04:38 <AnMaster> pikhq, a bit hard :P
22:04:50 <Deewiant> IP ips[1 << 20];
22:05:48 <AnMaster> har
22:06:01 <AnMaster> well the chunk here was for the list of pointers in this case
22:06:24 <AnMaster> anyway, growing it with 256 at a time seems to give pretty much the optimum
22:08:44 <pikhq> AnMaster: Yeah, but it'll mean no need to link against malloc!
22:10:35 <AnMaster> pikhq, ... har?
22:14:00 <AnMaster> Deewiant, oh, stinkhorn doesn't use exact bounds
22:14:05 <AnMaster> that explains some of the speed I guess
22:15:46 <AnMaster> Deewiant, also: how the fuck did stinkhorn manage http://users.tkk.fi/~mniemenm/befunge/mycology-output/concurrency/stinkhorn.txt
22:16:28 <Deewiant> Easily, CCBI used to do that at some (hopefully never released) points
22:16:41 <AnMaster> Deewiant, how?
22:16:50 <Deewiant> Basically: handle markers for all IPs before executing any instructions
22:16:50 <AnMaster> I mean, it ran lots of spaces before
22:16:56 <AnMaster> oh I see
22:17:01 <Deewiant> Then get screwed if one gets p'd on top of you
22:17:03 <AnMaster> cfunge handles it the same way as instructions
22:17:04 <AnMaster> :)
22:17:30 <AnMaster> just with a "continue with this IP after" flag
22:18:05 <AnMaster> hm maybe I should rewrite that, possibly checking that flag every time we call execute_instruction has some severe overhead
22:18:17 <AnMaster> there is an obvious alternative of course
22:18:43 <Deewiant> Most likely your CPU can branch-predict well enough that the difference for most code is negligible
22:19:04 <AnMaster> Deewiant, well, it would need to do that after it returned to main loop
22:19:14 <AnMaster> 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 <AnMaster> Deewiant, what about 02010.04 or such?
22:25:19 <Deewiant> Why?
22:25:24 <AnMaster> long now
22:27:18 <olsner> as in, april 2010?
22:27:37 -!- MigoMipo has quit (Ping timeout: 252 seconds).
22:27:56 <AnMaster> Deewiant, you didn't add efunge to mycology results I see?
22:28:05 -!- MigoMipo has joined.
22:28:14 <Deewiant> 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 <AnMaster> Deewiant, I will remove that message
22:28:33 <Deewiant> Make a release instead :-P
22:28:44 <AnMaster> Deewiant, no time now.
22:30:38 <AnMaster> Deewiant, see that page now :P
22:31:06 <Deewiant> Still says the same thing, sorry :-P
22:31:10 <Deewiant> http://www.ohloh.net/p/efunge
22:31:13 <AnMaster> Deewiant, oh there
22:31:16 <AnMaster> Deewiant, I was on launchpad
22:32:21 <AnMaster> Deewiant, now it doesn't any more
22:34:28 <AnMaster> Deewiant, btw I see overall stinkhorn was slower than cfunge?
22:34:39 <AnMaster> by quite a bit
22:34:41 <Deewiant> Mostly due to the stack, I think
22:34:57 <AnMaster> Deewiant, oh? what does stinkhorn do with the stack?
22:35:07 <Deewiant> I don't know, I don't delve into sources
22:35:16 <AnMaster> Deewiant, then why do you think it is it?
22:35:42 <Deewiant> Because it loses very badly in y-rep-n
22:35:52 <AnMaster> Deewiant, and wth do you do with your stack: http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/pushpop.b98.html ?
22:36:35 <AnMaster> Deewiant, that looks like cheating. I just don't find it plausible
22:36:52 <Deewiant> AnMaster: You'll notice the timings behave almost exactly like the ones of horizontal.b98
22:37:01 <Deewiant> I.e. it's the file that's the bottleneck, really.
22:37:07 <AnMaster> eh?
22:37:15 <AnMaster> the file loading?!
22:37:25 <Deewiant> Not the loading necessarily
22:37:29 <Deewiant> But just traversing it
22:37:34 <Deewiant> It is 10 million cells, after all
22:37:38 <AnMaster> "<Deewiant> Not the loading necessarily"?
22:37:45 <AnMaster> as in you load lazily?
22:37:56 <Deewiant> No...
22:37:59 <AnMaster> oh
22:38:00 <AnMaster> misread it
22:39:12 <AnMaster> Deewiant, so basically you manage so well because of your funge space?
22:39:24 <Deewiant> Most likely, yes
22:39:32 <Deewiant> But having a non-shitty stack helps as well (c.f. stinkhorn)
22:39:48 <AnMaster> Deewiant, what does y-rep-n do?
22:40:00 <AnMaster> ynynyn forever?
22:40:06 <Deewiant> y-repeatedly-then-n
22:40:06 <AnMaster> well
22:40:09 <AnMaster> ah
22:40:15 <AnMaster> Deewiant, and yn-rep is what I said?
22:40:18 <Deewiant> Yes
22:40:28 <Deewiant> Note stinkhorn's total time for all benchmarks is 12888.2
22:40:35 <Deewiant> Its time for y-rep-n is 12236.0
22:40:39 <AnMaster> heh
22:40:50 <AnMaster> Deewiant, ideas: n pops each element? Or it shrinks the allocated stack?
22:40:50 <Deewiant> cfunge's is 1.0 / 1.8 (32 / 64 bits)
22:40:57 <Deewiant> So if we exclude that
22:41:16 -!- cheater2 has quit (Ping timeout: 276 seconds).
22:41:19 <AnMaster> then stinkhorn isn't too bad
22:41:25 <Deewiant> stinkhorn is about 5.6 times as fast as cfunge-32
22:41:35 <AnMaster> mhm
22:41:46 <AnMaster> Deewiant, it doesn't pass mycology and doesn't do exact bounds
22:41:54 <AnMaster> without exact bounds cfunge is quite a bit faster
22:42:16 <AnMaster> you shouldn't compare apples and pears
22:42:16 <Deewiant> Right, it is a bit nonconforming.
22:42:31 <Deewiant> cfunge won't be six times faster without exact bounds :-P
22:43:23 <AnMaster> Deewiant, more like 150% faster. And sometimes much more (if you write spaces to your "edges")
22:44:24 <AnMaster> Deewiant, stinkhorn seems to be missing from last y-rep-n graph?
22:44:40 <AnMaster> even though it presumably ran for most of that
22:44:43 <AnMaster> before it timed out
22:44:44 <Deewiant> timeouts are missing, I don't know why
22:45:08 <Deewiant> Noticed it pretty late and haven't looked into it yet
22:45:28 <Deewiant> The data should be there, the plotter is just failing.
22:45:48 <AnMaster> Deewiant, the ccbi2 0.07 vs. 0.10 for cfunge is probably due to startup overhead for cfunge
22:46:05 <AnMaster> I noticed all the memory pools and such does have a constant overhead for very short running programs
22:46:08 <Deewiant> Don't bother comparing times below one second.
22:46:15 <Deewiant> Seriously, just don't. :-P
22:46:18 <AnMaster> :P
22:46:27 <AnMaster> Deewiant, I want to be first on the list again you see.
22:46:34 <AnMaster> and I'm going to make sure I am
22:46:45 <Deewiant> :-P
22:46:58 <AnMaster> Deewiant, maybe not for every test
22:47:06 <Deewiant> 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 <AnMaster> Deewiant, anyway, was the main overhead for cfunge that fork test?
22:47:31 <AnMaster> Deewiant, that isn't fair you see
22:47:58 <Deewiant> It may've been, I can't remember
22:47:59 -!- augur has quit (Ping timeout: 240 seconds).
22:48:28 <Deewiant> 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 <AnMaster> Deewiant, I wonder why I was so fast at diagdown...
22:48:46 <Deewiant> And in the zoomed-in one you can tell that the difference isn't really that big
22:49:03 <Deewiant> It's not you being fast, it's me being slow
22:49:46 <AnMaster> Deewiant, why are you slow at it then?
22:50:12 <Deewiant> A diagonal line is the worst case for an AABB
22:50:18 <AnMaster> anyway the thing to do is to expand static area to fill most of that ;)
22:50:24 <AnMaster> Deewiant, hm. Sparse matrix?
22:50:38 <Deewiant> ?
22:50:45 <AnMaster> since it is basically the shape of an identity matrix
22:50:53 <AnMaster> aren't there fast ways for such iirc?
22:51:17 <AnMaster> Deewiant, also: hollow-square
22:51:18 <Deewiant> That's assuming sparse data, which won't usually be the case
22:51:20 <AnMaster> I'm fast at that too
22:51:33 <Deewiant> s/I'm fast/You're slow/, and yes, I know.
22:51:42 <AnMaster> Deewiant, how comes that time?
22:51:48 <Deewiant> Same thing.
22:51:56 <AnMaster> it isn't diagonal though?
22:52:09 <Deewiant> It's still a mostly empty box.
22:52:17 <AnMaster> well yes
22:52:51 <AnMaster> Deewiant, idea: require a statistical analysis file to be pre-generated
22:52:58 <AnMaster> that selects algorithm
22:53:04 <Deewiant> >_<
22:53:16 <AnMaster> and since it must be pre-generated, it shouldn't be counted to the running time
22:53:23 <AnMaster> since it would be a one-time thing for most programs
22:53:52 <AnMaster> Deewiant, I was inspired by db engines analysers here
22:54:07 <Deewiant> Fortunately Funge interpreters aren't DB engines
22:54:19 <AnMaster> Deewiant, why do you do so well at filled square? is all of that square executed?
22:54:31 <Deewiant> Yes, it is
22:54:34 <AnMaster> aha
22:54:56 <AnMaster> horizontal-p? how does that differ from horizontal?
22:55:02 <Deewiant> Read.the.page.
22:55:33 <AnMaster> the results one?
22:55:57 <Deewiant> No, that describes the results, not the benchmarks themselves
22:56:24 <AnMaster> hm diagdown-p, why are you faster at that one?
22:56:41 <AnMaster> I don't think initial file loading is *that* much more efficient
22:56:53 <Deewiant> Beats me
22:57:40 <AnMaster> also amusing that rcfunge2 uses more ram for diagup-p at 5000 than at 10000
22:58:17 <Deewiant> When the runtime is that small it's just a case of the measurer missing it
22:58:30 <AnMaster> hm
22:58:36 <AnMaster> Deewiant, try with massif instead
22:58:40 <AnMaster> you can't miss it that way
22:58:47 <AnMaster> of course you can't profile speed either
22:58:51 <Deewiant> And take a 100x performance hit? No thanks
22:58:56 <Deewiant> These things can take hours as-is
22:59:00 <AnMaster> Deewiant, it is useful for the "runtime is too short" cases
22:59:04 <AnMaster> you only need to use it for them
22:59:14 <Deewiant> And I'd be measuring different things
22:59:23 <AnMaster> well what about additional info then?
22:59:24 <Deewiant> One uses /proc/smaps, the other massif
22:59:30 <Deewiant> It doesn't matter
22:59:45 <Deewiant> Like said, just forget about any differences when the time is less than a second :-P
22:59:57 <AnMaster> 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 <AnMaster> and subshells
23:00:16 <Deewiant> I'd've just said "counts aren't accurate" :-P
23:00:19 <AnMaster> hah
23:00:44 <AnMaster> Deewiant, I'm tempted to make an interpreter using sqlite with a disk db for the funge space or such
23:00:50 <AnMaster> just to mess up the memory stats
23:01:45 <AnMaster> Deewiant, anyway I'm not 15x slower than you if we exclude the forks case
23:02:05 <Deewiant> Correct
23:02:12 <AnMaster> Deewiant, how much slower am I then?
23:02:21 <Deewiant> I don't know
23:02:30 <Deewiant> Subtract and divide, it's not difficult :-P
23:02:57 <AnMaster> Deewiant, I hope your funge space code is well commented
23:03:04 <AnMaster> so I can learn what the hell you do
23:03:10 <Deewiant> I hope it isn't
23:03:14 <AnMaster> :P
23:03:32 <Deewiant> TBH I trust that it's complicated enough that you won't be able to rip it easily
23:03:50 <Deewiant> If you do succeed, good on ya then I guess :-P
23:03:57 <AnMaster> wc -l space/*.d
23:03:57 <AnMaster> 3245 total
23:03:59 <AnMaster> that is
23:04:11 <Deewiant> That's up from maybe a tenth of that previously
23:04:14 <AnMaster> like more than 1/3 of cfunge size
23:04:30 <AnMaster> iirc cfunge is ~9000 lines of code
23:04:38 <AnMaster> or maybe 1000, something like that
23:04:42 <AnMaster> err
23:04:43 <AnMaster> 10000
23:04:46 <AnMaster> of course
23:05:48 <AnMaster> huh
23:06:05 <AnMaster> oh *~ files
23:06:08 <AnMaster> that explains it
23:06:28 <AnMaster> Language Files Code Comment Comment % Blank Total
23:06:29 <AnMaster> ---------------- ----- --------- --------- --------- --------- ---------
23:06:29 <AnMaster> Total 112 11941 4914 29.2% 2291 19146
23:06:33 <Deewiant> $ wc -l cfunge/trunk/src/**/*.[ch] | tail -n1
23:06:33 <Deewiant> 14092 total
23:06:38 <AnMaster> vs,
23:06:40 <AnMaster> Language Files Code Comment Comment % Blank Total
23:06:40 <AnMaster> ---------------- ----- --------- --------- --------- --------- ---------
23:06:40 <AnMaster> dmd 61 10462 1833 14.9% 2573 14868
23:06:43 <AnMaster> hm
23:06:49 <AnMaster> Deewiant, you forgot lib
23:06:51 <AnMaster> but yeah
23:06:57 <AnMaster> lib should be semi-counted only
23:06:57 <Deewiant> lib isn't your code is it/
23:06:58 <Deewiant> ?
23:07:09 <AnMaster> Deewiant, it isn't mine originally, apart from the mempool stuff
23:07:17 <AnMaster> and some of it is heavily modified
23:07:36 <AnMaster> but yes, without lib:
23:07:38 <AnMaster> Total 98 9052 3546 28.1% 1609 14207
23:07:49 <Deewiant> $ wc -l ccbi/src/**/*.d | tail -n1
23:07:50 <Deewiant> 15249 total
23:08:03 <AnMaster> see, more than mine
23:08:05 <Deewiant> Oh, and the C wrappers
23:08:07 <Deewiant> $ wc -l ccbi/src/**/*.[dc] | tail -n1
23:08:07 <Deewiant> 15425 total
23:08:19 <AnMaster> Deewiant, ?
23:08:26 <AnMaster> they aren't here?
23:08:26 <Deewiant> NCRS and REXP
23:08:39 <AnMaster> are they generated?
23:08:45 <Deewiant> They should be in src/
23:08:48 <AnMaster> or is the ccbi zip file outdated?
23:08:51 <AnMaster> oh there
23:08:54 <AnMaster> didn't saw them
23:08:55 <Deewiant> >_<
23:08:56 <AnMaster> looked in ccbi/
23:09:05 <AnMaster> btw the mempool stuff: Total 3 240 151 38.6% 71 462
23:09:34 <AnMaster> Deewiant, but to be fair some of that includes other files with different defines multiple times
23:09:44 <AnMaster> not sure how to count that ;)
23:10:03 <AnMaster> (yeah, C lacks templates, sometimes they would be useful)
23:10:05 <Deewiant> $ wc -l space.d
23:10:05 <Deewiant> 125 space.d
23:10:08 <Deewiant> CCBI 1.0.2)
23:10:09 <Deewiant> 20*
23:10:19 <AnMaster> heh
23:10:25 <Deewiant> So yeah, 25x bump there
23:10:37 <AnMaster> Deewiant, when do you switch to hash fallback?
23:10:57 <Deewiant> When there're too many boxes
23:11:15 <AnMaster> 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 <AnMaster> based on some heuristic?
23:12:01 <Deewiant> Sounds maybe about right
23:12:49 <AnMaster> 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 <AnMaster> lots of fudge factors basically
23:14:23 <Deewiant> Yep
23:14:28 <Deewiant> I haven't tuned them at all
23:14:28 <AnMaster> do you grow AABBs btw?
23:14:37 <Gregor> http://codu.org/aforteforpiano/12f.ogg
23:15:09 <AnMaster> Gregor, bad soundfont?
23:15:20 <Gregor> Perfectly good soundfont.
23:15:24 <AnMaster> weird
23:15:27 <AnMaster> sounds like a bad mic
23:15:34 -!- adam_d has quit (Ping timeout: 265 seconds).
23:15:50 <AnMaster> Gregor, also I didn't like that one very much. Not my type of music.
23:15:58 <Gregor> lol
23:16:11 <Gregor> That's me practicing Chopin for an hour, compressed into one minute :P
23:16:18 <AnMaster> Gregor, hah
23:16:25 <AnMaster> Gregor, so no soundfont then?
23:16:40 <Gregor> Steinway_IMIS2.2
23:16:42 <AnMaster> ah
23:16:49 <AnMaster> so midi recording right
23:16:55 <Deewiant> Zzz ->
23:16:57 <Gregor> Digital piano + ridiculously fast MIDI playback = lawlz
23:17:08 <Gregor> fluidsynth + ridiculously fast MIDI playback = OK :P
23:17:12 <AnMaster> Gregor, heh
23:17:14 <AnMaster> Deewiant, cya
23:17:26 <AnMaster> Gregor, how do you mean "lawlz"?
23:17:46 <Gregor> My digital piano gets all flustered when you send it MIDI data too fast.
23:18:01 <AnMaster> flustered?
23:18:51 <olsner> sounds anthropomorphic
23:18:59 <Gregor> I've got to restrict my English a bit X-D
23:19:02 <Gregor> `define flustered
23:19:09 -!- charlesq__ has quit (Quit: Saliendo).
23:19:17 <HackEgo> * 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 <olsner> hmm, perhaps 'virrigt', but that doesn't imply the same kind of agitation
23:21:24 <olsner> bah, deprecate swedish and teach everyone english, this language is too insignificant to motivate keeping it alive
23:21:52 <Gregor> olsner: Swedish is your native language, innit? :P
23:22:01 <olsner> it is
23:24:34 <Gregor> That is now a Facebook post with every Swedish friend of mine tagged :P
23:25:02 <olsner> :D
23:26:29 <Gregor> 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 <Gregor> This is only when you send it data crazy-fast, mind.
23:27:14 <olsner> 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 <Gregor> Idonno, aplaymidi is doing whatever aplaymidi does :P
23:27:57 <Gregor> But like I said, this is only crazy-fast, e.g. http://codu.org/aforteforpiano/12f.ogg
23:31:06 <olsner> could be on the aplaymidi side though, filling up an input buffer or whatnot
23:38:38 <olsner> 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 <AnMaster> <olsner> hmm, perhaps 'virrigt', but that doesn't imply the same kind of agitation
00:09:15 <AnMaster> no
00:09:19 <AnMaster> I know what it means
00:09:28 <AnMaster> I just don't know how it applies to a piano
00:09:40 <ais523> hmm, I just started using flymake-mode in Emacs, and it's amazing
00:09:49 <AnMaster> ais523, what is it for?
00:09:59 <ais523> it repeatedly syntax-checks the code you're working on
00:10:06 <Gregor> Do you have something against my personifying things :P
00:10:10 <ais523> and syntax errors get highlighted almost immediately
00:10:18 <ais523> much faster than in any other IDE I've used
00:10:19 <ais523> warnings, too
00:10:37 <ais523> I was expecting it to take several seconds, like NetBeans, etc., does
00:11:41 <oerjan> Gregor: no, but the things don't like it
00:12:31 <Gregor> oerjan: YOU MEAN THE PEOPLE
00:13:10 <oerjan> the vitally challenged people
00:14:07 <Gregor> "vitally challenged" is a pretty awesome phrase :P
00:25:04 <AnMaster> ais523, C only?
00:25:16 <ais523> AnMaster: I was using it for Perl
00:25:20 <ais523> although I'm not sure what langs it works for
00:25:21 <AnMaster> ah
00:25:25 <AnMaster> hm
00:25:29 <ais523> I suspect, most of the popular ones
00:25:43 <AnMaster> INTERCAL? :D
00:25:49 <ais523> no
00:25:56 <AnMaster> sure? tested?
00:25:58 <ais523> besides, it doesn't normally have compile-time syntax errors
00:26:06 <ais523> and sure, read the source to intercal-mode
00:26:08 <AnMaster> ais523, ick does?
00:26:18 <AnMaster> well
00:26:21 <AnMaster> not *syntax*
00:26:23 <AnMaster> I guess
00:26:27 <ais523> AnMaster: it complains on a few things at compile-time, but that's arguably a bug
00:26:28 <AnMaster> well sometimes
00:26:41 <AnMaster> ais523, what about the wrong dimensionality and such?
00:26:58 <ais523> run-time
00:27:02 <AnMaster> hm
00:27:10 <ais523> given that dimensionality can change at runtime, how could you do it otherwise?
00:27:13 <AnMaster> ais523, it also complains if I feed it /dev/random
00:27:28 <ais523> what error?
00:27:32 <AnMaster> ais523, forgot
00:27:41 <ais523> maybe it only works on regular files
00:27:42 <AnMaster> ais523, something about it not looking like intercal iirc?
00:27:49 <ais523> oh, wrong extension
00:27:52 <ais523> /dev/random doesn't end ".i"
00:27:58 <AnMaster> ais523, no
00:27:59 <AnMaster> I did:
00:28:09 <AnMaster> head --bytes 5000 /dev/urandom > foo.i
00:28:11 <AnMaster> or such iirc
00:28:46 <AnMaster> also it complains about missing files
00:29:33 <ais523> yep
00:29:40 <ais523> but flymake, you wouldn't expect to complain about missing files
00:29:47 <ais523> given that it, you know, checks the file you're working on atm
00:29:50 <ais523> which presumably exists
00:29:58 <AnMaster> anyway what about head --bytes 5000 /dev/urandom > foo.i
00:30:01 <AnMaster> 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 <AnMaster> pikhq, in #irp: <pikhq> 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 <fizzie> AnMaster: Just a guess, but probably referring what "/msg chanserv access #irp list" should reveal to you.
09:44:22 <AnMaster> 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 <AnMaster> Deewiant, other change: yn-rep 1000000 reduced from 8.169 to 5.370 seconds on my computer
10:23:30 <AnMaster> 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 <Deewiant> 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 <AnMaster> mhm
17:38:54 <AnMaster> Deewiant, busy today and tomorrow. I hate deadlines
17:39:34 <Deewiant> I hate gnuplot with gigabytes of memory usage
17:40:39 <Deewiant> 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 <ehirdiphone> get
18:50:12 <Ilari> put
18:50:13 <Ilari> :->
18:50:26 <Deewiant> swap
18:56:20 -!- oerjan has joined.
18:58:39 <oerjan> 73 roll
19:03:30 <ehirdiphone> I <3 Forth
19:04:31 <ehirdiphone> 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 <Deewiant> Sure, why not
19:06:55 <oerjan> YOU CANNOT HAVE IT
19:07:02 <Deewiant> Oh well
19:07:08 <ehirdiphone> Deewiant: Sufficient motivation levels reached; funge time.
19:07:24 <ehirdiphone> Well. On weekends.
19:07:38 -!- tombom has joined.
19:07:52 <Deewiant> It should get through Mycology, to start with :-P
19:07:53 -!- tombom_ has quit (Ping timeout: 258 seconds).
19:08:13 <ehirdiphone> Hey, I can do n-dimensional funge /and/ speed: specialise the code based on a co
19:08:21 <ehirdiphone> mpile time parameter
19:08:33 <Deewiant> That's what CCBI already does :-)
19:08:41 <ehirdiphone> Now I need a language good enough to do that.
19:08:41 <Deewiant> For 1-3 dimensions
19:09:05 <ehirdiphone> Deewiant: dimensions : N+, naturally
19:09:23 <Deewiant> Compile-time specialization for an infinite number of dimensions == infinitely big binary :-)
19:09:44 <ehirdiphone> No. You compile it for a certain dimension.
19:10:00 <ehirdiphone> And it produces dimension-specific code.
19:10:01 <Deewiant> Meh.
19:10:12 <ehirdiphone> Meh yourself.
19:10:28 <Deewiant> Deewiant: Meh.
19:10:41 <oerjan> today is a momentous day.
19:10:49 <oerjan> no iwc update!
19:10:53 <ehirdiphone> Maybe I'll write it in some wonderful Scheme macros that spit out C.
19:10:59 <ehirdiphone> oerjan: WHAT
19:11:07 <oerjan> i know, it's unheard of
19:11:07 <Deewiant> oerjan: Huh? Sure there is
19:11:12 <Deewiant> No. 2628 2010-04-07
19:11:22 <ehirdiphone> lulz
19:11:26 <oerjan> huh.
19:11:30 <Deewiant> Am I in the wrong year or something?
19:11:36 <ehirdiphone> :slowpoke:
19:11:45 <oerjan> oh wait, i'm being an idiot
19:11:56 <ehirdiphone> How unusual.
19:11:59 <oerjan> *facepalm*
19:12:01 <ehirdiphone> >_>
19:18:03 -!- Gregor-L has quit (Ping timeout: 268 seconds).
19:22:04 <Deewiant> ehirdiphone: FWIW I don't mind demands except when they've already been met on the site
19:23:34 <ehirdiphone> The naming, of course, is the most important thing. Ascus, shiro, or hyphae?
19:23:46 <ehirdiphone> Or other, ponders I.
19:24:01 <Deewiant> Shiro?
19:24:26 <ehirdiphone> It's some thing of mycelium.
19:24:47 <Deewiant> Dictionary knew the other two but not that one
19:24:58 <ehirdiphone> WP "Mycelium"
19:25:20 <Deewiant> I see
19:25:35 <Deewiant> How about "fairy circle"
19:26:08 <ehirdiphone> No X-D
19:26:37 <Deewiant> It's shroom-related and distinctive: what could be better?
19:27:19 <ehirdiphone> Shrooms man
19:27:41 <ehirdiphone> How about VEHICLE FOR TRIPPY
19:27:48 <Deewiant> If you want that angle, "Jah"?
19:27:58 <ehirdiphone> I
19:28:11 <oerjan> yeah infinite dimensional funge should definitely use a psychoactive mushroom
19:28:13 <ehirdiphone> don't want that angle.
19:28:30 <ehirdiphone> 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 <oerjan> afk
19:29:33 <ehirdiphone> 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 <impomatic> Hi :-)
19:47:38 <pikhq> Yo.
19:48:02 <impomatic> Hi pikhq
19:49:01 <pikhq> Hmm. I wonder how small of a Brainfuck interpreter I could get.
19:49:24 <pikhq> (note: architecture is i386-linux-unknown, with the following programs: shish)
19:50:15 <ehirdiphone> back
19:50:43 <impomatic> http://impomatic.blogspot.com/2009/01/brainf-interpreter-in-redcode.html
19:51:20 <impomatic> There was a contest about 10 years ago to write the smallest Brainfuck interpreter in x86
19:54:53 <ais523> didn't someone fit one entirely into ELF headers?
19:55:10 <pikhq> Compiler, and not quite.
19:55:28 <ais523> 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 <pikhq> Same guy.
19:55:39 <ais523> and they even managed to fit many of the ELF headers into the ELF headers
19:55:43 <Deewiant> http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html http://www.phreedom.org/solar/code/tinype/
19:55:50 <ehirdiphone> Yeah.
19:56:05 <ehirdiphone> ais523: Also the guy who wrote the cgi interval game
19:56:13 <ais523> yep
19:56:18 <ais523> and Google's INTERCAL style guide
19:56:24 <ais523> which implies, indirectly, that he works for Google atm
19:57:18 <pikhq> Aaaaw. The Brainfuck compiler segfaults for LostKng.b
20:02:31 <ehirdiphone> *INTERCAL
20:02:41 <ehirdiphone> I'll have to go very soon.
20:04:55 <ehirdiphone> :)
20:05:06 <ehirdiphone> Bye!
20:05:12 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
20:05:16 <pikhq> Gxis
20:09:23 -!- ehirdiphone has joined.
20:09:27 <ehirdiphone> Okay, I have a few more minutes.
20:09:58 <ehirdiphone> Didud d duck cic. C
20:10:48 <ehirdiphone> 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 <Gregor> Why'd you rename shsh -> shish? Or did I misread the first time?
21:02:43 <pikhq> Gregor: Thought that was the name.
21:02:55 <pikhq> I've been reducing the binary size of shish even further.
21:03:04 <pikhq> Would you like the source to it ATM?
21:03:16 <Gregor> Not even a little bit.
21:03:19 <pikhq> http://sprunge.us/HcSN
21:03:24 <pikhq> MUAHAHAH.
21:03:35 <pikhq> Notable features include not depending on libc.
21:03:50 <Gregor> I hope those small* features get inlined.
21:03:55 <Gregor> Grrf
21:04:02 <Gregor> Your f-word overwrote my f-word mid-sentence.
21:04:03 <pikhq> They do.
21:04:58 <Gregor> http://codu.org/aforteforpiano/19e.ogg I can (nearly) play the first page of Nocturne 3 :)
21:05:28 <pikhq> I could probably minimise things further by going into assembly, but, well. The shell is already sitting at 1107 bytes.
21:06:33 <Gregor> 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 <Gregor> The glibc-provided entry function does garbage you don't want or need.
21:07:12 <pikhq> dietlibc, actually. But yeah.
21:07:21 <pikhq> I'm going to go copy in a _start and _exit.
21:08:05 <Gregor> Why?
21:08:09 <Gregor> Just replace _start entirely.
21:08:11 <pikhq> Actually. Bah. I'm just going to rename main _start and add _exit.
21:08:16 <Gregor> Exactly :P
21:08:36 <pikhq> Gregor: Copy it in from my "small-libc" directory. Which is where all those *other* functions come from. :P
21:08:52 <Gregor> Ah :P
21:11:07 <pikhq> 560 bytes.
21:11:21 <Gregor> You can replace ELF with a.out, can't you?
21:11:24 <pikhq> -nostdlib is such an awesome library.
21:12:10 <Deewiant> pikhq: If it's that small, I'd go ahead and take the -Os and hand-optimize it
21:12:13 <pikhq> Erm. Option.
21:12:44 <pikhq> Gregor: Yes, but I'd need to build a new compiler for that.
21:12:58 <pikhq> Or just manually munge the assembly into a.out.
21:13:05 <pikhq> Speaking of, does nasm still support a.out?
21:13:07 <Gregor> pikhq: Alternatively, you could use objcopy like somebody who isn't a moron.
21:13:20 <pikhq> I didn't know about objcopy.
21:13:34 <Gregor> And I didn't no how to phrase that not as an insult ^^
21:13:39 <pikhq> That's sweetness.
21:15:36 <pikhq> Hrm. Well, it's 32 bytes, but I get an exec format error.
21:15:41 <oklopol> so you *did* how to phrase it as such
21:16:01 <Gregor> pikhq: Most linuxes don't support a.out
21:16:06 <pikhq> Let me go attempt to compile in a.out support.
21:16:12 <Gregor> Yup
21:16:14 <pikhq> Gregor: Yeah, Imma build the module.
21:16:23 <Gregor> And remove ELF support too, who needs it :P
21:16:51 <pikhq> Gregor: No, I mean build the module for my *own* system. So I can test it without building a new kernel. ;)
21:17:00 <Gregor> Oh :P
21:17:30 <pikhq> Let's see if this 32-byte program is, in fact, a full shell.
21:17:36 <pikhq> Well. "Full".
21:18:42 <pikhq> zsh: exec format error: ./shish.1.1
21:18:45 <pikhq> Aaaaw.
21:19:20 <Gregor> Lesse your objcopy line
21:19:40 <pikhq> objcopy --output-target=a.out-i386-linux shish shish.1
21:19:50 <Gregor> Simple enough *shrugs*
21:19:56 <Gregor> So what's shish.1.1 then?
21:20:21 <pikhq> Erm. Different file.
21:20:58 <pikhq> Seems I have to use sstrip to get out the comment section from the ELF file so objcopy will actually... Copy.
21:21:08 <pikhq> And I still get an exec format error.
21:21:57 <Deewiant> objdump
21:22:00 <Gregor> file doesn't give wonky results? Maybe your a.out support is borkleborked :P
21:22:04 <pikhq> Okay, then. objdump hates the a.out file.
21:22:15 <pikhq> Contents of section .text:
21:22:15 <pikhq> objdump: out of memory allocating 18446744073709551584 bytes after a total of 0 bytes
21:22:21 <Deewiant> :-D
21:22:35 <pikhq> And the ELF file, it refuses to disassemble.
21:22:44 <Deewiant> Looks like the size of your .text section is -32 or something
21:22:45 -!- rapido has joined.
21:23:08 <pikhq> Without sstrip, it handles the ELF file correctly.
21:23:18 <pikhq> I'm going to guess sstrip does weird stuff.
21:23:27 <Deewiant> It does.
21:23:51 <pikhq> Well, good to know.
21:25:21 <Gregor> Yuh, maybe just strip ... objcopy can also strip out sections if you use enough objcopy-foo.
21:25:36 <pikhq> objcopy --output-target=a.out-i386-linux -S -R .comment shish shish.1
21:25:47 <Gregor> file shish.1
21:25:49 <pikhq> That produces a file that makes objdump report a file of 0s.
21:25:59 <pikhq> shish.1: Linux/i386 demand-paged executable (ZMAGIC), stripped
21:27:31 -!- rapido has left (?).
21:27:48 <Gregor> Well, Idonno :P
21:33:18 -!- augur has joined.
21:35:12 <AnMaster> wth
21:35:23 <AnMaster> does openoffice actually not support svg???
21:36:01 <AnMaster> nor pdf...
21:36:07 <AnMaster> I guess I'll have to do with EPS. Lol
21:37:31 <Gregor> I wonder if you could make Linux support a DOS-COM-like format :P
21:37:44 <AnMaster> hm there is svg on my laptop in openoffice
21:37:45 <AnMaster> weird
21:38:18 <pikhq> That's nearly a.out.
21:39:53 <Gregor> pikhq: Minus the header ^^
21:40:30 <AnMaster> 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 <AnMaster> or c) use some header + user space loader + the binfmt that allows selecting interpreter from header magic
21:44:37 <pikhq> BTW, it is possible to compile Linux without an executable format.
21:46:57 <Gregor> How useful.
21:56:29 <pikhq> Hmm. Near as I can tell, the Linux support for a.out is a lie.
21:57:11 <pikhq> Given that I've generated an a.out file as close to the "proper" way as I can.
21:57:44 <pikhq> I generated a .o file, then stripped the .comment section, then had ld link and output an a.out file.
21:57:48 <AnMaster> argh
21:58:01 <AnMaster> why does openoffice drop text when importing svg
21:58:09 <AnMaster> and eps it ended up using the preview at all time
21:58:45 <pikhq> Ah well. a.out format appears to have overhead for this program, compared with ELF.
21:59:20 <pikhq> 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 <pikhq> ELF notes the size that's been statically allocated.
22:00:39 <Gregor> ... why do you have any BSS at all?
22:00:46 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
22:01:23 <AnMaster> http://qa.openoffice.org/issues/show_bug.cgi?id=49991 <-- aaaaaargh
22:01:43 <pikhq> Gregor: Because.
22:02:21 <pikhq> Though, I could just stick that on the stack and see what size I get.
22:03:40 <pikhq> 496 bytes.
22:03:55 <pikhq> Hooray.
22:04:52 <Gregor> 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 <pikhq> This is smaller than many of the tiny ELF utilities.
22:14:26 <pikhq> And in C.
22:14:52 <pikhq> 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 <Gregor> It's in C ... for a ridiculous definition of C :P
22:29:07 <pikhq> Hah.
22:29:33 <pikhq> http://sprunge.us/MEcJ
22:29:59 <pikhq> 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 <ais523_> 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 <ais523> well, rebuild and reinstall
22:31:38 <ais523> I compile my wireless drivers from source as there isn't a binary package for them yet
22:32:04 <Deewiant> 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 <pikhq> Deewiant: ?
22:44:23 <Deewiant> Smaller check for set than four separate tests
22:44:36 <pikhq> Mmm.
22:45:05 <Deewiant> And similarly for cd, although you'll need a shift
22:45:22 <pikhq> I... Don't think that works, though. The 'set\0' literal there, that is.
22:45:28 <pikhq> I'll futz with it in a bit.
22:45:41 <Deewiant> GCC supports it IIRC.
22:45:59 -!- augur has quit (Ping timeout: 260 seconds).
22:46:07 <pikhq> Mmkay.
22:46:20 -!- augur has joined.
22:46:27 <Deewiant> You can always write it out as an integer if you're worried :-P
22:48:08 -!- BeholdMyGlory has joined.
22:52:14 <pikhq> Doesn't seem to work right.
22:52:46 <Gregor> You're gonna run into endianness issues.
22:52:50 <Deewiant> Oh, endianness... yeah
22:52:57 <Deewiant> 'set\0' isn't right.
22:53:03 <pikhq> Yeah, that'd do it.
22:53:37 <Deewiant> Since you're assuming x86 anyway it's '\0tes', neh?
22:53:42 -!- tombom has quit (Quit: Leaving).
22:54:17 <pikhq> That said, making the if statements a *single* expression gets it down to 488 bytes.
22:54:33 <Deewiant> You compiling with optimization?
22:54:40 <Deewiant> Also, & is presumably smaller than &&
22:54:41 <pikhq> Yes.
22:54:53 <Deewiant> Remember to compare -Os and -O3 too
22:55:15 <pikhq> I have been. -O3 is the second-smallest optimization ATM.
22:55:45 <pikhq> "&" is *larger* than &&.
22:55:47 <Deewiant> 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 <pikhq> But I don't wanna!
22:56:20 <pikhq> :P
22:56:22 <Deewiant> Meh
22:56:28 <Deewiant> I'll go sleep then ->
23:00:32 -!- oerjan has joined.
23:10:44 <pikhq> Okay, 463 bytes.
23:11:17 <pikhq> http://sprunge.us/XUcK
23:12:02 <pikhq> ... Unsigned short? WTF?
23:12:39 <pikhq> Okay, it's shorter that way.
23:12:52 <pikhq> I guess accidents made my code shorter. *shrug*
23:13:42 <pikhq> 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 <Sgeo> Because I'd rather not be doing this
23:54:45 -!- jcp1 has joined.
23:56:05 <coppro> 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 <Sgeo> This code is related, just in the wrong language
2010-04-08
00:03:29 <Sgeo> And not mutating anything, obviously
00:12:56 <Gregor> (Haskell is usually the wrong language)
00:13:45 <pikhq> Gregor: No, that's C++.
00:13:58 <Gregor> C++ is ALWAYS the wrong language.
00:14:09 <pikhq> ... Yeah, actually.
00:14:56 <Gregor> Haskell is merely USUALLY the wrong language :P
00:15:03 <pikhq> Lies.
00:15:12 * Sgeo is temporarily a Haskell fanatic
00:15:20 <oerjan> !help addinterp
00:15:23 <EgoBot> addinterp: !addinterp <name> <language> <code>. Add a new interpreter to EgoBot. This interpreter will be run once every time you type !<name> <subcode>, and receive the program code as input.
00:16:12 <Sgeo> In what language is code?
00:16:28 <oerjan> the <language> one
00:16:29 <Gregor> The language specified by <language>
00:16:38 <oerjan> can also be a URL
00:17:35 <Sgeo> So can I make an interpreter for my own language, and use THAT interpreter to make antoher interpreter?
00:18:08 <oerjan> not unless Gregor has changed something recently
00:18:19 <Gregor> No meta-stdin.
00:18:37 <pikhq> !help
00:18:37 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
00:18:44 <pikhq> !help languages
00:18:44 <EgoBot> 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 <pikhq> C is a supported language. You're good.
00:20:10 <Gregor> !c printf("Hewwo")
00:20:18 <EgoBot> Hewwo
00:21:04 <coppro> !help userinterps
00:21:04 <EgoBot> 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 <coppro> !help addinterp
00:21:11 <EgoBot> addinterp: !addinterp <name> <language> <code>. Add a new interpreter to EgoBot. This interpreter will be run once every time you type !<name> <subcode>, and receive the program code as input.
00:21:28 -!- myndzi\ has joined.
00:21:51 <Gregor> myndzi\: You should either use a different alt nick or make myndzi\ your primary nick :P
00:21:55 <Gregor> myndz-lambda = awesome
00:22:37 * Sgeo is happy to see Haskell in there
00:22:38 <oerjan> !sh ls
00:22:39 <EgoBot> interps
00:23:04 <oerjan> !sh ls | fmt -w400
00:23:04 <EgoBot> interps lib slox
00:23:15 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100315083431]).
00:23:23 <oerjan> !sh ls interps | fmt -w400
00:23:23 <EgoBot> 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 <Sgeo> !haskell getLine >>= purStrLn
00:24:08 <Sgeo> !userinterps
00:24:09 <EgoBot> 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 <oerjan> !sh ls slox | fmt -w400
00:24:20 <EgoBot> slox
00:24:26 <Gregor> !gregor wtf?
00:24:26 <EgoBot> wtf?
00:24:27 <oerjan> !sh ls -l slox | fmt -w400
00:24:27 <EgoBot> /bin/ls: slox: Function not implemented
00:24:46 -!- myndzi has quit (Ping timeout: 264 seconds).
00:25:00 <oerjan> !sh ls -l lib | fmt -w400
00:25:00 <EgoBot> /bin/ls: lib: Function not implemented
00:25:06 <oerjan> !sh ls lib | fmt -w400
00:25:07 <EgoBot> dcc interp interp.orig
00:25:23 <oerjan> !sh ls lib/interp | fmt -w400
00:25:23 <EgoBot> lib/interp
00:25:38 <oerjan> !sh echo lib/interp | fmt -w400
00:25:38 <EgoBot> lib/interp
00:25:43 <oerjan> !sh cat lib/interp | fmt -w400
00:25:43 <EgoBot> #!/bin/bash
00:26:19 <pikhq> !help; info
00:26:25 <pikhq> !help info
00:26:25 <EgoBot> Sorry, I have no help for info!
00:26:27 <pikhq> Even.
00:26:35 <pikhq> Hmm.
00:26:42 <pikhq> !info gregor
00:26:43 <EgoBot> 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 <pikhq> XD
00:27:00 <oerjan> !sh pwd | fmt -w400
00:27:00 <EgoBot> /home/egobot/egobot.hg/multibot_cmds
00:27:08 <oerjan> !sh ls / | fmt -w400
00:27:08 <EgoBot> bin dev etc home lib lib64 proc tmp usr
00:28:54 <oerjan> !sh ls .. | fmt -w400
00:28:54 <EgoBot> multibot_cmds
00:29:05 <oerjan> !sh ls ../.. | fmt -w400
00:29:06 <EgoBot> egobot.hg
00:29:33 -!- augur has joined.
00:57:56 * Sgeo vaguely wishes that humans weren't closed-source
00:58:50 <oerjan> 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 <Sgeo> Is that like saying that binaries are open-source, they're just written in machine code?
01:52:25 <Gregor> That's precisely like that, yes.
01:54:51 -!- Gracenotes has joined.
01:59:17 <pikhq> Though, if the person in question quite literally did write it directly in machine code, they are entirely correct.
01:59:23 <pikhq> I hate them, but they are entirely correct.
02:01:37 -!- augur has joined.
02:09:42 <Gregor> However, in this case, no one wrote the code.
02:09:49 <Gregor> So the concept of being open- or closed- source is meaningless.
02:10:02 <pikhq> Ahah.
02:10:05 <Gregor> 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 <oerjan> 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 <oerjan> !slashes /Be/Bn//Bl/-[-{1}]//B\n/{}]+Be/ /Tn/Tb|0000*|Te/ BpBe Tn
02:45:37 <oerjan> oh wait
02:45:55 <oerjan> !slashes /Be/Bn//Bl/-[-{1}]//B\n/{}]+B\e/ /Tn/Tb|0000*|Te/ BpBe Tn
02:45:55 <EgoBot> Bp{}]+Be Tb|0000*|Te
02:48:37 <oerjan> !slashes /Be/Bn//Bl/-[-{1}]//B\n/{}]+B\e/ /Tn/\/T\\t\/Tt\// /T\t/Tb|0000*|Te/ BpBe Tn
02:48:37 <EgoBot> Bp{}]+Be
02:50:25 <oerjan> !slashes /Be/Bn//Bl/-[-{1}]//B\n/{}]+B\e/ /Tn/\/T\\t\/Tt\// BpBe Tn
02:50:25 <EgoBot> Bp{}]+Be
02:51:18 <oerjan> !slashes /Tn/\/T\\t\/Tt\// Tn
02:51:55 <oerjan> 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 <oerjan> i think ehird did
02:59:46 <Sgeo> Oh
02:59:59 <oerjan> he couldn't make it faster then the perl one, alas
03:00:11 <Sgeo> Isn't Perl implemented in Haskell?
03:00:13 <oerjan> (the perl one has issues though with large substitutions)
03:00:28 <oerjan> Perl 6
03:00:36 <oerjan> this is old perl
03:00:41 <pikhq> Sgeo: An early Perl 6 implementation, Pugs, was in Haskell.
03:01:14 <oerjan> *than
03:02:03 <Sgeo> Is it too late to try to get involved with Google Summer of Code?
03:02:14 <Sgeo> THey're probably looking for people who've actually looked at the stuff
03:04:37 <coppro> nope; deadline for applications is the 9th
03:05:20 <Sgeo> 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 <Sgeo> ?
03:09:08 <coppro> yes you do
03:09:22 <coppro> socghop.appspot.com
03:10:18 <Sgeo> 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 <Sgeo> I mean, and get accepted
03:13:15 <coppro> you can
03:13:29 <coppro> it might hurt your chances though
03:13:49 <coppro> make sure to mention your coding experience in the application
03:14:07 <coppro> 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 <Sgeo> ..crap
04:55:37 <Sgeo> I wanted to study. I did no studying. It is now midnight
05:14:47 <pikhq> You, sir, are a failure.
05:15:37 -!- adu has quit (Quit: adu).
05:15:59 <coppro> 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 <Sgeo> http://i.imgur.com/pFyFN.jpg
06:33:30 <augur> Sgeo: what abouts it
06:33:51 <coppro> shouldn't you be sleeping?
06:33:54 <augur> who?
06:34:14 <Sgeo> augur, the fact that a Chrome window thinks it's an Explorer window
06:34:34 <augur> oh, the downloads window?
06:34:46 <Sgeo> Downlaods is an explorer window
06:34:55 <Sgeo> Hm, that's not obvious, is it
06:34:56 <Sgeo> HOld on
06:37:49 <Sgeo> http://imgur.com/aWjxb.jpg
06:38:27 <Sgeo> Crap, my real name's in that image
06:38:56 <coppro> you do realize, of course, that had you not said that, I never would have noticed
06:41:12 <lament> i know a guy named seth
06:44:29 <augur> Sgeo: "seth" you mean?
06:44:46 <Sgeo> I thought everyone here knew it anyway
06:44:48 <Sgeo> *shrug*
06:44:57 <augur> seth is a sexy name
06:45:03 <augur> 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> "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 <pineapple> so this was the right channel in the first place, then
13:28:24 <Gregor> This is always the right channel.
13:31:20 -!- MigoMipo has joined.
13:33:10 <pineapple> how many people here are from the UK, and in their 20s?
13:49:23 <oklofok> not me!
13:50:08 <lereah_> 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 <oerjan> 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 <pikhq> "It started out like Romeo and Juliet, but it ended in tragedy."
00:55:23 <pikhq> A part of my soul died when reading those words.
00:56:03 <olsner> Romeo and Juliet ALSO ended in tragedy! that "but" implies no contrast
00:56:11 <olsner> this is a travesty
00:56:33 <pikhq> I note that Romeo and Juliet started out implying tragedy.
00:56:39 <pikhq> Line 6, wasn't it?
00:57:07 <olsner> dunno, I've always assumed the actual play is boring so I've never read/watched it
00:57:23 <olsner> I just know how it ends (everyone dies)
00:57:39 <pikhq> It's one of Shakespeare's weaker plays, to be perfectly honest.
00:57:49 <pikhq> It's just the best-known.
00:58:10 <olsner> ah, the worst work gets most famous... what else is new?
00:58:11 <pikhq> ... Somehow, as being a major romance, rather than a tale of a couple of overdramatic wangsty teenagers that kill themselves.
00:58:24 <olsner> hehe, very EMO :P
00:59:01 <olsner> that is *emo - EMO is just an acronym that happens to be in use at work
01:21:37 <Gregor> <pikhq> "It started out like Romeo and Juliet, but it ended in tragedy." // what moron said this? :P
01:22:22 <pikhq> Many a moron.
01:22:58 <pikhq> The same sort of moron that thinks "starcrossed lovers" means they were fated to be together.
01:23:39 <pikhq> ... And ignores the words "take their life" immediately following.
01:31:56 <Oranjer> 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 <Sgeo_> What's the language where the or-equal-to things are >= and =< in order to prevent confusion with arrows?
02:54:53 <coppro> Erlang
02:55:36 <Sgeo_> 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 <pikhq> One of these days, I need to work on my kernel. So I can run shish on it.
03:51:46 <pikhq> Actually. I should just go ahead and make shish in kernel mode and call it a day. :P
03:54:58 <coppro> pikhq: I've got something new for you to hate!
03:55:01 <coppro> http://pastie.org/910806
03:57:02 <pikhq> coppro: That is such an awful use of the string literal operator.
03:57:34 <coppro> pikhq: well, yeah, that's just for testing
03:58:01 <pikhq> 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 <pikhq> 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 <coppro> lol
03:59:38 * Sgeo_ needs to learn how to study
04:00:40 <coppro> pikhq: unfortunately, it'll suffer scoping issue
04:00:42 <coppro> *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 <oerjan> today's xkcd is literally side-splitting
05:25:25 <pikhq> So your sides were split, then?
05:25:43 <pikhq> I concur. I often find that xkcd splits the sides of my body. Oft in half.
05:25:51 <oerjan> 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 <oerjan> because that would be ironic. literally.
05:27:38 <pikhq> Sadly, I did.
05:27:47 <oerjan> aww
05:27:50 <pikhq> However, I would have reacted the same way.
05:27:56 <oerjan> :D
05:37:08 -!- oerjan has quit (Quit: leaving).
05:43:49 <Sgeo_> How can it take THIS effen long to load a web page FROM DISK
05:52:59 <Sgeo_> Well, my Hatetris AI fails badly
05:53:31 <Sgeo_> Even managed to break the replay functionality
05:56:29 <myndzi> hatetris?
05:56:35 <myndzi> is that some sort of bastet thing?
05:57:02 <Sgeo_> Yes
05:57:07 <Sgeo_> Well, better than bastet
05:57:12 <Sgeo_> Even if it seems a bit repetitive
05:57:29 <myndzi> better is figuratively speaking i guess
05:57:35 <Sgeo_> qntm.org/hatetris
05:57:40 <myndzi> it turns out it's a little hard to make a good bad tetris algorithm! :)
05:58:05 <myndzi> oh also
05:58:12 <myndzi> i solved stacked odds ;p
05:59:07 <myndzi> interesting
05:59:12 <myndzi> you seem to have implemented some of srs(?)
05:59:35 <myndzi> also lol @ infinite S's
06:00:19 <myndzi> this is kinda cheating ;P
06:02:28 <Sgeo_> I didn't make it
06:02:51 <Sgeo_> I'm trying to get it to play against itself, bur I did not make Hatetris
06:03:06 <myndzi> oh
06:03:37 <myndzi> well, it's extremely easy to make a sequence of pieces that's basically unplayable, but it's not very fun
06:03:58 <Sgeo_> Try to use the S's to your advantage, and see what happens
06:04:03 <myndzi> i know
06:04:10 <myndzi> that's why i said "lol infinite s's"
06:04:13 <myndzi> because i was still stacking them
06:04:17 <Sgeo_> It's not just s's
06:04:26 <coppro> I got a line
06:04:27 <myndzi> i know
06:04:46 <myndzi> i got 3 i think, but i lost interest immediately
06:08:44 <myndzi> ok, 5 is easy
06:08:48 <myndzi> but the ai is too lame
06:08:58 <Sgeo_> My AI is magically making a tower to the top after 3 moves
06:09:11 <myndzi> lol.
06:10:10 <myndzi> i don't think this ai can be exploited
06:10:22 <myndzi> not sure though
06:11:06 <myndzi> because of how it works, any holes you leave will be filled least efficiently
06:11:12 <myndzi> with a two wide pit, it'll alternate s's and z's
06:11:25 <myndzi> it doesn't seem to account for slides though
06:11:36 <myndzi> i wonder if you can do t-spins
06:11:40 <Sgeo_> t-spin?
06:11:45 <myndzi> though i don't think it'll be easy to make it give you a t
06:11:48 <myndzi> maybe you can twist some other piece
06:11:51 <myndzi> probably a z or s
06:13:24 <myndzi> ah, i understand, i think
06:20:55 <Sgeo_> My AI is the worst tetris AI ever
06:22:37 <Sgeo_> http://i.imgur.com/95ew3.png
06:23:23 <coppro> haha
06:23:31 <myndzi> gj
06:24:03 <myndzi> 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 <myndzi> o yea, i got 6
06:41:33 <myndzi> ha, i got a t
06:48:15 <myndzi> and i got a z-spin single
06:48:15 <myndzi> :D
06:54:34 <Sgeo_> Well, my AI's a little smarter
06:54:40 <Sgeo_> Not that that's saying much
06:54:52 <myndzi> smart enough to get 6? ;p
06:55:03 <coppro> randomly rolling a horizontal position and an orientation would be smarter than your AI
06:55:11 <Sgeo_> Smart enough to not put ALL the pieces on top of eachother
06:55:25 <Sgeo_> The code takes transforms
06:55:32 <Sgeo_> If it took positions, it would be much easier
06:55:54 <Sgeo_> [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 <oklofok> ais523: pingin' yer brain
10:00:30 -!- MigoMipo has joined.
10:01:20 -!- BeholdMyGlory has joined.
10:01:21 <oklofok> MigoMipo: no not you, but thanks for trying
10:01:48 <oklofok> BeholdMyGlory is lexicographically closer
10:02:03 <MigoMipo> ???
10:02:17 <MigoMipo> oklofok: What?
10:04:58 <oklofok> stupid joke, nm
10:08:52 <oklofok> i asked for ais, you came
10:51:45 <augur> GUESS WHAT I'M DRINKING
10:51:45 <augur> 8D
10:52:21 <oklofok> sperm
10:52:43 <augur> no
10:52:46 <augur> why is everyone saying that
10:52:46 <augur> >.<
10:52:49 <augur> i am drinking
10:52:50 <augur> ...
10:52:52 <augur> A WARRIORS DRINK
10:52:53 <augur> 8D
10:53:10 <oklofok> :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 <oklofok> 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 <alise> Dispatch!
13:10:44 <alise> Coinductive data types are Hard.
13:11:01 <oerjan> <augur> why is everyone saying that <-- i think i can say, with some confidence, that it's your own damn fault.
13:12:04 <Quadrescence> alise: what is a coinductive type
13:12:20 <alise> Quadrescence: basically it's like an inductive data type except it can be infinite.
13:12:27 <alise> of course there is a lot more technical detail behind it, and there are restrictions
13:12:35 <alise> for instance you cannot say foo = foo, but you can say foo = cons 1 foo
13:12:37 <Quadrescence> example?
13:12:43 <Quadrescence> I see
13:12:47 <alise> (there has to be a constructor; although there can be some wrapping around a constructor)
13:12:53 <alise> and recursing over them is restricted
13:13:04 <alise> it's mostly coq making this bit hard though :P
13:13:55 <alise> in coq coinductive types have the awesome side effect that proofs can be infinite...
13:14:30 <Quadrescence> sounds kind of not cool
13:14:43 <alise> not literally infinite like, on disk
13:14:52 <Quadrescence> I know
13:14:55 <alise> but like you can prove things about infinite data types using the recursion mechanism...
13:14:55 <Quadrescence> ""infinite""
13:14:59 <alise> (of course it's safe recursion...)
13:15:02 <alise> which is nice
13:15:13 <alise> Quadrescence: whatever you say zeilberger
13:15:36 -!- tombom has quit (Read error: Connection reset by peer).
13:16:00 <Quadrescence> alise: No, I mean ""infinite"" as in NOT REALLY INFINITE but QUOTE infinite UNQUOTE
13:16:10 <Quadrescence> anyway zeilberger is the coolest ever <3<3<3
13:16:22 -!- tombom has joined.
13:17:22 <alise> damn finitists!
13:17:32 <Quadrescence> :D:D:D:D:D:D
13:17:40 <Quadrescence> I am a finitist
13:17:47 <Quadrescence> just sayin
13:18:09 <lereah_> HEY DUDE, WHAT IS THE CARDINALITY OF [0,1}
13:18:11 <lereah_> ]*
13:18:40 <alise> 74 and one half
13:18:49 <lereah_> That is not a lot
13:18:54 <alise> that's what she said
13:18:58 <lereah_> I expected at least a kilobyte
13:19:08 <alise> yeah well i'm a hyperfinitist
13:20:47 <oerjan> lereah_: what are you doing with that } there
13:21:08 <oklofok> typoing
13:24:24 -!- Quadrescence has quit (Ping timeout: 265 seconds).
13:24:25 <pineapple> alise: early escape today?
13:24:49 <alise> 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 <alise> 05:33:10 <pineapple> how many people here are from the UK, and in their 20s?
14:05:40 <alise> not me also!
14:05:43 <alise> ais is
14:08:54 <Quadrescence> alise is in her 60s
14:09:47 <oerjan> in dog years. or thereabouts.
14:09:52 * oerjan runs away
14:17:52 -!- Gracenotes has quit (Ping timeout: 246 seconds).
14:25:13 <pineapple> alise: yeah... but ey's not here
14:25:37 <alise> a nomicker?
14:25:42 <pineapple> ?
14:25:59 <alise> Spivak pronouns tend to be used most by nomic players.
14:26:05 <alise> Admittedly we usually use e instead of ey.
14:26:06 <oerjan> i suspect SimonRC as well
14:26:19 <alise> oerjan: of playing nomic?
14:26:24 <alise> probable
14:26:40 <alise> oh
14:26:40 <oerjan> no, of being in the uk and in his 20s
14:26:41 <alise> 20 uk
14:26:47 <pineapple> 26
14:26:49 <alise> he is in the uk and 20s seems likely
14:26:55 <pineapple> and... no, not nomic
14:27:14 <alise> 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 <alise> http://esolangs.org/forum/kareha.pl/1192820791/ ;; this is exactly what i want to write my funge in
14:58:46 <alise> too bad it isn't, you know, released
15:09:09 * alise muses over the name of his funge
15:09:34 <alise> If I named it hyph, I couldn't stand to lose the ligature.
15:09:46 <alise> Which is pretty out if I use any sort of low-level language.
15:09:59 <alise> Shiro just makes me think of Japanese.
15:10:10 <alise> And ascus... well... "An ascus (plural asci; Greek for "skin bag") is the sexual spore-bearing cell produced in ascomycete fungi."
15:11:08 <alise> Perhaps ethanol.
15:12:24 <alise> hey guys
15:12:25 <alise> http://en.wikipedia.org/wiki/Metamonad
15:12:51 <alise> http://en.wikipedia.org/wiki/Teliospore; telia/telium?
15:13:02 <alise> http://en.wikipedia.org/wiki/Basidium; basidi(um|a)?
15:13:04 -!- oerjan has quit (Quit: I never m).
15:13:12 <alise> *basidium/basidia, for clearness
15:13:15 <alise> oerjan: :D
15:14:43 <alise> telia just makes me think of tequila (my objections don't have to be rational).
15:15:01 <alise> Basidia is on the long side; basidium jumped off the Cliff of Long.
15:15:13 <alise> So maybe I should stick to the hyphae/shiro/ascus trilogy.
15:16:11 <alise> Well, pronouncing hyphae just makes me think of hyphy, and then I want to jump off a bridge.
15:16:44 <alise> 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 <alise> "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 <alise> I've never left the Northern, Southern, Eastern or Western hemispheres!
15:50:39 <pineapple> hang on...
15:50:48 <pineapple> what are the other 2 hemispheres called?
15:51:03 -!- lereah_ has quit (Quit: Leaving).
15:52:24 <alise> What do you mean? Land/water hemisphere?
15:52:33 <pineapple> umm...
15:52:45 <alise> I am confused now.
15:53:33 <pineapple> "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 <pineapple> what is the hemisphere that you can see called?
15:53:50 <pineapple> also s/can/can't/
15:55:02 <pineapple> colloquially the "front" and the "back"... but i wondered if they had official names
15:56:39 <pineapple> did that make sense?
15:57:39 <pineapple> if not: take a carving knife down the +90 and -90 meridians
16:07:36 <yiyus> not all the hemispheres have a name (the earth has *infinite* hemispheres)
16:27:42 <Deewiant> alise: Why not dust off your previous funge attempt
16:29:03 <alise> Deewiant: You think it had basically any code? No. :)
16:29:22 <alise> yiyus: infinite, are you sure?
16:29:37 <alise> Deewiant: Besides, I want to be some sort of contester as far as speed goes, so out goes Haskell.
16:30:39 <Deewiant> 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 <yiyus> alise: an hemisphere is a half of an sphere, and you can cut it through infinite planes
16:30:57 <pineapple> yiyus: well, yes, but... that;s the other "logical pair"
16:31:25 <alise> Deewiant: I haven't weeks! Hopefully I will start coding today.
16:31:26 <Deewiant> pineapple: I don't know of any names for them
16:31:38 <alise> Language is leaning towards C, though detest it I do.
16:31:58 <Deewiant> If you want the æ you can use D ;-)
16:33:06 <alise> *If you want the and uncountable billions of years of suffering, you can use D.
16:33:17 <Deewiant> Well yes, there's a tradeoff
16:34:08 <alise> I don't know why you haven't given up on D. :)
16:34:20 <alise> It would be nice to have Schemeish macros so that I can define my n-dimensional fungespace.
16:34:28 <alise> I guess nobody actually uses dimensions above two, though.
16:34:41 <Deewiant> CCBI2 is such a metaprogramming mess that it'd be insane to switch over at this point
16:35:32 <Deewiant> I have some test cases for trefunge which I guess is a "use"
16:36:09 <alise> There is some sort of editor written in Trefunge, but I don't care.
16:36:22 <Deewiant> Yes, that's the only "actual use" I know of
16:36:28 <Deewiant> Or can recall at this moment
16:37:53 <alise> And unefunge is basically identical to befunge, isn't it?
16:38:18 <Deewiant> It's as identical to befunge as trefunge is :-P
16:38:41 <alise> What errors arise from interpreting Unefunge as one-line Befunge code?
16:38:48 <Deewiant> All possible?
16:38:53 <alise> Really?
16:38:56 <Deewiant> p should pop one coordinate, not two, for example
16:38:59 <alise> So 22+ behaves differently?
16:38:59 <alise> Ah.
16:39:06 <Deewiant> Anything that messes with vectors changes
16:39:09 <alise> Now how much actual Unefunge code is there?
16:39:14 <Deewiant> Zero that I know of
16:39:19 <Deewiant> I don't even have test cases for it :-P
16:39:38 <alise> Also, you guys need to write documentation for how Befunge stuff actually works.
16:39:38 <Deewiant> Mostly because I trust that if my shit works for >1 it works for 1
16:39:48 <Deewiant> What do you mean?
16:39:53 <alise> 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 <Deewiant> Mycology tries to be helpful in that regard
16:40:13 <alise> *description
16:40:28 <alise> Right, but it doesn't say "do this", just "ha ha you did this specific thing wrong. do this instead" :-)
16:40:51 <Deewiant> ("do this" `isInfixOf` "ha ha you did this specific thing wrong. do this instead") == True
16:41:35 <alise> == True? A pointless expression if I ever saw one.
16:41:47 <alise> Anyway, Mycology requires you to first make the errors.
16:41:54 <Deewiant> The readme of Mycology explains some of the hairier non-fingerprint stuff
16:42:21 <Deewiant> Assigning every instruction to initially do nothing should work decently well
16:42:50 <alise> Apart from not telling me anything at all.
16:43:04 <alise> But, okay. I suppose the best place to start is indeed Fungespace?
16:43:12 <Deewiant> Mycology should then usually tell you "BAD: foo did bar instead of baz"
16:43:28 <alise> How can it do that if all instructiosn do nothing?
16:43:36 <pineapple> <Deewiant> If you want the æ - the what?
16:43:37 <alise> *instructions
16:43:44 <alise> 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 <alise> http://www.curseforge.com/contests/3-befunge-98/
16:43:46 <alise> that's some contest
16:43:51 <alise> do you think they realised?
16:44:15 <alise> http://www.curseforge.com/contests/3-befunge-98/entries/cyrnus/ I somehow doubt this passes Mycology
16:44:18 <Deewiant> 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 <Deewiant> alise: Hey, that's new.
16:44:32 <alise> Deewiant: Not if the output instruction does nothing.
16:44:42 <pineapple> alise: what's the "gimmick" to your funge?
16:44:47 <alise> -- This is a mostly standard compliant non-concurrent Befunge-98 interpreter
16:44:50 <alise> http://www.curseforge.com/contests/3-befunge-98/entries/vaeyl/
16:44:51 <Deewiant> alise: Well, you can do the obvious ones.
16:44:55 <alise> pineapple: It's just Yet Another Befunge-98 Interpreter.
16:45:08 <alise> Deewiant: Okay. :P
16:45:23 <pineapple> so why is the (i'm not pasting it again, damnit) ligature important?
16:45:33 <alise> Because I want to name it hyph\ae.
16:45:41 <alise> Or shiro, or ascus. But probably not ascus.
16:45:43 <pineapple> aaah
16:45:53 <Deewiant> alise: Read the readme: sanity.bf expects 0123456789.@ to work, IIRC
16:46:02 <alise> Deewiant: Okay, okay, I'll download Mycology.
16:46:09 <pineapple> 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 <alise> I am a preminent Befunge implementer, and wrote the hyph interpreter.
16:47:12 <pineapple> ok... that's a rather gross idea:
16:47:17 <Deewiant> Gah, except they only define the run()
16:47:19 <pineapple> what if a funge could fork?
16:47:48 <alise> pineapple: It can; t.
16:47:55 <alise> Deewiant: Trivial wrapper to do, surely.
16:47:58 <oklofok> '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 <alise> oklofok: :D
16:48:14 <pineapple> alise: i don't mean befunge itself, but a befunge variant
16:48:18 <Deewiant> First entry: vaeyl. Doesn't get through the Befunge-93 area.
16:48:21 <Deewiant> GOOD: p modifies space
16:48:21 <Deewiant> Unknown command
16:48:26 <Deewiant> (Unknown command repeated ad infinitum)
16:48:34 <alise> Deewiant: :D
16:48:49 <alise> like putting a retarded kid in a wheelchair through a military obstacle course
16:48:59 <Deewiant> Makes me wonder if any of these do the stuff that's even quite clearly explained in the spec correctly
16:49:42 <Deewiant> It might actually be that it can't handle \r\n
16:49:46 <oklofok> what's going on?
16:49:47 <alise> eminate would be a nice interpreter name
16:49:58 <Deewiant> I'll be nice and try a nuxified one
16:50:02 <alise> oklofok: some kids wrote some "befunge-98" interpreters in lua for some contest
16:50:04 <alise> they suck lol
16:50:24 <Deewiant> Yeah, much better
16:50:42 <Deewiant> vaeyl dies due to k not working as expected, unsurprisingly enough
16:51:01 <Deewiant> GOOD: 0k^ doesn't execute ^
16:51:01 <Deewiant> BAD: 1k[ turns left at [
16:51:01 <Deewiant> BAD: 4k # does nothing and hits #
16:51:01 <Deewiant> BAD: 2k ;;;5 does nothing and hits 5
16:51:01 <Deewiant> BAD: 2k# jumps once from k
16:51:03 <Deewiant> GOOD: ak47k$ leaves 3 fours on stack
16:51:06 <Deewiant> BAD: 2k6 leaves 2 sixes on stack
16:51:12 <Deewiant> I mean, the last /is/ kind of unexpected.
16:51:25 <alise> :D
16:51:29 <alise> how many should it leave?
16:51:33 <Deewiant> three
16:51:48 <alise> right because 2k executes 6 twice, then moves onto 6
16:51:56 <Deewiant> Right
16:52:08 <alise> so nkx, assuming x doesn't fuck with the ip or similar shenanigans = x^(n+1)
16:52:12 <Deewiant> wolftankk is either damn slow or buggy; 20 seconds and counting and it hasn't printed anything
16:52:27 <Deewiant> alise: Unless n is zero
16:52:33 <alise> XD
16:52:38 <alise> Deewiant: It's better to leave TRDS-related surgery until after I've got something working, yeah?
16:52:45 <Deewiant> Very yeah
16:53:21 <Deewiant> 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 <alise> I like the idea of program surgery.
16:53:35 <alise> There should be some sort of new-age non-textual editor based on program surgery.
16:53:38 <Deewiant> (That dates from my firstish implementation of TRDS and still stands)
16:53:45 <Deewiant> Okay, wolftankk isn't doing anything
16:54:35 <oklofok> where are these interps and why do they exist WHAT'S GOING ON
16:54:43 <alise> DEATH
16:54:46 <alise> DEATH IS ALL-SURROUNDING
16:54:55 <Deewiant> jerry did pretty well
16:55:04 <Deewiant> BAD: 0k^ executes ^ at ^
16:55:12 <Deewiant> Come on! That's explicitly in the spec
16:55:19 <Deewiant> BAD: 101-{} doesn't leave stack top as 0 and next as 1
16:55:19 <Deewiant> BAD: fedcba0{05-} doesn't leave 15 on stack
16:55:23 <Deewiant> That latter one is a rare sight
16:55:54 <Deewiant> Hell, I'm not sure that anything that got that far has triggered it previously
16:56:06 <Deewiant> It doesn't have a corresponding GOOD so I mostly forget it's there
16:56:19 <oklofok> 101-{} should leave stack as 1 -1? why not 1 0
16:56:24 <oklofok> err reverse those
16:56:26 <oklofok> :P
16:56:41 <oklofok> isn't {} nop?
16:56:45 <Deewiant> Because read the spec or Mycology's readme :-P
16:56:51 <Deewiant> No it's not
16:57:03 <oklofok> oh okay i must remember it wrongly then
16:57:12 <Deewiant> Anyway, jerry failed at i somehow
16:57:18 <Deewiant> shoulThe directions were generated in the order
16:57:19 <Deewiant> d have pushed (60, 119) as Va
16:57:19 <Deewiant> ? was met 33 timesThe directions were generated in the order
16:57:19 <Deewiant> lua: /home/deewiant/arst.lua:654: bad argument #1 to 'char' (invalid value)
16:57:19 <oklofok> i haven't used 98 features like ever, just read the spec once
16:57:27 <Deewiant> I think it managed to find a t somehow
16:58:34 <Deewiant> cyrnus fails at k as did vaeyl
16:59:11 <Deewiant> So hey, their votes actually reflect how well they did in Mycology :-P
16:59:33 <alise> Perhaps cumulate would be a good name.
16:59:34 <Deewiant> 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 <alise> Grr, I really want a decent name.
16:59:45 -!- BeholdMyGlory has joined.
16:59:50 <alise> CCBI and cfunge and RC/Funge are shit names.
16:59:55 <Deewiant> :-D
17:00:02 <Deewiant> What's in a name
17:00:31 <alise> The name is the thing!
17:00:32 <Deewiant> That which we call a Befunge-98 interpreter by any other name would execute as sweet
17:00:41 <alise> The thing is the name, modulo our human vision.
17:00:45 <alise> But non-humans do not use Befunge!
17:01:06 <Deewiant> What's a "good" name to you
17:01:16 <AnMaster> alise, working on a funge interpreter?
17:01:19 <alise> Yes.
17:01:21 <Deewiant> 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 <alise> Memorable, short, easily pronounceable (I am aware this one is subjective), no icky connotations, and sthetically pleasing.
17:01:54 <alise> The last one is subjective too; shock and horror.
17:02:06 <AnMaster> alise, don't say "easily pronounceable" to anyone from Finland
17:02:11 <AnMaster> that is a *really* bad move
17:02:15 <alise> :-)
17:02:19 <Deewiant> :-D
17:02:23 <alise> "Aseroe" and "mutinus" are nice possible names...
17:02:30 <alise> but they're just really obscure funge geni
17:02:31 <AnMaster> alise, how do you pronounce them?
17:02:37 <alise> *genera
17:02:44 <AnMaster> hm
17:02:52 <alise> AnMaster: Ass a row and mutin- (ala "mutiny") us.
17:02:58 <alise> Ass a row is admittedly not the most pleasant thing to say.
17:02:59 <AnMaster> hm
17:03:01 <Deewiant> :-D
17:03:11 <alise> I may be wrong about their pronunciations: I'm just guessing.
17:03:18 <alise> The genus name is derived from the Ancient Greek words Asē/αση 'disgust' and roē/ροη 'juice'.
17:03:18 <AnMaster> alise, yeah, hardly better than "as a column"
17:03:22 <alise> Disgust juice, ass a row!
17:04:07 <alise> http://botit.botany.wisc.edu/toms_fungi/images/mut6.jpg <- mutinus
17:04:09 <AnMaster> btw, I'm unlikely to have much time for funge during the next few weeks. Probably not until the summer.
17:04:10 <alise> i suck at this
17:04:12 <Deewiant> alise: Why does pronounceableness matter for a Funge interpreter, it's not like anybody will ever talk about it
17:04:25 <alise> You don't get people talking aloud in your head on IRC?
17:04:29 <Deewiant> alise: You even have a logo!
17:04:37 <Deewiant> No, I don't really subvocalize
17:04:41 <alise> Not only a logo, a phallic logo!
17:04:41 <AnMaster> <alise> You don't get people talking aloud in your head on IRC? <-- no?
17:04:42 <Deewiant> Well, not much
17:04:56 <alise> I'm pretty sure everyone who reads has some sort of voice, because it's just the interpretation of the word.
17:06:19 <AnMaster> nah
17:06:30 <alise> Maybe I'll call it descartes, from the cordinates
17:06:31 <AnMaster> when reading books perhaps
17:06:47 <Deewiant> That'd be lahey
17:07:08 <AnMaster> alise, that begs for a fingerprint ESCH!
17:07:30 <AnMaster> (from MC Escher obviously)
17:07:41 <alise> Why?
17:07:44 <alise> Deewiant: Heh, true.
17:07:52 <alise> How is Lahry intended to be pronounced?
17:07:54 <alise> *Lahey
17:07:58 <AnMaster> alise, that does weird geometry
17:08:06 <AnMaster> Deewiant, btw, who *was* Lahey?
17:08:16 <Deewiant> AnMaster: Can't remember
17:08:20 <Deewiant> alise: Can't know
17:08:24 <alise> Presumably some guy on a mailing list who generalised Fungespace.
17:08:29 <Deewiant> Presumably
17:08:36 <AnMaster> ah yes that sounds familiar
17:10:52 <alise> The problem with funge names is that fungi are basically [...] gross.
17:10:57 <Deewiant> :-)
17:11:07 <AnMaster> varies
17:11:19 -!- benuphoenix has quit (Quit: leaving).
17:12:02 <AnMaster> alise, what about http://en.wikipedia.org/wiki/Amanita_muscaria ?
17:12:19 <alise> That mushroom has smegma.
17:12:24 <Deewiant> http://upload.wikimedia.org/wikipedia/commons/3/31/Amanita_muscaria1.jpg pretty, no
17:12:30 <alise> --was honestly my first reaction.
17:13:00 <AnMaster> you must have a dirty mind?
17:13:09 <alise> No, that's what it really looks like you see.
17:13:32 <AnMaster> not really
17:13:46 <AnMaster> alise, and it is one of the more common toxic mushrooms iirc
17:13:50 <AnMaster> at least in Sweden
17:16:41 <AnMaster> alise, what about chanterelles? (Interwiki indicates that is the English name for them)
17:16:53 <alise> Whatever.
17:16:54 <Deewiant> I always found them ugly
17:17:03 <AnMaster> weird
17:17:13 <AnMaster> I don't like their taste. But ugly? nah
17:17:51 <alise> Reishi is a nice name but I don't feel like the connotations.
17:18:00 <alise> Zomg miraculous chinese health.
17:18:10 <Deewiant> You and your connotations :-P
17:18:17 <alise> yes
17:18:17 -!- FireFly has joined.
17:20:07 <oklofok> is shi death or something in japanese
17:20:10 <AnMaster> 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 <alise> don't care
17:20:21 <alise> :p
17:20:26 <AnMaster> alise, don't care about?
17:20:27 <Deewiant> Just like your interpreter, it may actually even work ;-)
17:20:36 <AnMaster> Deewiant, :D
17:20:40 <oklofok> pikhq: your time to shine
17:20:50 <Deewiant> oklofok: It is also four
17:21:15 <Deewiant> (And probably a bunch of other things)
17:21:58 <alise> Commandment.
17:22:07 <alise> Ugh, I wish there was a good fast language.
17:22:16 <Deewiant> Don't we all
17:23:17 <AnMaster> 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 <oklofok> i wish python wasn't as fast, there's no challenge
17:23:36 <AnMaster> eh...
17:23:40 <alise> AnMaster: Of course. Aspirin.
17:23:48 <AnMaster> alise, that is a famous example yes
17:23:53 <Deewiant> Penicillin
17:23:57 <AnMaster> and that
17:24:00 <AnMaster> and there are quite a lot of other ones
17:24:03 <alise> 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 <alise> "Cancer/Reishi". Er, no.
17:24:19 <alise> "Reishi Qi Booster". Er, no.
17:24:19 <Deewiant> alise: Google CCBI?
17:24:28 <alise> Deewiant: I do not have to be shit at naming just because you are :)
17:24:34 <Deewiant> Meh
17:25:45 <AnMaster> 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 <AnMaster> just trying to get a balanced view here
17:25:58 <alise> They scientifically measured qi?
17:26:00 <alise> Ha.
17:26:12 <AnMaster> 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 <alise> The site it is on is not so reassuringly reputable:
17:26:43 <alise> "Red Reishi (Ganoderma Lucidum), commonly known as Ling Zhi in Chinese, is a herbal mushroom known to have miraculous health benefits."
17:26:47 <alise> "# When it is taken regularly, it can restore the body to its natural state, enabling all organs to function normally."
17:26:50 <AnMaster> alise, that quote was from wikipedia
17:26:54 <alise> I know.
17:26:59 <AnMaster> wich of course isn't reputable
17:27:01 <alise> I'm saying that whatever the studies it has a connotation.
17:27:12 <alise> I meant the site the Cancer/Reishi page was on.
17:27:20 <Deewiant> alise: Meh, now you got me thinking about renaming CCBI, too. Just pick a name and be done with it :-P
17:27:28 <AnMaster> Deewiant, I like the current name
17:27:32 <AnMaster> what's wrong with it?
17:27:34 <alise> Deewiant: You should name it to something with no more than one capital letter.
17:27:43 <AnMaster> alise, why?
17:27:44 <alise> AnMaster: Says the one who picked the name "cfunge".
17:27:51 <AnMaster> alise, yes and?
17:27:54 -!- tombom__ has quit (Ping timeout: 260 seconds).
17:27:57 <AnMaster> I fail to see what is wrong with cfunge too
17:27:59 <alise> Not exactly a name of stunning eloquence.
17:28:05 <AnMaster> maybe not
17:28:09 <Deewiant> AnMaster: Not: Googlable, pronouncable, æsthetic
17:28:11 <AnMaster> but a good and solid name still
17:28:32 <AnMaster> Deewiant, I can pronounce CCBI quite okay. The double C is a slight issue however
17:28:44 <AnMaster> Deewiant, that it isn't googable is a larger problem
17:28:45 <Deewiant> It's still four syllables
17:29:06 <AnMaster> Deewiant, how do you pronounce SCSI?
17:29:15 <alise> See see bee eye. Crappy pronunciation.
17:29:26 <AnMaster> I heard it something like that wikipedia suggests: "scuzzy"
17:29:28 <alise> Basically this all comes down to a matter of findability, and sthetics.
17:29:42 <Deewiant> AnMaster: Well yes, it has that pronunciation.
17:29:43 <alise> The former is objectively measurable; and some people have the latter, some people don't.
17:29:51 <Deewiant> CCBI doesn't, and isn't very amenable to one. :-P
17:29:53 <alise> I don't see AnMaster as a particularly sthetic person.
17:29:54 <AnMaster> Deewiant, but it isn't spelled like that
17:29:56 <AnMaster> I mean
17:30:04 <AnMaster> there is no vowels in SCSI.
17:30:10 <AnMaster> err wait
17:30:13 <AnMaster> apart from the I
17:30:14 <AnMaster> that is
17:30:19 <Deewiant> Yes, you don't /have/ to pronounce CCBI as four separate letters
17:30:21 <AnMaster> CCBI also has just one
17:30:24 <alise> Deewiant: You can pronounce CCBI as "suzuby".
17:30:27 <AnMaster> Deewiant, that was my point
17:30:29 <Deewiant> Just like you don't have to pronounce SCSI as such
17:30:31 <alise> The z is like the z in "scuzzy".
17:30:32 <AnMaster> alise, nice
17:30:40 <alise> Deewiant: You wouldn't want to, though.
17:30:42 <Deewiant> AnMaster: But my point was that there isn't a very nice such pronunciation of it :-P
17:30:49 <Deewiant> alise: Yep
17:30:59 <AnMaster> alise, actually in Swedish jargon I believe SCSI is pronounced more like "skassi" (that is spelled in Swedish)
17:31:16 <AnMaster> we don't have that "buzzing" z-sound in Swedish
17:31:51 <AnMaster> (and the sk would be quite similar to sc in the English variant)
17:32:19 <AnMaster> Deewiant, SCSI -> scuzzy isn't a very "obvious" pronunciation to me either
17:32:19 <Deewiant> "buzzing" == voiced
17:32:25 <alise> How do you onomatopise the sound a bee makes?
17:32:30 <Deewiant> bzzz
17:32:34 <AnMaster> alise, "surr"?
17:32:35 <alise> In Swedish.
17:32:37 <oklofok> alise: do you like MAKE ROOM FOR MAH SHROOM as a name
17:32:39 <alise> AnMaster: Surr?!
17:32:45 <Deewiant> Surr in Finnish too
17:32:48 <AnMaster> alise, not pronounced like it would be in English at all
17:32:49 <alise> That's shit.
17:33:05 <AnMaster> alise, we have a completely different u sound, and quite a different r sound
17:33:10 <Deewiant> alise: Your r's are shit, so :-P
17:33:19 <AnMaster> yeah what Deewiant said
17:33:28 <alise> Do I have a rhotic accent or not? I forget.
17:33:31 <alise> And is that good or bad? :P
17:33:37 <Deewiant> :-D
17:33:38 <AnMaster> Deewiant, ever heard someone from Skåne pronounce the letter r?
17:33:40 <oklofok> people are boring and unreachable elsewhere, let's try this one
17:33:41 <oklofok> 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 <oklofok> what does this do
17:34:02 <AnMaster> oklofok, what language?
17:34:05 <Deewiant> Stuff
17:34:08 <oklofok> pseudocode
17:34:14 <AnMaster> hm
17:34:17 <oklofok> there's a good reason for that
17:34:18 <AnMaster> yeah what Deewiant said
17:34:23 <oklofok> i can explain notation if you like
17:34:51 <AnMaster> 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 <oklofok> stuff is correct, but not specific enough
17:35:13 <Deewiant> It looks like it does just what it says, I can't think of any clearer way of expressing that
17:35:14 <alise> Gah, someone just name my funge.
17:35:20 <AnMaster> Deewiant, :D
17:35:21 <Deewiant> alise: mehfunge
17:35:22 <oklofok> right but what consts
17:35:30 <alise> Deewiant: Fuqoo.
17:35:30 <oklofok> what are f, inputs and g
17:35:30 <Deewiant> AnMaster: I'm serious
17:35:35 <alise> Note: oo is pronounced u.
17:35:48 <Deewiant> alise: Funqoo
17:35:53 <Deewiant> Fungoo?
17:35:55 <Deewiant> Gooey-Funge
17:36:06 <Deewiant> oklofok: I don't know, they could be anything as far as I can tell
17:36:08 <oklofok> Deewiant: there's a very short explanation for what it does
17:36:10 <alise> FUNKu
17:36:10 <AnMaster> alise, Hydnum coralloides
17:36:13 <alise> \\\\\\\\
17:36:14 <AnMaster> it looks nice
17:36:19 <AnMaster> http://en.wikipedia.org/wiki/File:Dsc04896-Hydnum-coralloides.jpg
17:36:21 <Deewiant> oklofok: What's trace?
17:36:49 <oklofok> trace(f(x)) runs f with arg x and trace provides a trace of this run
17:36:54 <oklofok> like what f did
17:37:00 <Deewiant> Ookay
17:37:15 <oklofok> actually the explanation would be nicer if i change it a bit...
17:37:23 <AnMaster> oklofok, then how is the trace formatted?
17:37:24 <Deewiant> So it's some kind of big-O thing
17:37:30 <oklofok> yeah
17:37:30 -!- Alex3012 has quit (Read error: Connection reset by peer).
17:37:35 <AnMaster> oklofok, since it seems to take the length of the trace....
17:37:38 <Deewiant> Looking for the appropriate constants
17:37:51 <AnMaster> is it the length of a string of it? Or the length of the trace in number of steps?
17:37:51 <oklofok> the program f's time complexity is O(g), and you look for the invisible constants
17:38:02 <Deewiant> Yep, something like that
17:38:20 <Deewiant> It'd help if it weren't on one line but yeah, I can see that :-P
17:38:31 <oklofok> yes, probably
17:38:33 <AnMaster> ah, hm yes that seems to make some sense
17:38:35 <AnMaster> somewhat
17:39:22 <oklofok> a = -1; for i = 0 to infinity {a = -a}; print a^2
17:39:51 <oklofok> (...don't take offense, that wasn't meant as a challenge, i just wrote it for some reason)
17:40:37 <Deewiant> alise: You do realize you don't need a name to code
17:40:46 <alise> Deewiant: Sure I do: namespaces
17:40:52 <Deewiant> alise: "placeholder"
17:40:58 <alise> Deewiant: Ew.
17:41:09 <Deewiant> You and your æsthetics, again
17:41:30 <Deewiant> alise: You can also code a reasonable deal without using namespaces
17:41:48 <oklofok> aesthetics are the best ethics
17:42:15 <alise> Deewiant: yeah but meh
17:42:15 <oklofok> well is
17:42:17 <alise> :P
17:42:40 -!- atrapado has quit (Quit: Ex-Chat).
17:42:41 <AnMaster> alise, what language btw?
17:42:58 <Deewiant> alise: I'll just think back to my statement about you taking weeks before you get started :-)
17:43:11 <AnMaster> Deewiant, 80% of that is deciding the name
17:44:37 <AnMaster> 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 <AnMaster> alise, what would you have called a short utility program for finding duplicate files?
17:45:04 <AnMaster> I guess you wouldn't have picked the one I did: find_dups
17:45:11 <alise> That's more like a function name than a project name.
17:45:14 <alise> I'd call it duplicates.
17:45:19 <alise> $ duplicates foo.txt
17:45:22 <AnMaster> what?
17:45:35 <Deewiant> What what
17:45:36 <AnMaster> it recurses through dirs.
17:45:42 <alise> $ duplicates foo/
17:45:44 <alise> So what?
17:45:53 <AnMaster> yeah but what would it even *do* on a single file
17:46:02 <Deewiant> AnMaster: xargs foo.txt | duplicates
17:46:08 <Deewiant> xargs < foo.txt*
17:46:10 <AnMaster> you do something like ~/bin/find_dups images porn ;)
17:46:15 <Deewiant> Or whatever, gah
17:46:17 <Deewiant> I fail at xargs
17:46:26 <AnMaster> Deewiant, yes completely
17:46:34 <AnMaster> xargs duplicates foo.txt maybe
17:46:40 <Deewiant> No
17:46:44 <Deewiant> xargs duplicates < foo.txt
17:46:48 <AnMaster> argh typoed that
17:46:51 <Deewiant> heh
17:46:58 <Deewiant> xargs is hard ;-P
17:47:02 <AnMaster> 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 <AnMaster> I mean, you want to find all dups
17:47:17 <AnMaster> so if you get one file at a time it is fairly useless
17:47:46 <AnMaster> Deewiant, and I hit the allocation limit on cmd line args. Which on linux is based on something in ulimit nowdays
17:48:18 <Deewiant> AnMaster: Which is why "duplicates foo.txt" instead of xargs
17:49:24 <AnMaster> alise, btw http://en.wikipedia.org/wiki/Agaricus_bisporus
17:49:37 -!- tombom_ has quit (Ping timeout: 246 seconds).
17:49:42 <AnMaster> Deewiant, right. But then you need to provide a list of those in there
17:49:57 <AnMaster> Deewiant, like find huge_dir -type f > foo.txt
17:50:03 <Deewiant> Yes, and that was the implication from the start
17:50:09 <AnMaster> meh
17:50:44 <AnMaster> Deewiant, there are some small theoretical advantages with not doing it
17:50:59 <Deewiant> Sure
17:51:01 <AnMaster> I agree that it is fairly irrelevant for practical purposes
17:51:17 <AnMaster> but consider disk cache. The program uses stat() to read the file sizes
17:51:25 <AnMaster> so it doesn't have to check as many files against each other
17:51:30 <AnMaster> it only need to check those with the same size
17:52:03 <AnMaster> if you process a large enough nested dir tree, the file info and such may no longer be in disk cache
17:52:20 <AnMaster> which they are likely to be after just getting a listing of all files in the dir you are working on
17:52:49 <AnMaster> Deewiant, so theoretically, and depending on how the filesystem stores the file metadata, recursing in the program can be faster ;P
17:53:05 <AnMaster> I very much doubt it matters practically though
17:53:52 <alise> Meh, I'll just call it funge for now as a placeholder.
17:53:54 <alise> Now to decide language :P
17:53:57 <AnMaster> haha
17:53:58 <AnMaster> XD
17:54:11 <Deewiant> alise: Use C as a placeholder
17:54:22 <AnMaster> 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 <AnMaster> not that I suggest that is the case
17:54:32 <AnMaster> just that it may *look* like that
17:54:36 <alise> AnMaster: You really think I'll name it that?
17:54:37 <Deewiant> AnMaster: It's a placeholder
17:54:47 <alise> I said "placeholder"; please look up words in the dictionary before talking about them in future.
17:54:52 <AnMaster> yes but placeholders has a tendency to stick
17:54:53 <Deewiant> AnMaster: Besides, stinkhorn used to be called befunge98...
17:54:57 <AnMaster> Deewiant, heh
17:55:02 <alise> Deewiant: C is a pretty bad placeholder, considering it's nitty and gritty :P
17:55:09 <Deewiant> alise: :-P
17:55:30 <alise> Seriously, I'd write it in C-Scheme in a heartbeat.
17:55:41 <AnMaster> C-Scheme?
17:55:51 <AnMaster> that sounds interesting
17:56:15 <AnMaster> alise, what is C-Scheme?
17:56:28 <alise> http://esolangs.org/forum/kareha.pl/1192820791/4
17:56:28 <AnMaster> google gave me just "Scheme for C programmers" and such
17:56:45 <alise> Full thread including first post with broken BBCode: http://esolangs.org/forum/kareha.pl/1192820791 (nothing interesting really apart from /4)
17:57:59 <AnMaster> where is the current implementation?
17:58:15 <Deewiant> In your dreams
17:58:15 <alise> Obviously nowhere, it's just some random forum post ffs.
17:58:25 <alise> Thus "I'd write it in" not "I'll write it in".
17:58:28 <AnMaster> alise, "All of the above works. It's a pretty damn easy thing to write." fooled me
17:58:45 <Deewiant> AnMaster: "Exists" != "released"
17:58:56 <AnMaster> Deewiant, well yes. I was considering that.
17:59:00 <alise> Of course it's easy to write.
17:59:06 <AnMaster> alise, so first step: Implement C-Scheme
17:59:08 <alise> "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 <alise> Simple.
17:59:13 <alise> AnMaster: And /that/ is the task I don't want to do.
17:59:18 <alise> See how this works?
17:59:23 <AnMaster> hah
18:01:51 <alise> I mean, I can't use C directly. The thing doesn't even have proper strings.
18:02:00 <Deewiant> C++!
18:02:17 * Deewiant ducks
18:03:25 <AnMaster> alise, it isn't like Funge uses a lot of strings. A few yes, but not many
18:03:56 <Deewiant> I thought we were talking about C-Scheme
18:04:10 <AnMaster> eh?
18:04:16 <AnMaster> not about "funge"?
18:04:18 <Deewiant> 2010-04-09 19:58:42 ( AnMaster) alise, so first step: Implement C-Scheme
18:04:19 <Deewiant> 2010-04-09 19:58:49 ( alise) AnMaster: And /that/ is the task I don't want to do.
18:04:23 <Deewiant> 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 <alise> The last one was for funge.
18:04:32 <Deewiant> Darn.
18:04:35 <AnMaster> Deewiant, [can't use it for funge] pretty obviously
18:04:59 <Deewiant> I just couldn't connect requiring strings and Funge.
18:05:10 <AnMaster> alise, idea: call it 0"egnuf">:#,_@
18:05:10 <alise> Well, it's just such an inconvenient language.
18:05:13 <alise> I hate allocating memory.
18:05:16 <alise> Hate it, hate it, hate it.
18:05:28 <AnMaster> <Deewiant> I just couldn't connect requiring strings and Funge. <-- indeed
18:05:36 <Deewiant> I found it improved performance by a veritable crock
18:05:43 <alise> Deewiant: A crock of shit?
18:05:44 <AnMaster> Deewiant, what did? memory allocation? yes
18:05:52 <AnMaster> manual such for funge
18:05:53 <AnMaster> definitely
18:06:11 <AnMaster> funge really doesn't gain very much from a GC most of the time
18:06:25 <Deewiant> alise: A crock of performance, obviously
18:06:36 <alise> Allocating memory in the large, yes; but for tiny temporary structures?
18:06:50 <Deewiant> Fortunately there's this thing called the stack :-P
18:07:32 <Deewiant> 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 <alise> Well, fuck Tango.
18:08:13 <Deewiant> Not many alternatives :-)
18:08:32 <Deewiant> Of course "shit" is relative
18:08:37 <alise> ~D is an alternative.
18:08:38 <Deewiant> It's decent enough most of the time
18:08:53 <Deewiant> alise: Like said, not any more ;-P
18:09:05 <alise> Well, you suck rabies.
18:09:14 <Deewiant> Actually, I don't
18:09:16 <alise> Maybe I should use ML and compile it with MLton or something, but ML is crufty.
18:09:22 <alise> Deewiant: OR DO YOU?
18:09:29 <Deewiant> I'm fairly sure I don't
18:09:34 <Deewiant> OCaml?
18:09:49 <Deewiant> Ugly, but maybe preferable to C by your standards
18:09:50 <alise> If ML is crufty, what do you think my opinion of OCaml is?
18:10:06 <Deewiant> Better than that of C?
18:10:16 <alise> 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 <Deewiant> How about Factor
18:10:43 <AnMaster> <alise> ~D is an alternative. <-- "about D"?
18:10:44 <alise> Ehh, no.
18:10:49 <AnMaster> or is it a weird smiley?
18:10:49 <alise> AnMaster: "not".
18:10:53 <alise> lern2asciilogic
18:11:02 <AnMaster> alise, oh ¬
18:11:13 <AnMaster> alise, try altgr-shift-`
18:11:19 <Deewiant> ¤
18:11:19 <AnMaster> that is the dead key `
18:11:27 <AnMaster> Deewiant, that is shift-4 for me
18:11:29 <AnMaster> ¤
18:11:31 <alise> For one, I have no dead keys.
18:11:31 <Deewiant> 4
18:11:35 <alise> For two, my alt-gr key is an alt.
18:11:37 <AnMaster> Deewiant, shift-4 is 4?
18:11:39 <alise> For three, no.
18:11:41 <Deewiant> Yep
18:11:47 <alise> Oh, I know!
18:11:48 <AnMaster> Deewiant, weird
18:11:50 <alise> I'll write it in MYTHRYL!
18:12:15 <AnMaster> what the heck is that?
18:12:18 <Deewiant> heh
18:12:24 <AnMaster> It sounds like a fantasy parody
18:12:27 <alise> One of our favourite language scapegoats: http://mythryl.org/
18:12:33 <alise> It's like ML but shittier!
18:12:55 <AnMaster> alise, worse than "Plain English"? or whatever the name was
18:12:59 <alise> Er, no.
18:13:02 <alise> But Plain English isn't functional.
18:13:05 <AnMaster> well no worry then
18:14:09 <alise> Wow, Mythryl has "stipulate X herein Y end", which is the same as "Y where X end".
18:14:23 <alise> Stupefying.
18:15:32 <Deewiant> #define stipulate
18:15:36 <Deewiant> #define herein where
18:15:43 <Deewiant> #define end
18:15:43 <alise> Wrong.
18:15:45 <alise> Read my sentence again.
18:15:48 <Deewiant> Haskell == Mythryl
18:15:53 <Deewiant> Oh, darn
18:15:58 <Deewiant> Meh
18:15:59 <alise> It's just, the terminology :D
18:15:59 <AnMaster> Deewiant, oh darn what?
18:16:06 <Deewiant> I flipped it
18:16:17 <AnMaster> heh
18:16:34 <alise> basically i want something like c that can manage memory and has a nicer syntax
18:16:36 <alise> something with := in it.
18:16:49 <AnMaster> alise, presumably you would dislike this mushroom too? http://en.wikipedia.org/wiki/File:Agaricus_bisporus_%28Cup_mushroom,_doubled%29.jpg
18:16:56 <AnMaster> Not that I can see anything wrong in it
18:17:03 <alise> AnMaster: You don't find that gross in any way?
18:17:10 <AnMaster> alise, no? why would it be?
18:17:18 <AnMaster> trees fuse together too sometimes
18:17:34 <alise> Look at it - like, with your eyes.
18:17:51 <AnMaster> 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 <AnMaster> you know, forests, travelling by foot. And even seeing the day star!
18:18:50 <AnMaster> alise, but no I don't see anything gross.
18:18:55 <AnMaster> It's unusual certainly
18:18:56 <alise> 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 <AnMaster> alise, what I was saying was "I *was* in touch with nature"
18:19:23 <AnMaster> I'm not saying I still am
18:19:34 <AnMaster> the "travelling by foot" bit put me off nowdays
18:19:35 <alise> Just as condescending.
18:19:40 <oklofok> the mushroom does not look gross
18:19:43 <AnMaster> puts*
18:19:48 <alise> The mushroom is SEXY!
18:19:52 <AnMaster> what?
18:20:22 <AnMaster> what the *hell* are you seeing in it. Heck you don't need ink blots....
18:20:35 <AnMaster> you just need a mushroom, and not even eating it.
18:20:57 <alise> So thinking eating a mushroom is sexy is OK? :P
18:21:19 <AnMaster> alise, I have no idea. I'm not a psychologist.
18:21:26 <AnMaster> alise, btw http://en.wikipedia.org/wiki/File:Champignons_Agaricus.jpg
18:21:35 <AnMaster> now don't say that is gross too
18:21:58 <AnMaster> or http://en.wikipedia.org/wiki/File:BoroughMarketMushrooms.jpg
18:22:19 <AnMaster> alise, I agree http://en.wikipedia.org/wiki/File:Jreishi2.jpg looks gross though
18:25:25 <alise> Deewiant: Gah, you're right; I'm stuck on language.
18:25:33 <AnMaster> alise, why not haskell?
18:25:34 <alise> There are no /good/ languages. Why not?
18:25:44 <alise> AnMaster: Haskell sucks :P Okay, it doesn't suck, but it's too slow for this.
18:25:44 <AnMaster> alise, you praised haskell before
18:25:46 <alise> And it has warts.
18:25:56 <AnMaster> alise, okay. Agda then?
18:25:57 <AnMaster> Coq?
18:26:02 <Deewiant> CoqFunge
18:26:26 <AnMaster> I bet there isn't a befunge98 implementation in agda before
18:26:35 <AnMaster> befunge93 *maaaybe* but also unlikely
18:26:40 <alise> Agda is most certainly /not/ anything more than a research tool.
18:26:41 <pikhq> oklofok: "Shi" is the number 4.
18:26:47 <pikhq> oklofok: "Shin" is death.
18:26:48 <AnMaster> alise, and?
18:26:54 <alise> It's been proved inconsistent several times -- admittedly those are usually fixed quickly --
18:27:08 <alise> and it's basically a mathematical research vehicle with no programming conveniences.
18:27:15 <AnMaster> alise, what about coq then?
18:27:20 <Deewiant> pikhq: Eh? Isn't "shin" "new"?
18:27:23 <alise> Coq could do it if not for the fact that, you know -- BEFUNGE IS TURING COMPLETE, and all Coq programs terminate.
18:27:28 <alise> Plus, again, there's very little programming facility.
18:27:42 <AnMaster> alise, but befunge is not in practise TC. It may run forever though
18:27:48 <AnMaster> so that is indeed an issue
18:27:49 <alise> See the latter.
18:28:03 <AnMaster> true
18:28:05 <alise> Coq/Agda are not appropriate tools for this task in the slightest.
18:28:10 <pikhq> Deewiant: Also true.
18:28:28 <Deewiant> pikhq: I.e. I maintain that "shi" == death
18:28:30 <pikhq> Deewiant: Though, "shin" is only "new" in compounds.
18:28:58 -!- tombom_ has joined.
18:29:06 <AnMaster> pikhq, Deewiant: what language?
18:29:15 <Deewiant> Nihongo
18:29:15 <alise> AnMaster: Japanese.
18:29:15 <pikhq> AnMaster: Japanese.
18:29:21 <AnMaster> pikhq, okay
18:29:23 <AnMaster> Deewiant, what?
18:29:27 <alise> 日本語
18:29:43 <pikhq> Deewiant: Strictly speaking, it's more that "shini" is "death" and it gets elided to "shin".
18:29:57 <AnMaster> alise, are the shelves adjustable in the first one?
18:30:02 <alise> AnMaster: Har har har.
18:30:03 <AnMaster> (sorry for that one)
18:30:09 <Deewiant> "shini" I've only seen in compounds myself :-P
18:30:31 <AnMaster> Deewiant, you speak Japanese?
18:30:37 <Deewiant> Very little
18:30:39 <AnMaster> heh
18:30:42 <Deewiant> Understand a bit more
18:30:45 <AnMaster> more than I do certainly
18:30:52 <pikhq> 君が勉強するはずと思う。
18:31:04 <AnMaster> pikhq, the degree sign is usually at the top
18:31:17 <pikhq> AnMaster: Good thing that's a period, then.
18:31:18 <Deewiant> Read kana/kanji, not at all any more (used to know the kana decently)
18:31:29 <AnMaster> (yes I'm being silly I know)
18:31:46 <pikhq> Dude, you don't remember kana? That sucketh.
18:31:53 * AnMaster threatens Deewiant using a kata instead
18:32:12 <Deewiant> No, what sucketh is that I don't know of any decent kana->romajifier :-P
18:32:40 <pikhq> Thou shalt not use romaji for Japanese.
18:32:43 <alise> http://nihongo.j-talk.com/kanji/? :-P
18:32:43 <Deewiant> But anyway, at least wiktionary agrees with me on the shi thing so I must be right
18:33:04 <Deewiant> Awesome
18:33:07 <Deewiant> It sucketh no more
18:33:10 <alise> I just googled for it.
18:33:14 <alise> "kana to romaji"
18:33:15 <AnMaster> there is only one good reply from pikhq to what Deewiant said
18:33:19 <pikhq> (汝はローマ字を使わなくては行けない。)
18:33:20 * AnMaster hopes he uses it
18:33:22 <AnMaster> meh no
18:33:28 <AnMaster> I'll do it for him then
18:33:29 <Deewiant> alise: It's probably newer than my previous Google
18:33:40 <AnMaster> <pikhq> Deewiant, shi-t
18:33:53 <pikhq> AnMaster: Hah.
18:33:56 <AnMaster> (where is oerjan btw?)
18:34:12 <Deewiant> pikhq: Yeah, well, it's easier than learning the kana :-P
18:34:14 <AnMaster> (I can't stand the pressure of doing this)
18:34:27 <pikhq> Deewiant: Which is a two day project.
18:34:44 <pikhq> Basically what I'm saying is you suck and are illiterate in Japanese. :P
18:34:45 <Deewiant> That must be repeated once a month
18:34:52 <alise> Deewiant: I knew it existed ~2007
18:34:53 <Deewiant> I agree, I am
18:34:54 <alise> or thereabouts
18:34:59 <pikhq> Or... You could just keep learning Japanese.
18:35:11 <pikhq> Like, read stuff in it.
18:35:12 <AnMaster> pikhq, but why?
18:35:22 <Deewiant> Yeah, but that's, like, work :-P
18:35:27 <AnMaster> what use do you have for it?
18:35:32 <alise> TO UNDERSTAND ANIME AS IT WAS TRULY INTENDED TO BE UNDERSTOOD, AS A VIABLE ARTISTIC WORK
18:35:36 <alise> obviously
18:35:38 <alise> :D
18:35:43 <pikhq> AnMaster: Well, if he wants to actually speak Japanese.
18:35:56 <pikhq> alise: Dude, anime is only slightly less niche in Japan than it is here. :)
18:35:56 <AnMaster> pikhq, oh? Did he?
18:35:58 <AnMaster> I guess then
18:36:28 <pikhq> If he doesn't desire that, than, well. He'll just continue not speaking it. :P
18:37:33 <alise> pikhq: From what I gather it's more than slightly less niche.
18:37:35 <Deewiant> Yes, that's pretty much my expectation. :-P
18:38:10 <pikhq> 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 <AnMaster> I thought it was a multimillion industry or something?
18:40:54 <Deewiant> Turns out there are a lot of geeks
18:41:11 <pikhq> Yes... What's popular is absurdly popular.
18:41:27 <AnMaster> pikhq, isn't pokemon in anime style or something iirc? for example
18:41:41 <pikhq> Pokemon, for instance, is absurdly popular amongst children.
18:41:42 <AnMaster> or at least some pokemon movies or whatever
18:41:59 <AnMaster> pikhq, yes and isn't there some zdragonball or something?
18:42:02 <pikhq> Most of the popular anime are for children, really...
18:42:25 <pikhq> Dragonball Z was based on a popular manga; the show was not as well-remembered.
18:42:28 <alise> 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 <AnMaster> pikhq, can't tell the difference. Since I'm *not* such a geek I guess
18:42:56 <pikhq> AnMaster: Manga are comic books.
18:43:02 <AnMaster> pikhq, ah okay
18:43:19 <pikhq> Which *aren't* all that niche.
18:43:36 <AnMaster> huh
18:43:42 <fizzie> zdragonball, it's compressed.
18:43:50 <Deewiant> dragonball.Z
18:43:51 <alise> Well, right, maybe I was misremembering what was niche or not.
18:43:59 <alise> I do distinctly remember that manga is relatively mainstream.
18:44:01 <pikhq> fizzie: It deserves it.
18:44:08 <pikhq> It is.
18:44:13 <alise> 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 <AnMaster> 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 <AnMaster> some of the other ones were quite easy
18:44:27 <fizzie> Also tentacles are involved, I know that much!
18:44:35 <pikhq> alise: Not all anime is for children. Oh, lord no.
18:44:48 <alise> pikhq: You just say that because you have no life.
18:44:55 <alise> (P.S. I may be trolling you.)
18:45:08 <Deewiant> 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 <pikhq> Deewiant: Dead Leaves.
18:45:32 <alise> Deewiant: You could have read the description.
18:45:37 <Deewiant> Okay, then I didn't
18:45:37 <pikhq> That was a positively *fucked up* movie.
18:45:39 <AnMaster> don't call it mine. It is on wikipedia simply.
18:46:00 <Deewiant> 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 <alise> <AnMaster> It is the devil! No! I shall not be associated with it! Aaaaah!
18:46:34 <AnMaster> alise, nah, I just don't want it to tarnish my trademark ;P
18:46:35 <Deewiant> That also reminded me that I really should re-watch Lain some day
18:46:59 <AnMaster> Remember: AnMaster®
18:47:08 <Deewiant> AnMaste®
18:47:14 <alise> AnMaster. Does what it says on the tin.
18:47:19 <AnMaster> :D
18:47:24 <AnMaster> Your search - ® - did not match any documents.
18:47:24 <AnMaster> wth
18:47:27 <AnMaster> google fails
18:47:33 <AnMaster> surely wikipedia will have an article on it
18:47:50 <fizzie> 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 <Deewiant> No, not very.
18:49:10 <Deewiant> alise: That pastie: see, now you're inventing languages instead of implementing funge
18:49:15 <alise> Deewiant: I KNOW
18:49:26 <alise> Deewiant: SAVE ME!!!
18:49:34 <Deewiant> alise: http://gcc.gnu.org/
18:49:53 <alise> I'd rather hang myself with a crisp made out of rotten marshmallows.
18:49:59 <alise> Which would, incidentally, be a rather interesting task.
18:50:00 <Deewiant> http://clang.llvm.org/ if you're the more adventurous type
18:50:24 <alise> Join us now and shaare the software
18:50:30 <alise> You'll be free, hackers, you'll be, freeeeeeeee
18:50:31 <Deewiant> alise: Whatever happened to "leaning toward C"? :-P
18:50:36 <alise> Deewiant: I realised C sucked.
18:50:47 <Deewiant> Did you forget that everything sucks?
18:50:59 <alise> yeah but some things suck less
18:51:15 <Deewiant> So just put everything on the suck-scale and take the max
18:51:25 <Deewiant> Or min, whichever
18:52:10 <Deewiant> 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 <Deewiant> AFK for a bit ->
18:52:41 -!- alise_ has joined.
18:52:54 <alise_> <Deewiant> So just put everything on the suck-scale and take the max
18:52:54 <alise_> <Deewiant> Or min, whichever
18:52:54 <alise_> <alise> I can't consider every language.
18:52:54 <alise_> <alise> Ping.
18:53:39 <fizzie> That didn't go so very well, given the just-before-your-join <Deewiant> AFK for a bit ->
18:53:44 <fizzie> Your timing, it is not optimal.
18:53:52 * Sgeo_ has a Data Structures assignment
18:53:59 <alise_> :-)
18:54:05 <Sgeo_> Implement a stack, and implement a queue
18:54:14 <alise_> Sgeo_: How difficult.
18:54:18 <Sgeo_> The stack is so.. easy in Haskell, the queue only slightly less so
18:54:26 <alise_> You don't say.
18:54:34 <alise_> It's not technically the mutable structures they want though
18:54:36 <Sgeo_> alise_, the assignment is in C++ though
18:55:23 <alise_> fizzie: You provide me with encouraging language suggestions.
18:55:31 <fizzie> alise: Forth.
18:55:55 <alise_> fizzie: I love Forth, but... no.
18:55:59 -!- alise has quit (Ping timeout: 258 seconds).
18:56:10 <fizzie> Glass?
18:56:18 <alise_> I love Glass, but... no.
18:56:25 <Sgeo_> HQ9+
18:56:37 <Sgeo_> </silly>
18:56:40 <fizzie> There was that one thing, the name of which I always forget.
18:56:46 <alise_> " " HQ9+, "... ".
18:56:55 <alise_> fizzie: Describe it?
18:57:23 <oklofok> "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 <oklofok> then the sup is not a language!
18:57:41 <oklofok> *might not be
18:57:46 <fizzie> 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 <alise_> oklofok: clearly I'd just flesh out whatever language it returned
18:58:04 <alise_> by picking from less-optimally-nonsucking languages
18:58:15 <alise_> fizzie: Shakespeare?
18:58:21 <alise_> Ork?
18:58:29 <Sgeo_> What's Ork?
18:58:59 <fizzie> It was probably Ork I was thinking about.
18:59:13 <fizzie> I was writing something in Ork, and kept naming things after mathematicians.
18:59:27 <fizzie> Or physicists.
18:59:29 <fizzie> Or something.
19:00:28 <fizzie> 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 <alise_> :-D
19:00:47 <alise_> Sounds like my predicament.
19:02:16 <fizzie> 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 <fizzie> When a checksum computer is to initialize a number:
19:02:23 <fizzie> I have a logician called Frege.
19:02:23 <fizzie> Frege is to lsb result.
19:02:23 <fizzie> There is a mathematician called Laplace.
19:02:23 <fizzie> Laplace's first operand is result.
19:02:25 <fizzie> I like the lang.
19:02:32 <alise_> Frege, Tarski, O'Connor.
19:02:47 <alise_> It probably says something that I put Russell O'Connor on that level.
19:03:49 <alise_> Oh, and Goedel of course.
19:04:05 <alise_> Peirce.
19:04:44 <pikhq> Sgeo_: Those are very easy data structures.
19:05:08 <Deewiant> oklofok: ... it probably is a complete lattice.
19:05:27 <alise_> Deewiant: I find that really funny and I don't know why
19:05:29 <Deewiant> oklofok: Given that it's finite and all.
19:05:30 <alise_> (what you just said)
19:05:34 <alise_> XD
19:05:39 <oklofok> :)
19:05:39 <fizzie> Deewiant: Just so you know, the AI competition deadline is today; I guess you weren't going to do it?
19:05:42 <oklofok> but...
19:06:03 <oklofok> for instance C could be considered the union of C_k where k is the size of bytes
19:06:08 <oklofok> and anyway
19:06:08 <Deewiant> fizzie: I was going to a long while ago and then I missed the signup-deadline and decided not to
19:06:19 <oklofok> there must be parametrized language families
19:06:21 <Deewiant> Incidentally, the lecture slides for that course are poor at best
19:06:39 <oklofok> so what if say we had k-dimensional funges as separate languages, and k+1 was better than k
19:06:49 <oklofok> then clearly at least that sublattice wouldn't be complete
19:07:12 <Deewiant> oklofok: You assume a nonsensity
19:07:35 <oklofok> what nonsensity
19:07:53 <fizzie> 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 <Deewiant> I assume that parametrizable languages can be thunk of as one language
19:08:14 <Sgeo_> pikhq, I know
19:08:21 <Sgeo_> I just don't feel like writing C++
19:08:29 <Deewiant> fizzie: I don't know about the lectures themselves either
19:08:39 <oklofok> Deewiant: no, because you will have to choose the parameters.
19:11:06 <fizzie> Deewiant: 26 submissions so far out of 52 groups. But there's still some three hours to the deadline.
19:11:13 <AnMaster> <Deewiant> http://clang.llvm.org/ if you're the more adventurous type <-- really? It works quite well in my experience
19:11:26 <AnMaster> [*] for certain values of work
19:11:49 <AnMaster> <alise> yeah but some things suck less <--- ah, go!
19:11:50 <Deewiant> Gah, I'm being flooded
19:11:55 <AnMaster> Deewiant, with what?
19:11:57 <AnMaster> Deewiant, water?
19:11:58 <AnMaster> wine?
19:12:01 <Deewiant> GAH
19:12:01 <AnMaster> IP packet?
19:12:04 <fizzie> Deewiant: More stuff more stuff! More stuff!
19:12:10 <AnMaster> IRC text lines?
19:12:15 <fizzie> I assume that last one.
19:12:23 -!- Gracenotes has joined.
19:12:23 <Deewiant> oklofok: You can't be the one choosing them since we're looking at implemented ones
19:12:45 <Deewiant> fizzie: Aye, there'll probably be another 15 at least soon enough
19:12:50 <oklofok> so if one program implemented both haskell and C, would you say haskell = C?
19:12:55 <Deewiant> AnMaster: "for certain values" being the adventurosity
19:13:08 <fizzie> 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 <oklofok> or is it that two languages are different iff they can be separated by implementation
19:13:19 <oklofok> that is, there's a language that only implements one
19:13:34 <Deewiant> The latter
19:13:41 <oklofok> ah
19:13:42 <Deewiant> (Obviously ;-P)
19:13:44 <oklofok> well i guess that makes sense
19:14:09 <Deewiant> fizzie: Yes.
19:14:32 <oklofok> so okay
19:15:04 <oklofok> the space of all programs now has a topology with as basis the open sets {L | I implements L}
19:15:05 <AnMaster> <Deewiant> AnMaster: "for certain values" being the adventurosity <-- yes, but |values| has increased with time
19:15:14 <AnMaster> anyway
19:15:18 <AnMaster> alise_: why not Go?
19:15:37 <Deewiant> AnMaster: But it's still less than GCC's
19:15:42 <alise_> AnMaster: "dunno"
19:15:45 <alise_> don't feel like using go
19:16:21 <Deewiant> fizzie: I also have something with a deadline for 23:59 that I've yet to finish
19:17:12 <AnMaster> alise_, that rhymes
19:17:13 <AnMaster> nice
19:17:32 <fizzie> Deewiant: That's no problem; the effective AI competition deadline is actually 00:05 tomorrow.
19:18:03 <Deewiant> alise_: BitC?
19:18:34 <alise_> 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 <AnMaster> Deewiant, bah, you have more time left still than I had earlier today
19:18:48 <AnMaster> and I sent it in with just half an hour to go
19:18:58 <Deewiant> Difference is that I'm being flooded
19:19:09 <AnMaster> Deewiant, so ignore irc?
19:19:09 <fizzie> Deewiant: Yet you keep reading.
19:19:10 <AnMaster> I did
19:19:17 <Sgeo_> BitC?
19:19:23 <AnMaster> I just closed irc client, having bouncer on logging
19:19:32 <AnMaster> alise_, what? the BitC author?
19:19:34 <Deewiant> I'd rather procrastinate
19:19:37 <alise_> AnMaster: Yes.
19:19:40 <AnMaster> and evil empire = Microsoft?
19:19:41 <alise_> Same guy as the Coyotos guy.
19:19:42 <alise_> Yes.
19:19:47 <AnMaster> huh
19:19:53 <AnMaster> alise_, that explains why it became inactive
19:19:58 <alise_> Yes; he's back now though.
19:20:17 <AnMaster> alise_, but won't MS sue him if he ever writes anything open source basically?
19:21:07 <alise_> No?
19:21:14 <alise_> He doesn't work for Microsoft any more.
19:21:22 <AnMaster> well, he saw their code...
19:21:28 <AnMaster> some of it at least
19:24:05 <AnMaster> // Gregor can't spell ...
19:24:05 <AnMaster> #define ORK_instanciate ORK_instantiate
19:24:06 <AnMaster> nice one
19:24:10 <AnMaster> from ORK source code
19:24:16 * AnMaster looks at Gregor
19:24:31 * Sgeo_ googles
19:24:38 <AnMaster> Sgeo_, try ORK esolang
19:24:40 <Sgeo_> BitC isn't an esolang?
19:24:42 <AnMaster> it is on codu anyway
19:24:48 <AnMaster> Sgeo_, .... of course not
19:24:49 <pikhq> AnMaster: Believe it or not, Microsoft's legal department isn't *that* crazy.
19:25:01 <Sgeo_> AnMaster, I didn't know what it was until I googled it!
19:25:05 <AnMaster> pikhq, I'm leaning towards "not"
19:25:05 <AnMaster> ;P
19:25:19 <Deewiant> http://james-iry.blogspot.com/2008/07/java-is-too-academic.html
19:25:29 <AnMaster> Deewiant, what? *clicks link*
19:25:35 <pikhq> AnMaster: He couldn't work on WINE or ReactOS, but that's mostly a CYA manuever.
19:25:56 <AnMaster> Deewiant, is it sarcastic?
19:26:01 <AnMaster> I hope it is
19:26:15 <Deewiant> I'm not your personal sarcasm-detector
19:26:18 <AnMaster> pikhq, CYA?
19:26:30 <AnMaster> Deewiant, then who is?
19:26:38 <Deewiant> I'm not your secretary either
19:26:46 <AnMaster> Deewiant, then what are you?
19:27:21 <Deewiant> A member of the set people \ { AnMaster's sarcasm-detector, AnMaster's secretary }
19:27:27 <pikhq> AnMaster: Cover Your Ass
19:27:33 -!- coppro has joined.
19:27:37 <AnMaster> Deewiant, heh
19:27:47 <AnMaster> pikhq, aha
19:28:34 <alise_> Of course it's sarcasm you nitwit.
19:28:36 <alise_> He's a functional programmer.
19:28:54 * alise_ wonders whether writing p->q as pq is nice or just horrible.
19:29:05 <alise_> p /\ q = (pqr)r
19:29:09 <alise_> p \/ q = (pr)(qr)r
19:29:24 <Deewiant> alise_: How's the funge
19:29:38 <alise_> :))))
19:29:40 <alise_> pick a lang
19:29:46 <fizzie> Pick a card, any card.
19:30:10 <Deewiant> alise_: We've got Python and Perl but not Ruby or Tcl
19:30:18 <oklofok> Deewiant: how's the deadlines
19:30:30 <fizzie> oklofok: How do you like them apples?
19:30:30 <Deewiant> I'm working on it in the background
19:30:38 <alise_> Deewiant: Ruby yeck, Tcl yeck
19:31:08 <Deewiant> alise_: You asked me to pick a lang, not you
19:31:15 <Deewiant> Why ask if you'll reject
19:31:20 <Sgeo_> What was wrong with Haskell?
19:31:23 <Deewiant> Speed
19:31:36 <Sgeo_> Abuse unboxed types!
19:31:40 <fizzie> Speed, the need for.
19:31:44 <AnMaster> <alise_> 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 <Deewiant> Sgeo_: Let me guess: "yeck"
19:31:58 <oklofok> fizzie: are you being a bot?
19:32:12 <fizzie> oklofok: I am channeling the spirit of fungot, yerrrs.
19:32:13 <Deewiant> A bot, the being of.
19:32:13 <fungot> fizzie: fnord) f(x, y) type requires that ruby extension allowing you to see which way it is.
19:32:23 <Deewiant> alise_: See, fungot recommends ruby too
19:32:24 <fungot> Deewiant: they look exactly identical here.)
19:32:39 <AnMaster> alise_, okay what about scheme?
19:32:39 <Deewiant> Well, or then it just can't tell the difference between ruby and other languages
19:32:39 <Sgeo_> Isn't Ruby also considered slow?
19:32:46 <alise_> AnMaster: Not fast 'nuff.
19:32:48 <AnMaster> alise_, prolog?
19:32:49 <Deewiant> Sgeo_: Shh ;-)
19:32:59 <AnMaster> alise_, oh you want fast? I know the perfect language then
19:33:01 <AnMaster> alise_, VHDL
19:33:10 <Deewiant> alise_: I think ML was your best idea yet
19:33:10 <AnMaster> or Verilog
19:33:22 <Sgeo_> VHDL == hardware stuff?
19:33:28 <Sgeo_> Erm, simulation of hardware stuff?
19:33:38 <alise_> Deewiant: Perhaps.
19:33:38 <AnMaster> Sgeo_, what exactly is your question?
19:33:43 <alise_> Deewiant: I don't really... know ML, though.
19:33:50 <AnMaster> alise_, anyway, why not VHDL
19:33:56 <Sgeo_> AnMaster, trying to figure out if my vague recollection is correct
19:33:57 <Deewiant> alise_: So learn?
19:34:08 <AnMaster> Sgeo_, it is a language for programming FPGAs and such in
19:34:10 <Sgeo_> *gasp* Something alise_ doesn't know!
19:34:18 <AnMaster> of course you can simulate it too
19:34:19 <alise_> Deewiant: Yeah, but...
19:34:26 <alise_> Deewiant: I want something /fast/ fast.
19:34:27 <Deewiant> 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 <AnMaster> alise_, asm!
19:34:42 <Deewiant> alise_: Haven't you heard of writing fast-fast things in C/asm?
19:34:44 <alise_> If there was a compiler that basically did whole-program specialisation... now that would be cool.
19:34:46 <AnMaster> Deewiant, what?
19:34:48 <Sgeo_> I imagine simulating it is slower than just writing C
19:34:49 <alise_> Deewiant: So don't.
19:34:56 <alise_> Yeah but not fast fast fast.
19:35:09 <Sgeo_> Of course, with an FPGA [programmable hardware, I guess?], it would probably be faster than C
19:35:13 <AnMaster> Sgeo_, perhaps. Useful for testing it. Running under a debugger is slower than not doing so as well often
19:35:17 <Deewiant> alise_: I meant, take the bits that need to be fast-fast instead of fast and do them in C/asm
19:35:24 <Deewiant> You know, polyglots.
19:35:25 <fizzie> Stalin is supposed to be faster than C, or at least that's what they claim. :p
19:35:28 <Sgeo_> Does alise_ have an FPGA?
19:35:35 <alise_> Deewiant: Oh, I'm not that obsessed enough.
19:35:49 <alise_> 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 <AnMaster> Deewiant, Hm? Is C with inline asm really a polygot?
19:36:15 <AnMaster> I thought polygot required it to work completely free standing in each languae
19:36:19 <AnMaster> language*
19:36:29 <AnMaster> like: perl foo works and so does python foo
19:36:30 <Deewiant> polyglot: containing, or made up of, several languages.
19:36:31 <AnMaster> or whatever
19:36:39 <Deewiant> It's a word.
19:36:48 <AnMaster> Deewiant, what about a polygot in the sense I described?
19:36:50 <AnMaster> what is that called
19:36:54 <fizzie> 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 <Deewiant> A polyglot.
19:37:07 <AnMaster> Deewiant, well I don't want to include C with inline ASM
19:37:20 <Sgeo_> http://svichet.files.wordpress.com/2009/05/pinocchio-paradox.jpg
19:37:23 <Sgeo_> oops
19:37:30 <Sgeo_> 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 <AnMaster> something like gcc foo.c -o foo working the same as as foo.c <whatever command line options it need>
19:37:33 <AnMaster> would fit
19:37:43 <AnMaster> but not C with inline ASM
19:38:05 <AnMaster> <Sgeo_> Does alise_ have an FPGA? <-- he could in theory get one?
19:38:11 <alise_> *she
19:38:17 <alise_> Remember your nick-pronouns.
19:38:45 <Sgeo_> Can things like video cards be made with VHDL?
19:38:47 <AnMaster> <Sgeo_> 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 <oklofok> yeah the one nick that tells you gender and you ignore it
19:39:23 <alise_> actually, gender(nick-alise) = augment(male, pronouns = pronouns(female)), whereas gender(person-behind(nick-alise)) = male
19:39:26 <alise_> it's quite complicated
19:39:52 <AnMaster> 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 <fizzie> alise_: Additionally it has been established that you is girly.
19:40:00 <AnMaster> the rendering stuff could
19:40:03 <AnMaster> in fact it has been done
19:40:09 <AnMaster> hardware ray tracing and such
19:40:31 <Sgeo_> When will hardware ray tracing be commercially and cheaply available?
19:40:42 <alise_> 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 <AnMaster> <oklofok> yeah the one nick that tells you gender and you ignore it <-- yes because to me he is mentally still ehird
19:41:27 <oklofok> so... if someone asks you what alise's nick is
19:41:30 <oklofok> you'd say ehird?
19:41:44 <AnMaster> oklofok, I would say his current nick is alise_
19:41:55 <alise_> AnMaster: well, don't say "he"; it's rude.
19:42:00 <alise_> -- says the rudest person in here.
19:42:19 -!- Sgeo_ has changed nick to Sgeo.
19:42:25 <AnMaster> hm separate, non-linked nickserv accounts
19:42:27 <AnMaster> interesting
19:42:40 <AnMaster> same goes for tusho
19:42:50 <AnMaster> alise_, did you know about /ns group?
19:43:09 <Deewiant> Unknown command: ns
19:43:12 <Deewiant> ;-)
19:43:14 <AnMaster> Deewiant, /quote then
19:43:18 <AnMaster> your irc client fails
19:43:21 <AnMaster> not my fault
19:43:30 <Deewiant> Is that really a failure?
19:43:30 <AnMaster> (it *is* a server side alias)
19:43:44 <AnMaster> Deewiant, well, no. It is a feature, Like every other bug.
19:43:58 <Deewiant> Now you're being snarky.
19:43:59 <AnMaster> of course in this case it is more likely to be a misdirected feature in fact
19:44:13 <Sgeo> /quote
19:44:25 <AnMaster> Deewiant, "snarky"? *googles*
19:44:34 <Sgeo> Um, why didn't this work: /quote privmsg #esoteric /quote privmsg #esoteric /quote privmsg #esoteric
19:44:41 <AnMaster> 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 <fizzie> Sgeo: You're giving too many parameters to "privmsg" there.
19:44:55 <Deewiant> /quote privmsg #esoteric /quote privmsg #esoteric
19:44:59 <AnMaster> (urbandict was the top hit)
19:45:01 <alise_> AnMaster: if I considered the identities to be one in the same, I would group them.
19:45:14 <fizzie> You want something like /quote privmsg #esoteric :/quote ... there.
19:45:15 <AnMaster> Sgeo, add the : where it should be
19:45:16 <alise_> Sgeo: you forgot the :
19:45:21 <AnMaster> alise_, heh
19:45:26 <AnMaster> alise_, yeah you are complex
19:45:26 <alise_> AnMaster: Why heh?
19:45:33 <AnMaster> alise_, see above ^
19:45:36 <Sgeo> /quote privmsg #esoteric :/quote privmsg #esoteric
19:45:43 <alise_> I don't get what you mean.
19:45:54 <Sgeo> /quote privmsg #esoteric :/quote privmsg #esoteric
19:45:56 <Sgeo> /quote privmsg #esoteric :/quote privmsg #esoteric :/quote privmsg #esoteric
19:45:57 <AnMaster> alise_, "above: opposite of below"?
19:46:00 <Sgeo> Didn't work either
19:46:03 <alise_> AnMaster: What?
19:46:05 <AnMaster> Sgeo, it did
19:46:18 <AnMaster> Sgeo, just your client doesn't echo what you send that way
19:46:23 <AnMaster> since irc doesn't echo
19:46:30 <AnMaster> it is up to the client to do so
19:46:38 <AnMaster> <AnMaster> alise_, see above ^
19:46:40 <AnMaster> <alise_> I don't get what you mean.
19:46:43 <AnMaster> <AnMaster> alise_, "above: opposite of below"?
19:46:56 <AnMaster> alise_, what is it you don't get there ;P
19:47:53 <alise_> You're being deliberately annoying & obtuse./
19:47:58 <alise_> s/\/$//
19:48:11 <AnMaster> alise_, yes
19:52:39 <alise_> Deewiant: Anyway, do you mean SML by ML?
19:52:51 <Deewiant> Any-ML
19:52:55 <Deewiant> (NEML)
19:53:28 <alise_> I should MAKE NEML! :P
19:54:04 <alise_> Pronounced either Enny Emmel or Enn Ee Emm Ell
19:54:11 <alise_> The best thing is that they both sound the same!
19:54:48 <Deewiant> I'd pronounce it nemmul anyway
19:59:19 <Quadrescence> alise_: this is ur fave song right http://www.youtube.com/watch?v=WeSj7rdKrKE
20:00:12 <alise_> what
20:03:43 <alise_> 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 <Deewiant> alise_: Write your Funge-Space in C and the rest in SML?
20:04:24 <alise_> Deewiant: Functional languages typically interact badly with C; and I'd rather not touch C, like, at all.
20:04:39 <Deewiant> Almost everything interacts well enough with C
20:05:22 <alise_> You're wrong there.
20:05:39 <Deewiant> 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 <alise_> Maybe I should just write it in Oberon.
20:05:43 -!- alise_ has left (?).
20:05:45 -!- alise_ has joined.
20:05:48 <alise_> Deewiant: But, but Fungicide.
20:06:08 <Deewiant> Fungicide won't do you any good if you can't get through Mycology
20:06:14 <alise_> True.
20:06:24 <alise_> Bleh.
20:06:37 <Deewiant> 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 <alise_> Keyword semi...
20:06:58 <alise_> Still... SML /does/ have the perfect module system...
20:07:02 <alise_> Put Fungespace in that...
20:08:11 <alise_> lol, from an SML benchmark:
20:08:12 <alise_> fun C f x y = f y x
20:08:21 <alise_> we're so fast we put combinators in our benchmarks and don't even fucking care!
20:08:28 <alise_> (it was just an implementation of GoL)
20:08:44 <Deewiant> To be fair, if the compiler can't optimize away flip it's rather poor :-P
20:09:02 <alise_> True. And MLton is a whole-program optimising compiler that produces slippin' good code.
20:09:37 <alise_> Someone oughta write Befunge in Prolog. :-)
20:09:54 <alise_> There are some Prolog fanatics that won't program in anything else.
20:12:53 <alise_> Eh.
20:13:09 <alise_> 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 <Deewiant> It shouldn't be particularly difficult, no.
20:14:04 <alise_> So I can always write an ML one then write one in another language.
20:14:14 <Deewiant> Quite.
20:14:58 <Sgeo> Mycology?
20:16:06 <alise_> Sgeo: Deewiant's comprehensive Befunge wondersuite of tests & trinkets.
20:16:37 <fizzie> 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 <alise_> 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 <Deewiant> fizzie: That's odd indeed :-P
20:21:16 <alise_> byebye, be back soon
20:21:51 -!- alise_ has quit (Remote host closed the connection).
20:25:25 <AnMaster> <alise_> You're wrong there. <-- indeed. For example Brainfuck doesn't
20:25:36 <AnMaster> and what about the old LISP machines?
20:25:59 <Deewiant> A few examples against an "[a]lmost everything" does not me a wrong make
20:26:20 <AnMaster> Deewiant, true. Was that mathematical "almost all"?
20:26:52 <fizzie> 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 <AnMaster> Deewiant, also I don't think my lawn mover interacts well with C
20:27:32 <AnMaster> (you forgot to restrict yourself to programming languages)
20:27:36 <AnMaster> fizzie, what about VHDL?
20:27:50 <fizzie> AnMaster: What does it interact well with, then?
20:28:06 <AnMaster> fizzie, memory circuits perhaps?
20:28:11 <fizzie> That's not a language.
20:28:14 <AnMaster> fizzie, true
20:28:24 <AnMaster> fizzie, what about verilog? I have no idea if you can mix them
20:28:50 <AnMaster> but presumably you can use two FPGAs one programmed in VHDL and one in Verilog and make them communicate
20:29:42 <fizzie> 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 <AnMaster> true
20:29:59 <AnMaster> fizzie, it could be RPC though
20:30:04 <AnMaster> which is kind of similar
20:30:24 <AnMaster> fizzie, for FPGAs that would be like a co-processor I guess
20:31:37 <fizzie> 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 <AnMaster> heh
20:33:37 <fizzie> 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 <AnMaster> fizzie, does JNI allow you to call unmodified C++ code?
20:35:22 <fizzie> 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 <fizzie> Though I wouldn't be surprised if someone's written automation for that alread.y
20:36:21 <AnMaster> fizzie, I mean something like calling something in libc or libstdc++ from java with no in-between C/C++ wrapper
20:37:12 <fizzie> Well, no, it doesn't do that.
20:37:12 <AnMaster> 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 <AnMaster> I don't know which is most common
20:38:04 <AnMaster> I think C# and such does the latter
20:38:21 <AnMaster> at least I remember using a extremely low level opengl wrapper in C# once
20:38:33 <Sgeo> Haskell uses the latter, right?
20:38:48 <AnMaster> not sure about python, does it provide the latter as well as the former?
20:38:52 <AnMaster> I know it provides the former at least
20:39:01 <Sgeo> Actually, Python does provide the latter
20:39:03 <AnMaster> erlang provides mostly the former.
20:39:04 <Sgeo> See the ctypes module
20:39:20 <AnMaster> 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 <AnMaster> Sgeo, you know that is no VR right?
20:40:15 <AnMaster> ;P
20:40:42 <Sgeo> lol
20:41:13 <fizzie> 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 <AnMaster> heh
20:42:41 <AnMaster> 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 <fizzie> It's a bit kludgy, like everything else there.
20:42:48 <fizzie> "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 <AnMaster> (for example: handling structs but perhaps not intricate details of padding related to bitfields)
20:43:17 <AnMaster> (or not supporting varargs)
20:43:38 <AnMaster> (at least on x86_64 iirc varargs can be somewhat gnarly)
20:43:59 <AnMaster> (even llvm doesn't support it without manual help from the code gen, as is done by C compilers)
20:45:33 <Sgeo> WHY DOES STEAM KEEP CRASHING?
20:46:27 <fizzie> Maybe you need a some sort of safety valve there?
20:46:57 <Sgeo> lol
20:47:41 <Sgeo> The Visual Studio debugger is complaining about uncaught exception, but Steam's still working
20:47:46 <Sgeo> If I respond, Steam will die
20:47:47 <fizzie> 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 <Sgeo> I wonder if it has something to do with IE8
20:50:17 <AnMaster> <fizzie> 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 <fizzie> 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 <fizzie> 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 <fizzie> 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 <AnMaster> fizzie, heh
20:53:35 <AnMaster> fizzie, that's crazy
20:53:54 <fizzie> 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 <fizzie> And one of those 7 is just "well..."
20:54:15 <AnMaster> fizzie, haha
20:54:35 <fizzie> 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 <fizzie> And in fact they seem to be spectacularly un-descriptive for the most part.
20:55:10 <fizzie> "Canada is a bot that fights fair, no dirty tricks."
20:55:24 <fizzie> "King Hippo": "I have my weakness. But I won't tell you! Ha Ha Ha!"
20:56:07 <fizzie> And "Beware of the wombat!"
20:56:17 <AnMaster> fizzie, is the last one a reference?
20:56:37 <fizzie> Well, it's a reference to the bot name, which is "Wombat".
20:56:48 <AnMaster> ah
20:56:52 <fizzie> Together they might be referring something else, not sure.
20:57:07 <AnMaster> fizzie, "beware of the dog" I guess
20:57:24 <fizzie> * L6 WOMBAT (Weapon Of Magnesium, Battalion, Anti-Tank), a British recoilless rifle
20:57:24 <fizzie> * Women's Mountain Bike and Tea Society (WOMBATS), a cycling group founded by Jacquie Phelan
20:57:24 <fizzie> * Worldwide Observatory Of Malicious Behaviors and Attack Threats, an FP7 research project on cyberattack data gathering and threat analysis [1]
20:57:24 <fizzie> * 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 <fizzie> Wikipedia's acronym expansions for WOMBAT.
20:57:44 <fizzie> It could be that last one. :p
20:58:05 <AnMaster> 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 <Deewiant> Fix what?
20:58:57 <AnMaster> Deewiant, that they have no newlines in there for example?
20:59:18 <AnMaster> "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 <AnMaster> 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 <AnMaster> and the * ...
20:59:26 <AnMaster> under most entries
20:59:35 <Deewiant> Oh, you just meant that page
20:59:38 <AnMaster> Deewiant, well yes
20:59:46 <Deewiant> I thought you were referring to it for the release date
20:59:59 <AnMaster> Deewiant, nah they are on the main page
21:00:23 <Sgeo> MST3k time
21:00:31 <AnMaster> MST3k?
21:00:46 <Deewiant> The release date is somewhat in fluctuation anyway
21:00:50 <Deewiant> Since there are unfixed regressions
21:00:51 <AnMaster> 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 <AnMaster> (desktop cd/dvd drive whines slightly when playing a cd, even at the low speeds of audio CDs)
21:01:36 <AnMaster> (especially annoying for audio cds)
21:01:43 <AnMaster> Deewiant, hrrm
21:03:18 <AnMaster> Deewiant, link to those?
21:03:20 <fizzie> 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 <AnMaster> fizzie, except that would be more than all my harddrives together I calculated half a year ago
21:03:59 <AnMaster> the average compression radio of flac seems to be ~50% for classical music
21:04:23 <Sgeo> Mystery Science Theater 3000
21:04:41 <Deewiant> AnMaster: See llvm-dev mailing list...
21:04:51 <AnMaster> Deewiant, link to that ;P
21:04:55 <Deewiant> I don't have a link
21:05:06 <Deewiant> I don't use the archives
21:05:15 <fizzie> 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 <Deewiant> If you just want the bugs, Google llvm 2.7 blocker or something like that
21:05:30 <AnMaster> ah you subscribe to it
21:05:30 <AnMaster> heh
21:05:35 <Deewiant> No, I use gmane
21:05:43 <AnMaster> well that have a link too
21:05:45 <Deewiant> Over NNTP
21:05:57 <AnMaster> Deewiant, you know that is almost like gopher
21:06:00 <AnMaster> in rarity
21:06:04 <Deewiant> NNTP?
21:06:05 <fizzie> (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 <Deewiant> Not really
21:06:10 <AnMaster> I didn't even know they *had* nntp
21:06:15 <Deewiant> NNTP is a lot more common than Gopher
21:06:16 <AnMaster> Deewiant, well, for anything but usenet
21:06:21 <Deewiant> Maybe
21:06:22 <AnMaster> and usenet is still somewhat more common yes
21:06:56 <Deewiant> Our school's student association has their own newsserver which is commonly used for at least job offers and the like
21:07:11 <Deewiant> It does have a web frontend these days, though.
21:07:30 <AnMaster> http://llvm.org/bugs/show_bug.cgi?id=6586 <-- just one?
21:07:37 <AnMaster> that is still open
21:08:07 <Deewiant> Yeah, the situation improved in the past few days
21:08:26 <Sgeo> ROFL. One of the rifts on "Invasion of the Neptune Men" had something like "Featuring Santa"
21:08:31 <fizzie> 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 <Sgeo> Guess where Santa lives according to Futurama..
21:08:43 <fizzie> (Which, of course, doesn't let the students post anything...)
21:09:06 <Deewiant> Many courses still refer to their NG but nothing ever gets posted
21:09:12 <AnMaster> fizzie, web-bortal?
21:09:16 <Deewiant> wep-bortal
21:09:31 <AnMaster> Deewiant, not WPA these days?
21:09:33 <fizzie> AnMaster: "The study and teaching portal Noppa".
21:09:42 <AnMaster> fizzie, well, I meant the spelling
21:09:48 <fizzie> Oh.
21:09:50 <Deewiant> "The study and teaching bortal Noppa"
21:09:58 <fizzie> Well, it is "a handy tool for both students and lecturers", so who am I to argue.
21:09:59 <AnMaster> Deewiant, yes
21:10:10 <AnMaster> a handy bool yes
21:10:15 <AnMaster> either true or false
21:10:29 <fizzie> Admittedly the RSS feeds of newsposts is a good feature, as are the email notifications; but it's all so unidirectional.
21:10:31 <AnMaster> law of excluded middle is always in effect there
21:10:46 <AnMaster> fizzie, newsbosts you mean
21:10:55 <AnMaster> and botifications
21:11:12 <fizzie> Yes, why not.
21:11:24 <AnMaster> :D
21:11:41 <AnMaster> err I mean :b of course
21:12:11 <fizzie> 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 <fizzie> 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 <AnMaster> fizzie, hah
21:13:51 <AnMaster> fizzie, so it didn't deliver any message?
21:13:57 <AnMaster> or just to some?
21:14:09 <AnMaster> (I mean, did it list every one in that list?)
21:14:17 <fizzie> No, just the one broken one.
21:14:26 <fizzie> The other students presumably get their messages just fine.
21:14:59 <Deewiant> Or maybe not!
21:15:01 <AnMaster> did you try contacting IT support?
21:16:18 <fizzie> 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 <Deewiant> Maybe he was the only one
21:16:40 <Deewiant> You don't know!
21:16:58 <fizzie> 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 <fizzie> Or is that "abbress"?
21:17:15 <AnMaster> fizzie, baddres
21:17:18 <AnMaster> err
21:17:20 <AnMaster> baddress
21:17:21 <AnMaster> even
21:17:21 <Deewiant> babbles
21:17:23 <AnMaster> bad dress
21:18:06 <AnMaster> which reminds me, I should transfer those lecture notes pictures from my phone over bluetooth sometime soon
21:18:07 <fizzie> 32 returns from 52 groups now that it's ~45 minutes until deadline.
21:18:17 <fizzie> Deewiant: Did you finish whatever it was you were doing?
21:18:27 <Deewiant> Yes, a bit less than an hour ago
21:18:33 * AnMaster waits for anyone to ask how those are related
21:18:38 <fizzie> Good, good; just thought I'd remind.
21:18:43 <Deewiant> :-)
21:18:51 <fizzie> AnMaster: A lecturer in a bad dress?
21:18:55 <AnMaster> fizzie, no
21:18:56 <Deewiant> Incidentally, this was the third of three such exercises
21:19:12 <Deewiant> 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 <Deewiant> Fortunately the course personnel were nice and didn't deduct any points
21:19:53 <Deewiant> Anyway, it is thus clearly a better idea to do stuff immediately before the deadline
21:19:55 <fizzie> I did one coursework thing a month before deadline, then forgot to return it and returned it a day late.
21:20:04 <AnMaster> fizzie, bad dress → badly dressed people → university in general → you → panoramas → images → lecture notes
21:20:05 <Deewiant> Yep
21:20:16 <AnMaster> fizzie, convoluted yes
21:20:48 <fizzie> "badly dressed people → university in general" is a bit of a leap.
21:20:59 <AnMaster> fizzie, well, CS people then
21:21:08 <fizzie> You stereotypist.
21:21:14 <Gregor> I'm not a badly-dressed person :(
21:21:34 <AnMaster> fizzie, well I'm a CS student myself. I'm not badly dressed if the average isn't I guess.
21:21:51 <Deewiant> Gregor: Which reminds me: I chose your hat a few days back, did you abide?
21:22:00 <Gregor> Deewiant: I always abide.
21:22:07 <Deewiant> Awesome
21:22:18 <Gregor> http://www.facebook.com/photo.php?pid=30595531&l=c65d70c86e&id=1055580469 <-- my usual style of dress
21:22:29 <fizzie> 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 <Deewiant> Makes me wonder about your profession
21:22:48 <Deewiant> fizzie: Did they say anything interesting?
21:22:56 <fizzie> Makes me wonder about your orientation (sexual)!
21:23:00 -!- kar8nga has joined.
21:23:07 <Deewiant> You wonder about the strangest things
21:23:33 <Gregor> And wonder them in oddly-parenthesized ways.
21:24:06 <AnMaster> fizzie, law students tends to be *very* well dressed
21:24:15 <fizzie> 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 <AnMaster> <Deewiant> Gregor: Which reminds me: I chose your hat a few days back, did you abide? <-- which one?
21:24:33 <fizzie> 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 <Deewiant> Right.
21:24:43 <AnMaster> I like his fezes
21:24:56 <Deewiant> I can't actually remember :-S
21:25:09 <AnMaster> Deewiant, he has so many weird ones ;)
21:25:15 <Deewiant> I remember I tried to pick an abnormal one but I can't remember what I settled on
21:25:31 <Deewiant> AnMaster: fezzes*
21:25:46 <Gregor> Fezi
21:25:48 <Gregor> :P
21:25:55 <fizzie> Fezzies.
21:25:58 <Gregor> X-D
21:25:59 <Deewiant> fizzies
21:26:04 <AnMaster> Deewiant, ah
21:26:06 <fizzie> There's only one of those.
21:26:28 <AnMaster> fizzie, no. Sometimes I have seen fizzien <some number> here too
21:26:40 <fizzie> There's quite many places on the interwebs that sell "bath fizzies".
21:26:44 <Deewiant> :-D
21:26:48 * AnMaster prefers to read the word as fizzien <whatever the number was> rather than fizzie n<whatever the number was>
21:26:54 <Gregor> I want a bath fizzie >: )
21:27:21 <AnMaster> Gregor, what do you actually do for work
21:27:31 <Deewiant> Hmm, what happened today O_o
21:27:32 <fizzie> 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 <Deewiant> 60 packages to upgrade
21:27:43 <AnMaster> Deewiant, try clog?
21:27:50 <AnMaster> oh that
21:27:55 <AnMaster> Deewiant, be careful. soname change
21:28:04 <Gregor> AnMaster: I guess I'm a research scientist.
21:28:08 <Deewiant> soname?
21:28:20 <AnMaster> iirc that is the name for
21:28:36 <AnMaster> libfoo.so.1 vs libfoo.so.2
21:28:59 <AnMaster> Gregor, ah that explains it. Those kinds of hat would only work at university ;P
21:29:12 <AnMaster> hats*
21:29:14 <Deewiant> libdrm or what being the actual change?
21:29:48 <Gregor> AnMaster: More generally I'm a doctoral student, but that's not what I do "for work" :P
21:30:33 <AnMaster> Gregor, I vote for this attitude on said day: http://codu.org/hats/BrownFedora-sm.jpg
21:30:33 <AnMaster> ;)
21:30:57 <Gregor> choosemyhat.com is for hats, not attitudes :P
21:31:00 <AnMaster> Deewiant, libdrm?
21:31:07 <AnMaster> Deewiant, iirc it was some kerberos stuff
21:31:19 <AnMaster> at least ssh broke during the upgrade with some error about old soname krb thing not found
21:31:25 <Deewiant> I just saw libdrm go up a version number
21:31:31 <Deewiant> And most other things go up a release number
21:31:32 <AnMaster> Deewiant, well maybe that too
21:31:49 <AnMaster> Deewiant, well libkrb messed up for me for a bit there
21:32:07 <AnMaster> Gregor, still, that is an awesome attitude on that picture :P
21:32:18 <Deewiant> I don't appear to have libkrb installed
21:32:29 <AnMaster> Deewiant, huh, here it is a dep of sshd?
21:32:56 <Deewiant> heimdal did go up a version number
21:33:02 <Deewiant> I thought you meant a package by that name
21:33:05 <AnMaster> Deewiant, well it is libkrb
21:33:10 <AnMaster> libkrb5 even
21:33:16 <AnMaster> didn't remember exact name
21:33:22 <AnMaster> /usr/lib/libkrb5.so.26 is owned by heimdal 1.3.2-1
21:33:25 <AnMaster> it was .25 before
21:33:29 <AnMaster> meaning ABI breakage generally
21:34:06 <Deewiant> Argh
21:34:10 <AnMaster> Deewiant, what?
21:34:17 <Deewiant> Now catalyst depends on openssl-compatibility which only exists for i686
21:34:23 <AnMaster> Required By : alpine cvs evolution-data-server gnome-vfs gtk2 kdelibs libcups librpcsecgss libtirpc neon openssh smbclient
21:34:30 <AnMaster> Deewiant, what the heck is catalyst?
21:34:33 <AnMaster> Deewiant, and: file a bug
21:34:50 <Deewiant> catalyst is AMD's display driver
21:34:54 <AnMaster> pacman -Ss catalyst
21:34:55 <Deewiant> I doubt I need to
21:34:56 <AnMaster> returns nothing?
21:34:59 <Deewiant> It's in AUR
21:35:02 <AnMaster> oh okay
21:35:10 <AnMaster> Deewiant, file a comment on that page then so it can be fixed still
21:35:11 <Deewiant> It was dropped from community last summer IIRC
21:35:43 <Deewiant> AnMaster: There's a comment on openssl-compatibility already
21:35:46 <Deewiant> http://aur.archlinux.org/packages.php?ID=36308
21:35:57 <AnMaster> okay
21:36:03 <Deewiant> Unsurprisingly enough
21:36:05 <AnMaster> can't see why a display driver needs openssl
21:36:25 <Deewiant> Except the md5 seems wrong
21:36:38 <AnMaster> mhm
21:36:47 <Deewiant> Or it's using the wrong one
21:36:50 <Deewiant> I don't think my CARCH is set
21:36:54 <Deewiant> I've had problems with that before
21:37:48 <Deewiant> AnMaster: Any idea where the $CARCH comes from into a PKGBUILD?
21:39:01 <Deewiant> Bloody catalyst updates... I hate having to always mess with the PKGBUILDs
21:39:53 <Deewiant> 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 <AnMaster> Deewiant, eh. No idea
21:40:37 <Deewiant> 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 <AnMaster> Deewiant, doesn't it use split kernel/user space drivers?
21:40:52 <Deewiant> Just one package
21:42:32 <AnMaster> Deewiant, ah, nvidia drivers splits it
21:42:37 <AnMaster> and iirc there are lib32 ones even
21:43:20 <Deewiant> Argh, and the damn pacman update made me lose the changes without even getting a chance to try the PKGBUILD once
21:43:34 <AnMaster> Deewiant, what?
21:43:43 <AnMaster> Deewiant, trying what pkgbuild?
21:43:47 <Deewiant> catalyst's
21:43:56 <Deewiant> The one I'm manually deleting stuff from
21:44:18 <AnMaster> how did pacman make you lose it?
21:44:39 <Deewiant> pacman update changed PKGEXT from .pkg.tar.gz to .pkg.tar.xz
21:45:27 <AnMaster> Deewiant, yes and?
21:45:29 <Deewiant> 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 <AnMaster> can't you use the old ones still?
21:45:44 <Deewiant> Anyway, it complained about not finding a .tar.gz when it had made a .tar.xz
21:45:55 <Deewiant> FATAL: Could not open /lib/modules/2.6.33-deewiant/modules.dep.temp for writing: No such file or directory
21:45:58 <Deewiant> Yay, it worked
21:46:02 <AnMaster> Deewiant, did it?
21:46:05 <Deewiant> Yes, it did
21:46:13 <AnMaster> FATAL is usually a bad indication
21:46:14 <Deewiant> I know there's no modules.dep in the chroot, doesn't matter :-P
22:24:57 <fizzie> Deewiant: The game is on: http://www.cis.hut.fi/htkallas/ai-2010.txt
22:25:03 <fizzie> Deewiant: Might be more interesting if you were participating. :p
22:25:49 <Deewiant> And if one of those were mine. :-P
22:25:57 <Deewiant> I like the NPEs
22:26:22 <fizzie> Those results always come fastest. :p
22:26:28 <Deewiant> :-D
22:26:49 <AnMaster> NPE?
22:27:03 <fizzie> AIARCH: RED player crashed: Uncaught exception: java.lang.NullPointerException
22:27:18 <AnMaster> heh
22:27:28 <AnMaster> fizzie, they didn't test it very well?
22:27:40 <AnMaster> fizzie, how fast is that report updated?
22:27:42 <fizzie> Most likely. Will be interesting to see if it crashes all other games.
22:27:52 <fizzie> It's a cron job, once per hour.
22:28:11 <AnMaster> fizzie, how long is one game permitted to run?
22:28:14 <fizzie> 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 <fizzie> One hour of thinking time for both participants.
22:28:38 <fizzie> I'm running 33 games simultaneously, though.
22:28:51 <fizzie> (11 quad-core workstations, 3 simultaneous matches each.)
22:29:11 <AnMaster> fizzie, so it is in user time? or user + sys?
22:29:20 <Deewiant> Wall clock time on random people's workstations? :-P
22:29:31 <AnMaster> Deewiant, that would be unreliable
22:29:31 <fizzie> Deewiant: No, RLIMIT_CPU time.
22:29:50 <AnMaster> man: warning: /usr/share/man/man3x/ulimit.3.gz: ignoring bogus filename
22:29:50 <AnMaster> man: warning: /usr/share/man/man3x/ulimit.3p.gz: ignoring bogus filename
22:29:50 <AnMaster> man: warning: /usr/share/man/man3x/ulimit.3p.gz: ignoring bogus filename
22:29:50 <AnMaster> huh
22:29:50 <Deewiant> Meh, CPU time sucks, you can't parallelize
22:29:55 * AnMaster wonders what the heck that is
22:30:03 <Deewiant> AnMaster: That's been going on a while.
22:30:10 <Deewiant> Dunno what it is either.
22:30:25 <fizzie> 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 <AnMaster> $ pacman -Qo /usr/share/man/man3x/ulimit.3.gz
22:30:50 <AnMaster> /usr/share/man/man3x/ulimit.3.gz is owned by man-pages 3.24-1
22:30:52 <Deewiant> fizzie: Meh!
22:30:53 <AnMaster> $ pacman -Qo /usr/share/man/man3/ulimit.3.gz
22:30:53 <AnMaster> /usr/share/man/man3/ulimit.3.gz is owned by man-pages 3.24-1
22:30:55 <AnMaster> huh
22:31:17 <fizzie> Deewiant: What would you need threads for, anyway, except to get some annoying nondeterminism in your move-search?
22:31:34 <Deewiant> Searching multiple branches simultaneously, of course
22:31:43 <AnMaster> fizzie, what does it allow then? Some standard library funcs I presume?
22:32:00 <fizzie> 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 <Deewiant> "Some" as in almost all of the vast Java standard libs
22:32:11 <Deewiant> Sure, sure
22:32:21 <fizzie> Yes; IO in general is not allowed, though.
22:32:45 <fizzie> 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 <AnMaster> Deewiant, fizzie, ooh I just got an idea for the future version of this. When quantum computers become commonplace that is
22:33:00 <fizzie> 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 <AnMaster> fizzie, doesn't java implement it's own user space threads then?
22:33:52 <AnMaster> by default I mean
22:34:03 * AnMaster points out things like erlang does
22:34:13 <fizzie> By default I think Java threads are done using platform threads, pthreads on posixy things and so on.
22:34:18 <fizzie> Though that's just my guess.
22:34:27 <AnMaster> well erlang uses m:n basically
22:34:29 <fizzie> In any case you can't use those because of the security policy. :p
22:34:36 <AnMaster> mapping it on a number of system threads called schedulers
22:34:47 <fizzie> Updated the report, now there's enough games in the table so that the "blue player" text is visible too.
22:35:09 <fizzie> synaesthesia seems to be doing pretty well so far.
22:35:13 <AnMaster> fizzie, what is Ti?
22:35:23 <Deewiant> Result table: (Bl = blue wins, Re = red wins, Ti = tie)
22:35:30 <AnMaster> oh there
22:35:31 <AnMaster> above
22:35:38 <AnMaster> had scrolled down a bit too far to see it
22:35:53 <AnMaster> fizzie, does it say how long each game ran for?
22:36:17 <AnMaster> fizzie, what does AIARCH stand for?
22:36:22 <fizzie> AnMaster: In the actual results report, yes; not in this plaintext status report.
22:36:58 <AnMaster> Report generated at 2010-04-10 00:33:03. <-- you should have waited 30 seconds
22:37:20 <fizzie> It's not such a bad time now, either; aa:bb:ab, after all.
22:37:53 <fizzie> I guess I could actually add game length in wall-clock time, e.g. in parentheses after the move count.
22:42:36 <AnMaster> fizzie, how long does that report take to generate?
22:42:42 <AnMaster> fizzie, why does it need to be a cron job
22:42:49 <AnMaster> I mean it could be push on game finished
22:43:05 <AnMaster> fizzie, or you could provide live coverage :D
22:43:11 <AnMaster> like webtv or such
22:44:12 <AnMaster> 1 2.00 0.09-2.00 1.7 jaautio (+1, =0, -0)
22:44:12 <AnMaster> 2 1.73 0.86-1.86 0.5 synaesthesia (+9, =1, -1)
22:44:15 <AnMaster> also that looks weird
22:44:28 <AnMaster> fizzie, why doesn't the second one score higher than the first?
22:44:44 <fizzie> It's normalized by the number of games played so far.
22:44:48 <AnMaster> hm
22:44:50 <AnMaster> okay
22:44:57 <fizzie> The first one has won all its games, while the other one has losses too.
22:45:10 <fizzie> The "0.09-2.00" is the range of possible scores still achievable for that bot.
22:45:12 <AnMaster> the first one played far fewer
22:45:22 <fizzie> Well, so far.
22:45:39 <AnMaster> well yes
22:45:51 <fizzie> 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 <AnMaster> fizzie, didn't you have two older non-participating bots during previous years?
22:46:18 <fizzie> 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 <fizzie> urb the actual tournament progress.
22:46:28 <augur> so i learned about a new grammar formalism last night
22:46:39 <fizzie> I haven't added those in yet; I'll run the "official" games first, then the nice-to-know extras later.
22:46:50 <AnMaster> ah
22:46:53 <fizzie> And there were seven non-participating ones last year, I think.
22:47:01 <AnMaster> fizzie, seven ones?
22:47:03 <AnMaster> huh
22:47:04 <fizzie> Top-5 from 2008, one from the Scheme era, and the randombot.
22:47:09 <AnMaster> ah
22:47:38 <fizzie> The report seems to have autoupdated now.
22:47:39 <AnMaster> fizzie, are they still in java btw?
22:47:44 <fizzie> Yes.
22:47:54 <AnMaster> oh wait you said java security above
22:47:54 <AnMaster> meh
22:47:59 <fizzie> 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 <AnMaster> fizzie, didn't you talk about switching to python?
22:48:03 <augur> its called "sewing grammars"
22:48:12 <AnMaster> fizzie, and is that allowed?
22:48:24 <alise> hah, people are finally ignoring augur entirely
22:48:30 <augur> alise shut your face :|
22:48:32 <fizzie> AnMaster: It is, though it's not exactly supported by the course.
22:48:36 <AnMaster> augur, ssssh, keep quiet, we are following http://www.cis.hut.fi/htkallas/ai-2010.txt
22:48:39 <AnMaster> it is in progress
22:48:52 <AnMaster> ;P
22:48:53 <alise> I think we've just found the #esoteric equivalent of the Super Bowl
22:48:58 <AnMaster> alise, :D
22:49:10 <alise> "suxbot"; that's an optimistic name.
22:49:35 <AnMaster> alise, we just need fizzie to switch to postgresql so it can query real time updates
22:49:44 <AnMaster> since sqlite locking yeah has it's problems
22:49:59 <fizzie> 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 <Deewiant> chroot
22:50:17 <AnMaster> fizzie, jyton?
22:50:39 <AnMaster> or whatever it was called
22:50:40 <AnMaster> jython
22:51:38 <AnMaster> which one was ironsomething?
22:51:38 <AnMaster> oh .NET
22:51:38 -!- kar8nga has quit (Remote host closed the connection).
22:51:51 <AnMaster> fizzie, how comes that table at the top is mostly white?
22:51:54 <AnMaster> I mean
22:52:04 <AnMaster> you said many games were played at once?
22:52:19 <AnMaster> but does it run synaesthesia against all the other ones first?
22:52:24 <AnMaster> rather than in a random order?
22:52:47 <AnMaster> fizzie, what is that n that must be positive btw?
22:52:52 <AnMaster> (as RED) WINS against suxbot: 53 moves, AIARCH: BLUE player crashed: Uncaught exception: java.lang.IllegalArgumentException: n must be positive
22:52:53 <AnMaster> in there
22:54:18 <AnMaster> fizzie, any estimate on how long it may take?
22:54:32 <AnMaster> fizzie, also another idea: bot announcing the progress in here
22:54:33 <AnMaster> ;P
22:55:16 <fizzie> Deewiant: chroot is not exactly a non-root operation. I've been doing this with about ~no support from the Officials.
22:55:42 <fizzie> 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 <alise> "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 <alise> --Zeilberger
22:56:04 <alise> it's because they haven't found a finite perfect chess AI yet
22:56:08 <Deewiant> fizzie: You can always request it
22:56:33 <fizzie> Deewiant: I'd really rather not bother them; they seem overworked enough as-is.
22:57:00 <alise> Is you guys' university good? I should come and terrorise you.
22:57:31 <alise> Surprisingly, that first sentence is actually the correct way to phrase that with "you guys".
22:57:35 <AnMaster> "about ~no"
22:57:43 <AnMaster> didn't alise define ~ to be ¬ before?
22:57:50 <alise> AnMaster: no law of the excluded middle; it's not the same as "about"
22:57:52 <alise> Actually I should come and terrorise you anyway
22:57:53 <AnMaster> so I guess you had full support from them fizzie
22:58:27 <AnMaster> alise, ah but I use classical logic and consider LEM perfectly fine most of the time.
22:58:42 <AnMaster> alise, I'm not constructivist
22:58:43 <alise> Yeah, but you're an anti-computer whorebag.
22:58:45 <alise> So there.
22:58:50 <AnMaster> alise, what?
22:58:56 <AnMaster> how does that follow?
22:59:03 <alise> THE FOUR-COLOUR THEOREM DIN'T GET PROVED WITH DOUBLE NEGATION BEYOTCH
22:59:08 <alise> WE CONSTRUCTED US SOME DAMN FINE MAPS
22:59:20 <AnMaster> alise, well yes and?
22:59:21 <alise> AND WE COMPUTED THE FUCK OUT OF THEM!
22:59:27 <AnMaster> I never said constructivist methods doesn't work
22:59:50 <alise> http://www.swfme.com/view/1046212 oh my god the pain
22:59:57 <AnMaster> I just think that non-constructive ones are fine as well.
22:59:58 <fizzie> 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 <AnMaster> fizzie, could be on both
23:00:24 <AnMaster> fizzie, and there is a course channel on freenode? or elsewhere?
23:00:34 <Deewiant> IRCnet presumably
23:00:38 <fizzie> 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 <AnMaster> Deewiant, why?
23:00:45 <fizzie> IRCnet, and it's mostly Finnish.
23:00:50 <Deewiant> Because that's where things tend to be
23:00:50 <fizzie> That's where all our course channels are.
23:01:01 <fizzie> Force of tradition and all.
23:01:09 <AnMaster> fizzie, also it should be possible with an external multiplexer currently
23:01:27 <fizzie> 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 <AnMaster> I thought IRCnet was next to dead?
23:01:35 <alise> ehird@dinky:~$ mlton
23:01:36 <alise> MLton 20070826 (built Fri Oct 05 23:09:43 2007 on yellow)
23:01:40 <alise> $
23:01:43 <alise> I /may/ be needing a REPL some time, MLton.
23:01:55 <AnMaster> alise, what is mlton?
23:02:03 <fizzie> AnMaster: 74955 concurrent users isn't actually "dead".
23:02:10 <AnMaster> fizzie, what with it lacking services and so on
23:02:11 <alise> A whole-program optimising Standard ML compiler that produces uber-efficient code.
23:02:12 <Deewiant> MLton is a compiler, not an interpreter
23:02:20 <alise> Deewiant: So's SBCL; it has a REPL.
23:02:25 <alise> Admittedly SBCL doesn't do the whole-program magic.
23:02:26 <Deewiant> Shush
23:02:35 <Deewiant> REPLs are below the dignity of something as awesome as MLton
23:02:39 <alise> 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 <AnMaster> alise, write it in the common subset?
23:03:07 <alise> AnMaster: There is no "common subset", some implementations just suck at the standard.
23:03:17 <fizzie> The servicelessness is a matter of choice, not a sign of deadness. Though certainly it has gotten a bit quieter lately.
23:03:22 <alise> And OS interaction will always be slightly untransportable from one implementation to another without strict standardisation.
23:03:33 <alise> Deewiant: STALIN is cooler than MLton.
23:03:42 <fizzie> 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 <alise> STALIN just takes your code and beats the fuck out of it and spits out superhumanly good C.
23:03:51 <alise> Fuck yeah.
23:03:53 <AnMaster> alise, well follow the standard then, excluding the parts that very few support?
23:03:54 <AnMaster> as in
23:04:02 <AnMaster> a reasonably widely supported subset
23:04:04 <alise> You know what, I've decided that talking to AnMaster is fruitless.
23:04:10 <alise> At least right now.
23:04:11 <AnMaster> alise, why?
23:04:20 <alise> Because you keep saying the same stupid thing.
23:04:42 <fizzie> (I'm not sure why the top-100 page doesn't list freenode, though; the top-10 page does.)
23:04:47 <AnMaster> no you don't even make sense
23:04:52 <AnMaster> now*
23:05:07 <AnMaster> fizzie, has any bot hit 2 so far?
23:05:12 <AnMaster> fizzie, I mean
23:05:18 <AnMaster> when the results are finished for a given year
23:05:27 <alise> Anyway, I think with MLton I could approach the speed of cfunge using the same implementation techniques.
23:05:39 <AnMaster> fizzie, oh btw is there any perfect play in that game?
23:05:59 <fizzie> AnMaster: None of the officials, but the 2008 winner got a perfect score in the 2009 tournament.
23:06:02 <Deewiant> alise: Only approach cfunge? Psh. :-P
23:06:08 <alise> Doing sane macroptimisation like Deewiant... I could easily surpass it.
23:06:14 <alise> Deewiant: I said "using the same implementation techniques".
23:06:15 <AnMaster> fizzie, heh
23:06:22 <fizzie> And no, the game's not solved.
23:06:26 <Deewiant> alise: Yes, you did. Psh.
23:06:36 <alise> If you're essentially implementing retarded algorithms, then you can't beat retarded inline ASM.
23:06:51 <alise> Deewiant: What, you think MLton regularly beats microprofiled ASM? :-)
23:07:05 <AnMaster> alise, anyway what with the t issue fixed now in cfunge it is way closer
23:07:08 <Deewiant> You think AnMaster's asm is any good? ;-)
23:07:15 <AnMaster> Deewiant, I don't use much asm
23:07:15 <AnMaster> at all
23:07:17 <AnMaster> ....
23:07:21 <alise> Deewiant: No, but I think he's tried every possible string of ASM to find the fastest.
23:07:22 <Deewiant> "much at all"?
23:07:41 <pikhq> I may need to poke at cfunge and see what it's doing. Maybe beat it into a pulp. :P
23:07:46 <alise> I think cfunge is pretty shitty code TBQH.
23:08:10 <AnMaster> 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 <AnMaster> when it fills it with the space pattern for empty
23:08:33 <pikhq> alise: Yes, but I'm curious.
23:08:35 <alise> "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 <alise> Knuth would weep.
23:08:49 <AnMaster> alise, you are just silly you know
23:09:04 <AnMaster> alise, "Oh shit it doesn't match the standard." hasn't happend so far like that
23:09:05 <alise> ber-nave -- now there's a loanword amalgamation you don't see every day.
23:09:19 <AnMaster> and they aren't
23:09:21 <alise> AnMaster: considering I've heard you just copy from CCBI when your shit is broken I disagree entirely
23:09:42 <AnMaster> alise, that is an exaggeration
23:09:43 <alise> 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 <alise> it's none of these things but I don't really care what you think
23:09:55 <alise> like... at all
23:10:15 <AnMaster> 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 <AnMaster> like matrix math for 3DSP
23:10:28 <pikhq> Dude, fastcall really doesn't do that much, especially compared with better implementation. :P
23:10:54 <AnMaster> pikhq, which variant of fastcall btw?
23:10:59 <pikhq> Oh, and it does *fuck-all* on inlined-functions.
23:11:28 <AnMaster> pikhq, in gcc? well I generally use clang these days
23:11:30 <AnMaster> so no idea
23:11:48 <pikhq> AnMaster: It *cannot* do anything for inlined functions.
23:11:56 <AnMaster> pikhq, anyway I mainly target x86_64. It isn't like the inline asm is even used for x86
23:12:29 <pikhq> fastcall means "pass the arguments in registers". A static inline function means "this function is essentially a safe macro."
23:12:31 <AnMaster> 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 <pikhq> Yes. And I'm saying fastcall on a static inline function cannot do anything.
23:12:51 <alise> I wish ML didn't call its numbers "reals".
23:12:54 <alise> They're not really reals.
23:12:57 <pikhq> BUT YOU STILL DO IT.
23:12:59 <AnMaster> pikhq, so it isn't really relevant except to the cases where it is emitted as a call
23:13:00 <alise> Call them "fakes" :P
23:13:08 <pikhq> Which it shouldn't be.
23:13:09 <AnMaster> pikhq, the compiler is free to not inline static inline
23:13:27 <pikhq> AnMaster: Test. Your. Damned. Optimisations.
23:13:48 <AnMaster> pikhq, Oh I certainly profiled that attribute. You think I don't profile?
23:14:11 <alise> note: AnMaster found a 0.0001s difference and thought that it was obviously his genius, not acceptable margin of error
23:14:27 <AnMaster> 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 <pikhq> ... fastcall on functions *without arguments*?
23:14:56 <Deewiant> Wherein you were testing on Mycology or some such
23:15:00 <pikhq> It is literally impossible for that to do anything.
23:15:00 <alise> AnMaster: Cargo cult, hells yeah
23:15:17 <alise> Put the line in, run run run, wow it's faster, 4% on a program that runs almost immediately anyway!
23:15:20 <alise> This is clearly a GOOD THING!
23:15:22 <AnMaster> pikhq, hm? It may have slipped on some such function by mistake I guess
23:15:29 <AnMaster> pikhq, it would simply have no effect there then
23:15:57 <AnMaster> pikhq, for example editing of code can leave such things remaining for example
23:16:27 <pikhq> Yes, but it still sucks.
23:16:49 <AnMaster> pikhq, what does? An __attribute__ that happens to have no effect?
23:17:07 <pikhq> Yes.
23:17:12 <AnMaster> well now I guess you sound like alise in code aesthetics
23:17:31 <AnMaster> (btw since I think personal attacks are just irritating he is now on ignore)
23:17:40 <alise> 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 <pikhq> It's like having "0;" all over the place.
23:17:55 <AnMaster> pikhq, perfectly fine. Esoteric too.
23:17:59 <AnMaster> somewhat
23:18:02 <pikhq> Sure, it *doesn't do anything*, but that doesn't make it not *ugly*.
23:18:05 <alise> Personal attacks, yeah, those things that I did none of.
23:18:10 <alise> pikhq: why are you wasting your time?
23:18:13 <AnMaster> pikhq, what about IOCCC then?
23:18:23 <alise> he doesn't even understand what a personal attack is
23:18:27 <pikhq> AnMaster: IOCCC is about making the ugliest, most unreadable code.
23:18:48 <pikhq> AnMaster: Unless you are actually trying to do that, STOP DOING THINGS THAT MAKE CODE HARDER TO READ FOR NO BENEFIT.
23:19:19 <AnMaster> pikhq, well then I suggest you complain at ais for C-INTERCAL next time he is here
23:19:27 <AnMaster> it's C code is sometimes quite wonderfully weird
23:19:46 <AnMaster> pikhq, unreadable doesn't even begin to describe many parts of ick
23:19:50 <alise> 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 <alise> Do you think you can reason a man out of a position he did not reason himself into?
23:20:13 <AnMaster> pikhq, yet I haven't heard you complain about that yet.
23:20:16 <pikhq> AnMaster: You have fastcall on functions without arguments *everywhere*.
23:20:36 <pikhq> That there is *retarded* and cargo cult programming.
23:20:40 <AnMaster> pikhq, no. I'm quite sure I don't.
23:20:54 <pikhq> Would you like me to start listing them?
23:21:03 <AnMaster> pikhq, plus actually it did more than just fastcall at one point.
23:21:07 <AnMaster> might be good to know
23:21:10 <pikhq> bool fungespace_create(void);
23:21:13 <AnMaster> of course it could be cleaned up
23:21:15 <pikhq> void fungespace_free(void);
23:21:22 <AnMaster> pikhq, those used to take argument
23:21:27 <AnMaster> so I guess I forgot to update there
23:21:37 <AnMaster> pikhq, feel free to submit a patch
23:21:56 <AnMaster> I don't consider it high priority
23:22:00 <pikhq> instructionPointer * ip_create(void);
23:22:03 <AnMaster> there are other more important issues
23:22:11 <pikhq> ipList* iplist_create(void);
23:22:34 <AnMaster> pikhq, those two never took argument as far as I can recall, so accident there I guess.
23:22:41 <pikhq> funge_stack * stack_create(void);
23:22:52 <AnMaster> pikhq, but listing them won't help with anything
23:22:57 <AnMaster> what is the point of doing so
23:23:10 <AnMaster> better submit a patch if you care that much
23:23:40 <pikhq> void sysinfo_cleanup(void);
23:23:43 -!- tombom_ has quit (Quit: Leaving).
23:23:52 <AnMaster> pikhq, took a parameter before
23:23:54 <AnMaster> also as I said
23:24:02 <AnMaster> this listing is completely and utterly pointless
23:24:11 <pikhq> genxWriter genxNew(void);
23:24:22 <pikhq> Okay, screw the list.
23:24:24 <AnMaster> 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 <AnMaster> after that
23:24:29 <AnMaster> new funge space
23:24:34 <AnMaster> probably
23:24:35 <pikhq> Suffice it to say *every single (void) function is fastcall*.
23:24:50 <AnMaster> pikhq, see above though
23:24:55 <alise> pikhq: genx isn't even AnMaster's code -- clearly he's fucked with it to break it
23:24:56 <AnMaster> pikhq, you obviously didn't read
23:25:01 <AnMaster> <AnMaster> pikhq, plus actually it did more than just fastcall at one point.
23:25:04 <AnMaster> that line to be specific
23:25:23 <pikhq> AnMaster: EEEEW.
23:25:30 <AnMaster> pikhq, what?
23:25:49 <AnMaster> make sense
23:26:06 <pikhq> A macro that implies that it's just for fastcall doing more than that?
23:26:17 <pikhq> I'm taking away your C license.
23:26:24 <AnMaster> pikhq, well it did something else for speed. I don't remember what
23:26:33 <alise> MOAAAAAAAAAR SPEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEED
23:26:35 <AnMaster> I'm not sure if it was ever comitted
23:26:39 <AnMaster> or not
23:26:45 <pikhq> Oh, also.
23:26:45 <AnMaster> committed*
23:26:45 <pikhq> FUNGE_ATTR_FAST static inline void discard_line(void)
23:26:57 <fizzie> alise: Speaking of suxbot, did you see how much it crashes?-)
23:26:57 <AnMaster> pikhq, that one also used to take a parameter
23:26:58 <AnMaster> so again
23:27:07 <pikhq> AnMaster: ITS STATIC INLINE.
23:27:15 <alise> fizzie: I didn't. Heh.
23:27:16 <pikhq> FASTCALL DIDNT DO ANYTHING WHEN IT DID.
23:27:18 <AnMaster> pikhq, yes, but it was used in more than one place before
23:27:24 <alise> reallysuxbot: int main(){*0}
23:27:24 <AnMaster> in fact
23:27:29 <AnMaster> I think it still is
23:27:54 <pikhq> Believe it or not, GCC will still inline the shit out of static functions.
23:27:55 <AnMaster> pikhq, there is nothing that guarantees something *will* be inlined just because of "static inline"
23:28:06 <AnMaster> pikhq, well it didn't for me before
23:28:25 <AnMaster> pikhq, just FYI. Complaining about frame size when some verbose parameter was on iirc
23:28:27 <pikhq> AnMaster: What I'm saying is you, sir, do cargo cult programming.
23:28:33 <pikhq> And that you should stop it. Stop it now.
23:28:59 <AnMaster> 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 <pikhq> AnMaster: "I'm too lazy to remove useless lines of code"
23:29:43 <AnMaster> 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 <AnMaster> really
23:29:55 <pikhq> This is the sign of someone who should not be allowed near machinery more complex than a wheel.
23:30:02 <AnMaster> pikhq, ^
23:30:18 <AnMaster> pikhq, next time ais is here I suggest
23:30:21 <AnMaster> I'm sure he will like it
23:30:31 <AnMaster> iirc the convickt code is especially bad
23:30:41 <alise> AnMaster is an expert at logical fallacy.
23:30:53 <Gregor> Doood
23:30:56 <Gregor> Wheel's are AWESOME
23:31:03 <AnMaster> pikhq, the code for threaded intercal using setjmp()/longjmp() is also quite horrible
23:31:05 <Gregor> Have you ever really thought about just how brilliant the wheel is? :P
23:31:08 <pikhq> AnMaster: ick sucking does not mean that you have cause to suck.
23:31:09 <pikhq> It just means that ick also sucks.
23:31:23 <AnMaster> pikhq, but you should certainly go complain to ais about this?
23:31:24 <AnMaster> no?
23:31:36 <pikhq> And I'm going to go poke around at CIntercal.
23:31:41 <alise> pikhq: Difference: ick sucks on /purpose/.
23:31:43 <alise> It's esoteric C.
23:31:49 <alise> AnMaster's code isn't interesting-esoteric, it's just shit-esoteric.
23:31:52 <alise> also, *C-INTERCAL
23:31:55 <AnMaster> pikhq, iirc the yuk code (debugger) was also quite messy
23:32:00 <pikhq> Oh, ick is *meant* to be unreadable?
23:32:15 <AnMaster> pikhq, well, so is parts of cfunge.
23:32:15 <alise> pikhq: Well, its parser uses Perl idioms to pay homage to CLC-INTERCAL.
23:32:18 <pikhq> Well, then. AnMaster, your point is "ick is meant to suck therefore I can get away with sucking."
23:32:20 <alise> That's basically some of the fun :-)
23:32:33 <alise> 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 <alise> Heard it all before
23:32:38 <Ilari> 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 <pikhq> Which can be reduced to "I'm a terrible programmer. Fuck you."
23:33:17 <Deewiant> Ilari: AKA a DS9K implementation
23:33:21 <alise> Ilari: DeathS- what Deewiant said.
23:33:48 <AnMaster> 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 <AnMaster> quite a nice piece of unreadable code I feel
23:34:17 -!- Tritonio_GR has quit (Ping timeout: 258 seconds).
23:34:17 <AnMaster> pikhq, well worth checking out if you like unreadable code!
23:34:22 <Ilari> 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 <AnMaster> Ilari, doesn't char have to be a power of two in C99?
23:34:54 <pikhq> FUNGE_ATTR_FAST FUNGE_ATTR_NOINLINE FUNGE_ATTR_COLD FUNGE_ATTR_NORET static void print_features(void)
23:34:58 <pikhq> GAH WHAT IS WRONG WITH YOU
23:35:05 <pikhq> 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 <AnMaster> yay I'm breaking your mind!
23:35:25 <alise> I'm surprised pikhq hasn't noticed cfunge before now.
23:35:31 <Deewiant> Doesn't cold override fast there?
23:35:40 <pikhq> Deewiant: No.
23:35:48 <alise> It was truly the one thing that made me realise that AnMaster was irretrievably insane.
23:35:51 <pikhq> "cold" just means that it won't be stuck in the "hot" section.
23:35:59 <AnMaster> Deewiant, the fast one could be dropped.
23:36:00 <Deewiant> Thanks for the info! ... not
23:36:06 <oerjan> FUNGE_ATTR_COLD?
23:36:17 <Deewiant> FUNGE_ATTR_HAWT
23:36:20 <pikhq> AnMaster: This is not the "holy fuck that's crazy" reaction that you get to say, Malbolge.
23:36:36 <pikhq> This is the "holy fuck THAT IS RETARDED I HATE YOU" reaction that you get to, say, LOLCODE.
23:36:47 <Ilari> AnMaster: I don't think there are more requirements than integer number of bits at least 8.
23:37:01 <AnMaster> pikhq, did you look at the double include in that file I mentioned?
23:37:10 <AnMaster> pikhq, but yes that FUNGE_ATTR_FAST should be removed
23:37:14 <AnMaster> apart from that it looks fine
23:37:28 <AnMaster> FUNGE_ATTR_NORET is to allow error checking anyway
23:37:32 <alise> Hmm, "mlton foo.sml" isn't terminating.
23:37:36 <AnMaster> does the optimiser even use it?
23:37:37 <alise> Oh, now it is.
23:37:39 <alise> That was slow.
23:37:43 <pikhq> AnMaster: NOINLINE. In a static. Void. Function. That is only called once.
23:37:48 <Deewiant> alise: But now it's fast!
23:37:59 <alise> Deewiant: Yes! It prints "Hello, world!" in 0.002 seconds.
23:38:00 <pikhq> This is "fuck you, optimiser, I'm going to make you do soemthing dumb". The attribute.
23:38:06 <AnMaster> pikhq, correct. But why fill up the cache line for the "normal" path of code execution ;P
23:38:08 <alise> Amazing.
23:38:20 <Deewiant> alise: Imagine! It probably would've taken 0.004 if it'd've compiled it in only half a second
23:38:26 <pikhq> AnMaster: Uh...
23:38:27 <AnMaster> pikhq, after all it is for printing some info about the binary
23:38:28 <pikhq> Benchmark.
23:38:43 <pikhq> I DEMAND TO SEE BENCHMARKS JUSTIFYING EVERY SINGLE STUPID OPTIMISATION YOU HAVE MADE.
23:38:45 <alise> Deewiant: Of course, OCaml and Haskell both compile faster into similarly-performing binaries (OCaml beating Haskell by a lot).
23:38:52 <Ilari> Or 17 bit chars, 34 bit shorts, 51 bit ints, 85 bit longs and 119 bit long longs...
23:38:54 <Deewiant> alise: Yep
23:39:08 <Deewiant> 17 bit chars, ew
23:39:10 <alise> Deewiant: SML/NJ, too.
23:39:11 <AnMaster> pikhq, well, you are not my employer. So that you have to do yourself
23:39:28 <Deewiant> alise: Don't go backpedaling on the language choice, now
23:39:36 <pikhq> AnMaster: Premature optimisation is the root of all evil.
23:39:36 <Ilari> And of course the canonical character set is is something totally whcky.
23:39:37 <alise> like anyone would pay AnMaster to code
23:39:39 <Sgeo> At least when I write ugly code, I admit that the code is ugly
23:39:39 <alise> I'd pay him not to code
23:39:42 <AnMaster> Deewiant, 17 bit char sounds fantastic
23:39:47 * Sgeo wonders if he's ever written nice code
23:39:49 <pikhq> Your code is filled with premature optimisation.
23:39:49 <alise> Deewiant: SML/NJ is Standard ML too, you know :P
23:40:01 <AnMaster> pikhq, did you look at the double include stuff?
23:40:04 <pikhq> Thus, your code is made of evil. And not the enjoyable kind.
23:40:07 <pikhq> AnMaster: Where?
23:40:07 <AnMaster> pikhq, yes or no?
23:40:14 <Deewiant> alise: That's fine, OCaml and Haskell aren't ;-P
23:40:15 <pikhq> *Where*?
23:40:21 <AnMaster> pikhq, I mentioned it above. *unreadability* WAS A GOAL
23:40:29 <Deewiant> pikhq: lib/libghthash
23:40:31 <AnMaster> pikhq, An express goal yes
23:40:33 <pikhq> AnMaster: *Where*?
23:40:39 <AnMaster> pikhq, if you don't read what I say *shrug*
23:40:44 <AnMaster> pikhq, I mentioned it above
23:40:45 <pikhq> AnMaster: I missed it.
23:40:49 <Deewiant> pikhq: lib/libghthash
23:40:50 <AnMaster> pikhq, your loss
23:40:56 <pikhq> I just saw "did you look at it in that file I mentioned?"
23:41:09 <AnMaster> your loss I'm afraid
23:41:22 <AnMaster> but yes Deewiant told you
23:41:27 <pikhq> lib/libghthash is a directory, AnMaster.
23:41:28 <AnMaster> and you ignored that too
23:41:34 <AnMaster> pikhq, yes but it affects the files in there
23:41:35 <alise> wow AnMaster is so pissy
23:41:36 <AnMaster> most of them
23:41:36 <alise> it's kinda funny
23:41:40 <AnMaster> :D
23:41:43 <alise> it's like i can feel him actually getting angry behind the screen
23:41:44 <pikhq> AnMaster: Uh...
23:41:48 <alise> so cute.
23:41:52 <pikhq> What the hell is your *point*?
23:42:03 <AnMaster> pikhq, that unreadability *is* a goal sometimes in cfunge
23:42:05 <pikhq> "Files from there are double included"?
23:42:13 <Sgeo> Darke is once again active in B
23:42:35 <AnMaster> pikhq, the *_priv.h ones are included more than once to emulate C++ templates basically
23:42:39 <AnMaster> as I SAID ABOVE
23:42:43 <pikhq> You've failed at *that* goal, too. Your code is just bad enough to make me think you're dumb.
23:42:45 <AnMaster> your loss for not reading it
23:43:16 <pikhq> You want unreadable code?
23:43:26 <AnMaster> pikhq, .. if you aren't going to read what I say anyway
23:43:29 <pikhq> 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 <AnMaster> I'm not going to say anything
23:43:34 <AnMaster> pikhq, heh nice
23:43:39 <pikhq> *That's* unreadable code.
23:43:43 <AnMaster> pikhq, so it is.
23:43:51 <coppro> Sgeo: wrong chanenl
23:43:53 <coppro> *channel
23:44:00 <AnMaster> pikhq, looks familiar?
23:44:00 <pikhq> I'm looking at hash_table_priv.h ATM.
23:44:08 <Sgeo> coppro, alise isn't in ##nomic for some reason
23:44:16 <AnMaster> pikhq, well I didn't write the hash library.
23:44:21 <AnMaster> pikhq, but I adapted it
23:44:32 <pikhq> Looks cargo-cultish.
23:44:47 <AnMaster> pikhq, to the specialisation (because at that point a 50% speed increased showed up, that was before static funge space)
23:45:00 <AnMaster> 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 <AnMaster> pikhq, but please go bash ick next. Because a lot of it's unreadability is on the same level as this
23:45:46 <AnMaster> now I'm going to bed. Night
23:45:50 <pikhq> Oh, the static inline fast-ness.
23:46:14 <AnMaster> pikhq, actually I'm going to keep it. Because it does no harm.
23:46:31 <Sgeo> 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 <AnMaster> now night →
23:46:37 <alise> and so, on that day, new heights of pure idiocy were reached.
23:46:52 <pikhq> I'm going to litter my code with "0;"!
23:46:55 <pikhq> HOORAY!
23:47:03 <pikhq> It does nothing so WHATS THE HARM?
23:47:04 <alise> i'm gonna start tagging all my functions static inline __attribute__((noreturn))
23:47:07 <alise> even the ones that return
23:48:06 <pikhq> Also, AnMaster: double-including a header file so you can redefine the macros used for it?
23:48:11 <pikhq> Yeah, that's fairly mundane.
23:48:19 -!- oklofok has quit (Read error: Connection reset by peer).
23:48:24 <pikhq> Not "unreadable", not "clever". Just mundane.
23:48:41 -!- oklopol has joined.
23:48:52 <alise> 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 <alise> ESOTERIC!
23:49:57 * Sgeo should write a language
23:51:04 <Sgeo> Hm
23:51:15 <Sgeo> newlanguage : functionalprogramming :: glass : OOP?
23:51:31 <pikhq> Sgeo: So, Lazy K.
23:51:36 <alise> *logicprogramming
23:51:36 <alise> moar esoteric
23:51:40 <Sgeo> Wait, I think Unlambda has it covered. Or Lazy K, which I never heard of
23:51:55 <alise> Lazy K would be better without the multiple-syntaxes gimmick.
23:52:02 <pikhq> alise: It would.
23:52:16 <pikhq> The SKI-subset is what should be kept.
23:53:15 <fizzie> 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 <fizzie> As opposed to the no-arg thing, I mean.
23:54:01 <pikhq> 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 <Sgeo> *tables
23:54:32 <Sgeo> I tried to do something similar before, but iirc, it was never-implemented crap
23:54:47 <Sgeo> Or maybe I only think it's crap because it was from a while ago
23:55:11 <pikhq> It seems that he just went through and fastcalled everything.
23:55:28 <Sgeo> What's a fastcall?
23:55:31 <alise> MLton supports continuations via callcc and throw.
23:55:31 <alise> 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 <alise> I think I'll like this language.
23:55:53 <fizzie> Isn't that more of an implementation thing than a language thing, having stuff stored in a DB table?
23:56:09 <pikhq> Sgeo: "fastcall" is an alternate C calling convention that sticks arguments in registers.
23:56:24 <alise> ugh, prolog handles arithmetic so shittily
23:56:32 <Sgeo> It probably doesn't work with most FFIs, does it?
23:56:39 <pikhq> Not cleanly.
23:57:02 <Sgeo> Are there any other reasons not to use Fastcall?
23:57:19 <pikhq> Not the standard calling convention.
23:57:41 <pikhq> Has some limitations on what arguments your function can take.
23:57:58 <pikhq> Makes me cockpunch you for using it everywhere.
2010-04-10
00:01:01 <Sgeo> 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 <pikhq> Windows has 3 or 4 different calling conventions in its public API, BTW.
00:02:10 <fizzie> 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 <Sgeo> o.O that sounds.. annoying
00:02:42 <coppro> ugh, being sick sucks :(
00:03:47 <Sgeo> coppro, feel better soon
00:04:26 <coppro> I certainly hope so :/
00:05:03 <Sgeo> coppro, there's a possbility you won't? :(
00:05:24 <coppro> well, I've been fighting this damn thing on and off for two weeks
00:05:46 <Sgeo> coppro, see a doctor?
00:05:56 <coppro> have; says it
00:05:59 <coppro> *says it's just a cold
00:06:06 <coppro> feels like just a cold too
00:06:43 <Sgeo> As long as it really IS just a cold
00:07:22 <alise> It's... CANCER
00:08:17 <coppro> that would seriously suck :(
00:09:28 <coppro> why do I hate myself?
00:09:56 <Gregor> It's from all that copprophilia.
00:10:58 * pikhq groans
00:12:32 <coppro> no sane human being could possible want to do what I am doing right now... therefore I am insane
00:12:46 <oerjan> but logical.
00:13:05 <alise> coppro: what are you doing?
00:13:19 <coppro> playing IWBTG
00:13:22 <alise> :-)
00:13:40 -!- Tritonio_GR1 has quit (Read error: Connection reset by peer).
00:14:15 <alise> coppro: that's only valid classically, I think
00:14:42 <coppro> okay... I've made it past the up-falling apples
00:14:48 <alise> pfft, that's easy
00:15:12 <coppro> now for the clouds :(
00:15:24 <alise> wimp, that part of the game is easy
00:15:49 <coppro> lol
00:18:05 <alise> it would be nice to have a logical operation that didn't need parenthesising
00:18:11 <alise> like with nand you still need delimiters of some sort
00:18:12 <coppro> you must be using some dictionary I don't know of
00:18:26 <Ilari> coppro: More vitamin D? :->
00:18:26 <alise> but if we had an operation where we could specify either left or right associativity
00:18:38 <alise> and have it stand in for all our operations
00:18:51 <alise> then we could just say a logical expression is a list of variables and quantifiers, pretty much
00:20:03 <alise> i tihnk that's impossible though :(
00:20:04 <alise> *think
00:28:57 * Sgeo despises seeded grapes
00:29:16 <coppro> what about seeded bananas?
00:29:54 <Sgeo> How ARE you supposed to eat these damn things?!?
00:30:20 -!- augur has quit (Ping timeout: 276 seconds).
00:31:11 <Sgeo> 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 <oerjan> that sounds like a problem with your dad, not the seeds.
00:36:37 <oerjan> i suggest sending him in for repairs.
00:36:49 <alise> pi - sqrt(pi)^2 = -0.0000000000000008881784; this thing really shouldn't be called "real"
00:37:07 <Sgeo> oerjan, so, does that mean I should just eat the damn seeds?
00:37:08 <oerjan> unreal arithmetic
00:37:27 <oerjan> if you want to
00:39:25 <oerjan> 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 <coppro> Apple seeds contain trace amounts of cyanide
00:40:49 <coppro> 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 <oerjan> saved by the internet :D
00:42:15 <Sgeo> Not that helpful
00:42:25 <Sgeo> 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 <Sgeo> http://www.associatedcontent.com/article/961122/how_to_eat_nonseedless_grapes.html
00:43:31 <oerjan> i think chewing the seeds was a bit mixed experience, though
00:43:50 <fizzie> Nonseedless, what a nice way to put it. Why not unnonseedlessless?
00:44:14 <fizzie> Maybe "how to eat seedy grapes" would have had the wrong connotations.
00:44:35 <Gregor> Sgeo: lawl wtf
00:44:50 <Gregor> I ate "non-seedless" grapes for years, we grew them in our back yard :P
00:44:55 <Gregor> The proper way to eat them ... is to eat them :P
00:45:09 <Sgeo> Including the seed>?
00:45:42 <alise> This is so complicated for Sgeo!
00:45:48 <alise> And how /do/ you open a banana anyway?
00:46:14 <oerjan> hm i've heard there's been some recent progress on banana opening technique
00:46:24 <oerjan> as in, the way i've always done it is not the best
00:46:39 <pikhq> alise: Sledgehammer.
00:46:46 <alise> the problem with the monkey technique is that... I forget
00:46:51 <alise> there's something wrong with it, anyway
00:46:53 <pikhq> Heavier the better.
00:47:00 <alise> so i'd stick to what you're doing
00:47:14 <oerjan> (i usually make a small break by the stem, then unwrap)
00:47:48 <oerjan> alise: it's probably messy or something
00:48:04 <alise> http://www.flickr.com/photos/philgyford/4505748943/sizes/o/
00:48:04 <myndzi> |
00:48:04 <myndzi> /<
00:48:07 <oerjan> they're _monkeys_ after all
00:48:14 <oerjan> thank you, myndzi
00:48:45 <Sgeo> What's wrong with eating the peel, exactly?
00:48:54 <Sgeo> (Not that I eat banana peels)
00:49:36 <oerjan> alise: they shouldn't use 100%, that looks unprofessional and makes us think they grew up in north korea or something
00:50:08 <oerjan> i expect it's somewhat stringy?
00:50:35 <oerjan> also probably covered in pesticides
00:51:33 <Sgeo> I don't think monkeys care about pesticides so much
00:51:55 <oerjan> probably why they're endangered.
00:53:07 <oerjan> wait, he actually suggests blowing the seeds out of your mouth
00:54:17 <oerjan> i guess it goes with the outside recommendation from earlier.
00:54:36 <oerjan> this seems ill-adapted to norwegian conditions.
00:54:53 <pikhq> Completely tangential, but: http://forums.mtgsalvation.com/attachment.php?attachmentid=104059&stc=1&d=1270799424 RoE is going to be awesome.
00:55:32 <Sgeo> Steam, for the moments where it worked, showed RoE in My games, as a trial thing
00:55:40 <Sgeo> Too bad I can't get Steam to not crash
00:56:50 <pikhq> Sgeo: Rise of the Eldrazi?
00:57:04 <Sgeo> pikhq, not sure
00:59:15 <coppro> pikhq: indeed!
00:59:43 * coppro thinks he'll actually be playing at the prerelease
01:00:24 <oklopol> augur: i thought your comment about grammars was more interesting than the conversation around it
01:00:34 <augur> :x
01:00:38 <augur> sewing grammars!
01:02:26 <oklopol> yes that one
01:02:36 <augur> its quite interesting
01:02:46 <augur> wanna hear about them? :x
01:02:52 <alise> NO
01:03:04 <oklopol> i was just leaving, give me a there line explanation (short lines)
01:03:09 <oklopol> *three
01:03:44 <augur> ok here goes
01:03:57 <oklopol> okay i won't count that as one cuz i like you.
01:05:03 <augur> a sewing grammar consists of two sets of n-dimensional string vectors like <a, b, 0> (where 0 is the empty string); one set is the basis, the other is the rules.
01:06:22 <augur> vector concatenation is what you expect, e.g. <a,b,c> + <x,y,z> = <ax,by,xz>. the vector language of the grammar is just the basis closed under right-concatenation with the rules
01:06:57 <augur> e.g. b + r0 + r1 + ... for b in the basis, and r0, r1, ... in the rules
01:07:13 <augur> the string language is the set of strings generated by applying some function to the members of the vector language
01:07:58 <oerjan> i'm sorry we'll have to ignore that last line, you went over quota
01:08:03 <oklopol> :P
01:08:04 <augur> :P
01:08:29 <augur> so just as an example, take the classic non-CF language a^n b^n c^n
01:08:48 <oklopol> taken
01:09:03 <oerjan> that has no solutions for n > 2. i know this!
01:09:14 <augur> let the basis be just <0,0,0>, and let the rules be just <a,b,c>, and let the string-generating function be f<x,y,z> = xyz
01:09:35 <oklopol> yeah
01:09:47 <augur> <0,0,0> + <a,b,c> + <a,b,c> + ... is <a^n, b^n, c^n>, obviously.
01:09:54 <oklopol> obviously
01:10:03 <augur> or take a^n b^m c^n d^m
01:10:17 <oklopol> <a, 0, c, 0> and <0, b, 0, d>
01:10:26 <augur> let the basis be <0,0,0,0> and let the rules be <a,0,c,0> and <0,b,0,d>
01:10:27 <augur> yep.
01:10:29 <augur> and there you go.
01:10:48 <oklopol> i wish we had more courses about grammarness
01:11:07 <augur> or take the word duplicate language ww for w in {a,b}*
01:11:18 <oklopol> <a, a> for all letters
01:11:22 <augur> B = <0,0>, R = <a,a>, <b,b>
01:11:23 <augur> :)
01:11:41 <augur> sewing grammars: pretty easy.
01:12:05 <oklopol> also i find it intriguing, what can you express with it?
01:12:10 <augur> now, how you get more traditional CF languages i dont know.
01:12:10 <oklopol> i guess depends on f
01:12:28 <augur> the paper i learned about them from just addressed these kinds of phenomena
01:12:37 <oklopol> for palindromes, just make f reverse the latter one
01:12:37 <augur> balanced nested parens, for instance? no clue.
01:12:53 <oklopol> i think that's why they let you have a function and not just concatenation in the end
01:12:59 <augur> true. the problem with having f as a non-concatenative function is that it could be almost anything
01:13:08 <oklopol> sure
01:13:17 <oklopol> that's why "i guess depends on f"
01:13:21 <augur> yeah
01:13:23 <augur> anyway
01:13:27 <augur> go to sleep oklopol. :p
01:13:38 <oklopol> well not so much sleep as algebra
01:13:43 <oklopol> well, maybe sleep too
01:14:14 <oklopol> thanks for showing me the ways of sewing ~~~>
01:20:24 <augur> algebra!
01:23:57 <oerjan> algae bras
01:36:58 <alise> Huh, Caml was developed to implement Coq.
01:37:17 <alise> ML, on the other hand, originated in LCF (later HOL, Isabelle, etc.).
01:37:20 <alise> Proof war!
01:45:37 <augur> alise: thats rather interesting
01:46:32 <Sgeo> Making a language in order to implement a language?
01:47:00 <augur> Sgeo: it makes sense
01:47:12 <alise> well, proof systems are really complex
01:47:18 <augur> indeed
01:47:20 <alise> so you want an expressive functional language to do it in
01:47:40 <alise> 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 <alise> (and longer-lasting bitrotwise)
01:47:54 <Sgeo> Why not Haskell?
01:48:05 <augur> 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 <alise> Sgeo: didn't exist at the time
01:49:51 <alise> + not very performant,
01:49:55 <alise> + personal taste
01:49:58 <alise> but yeah, this was way before haskell
01:50:00 <alise> late 80s early 90s
01:51:21 <augur> haskell debuted 5 years after caml, just fyi. caml: 1985, haskell: 1990
01:51:46 <Sgeo> Should I attempt to learn O'Caml?
01:52:06 <augur> yes.
01:52:25 <augur> i need a name for a language phenomena
01:52:29 <augur> anyone care to help? :X
01:52:35 <augur> well, its not really a language phenomena
01:52:52 <Sgeo> Any way to avoid tutorials that assume I've never seen a functional language before?
01:52:53 <augur> its a formal property of certain kinds of grammars, but it relates to linguistic phenomena
01:54:46 <Sgeo> Any reason to learn O'Caml when I know Haskell
01:55:20 <augur> Sgeo: diverse perspective.
01:55:46 <pikhq> Sgeo: O'Caml has objects.
01:55:59 <pikhq> You can drink the OOP coolaid.
01:56:06 <pikhq> Koolaid, too.
01:56:19 * augur drinks pikhq's Koolaid
01:56:48 <Sgeo> http://www.post-gazette.com/pg/10099/1048991-67.stm?cmpid=newspanel1 I'd drop TV in a heartbeat
01:57:10 <augur> i have a TV.
01:57:11 <oerjan> augur: you mean the phenomena of using -a plural nouns in the singular?
01:57:12 <Sgeo> 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 <augur> its connected to my PS2.
01:57:30 <augur> oerjan: no. i presume you mean "data" as a singular?
01:57:30 -!- Oranjer has joined.
01:57:33 <Sgeo> s/Hulu/Hulu and .. other means of watching shows/g
01:57:39 <oerjan> augur: and, _phenomena_
01:59:13 <augur> 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 <augur> second, "phenomena" is an accepted, tho less common, singular form of the word
01:59:59 <augur> third, "data" in many dialects is a mass noun (like milk), hence "the data is" ~ "the milk is"
02:00:54 <pikhq> I still prefer "the datum is".
02:01:14 <pikhq> But, then, I'm a nerd who thinks English isn't complex enough. :P
02:01:29 <augur> english morphology isnt complex, this is true
02:01:46 <augur> but then, neither is latin or greek, in the grand scheme of things.
02:04:42 <augur> but english has plenty of complexity syntactically
02:04:55 <augur> if you want some introductions to this complexity, i would be happy to provide. :)
02:05:18 <pikhq> Sure, why not?
02:05:56 <augur> :o
02:06:08 <augur> my favorite example is extraction islands and parasitic gaps
02:07:23 <Oranjer> :O
02:07:31 <augur> so you can do these things like extract sub-elements, right
02:07:32 <augur> for instance
02:07:45 <augur> John saw [the man] ==> [the man] that John saw ___
02:07:51 <Sgeo> To add two floats together you need to use a different operator, +. (note the trailing period).
02:07:54 <Sgeo> That sounds fun
02:07:57 <Sgeo> :(
02:08:07 <augur> and you can do it from both subject and object position
02:08:18 <augur> [the man] saw John ==> [the man] that ___ saw John
02:08:29 <augur> but you can only do it once
02:08:32 <augur> so for instance
02:09:25 <augur> [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 <augur> pikhq: make sense?
02:10:13 <augur> not the why behind it, but just the fact of the matter
02:10:38 <Sgeo> What's with the ;; thing?
02:10:56 <pikhq> augur: o.O
02:11:01 <augur> what?
02:11:03 <alise> Sgeo: stop trying to learn ocaml.
02:11:07 <alise> it's not a very good language
02:11:20 <pikhq> That's about it.
02:11:26 <alise> but, also, don't diss things like that; they're design choices
02:11:34 <augur> pikhq: i presume you understand roughly what im showing with "John saw [the man] ==> [the man] that John saw ___"
02:11:35 <augur> yes?
02:11:48 <pikhq> Yeah.
02:12:31 <augur> 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 <augur> yeah?
02:12:57 <pikhq> "o.O" is not a reaction of not understanding.
02:13:07 <augur> oh ok :p
02:13:15 <augur> its an expression of "thats fucking weird"?
02:13:43 <pikhq> Yes.
02:13:51 <augur> want some more weirdness? :)
02:14:22 <oerjan> Sgeo: ignoring syntactic ugliness is a prerequisite for learning ocaml
02:14:47 <augur> John saw [the man] before he met him ==> [the man] that John saw ___ before he met him
02:14:52 <augur> but
02:15:10 <augur> well no lets say not "met him" but "met the woman"
02:15:32 <augur> John saw the man before he met [the woman] =/=> [the woman] that John saw the man before he met ___
02:15:35 <pikhq> English's syntax is crazy when you actually think about it.
02:16:11 <augur> 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 <Sgeo> Hm. Should I switch to speaking Lojban?
02:16:23 <augur> so you see how that last one is weird?
02:16:39 <pikhq> Yeah.
02:16:39 <augur> you cant extract out of an adverbial clause "before he met the woman"
02:17:25 <augur> ok now watch this
02:17:44 <augur> suppose that john saw the woman before he met that same woman
02:17:46 <augur> now:
02:18:00 <augur> [the woman] that John saw ___ before he met ___
02:19:39 <augur> whats up with that, huh
02:20:11 <augur> 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 <augur> 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 <zzo38> Can you write a music using Bohlen-Pierce notes?
02:26:28 <augur> what is a music.
02:28:13 <zzo38> Bohlen-Pierce music is music that the notes follow 3^(n/13) instead of 2^(n/12)
02:28:42 <augur> your grammar is horrible
02:28:47 <Oranjer> I think I heard of that!
02:28:59 <Oranjer> on my local college radio station, I believe
02:29:02 <Oranjer> that or NPR
02:30:31 <oerjan> zzo38: sorry about that, i got augur wound up by criticising _his_ english
02:30:44 <Gregor> Your Englishes all are sucks.
02:30:44 <oerjan> it's all my fault, really
02:30:58 <augur> oerjan: yes only my english was grammatical, and you're not a native speaker. ;)
02:31:20 <oerjan> augur: hasn't prevented me from correcting native speakers before
02:31:33 <zzo38> I think anarchy golf is broken (it is now maintenance?), did I break it by setting the PID too much?
02:31:41 <pikhq> Oerjan speaks better English than many a native speaker.
02:31:54 <oerjan> well writes
02:31:57 <pikhq> Well. At least types it. No idea how well he speaks it out loud. :P
02:31:57 <augur> true, but it DOES mean that your judgments are not reliable. your book knowledge might be, but your judgments are not.
02:32:43 <oerjan> augur knows english when he sees it. also, pornography.
02:32:51 <augur> :)
02:32:57 <augur> its true tho
02:33:03 <Gregor> Do most people NOT know pornography when they see it?
02:33:17 <augur> you can have exquisite book knowledge of english, but your intuitions about english will never match a native speakers
02:33:19 <Gregor> "There are all these naked people putting their body parts into each other in this picture ... what's going on?"
02:33:23 <augur> the same is true for any language
02:33:28 <pikhq> 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 <augur> pikhq: no, it doesnt matter how much correct english he's seen
02:33:54 <zzo38> I don't like to watch pornography
02:34:09 <augur> there are certain things that are not possible for a non-native speaker to get, for some reason.
02:34:29 <augur> at least not without extreme attention given to the issue in question
02:35:26 * Sgeo goes to play some Worms
02:35:42 <augur> its a difference between knowledge of facts of the language, vs knowledge of the procedure that resulted in those facts
02:36:24 <augur> native speakers possess procedural knowledge that is independent of the particulars, and hence they can produce judgments for arbitrary expressions
02:36:43 <Oranjer> 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 <augur> second-language speakers, on the other hand, learn things as facts about particular words or constructions
02:36:59 <Gregor> Oranjer: Yarly
02:37:03 <augur> Oranjer: some of it can, some of it cant.
02:37:12 <augur> we dont actually _understand_ the procedural knowledge, so
02:37:18 <Gregor> 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 <oerjan> yipe
02:38:14 <Gregor> 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 <Gregor> Or is that what you mean tby "eat"
02:38:27 <Gregor> Hahaha
02:38:29 <Gregor> Win.
02:38:34 <augur> ;)
02:38:46 <augur> 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 <Gregor> I like the dagger style :P
02:42:50 <Gregor> Also, you came up with that link in a distressingly short amount of time :P
02:43:22 <augur> google images: "police uniform sex"
02:43:22 <oerjan> you think i just said augur knows his pornography for no reason, do you?
02:43:34 <augur> i know my google-fu, more accurately.
02:43:38 <Gregor> IIRC, that's not HIS pornography :P
02:43:43 <oerjan> OR SO YOU CLAIM
02:43:45 <augur> decidedly not.
02:43:53 <oerjan> sorry, the "his" was a typo
02:44:04 <augur> actually it wasnt
02:44:05 <oerjan> or misremembering, rather
02:44:07 <augur> its just a different his.
02:44:15 <oerjan> argh
02:44:33 <augur> english lets you say "I know my X" to mean "I know a lot about X"
02:44:53 <augur> as opposed to meaning "I know the X that belongs to me"
02:45:07 <augur> similarly for other possessive pronouns.
02:45:16 <Gregor> I was just riffing off the ambiguity :P
02:45:41 * augur riffs off gregor's ambiguity
02:45:43 <augur> ;o ;o ;o
02:46:03 * Gregor rips off augur's ambiguity
02:46:18 <augur> :x
02:46:22 <augur> hot
02:46:32 <Gregor> Did I say "ambiguity"?
02:46:35 <Gregor> I meant "clothes"
02:47:25 <Gregor> Can we go back to English now? X-P
02:47:43 <augur> also consider pied piping
02:48:23 <augur> 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 <augur> but in some cases, you have to do more than just move the preposition along with the WH phrase
02:48:53 <Gregor> Oh pffft.
02:48:58 <Gregor> To consider that bad form is quite outdated.
02:49:09 <augur> true, but it was an example of pied piping
02:49:11 <oerjan> Gregor: hey, i was trying to subtly get us _away_ from English, here. and failing miserably.
02:49:19 <alise> To whom is it that you are speaking?
02:49:21 <augur> where you bring the extra but (the preposition) with you
02:49:27 <augur> but consider
02:49:32 <Gregor> This is the kind of language up with which I cannot put.
02:49:33 <oerjan> hot piping pies
02:49:36 <augur> "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 <augur> "who was john shocked by a book about"
02:49:48 <augur> this is pretty horrible
02:49:59 <augur> and it doesnt get better by pied piping the preposition:
02:50:06 <augur> "about who was john shocked by a book"
02:50:07 <augur> also horrible
02:50:13 <augur> but if you take the whole NP its fine:
02:50:16 <alise> A book about Joan of Arc John was shocked by; to whom it is that you are speaking is John.
02:50:18 <augur> "a book about who shocked john"
02:50:19 <Gregor> Police police police police police police police.
02:50:21 <oerjan> dammit s/hot piping/piping hot/
02:50:26 <alise> Gregor: XD
02:50:35 <alise> Police, in Buffalo
02:50:39 <alise> HAWT BEASTIALITY
02:50:40 <augur> we,, sorry, "a book about who was john shocked by"
02:50:44 <alise> a ni way
02:50:47 <alise> i'ma go now
02:50:53 <alise> see you cool dudes tomorrowz
02:50:58 <augur> alise: see you
02:51:14 -!- alise has quit (Quit: Leaving).
02:51:36 <augur> "john read about about joan of arc"
02:51:52 <augur> =?=> "who did john read a book about"
02:52:08 <augur> =?=> "about who did john read a book"
02:52:20 <oerjan> whomsoever
02:52:22 <augur> =/=> "a book about who did john read"
02:52:40 <augur> so here youve got pied piping that is _bad_
02:53:05 <augur> noone understands this phenomena/on either
02:53:43 <Gregor> The famous Dr. Daniel Noone understands most everything.
02:54:00 <augur> its true
02:55:55 <augur> Daniel Noone is an ancestor of Noonien Soong
02:56:06 <Gregor> Booh hiss at Trek references :P
02:56:16 <augur> you should see this paper im working on
02:56:24 <Gregor> Boo hiss at working on things.
02:56:25 <Gregor> >_>
02:56:34 <augur> my example sentences are all star trek references
02:56:54 <augur> specifically, instead of using the classical example "brutus stabbed caesar", i have "worf stabbed gowron"
02:57:02 <augur> insted of "a small brown dog" its "a small brown targ"
02:57:26 <Gregor> Ow.
02:57:27 <Gregor> My brain.
02:57:30 <Gregor> I needed that for thinking.
02:57:41 <oerjan> thinking is overrated.
02:58:18 <Gregor> Druhhhhhhh
02:58:49 <zzo38> I invented how to make up Pokemon Red on 8x8 ASCII only display with 7 buttons it works fine
02:58:55 <augur> 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 <augur> they actually outline a plot of an episode of some random scifi show
03:00:46 <zzo38> OK, I like that idea a bit
03:00:58 * Gregor sobs silently to himself in the corner.
03:02:06 <augur> 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 <zzo38> seq 100 1100 > /dev/dsp
03:02:24 <augur> e.g. using farscape, babylon 5, firefly, efc, etc.
03:02:27 <augur> less well known scifi
03:02:55 <augur> 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 <augur> and made a new friend
03:03:32 <zzo38> 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 <Gregor> s/friend/stalker/
03:03:43 <augur> its not that hard
03:03:49 <augur> Gregor: theres a difference?
03:03:53 <Gregor> <augur> But gimme a minute!
03:03:58 <Gregor> Damn, you put another line in there.
03:04:01 <Gregor> Ruined my nonsense zinger.'
03:04:07 <augur> :)
03:04:15 <augur> i aims to displease
03:04:31 <Gregor> Basically, you aim to alter net pleasure.
03:04:42 <zzo38> Once I was testing some computer and I typed in: yes > /dev/dsp
03:04:56 * Gregor does that :P
03:05:05 <Gregor> Well that's unpleasant.
03:05:32 <zzo38> You can type yes yyyyyyy to make it lower pitch
03:05:40 <zzo38> The more "y" you add, the low pitch
03:06:38 <augur> is this in bash?
03:06:45 <Gregor> Sure.
03:07:43 <augur> thats useless
03:08:15 <augur> allit does is loop printing yyyyyyy
03:08:16 <augur> :|
03:08:29 <zzo38> But you can put > /dev/dsp
03:08:36 <augur> oh ok
03:08:36 <zzo38> And then it will sound
03:08:54 <augur> permission denied! D:
03:09:01 <augur> whats /dev/dsp
03:09:31 <zzo38> I think you might also be able to use > /dev/audio or | aplay -t raw
03:09:31 <Gregor> 42nd notes. Just calculated that. Friggin' Chopin.
03:09:45 -!- lament has joined.
03:09:55 <augur> ah well, im on a mac so
03:10:13 <Gregor> Dood, they're the 7-tuplets of triplets! WTFWTF *boom*
03:10:15 <zzo38> Use the equivalent mac command, I don't know what it is
03:10:20 <augur> neither do i :D
03:10:34 <Gregor> Doesn't Mac have OSS?
03:10:36 <zzo38> Probably "yes" is the same, though
03:10:44 <augur> Gregor: have you implemented the theory in Generative Theory of Tonal Music yet?
03:11:01 <Gregor> augur: Nope!
03:11:07 <augur> lame
03:11:08 <augur> do so!
03:11:12 <Gregor> augur: I've chosen to implement my fingers onto this piano instead.
03:11:20 <augur> 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 <Sgeo> Would it be entirely wrong to say that a VM is an interpreter for machine code?
04:50:14 <coppro> 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 <alise> Good morning!
13:28:20 <alise> Cool, G(12) > G_64 where G = goodstein function.
13:28:25 -!- Quadrescence has quit (Ping timeout: 245 seconds).
13:28:31 <alise> 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 <alise> http://upload.wikimedia.org/wikipedia/commons/1/15/Champernowne_CF.png the champernowne constant has a pretty fucked up continued fraction
14:07:05 <alise> 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 <oklofok> coool
15:07:43 -!- oerjan has joined.
15:11:26 <alise> wow symbolic differentiation in prolog is like... stupidly fucktardedly easy
15:11:56 <alise> d(X, X, 1).
15:11:57 <alise> d(X, Y, 0) :- \+ X = Y.
15:11:57 <alise> d(U+V, X, A+B) :- d(U,X,A), d(U,V,B).
15:11:57 <alise> d(U*V, X, (U*A) + (V*B)) :- d(V,X,A), d(U,X,B).
15:11:57 <alise> d(U/V, X, (V*A) / (U*B) / (V^2)) :- d(U,X,A), d(V,X,B).
15:11:57 <alise> d(U^V, X, (V*(U^(V-1))) * A) :- d(U,X,A).
15:12:18 <alise> err omit that X,Y,0 line I just added it and it messes things up
15:12:31 <alise> ?- d(x^2, x, R).
15:12:32 <alise> R = 2*x^ (2-1)*1.
15:12:53 <alise> foo(X,R) :- d(X^2,X,E), R is E.
15:12:53 <alise> ?- foo(34, R).
15:12:53 <alise> R = 68.
15:15:48 <oerjan> what's \+ ?
15:16:26 <alise> \+ X succeeds iff X fails
15:16:27 <alise> but ignore that line; it breaks stuff
15:16:27 <alise> I need to condition on X being a symbol
15:16:34 <alise> otherwise every differentiation gets the extra possibility R = 0
15:16:40 <alise> because of what your variables could be
15:16:44 <oerjan> heh
15:16:44 <alise> ?- d(X*Y,Y,X).
15:16:45 <alise> X = 1,
15:16:45 <alise> Y = 1*** ;
15:16:45 <alise> X = ** * 1+** * 1,
15:16:45 <alise> Y = ** * 1+** * 1 ;
15:16:46 <alise> ERROR: Out of local stack
15:16:49 <alise> (where ** represents "anything")
15:16:54 <alise> so 1*** is 1*something
15:17:14 <alise> (i.e. "what values for X and Y make the derivative of X*Y over Y equal to X?")
15:18:00 <alise> 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 <alise> because it's just the tree structure of prolog arithmetic
15:18:41 <oerjan> i think your U^V is wrong
15:18:46 <alise> 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 <oerjan> unless V is a constant
15:19:04 <alise> d(x^x, x, R) otoh will give you the expression
15:19:06 <alise> oerjan: yes...
15:19:12 <alise> I need to figure out how to express is-constant
15:19:26 <alise> oerjan: I think I can express it as: "V does not mention the variable"
15:19:36 <oerjan> no, you just need to use the multivariable chain rule properly :)
15:19:55 <alise> yeah but i'm lazy
15:20:47 <alise> and this is nice and short
15:20:57 <oerjan> d(U^V) = V*(U^(V-1))dU + ln U * U^V * dV
15:21:48 <alise> Fiine.
15:22:17 <alise> oerjan: but log is floating-point in prolog :(
15:22:20 <alise> oh, wait, that's only if you evaluate it
15:22:24 <alise> so the symbolic result will be precise
15:22:28 <alise> ha! this is perfect
15:22:53 <alise> oerjan: I hope that prolog uses the same precedence as your expression
15:22:57 <alise> (I really suck at operator precedence)
15:23:05 <alise> I know I have redundant parens in
15:23:09 <alise> (U*A) + (V*B)
15:23:13 <alise> and I think in (V*A) / (U*B)
15:23:44 <alise> oerjan: that rule broke my system
15:23:58 <alise> you can do d(X^2, X, R)
15:24:01 <alise> but not d(x^2,x,R)
15:24:38 <oerjan> you lack a rule for constants
15:25:18 <oerjan> also, division has a bug, should be (V*A - U*B) / (V^2) iirc
15:25:36 <alise> er right
15:25:39 <alise> i suck at mentally parsing things :(
15:25:54 <oerjan> hm or is that the wrong sign...
15:26:13 <alise> that is right i think
15:26:45 <alise> term_variables(+Term, -List)
15:26:45 <alise> 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 <oerjan> i'm unsure of the order of the terms
15:26:46 <alise> :)))
15:26:47 <alise> that sounds helpful
15:27:08 <alise> oerjan: i just looked it up that's right
15:27:12 <oerjan> ok
15:27:33 <alise> dammit, term_variables only works for UPPERCASES
15:27:42 -!- tombom_ has joined.
15:28:00 <oerjan> well of course, those are the variables, duh
15:29:01 <alise> yes
15:29:05 <alise> but I support differentiation on littles too
15:29:07 <alise> :P
15:29:08 <alise> d(X, Y, R) :- atom(X), \+ X = Y -> R is 0 ; R is 1.
15:29:20 <alise> (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 <alise> so will your ^ rule work now?
15:30:35 <oerjan> 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 <alise> 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 <oerjan> looks right to me
15:36:55 <oerjan> food ->
15:39:30 <alise> oerjan: it works at the expense of totally breaking things
15:39:41 <alise> because I basically have to add the default rule that d(x) = 1
15:42:15 <alise> oerjan: also at the expense of, you know, not actually giving correct results
15:43:24 <oerjan> but you _already_ have d(X,X,1)
15:45:31 <alise> nope
15:45:34 <alise> just changed things:
15:45:40 <alise> constant(X, Y) :- number(X) ; atom(X), \+ X = Y.
15:45:40 <alise> d(X, Y, R) :- constant(X, Y) -> R is 0 ; X = Y -> R is 1.
15:46:05 <alise> ?- d(x^2,x,E).
15:46:05 <alise> E = 2*x^ (2-1)*1+log(x)*x^2*0.
15:46:10 <alise> that *0 is fucking everything up
15:46:16 <alise> paren issue?
15:46:53 <oerjan> um that's correct, that term is supposed to cancel out when the exponent is a constant
15:47:24 <oerjan> (log(x)*x^2*0)
15:47:32 <oerjan> + has lowest precedence
15:49:00 <alise> then how come foo(n,R) = 0 for all n? given
15:49:05 <alise> foo(X,R) :- d(X^2,X,E), R is E.
15:49:09 <alise> or is your rule in addition to the previous one?
15:52:02 <oerjan> what rule
15:52:18 <oerjan> what do you mean by "all n"
15:52:55 <oerjan> if you evaluate foo(3,R), say, then of course you are doing d(3^2, 3, E) which is nonsense
15:53:19 <oerjan> you cannot substitute values until _after_ you have differentiated with a proper variable
15:54:23 <alise> this worked before though :)
15:54:27 <alise> with the other rules you can use uppercase vars too
15:54:58 <oerjan> only by luck. if you differentiated 3*x at x=3 it would break
15:55:53 <alise> hmm, right
15:57:10 -!- FireyFly has joined.
15:57:56 <alise> oerjan: but prolog has no function to substitute lowercase atoms does it?
15:58:44 <oerjan> i don't know, but i'm sure you can write one
15:59:26 <alise> that's a shame though I thought it was so awesome :(
15:59:26 <alise> oerjan: mind -
15:59:29 <oerjan> upper case i more efficient since it's essentially in-place update
15:59:34 <alise> d(X^2,X,E) with no constraints on X (e.g. argument) should work
15:59:40 <alise> it enumerates all the possible input pairs and output expressions
15:59:42 <oerjan> *is
15:59:53 <alise> ?- d(X^2,X,E).
15:59:54 <alise> X = ** ^ 2,
15:59:54 <alise> E = 1 ;
15:59:54 <alise> E = 2*X^ (2-1)*1+log(X)*X^2*0 ;
15:59:54 <alise> X = ** + **,
15:59:55 <alise> E = 2* (** + **)^ (2-1)* (1+1)+log(** + **)* (** + **)^2*0 ;
15:59:57 <alise> X = ** + **,
15:59:58 <alise> E = 2* (** + **)^ (2-1)* (1+ (1+1))+log(** + **)* (** + **)^2*0
16:00:27 <oerjan> eek :D
16:00:46 <alise> oerjan: writing a substitution function probably won't be so easy, as i have to handle variadic stuff
16:00:53 <alise> prolog should just be LOGICALLY CURRIED :)))
16:01:12 <oerjan> also i didn't say there _wasn't_ a function to substitute lowercase atoms, i said i didn't know
16:01:44 <Quadrescence> fuk currying
16:01:49 <alise> oerjan: i looked and couldn't find one
16:02:02 <alise> oh wait, d only ever generates function expressions with two arguments
16:02:03 <alise> convenient
16:02:07 <alise> and the function is always constant
16:03:21 * alise wonders why subst(X, X, Y, Y).
16:03:21 <alise> subst(F(A,B), X, Y, F(A2,B2)) :- subst(A,X,Y,A2), subst(B,X,Y,B2).
16:03:21 <alise> doesn't parse
16:03:23 <alise> the second line in particular
16:03:49 <alise> 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 <oerjan> um why can't you
16:04:47 <alise> because you can't bind X
16:04:47 <alise> or wait
16:04:48 <alise> can you do
16:04:56 <alise> d(X^2, X, E), X is 34, R is E.
16:04:56 <alise> ?
16:05:04 <oerjan> sure
16:05:16 <oerjan> *X = 34
16:05:24 <oerjan> iirc
16:05:28 <alise> hmm problem is that generates the correct result /but/
16:05:43 <alise> then it says it has more terms
16:05:44 <alise> and going on loops
16:05:46 <alise> (trying every other number to see if it's 34)
16:06:40 <oerjan> the problem is d/3 tries to substitute values for X
16:06:42 <alise> apart from that it works
16:06:53 <alise> ah you can just put ! after
16:06:58 <alise> foo(Xv,R) :- d(X^2, X, E), X = Xv, R is rational(E), !.
16:07:28 <alise> ?- foo(pi, R).
16:07:28 <alise> R = 6.28319.
16:07:29 <alise> (I removed the rational())
16:07:39 <alise> still, it seems cleaner to do it with x
16:07:45 <alise> because then we can do more symbolic jiggery-pokery
16:08:43 <alise> still, this is awesome
16:08:49 <alise> imagine how awkward it would be in C :-)
16:09:08 <Quadrescence> alise: Which prolog do you use?
16:09:16 <alise> SWI
16:09:20 <Quadrescence> thought so
16:09:33 <Quadrescence> I might play with prolog a little more today. I haven't in so, so long
16:09:39 <alise> 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 <alise> all the ones that aren't gprolog or SWI just seem really 90s
16:09:49 <alise> (or completely dead)
16:09:55 <alise> (or tied to some stupid platform)
16:10:15 <alise> sisctus is probably fine i've never tried it though
16:10:15 <oerjan> alise: you may want to start with d(X, Y, Z) :- var(X), !, something...
16:11:09 <alise> define something :P
16:11:47 <oerjan> that thing with constant above, perhaps
16:12:01 <alise> so unify the two? or two separate ones?
16:12:09 <alise> if I unify them then d(x,x,E) won't work
16:12:11 <alise> (nor d(x,y,E)
16:12:11 <alise> )
16:12:31 <alise> anyway constant(X, _) always fails if X is a var
16:12:34 <alise> because X is neither a number nor an atom
16:13:00 <oerjan> alise: well rewrite the case anyway, the point is _not_ to substitute the first argument ever
16:13:10 <alise> d(X, Y, A) :- var(X), !, X = Y -> A = 1.
16:13:11 <alise> d(X, Y, A) :- constant(X, Y) -> A = 0 ; X = Y -> A = 1.
16:13:14 <alise> is that acceptable?
16:13:23 <alise> i mean I'm not quite sure what you want it to do
16:13:31 <oerjan> oh hm
16:13:40 <oerjan> well i guess
16:13:58 <alise> constant(X, Y) :- number(X) ; atom(X), X \= Y.
16:14:01 <alise> is this the function at risk of substituting?
16:14:43 <oerjan> the risk of substituting is in _all_ the d clauses for specific functions
16:15:03 <alise> i see
16:15:03 <oerjan> whenever you pass an (upper case) variable as the first argument
16:15:09 <alise> but I'm stil not sure what you want me to do!!
16:15:11 <alise> *still
16:15:40 <oerjan> 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 <alise> yes -- but specially how?
16:16:09 <Deewiant> Cutting is lame
16:16:12 <alise> do you want to break that d(X^2, X, E) generates all the possible in/out pairs?
16:16:16 <alise> if so, I hate you and all your children
16:16:33 <oerjan> oh in that case move along, nothing to see here :D
16:16:42 <Deewiant> :-D
16:16:42 <oerjan> i thought that was a bug
16:17:34 <alise> lol
16:17:37 <alise> no that's awesome
16:17:52 <alise> I still need to figure out how to write
16:17:54 <alise> subst(F(A,B),...
16:17:57 <alise> without syntax erroring
16:18:33 <oerjan> there is a predicate for breaking up terms into head + list of arguments
16:18:44 <alise> but you can't pattern match?
16:18:45 <alise> super fucking lame :(
16:18:55 <alise> anyway oerjan since when are you a prologer?
16:19:10 <oerjan> very barely
16:19:21 <Gregor> "very barely" is not a time.
16:19:42 <oerjan> although for a long time i guess. i'm not quite sure, may have been already in high school
16:19:55 <pikhq> Gregor: It is very barely a time.
16:20:08 <oerjan> (that i found a book on it. i'm pretty sure i didn't have an actual implementation)
16:21:18 <alise> 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 <alise> widely felt my ass
16:21:26 <alise> (LULZ INNUENDO)
16:23:42 <Gregor> Why Father Widely ... whyyyyyy
16:23:48 <alise> :D
16:23:58 <alise> oerjan: hmm I dislike your exponential rule because there is no precise evaluation for log in Prolog
16:24:03 <alise> because it has no precise irrational type
16:24:15 <alise> maybe I should reinstate my other one only for the case where V is constant
16:24:55 <oerjan> perhaps.
16:26:25 <alise> or just accept that the world is imprecise
16:27:01 <alise> aha
16:27:05 <alise> Term =.. [Funtor|Args]
16:27:08 <alise> *Functor
16:28:57 <alise> ?- subst(x^(x-x), x, y, R).
16:28:57 <alise> R = y^ (y-y) ;
16:28:57 <alise> false.
16:28:57 <alise> yay hooray
16:29:07 -!- MigoMipo has joined.
16:30:52 <alise> ?- subst(2*(x-y) + 0, x, flower, E).
16:30:52 <alise> E = 2* (flower-y)+0 ;
16:30:52 <alise> false.
16:30:52 <alise> ?- subst(2*(x-y) + 0 + (x*log(x/y)), x, flower, E).
16:30:52 <alise> false.
16:30:56 <alise> ok, so I need to handle single arg functions too :P
16:32:03 <alise> 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 <alise> I was hoping it'd be something awesome, like
16:36:48 <alise> member(X, L), Y is X+1, assert(member(Y, L2))
16:36:51 <Sgeo> A YouTube video that I left in a tab overnight spontaneously decided to start playing
16:42:35 <alise> oerjan: is it healthy to try and remove "foo ; false" things?
16:42:36 <alise> like you get the one right result then a false
16:42:42 <alise> I'm trying to change my code to stop it
16:44:30 <oerjan> um
16:45:55 <oerjan> i don't know whether that is possible.
16:46:31 <alise> it is if you fuck with your code a lot :D
16:46:32 <alise> "I've tried to teach people autodidactism, but I've realized they have to learn it for themselves." --shapr
16:46:44 <oerjan> false is what afaiu what you get when there _are_ no more results
16:47:04 <alise> oerjan: well yeah
16:47:16 <alise> but i mean if you tweak your program so that prolog thinks that there cannot be any more results
16:47:18 <alise> (as opposed to maybe there might be)
16:47:20 <alise> it doesn't bother to prompt
16:47:23 <alise> so you get no falses
16:47:30 <oerjan> oh.
16:47:41 <oerjan> well i guess that's just a matter of adding cuts...
16:48:27 <alise> yeah :P
16:49:16 <oerjan> but then you need to be careful not to ruin your actual wanted multiple results
16:49:27 <alise> yeah
16:49:38 <alise> urgh, i shouldn't have defined a map function
16:49:40 <alise> bugs everywhere
16:49:44 <alise> how am i meant to dooo this
16:49:48 <alise> manually recursive function?#
16:50:20 <oerjan> i don't know
16:51:48 <alise> ?- d(x^2, x, E), subst(E, x, 42, E2), R is E2.
16:51:49 <alise> E = 2*x^ (2-1)*1+log(x)*x^2*0,
16:51:50 <alise> E2 = 2*42^ (2-1)*1+log(42)*42^2*0,
16:51:50 <alise> R = 84.0 ;
16:51:50 <alise> false.
16:51:50 <alise> yay!
16:52:03 <alise> this is beautiful
16:52:25 <Sgeo> Making an Algebra system in Prolog?
16:52:52 <alise> well
16:52:52 <alise> i just implemented differentiation :P
16:52:53 <alise> but yeah i suppose i might do that
16:53:19 <alise> constant(X, Y) :- number(X) ; atom(X), X \= Y.
16:53:21 <alise> d(X, Y, A) :- constant(X, Y) -> A = 0 ; X = Y -> A = 1.
16:53:21 <alise> d(U+V, X, A+B) :- d(U,X,A), d(U,V,B).
16:53:21 <alise> d(U*V, X, (U*A) + (V*B)) :- d(V,X,A), d(U,X,B).
16:53:21 <alise> d(U/V, X, (V*A - U*B) / (V^2)) :- d(U,X,A), d(V,X,B).
16:53:22 <alise> 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 <Quadrescence> alise: can I see your diff program?
16:53:28 <Quadrescence> is that it?
16:53:29 <alise> Quadrescence: yes, see above :P
16:53:30 <alise> yes
16:53:50 <Quadrescence> is subst() a predefined func?
16:53:55 <alise> ?- d(x^(x/2), x, E).
16:53:55 <alise> E = x/2*x^ (x/2-1)*1+log(x)*x^ (x/2)* ((2*1-x*0)/2^2).
16:54:02 <alise> Quadrescence: it doesn't handle functions other than those enumerated so it's not "production ready"
16:54:05 <alise> i'll show the whole file
16:55:40 <alise> http://pastie.org/912899.txt?key=f9lcfe9rul5yb1kzk4czg
16:55:48 <alise> if you evaluate symbolically like in foo2, the only cuts you need are the two in subst
16:55:57 <alise> (otherwise everything has one more potential result which always fails)
16:56:00 <alise> that's just aesthetics though
16:56:06 <alise> more convenient when using the REPL
16:56:10 <alise> for foo you really do need the ! though
16:56:18 <alise> otherwise it loops forever trying every number and failing because it isn't Xv :-)
16:57:12 <alise> Quadrescence: you can also use this procedure to do a (really crappy) "search" for derivatives:
16:57:13 <alise> ?- d(X*Y, X, Y).
16:57:14 <alise> X = ** * 1,
16:57:14 <alise> Y = 1 ;
16:57:14 <alise> X = ** * 1+** * 1,
16:57:14 <alise> Y = ** * 1+** * 1 ;
16:57:15 <alise> ERROR: Out of local stack
16:57:26 <alise> (** meaning "anything that follows the rules of the function", I think)
16:57:45 <alise> 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 <alise> still, despite its flaws i think it shows just how awesomely awesome prolog is
16:58:55 <alise> 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 <alise> also it makes some assumptions...
17:00:11 <alise> ?- d(x/x, x, E).
17:00:12 <alise> E = (x*1-x*1)/x^2.
17:00:15 <alise> like x is not 0
17:00:48 <Quadrescence> alise: Yeah, I am aware, jeez what do you take me for, sum kinda idoit???
17:00:54 <alise> and really there should be a simplification function so that it says things like "-1" instead of "(x*0-1*1)"
17:01:00 <alise> Quadrescence: aware of what?
17:01:40 <Quadrescence> alise: idk
17:01:44 <alise> okay :P
17:02:10 -!- Alex3012 has quit (Ping timeout: 245 seconds).
17:03:48 -!- Alex3012 has joined.
17:04:03 <Gregor> He's Alex ...
17:04:05 <Gregor> FROM THE FUTURE
17:04:11 <Gregor> (1002 years in the future)
17:04:42 <alise> Dun dun DUNNNNNNNNNNN
17:04:53 <oerjan> he's come here to investigate why civilization collapsed
17:05:36 <oerjan> unfortunately the people in 3012 don't understand cosmic irony
17:06:06 <Gregor> It takes more than 1000 years to rediscover cosmic irony.
17:06:13 <oerjan> yeah
17:06:32 <Gregor> (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 <oerjan> 1003 years to be exact.
17:07:39 <oerjan> Gregor: depends how deep the apocalypse
17:08:23 <Gregor> I don't know that I've ever heard apocalypi described in terms of depth ...
17:09:06 <oerjan> well you need to remove all knowledge that could be used to rebuild civilization fast...
17:11:35 <alise> `addquote <Gregor> I don't know that I've ever heard apocalypi described in terms of depth ...
17:11:50 <HackEgo> 146|<Gregor> I don't know that I've ever heard apocalypi described in terms of depth ...
17:14:55 <alise> [[ 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 <alise> [[ 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 <alise> this is the best page about basic quantifiers ever
17:17:18 -!- oerjan has quit (Quit: leaving).
17:28:15 <alise> ?- d(x^x^x,x,E), subst(E, x, 42, E2), R is E2.
17:28:16 <alise> ERROR: Out of global stack
17:28:17 <alise> a deficiency
17:29:04 <alise> although that's just in is
17:29:15 <alise> so you could fix it by substituting, e.g. something better at arithmetic :P
17:29:25 <alise> (given a few dozen oodles of memory naturally)
17:29:33 <alise> still stack overflows suck
17:30:38 <alise> (other operations merely cause overflow)
17:56:28 -!- Tritonio_GR has quit (Quit: Leaving.).
18:00:19 <alise> oh lol ** doesn't mean anything
18:00:22 <alise> it means infinite :D
18:00:29 <alise> nesting
18:04:59 -!- oerjan has joined.
18:05:26 <alise> heh, zeilbeger would so approve of using prolog to do stuff
18:05:44 <alise> it's proved if you ran "seq(N), \+ prop(N)" for a while and it hasn't spit out a counterexample
18:14:03 <alise> oerjan: apparently var(X) is very unsound
18:14:04 <alise> logic-wise
18:14:22 <alise> and \+ plus copy_term/2 plus ! can express var/1
18:14:34 <alise> so cut really is quite insidious...
18:14:40 <oerjan> yeah
18:15:29 <alise> quite obvious really (that var/1 is unsound; \+/1, copy_term/2 and !/0 doing var/1 is new to me)
18:15:40 <alise> foo(X) :- var(X), X=1, then foo(X): X = 1, but foo(1) fails
18:15:52 <alise> although
18:15:53 <oerjan> why would you need copy_term...
18:15:58 <alise> oerjan: i don't know, but oleg said it
18:16:05 <alise> are you going to question oleg?
18:16:11 <alise> "With var/1, logic programming becomes programming in inconsistent logic." <-- well prolog /is/ turing complete...
18:16:19 <alise> 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 <alise> vr(X) :- \+ \+ (X=0), \+ \+ (X=1).
18:16:22 <alise> oh
18:16:24 <alise> oerjan: i see
18:16:26 <alise> \+/1
18:16:26 <alise> OR
18:16:28 <alise> copy_term/2
18:16:29 <alise> OR
18:16:30 <alise> !/0
18:16:34 <alise> can all express var/1 on their own
18:16:37 <alise> now THAT is scary!
18:16:51 <oerjan> well i knew \+ could be expressed with ! and fail
18:17:06 <alise> 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 <alise> vr(X) :- \+ \+ (X=0), \+ \+ (X=1).
18:17:08 <alise> 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 <alise> 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 <oerjan> \+ X :- X, !, fail.
18:17:15 <alise> so basically negation makes prolog consistent
18:17:16 <alise> hah!
18:17:20 <oerjan> \+ X .
18:17:49 <alise> and what use is prolog without negation...
18:17:51 <alise> ok, some use, but not that much
18:18:39 <alise> and yeah fail can express it
18:18:54 <alise> oerjan: you do not even need ! I think?
18:18:57 <alise> nt(X) :- X -> fail ; true.
18:19:04 <alise> so basically I'm learning that 99% of prolog is inconsistent
18:19:11 <Sgeo> What's terrible about expressing var/1 on one line?
18:19:20 <alise> Sgeo: var/1 makes prolog's logic inconsistent
18:19:27 <Sgeo> Oh
18:19:31 <alise> 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 <alise> ?- foo(X).
18:19:32 <alise> X = 1
18:19:32 <alise> Yes
18:19:32 <alise> ?- foo(1).
18:19:34 <alise> No
18:19:36 <alise> 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 <alise> 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 <alise> vr(X) :- copy_term(X,0), copy_term(X,1).
18:19:56 <alise> Finally, cut, by itself expresses var/1:
18:19:56 <alise> noteq(X,X) :- !, fail.
18:19:56 <alise> noteq(_,_).
18:19:56 <alise> vr(X) :- (noteq(X,0), !, fail); (noteq(X,1), !, fail); true.
18:19:59 <Sgeo> What does var do?
18:20:44 <alise> var(X) succeeds iff X is a free variable; X remains unbound
18:20:47 <alise> so e.g. var(X) but not var(1)
18:20:53 <oerjan> alise: -> ; can be defined with ! as well. i sort of think of ! and fail as more primitive.
18:20:56 <alise> which lets us distinguish whether we're searching for instances of X
18:20:59 <alise> or checking if 1 satisfies it
18:21:02 <alise> in foo(X) :- ...
18:21:03 <alise> oerjan: true
18:21:13 <Sgeo> That.. doesn't sound that useful
18:21:14 <alise> I've just been tihnking of -> and ; as language constructs
18:21:15 <alise> *thinking
18:21:54 <Sgeo> 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 <oklofok> ais523: brain ping
18:22:15 <alise> Sgeo: it's basically for practical purposes
18:22:27 <alise> like, you want to avoid pathological really-high-complexity behaviours
18:22:35 <alise> when prolog tries searching
18:33:02 <alise> so now I'm on a prolog kick :P
18:33:22 <Deewiant> prolog-funge?
18:39:52 <alise> Deewiant: I considered that momentarily: but the slowness would be unbelievable.
18:40:03 <alise> And, besides, it's not really suited for that.
18:40:11 <alise> You never solve any constraint problems in Befunge.
18:41:11 <Deewiant> So how's the ml-funge doing
18:43:07 <alise> It turns out I only work on things that take my fancy at this very second :)
18:43:33 <Deewiant> Bah :-P
18:43:47 <alise> Deewiant: Well, hey, give me motivation. :P
18:45:12 <Deewiant> You get to beat AnMaster at speed? I don't know.
18:46:01 <alise> Deewiant: You did that with D, and Tango at that.
18:46:11 <alise> And Tango is possibly the worst code ever.
18:46:19 <alise> No challenge at all :)
18:46:34 <Deewiant> Tango is pretty good IMO
18:46:50 <Deewiant> The issues are mostly in the GC (which does not originate in Tango)
18:47:13 <Deewiant> 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 <alise> 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 <alise> say I'm given foo/1, could I say foo-is-a-predicate-with-arity-1?
19:42:17 <alise> like as a test
19:42:27 <alise> ispredicate(X) :- predwitharity(X, 1)
19:42:53 <oerjan> ("barely", he said)
19:43:26 <oerjan> i distinctly recall SWI had an index
19:43:27 -!- coppro has joined.
19:43:46 <oerjan> and predicates organized by subject
19:44:58 <alise> yeah but it's hopeless to look up :)
19:45:07 <alise> 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 <oerjan> 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 <oerjan> alise: ^
19:57:29 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
19:57:35 <alise> find(x) := { ircsay("oerjan: " x "?"); awaitreply() }
19:57:55 <alise> i actually stumbled upon that page before though :-D
19:58:05 <alise> though i don't see that it has what i want?
19:58:17 <oerjan> current_predicate?
19:58:35 <alise> ah
19:58:37 <alise> current_functor
19:58:43 <alise> oh, predicate would work better
19:59:04 <alise> so:
19:59:13 <alise> current_predicate(X/N), current_functor(X, 1).
19:59:14 <alise> well
19:59:15 <alise> X/1
19:59:37 <alise> oh, then current_functor is redundant
19:59:57 <oerjan> you'd think
20:00:21 <alise> ?- forall(predicate_, P, forall(empty, X, call(P,X))).
20:00:21 <alise> true.
20:00:39 <alise> forall P:A=>Prop : forall X:Empty : P X
20:00:47 <alise> where empty(_) :- fail.
20:00:51 <alise> predicate_(X) :- current_predicate(X/1).
20:00:52 <alise> and
20:00:55 <alise> forall(S,X,P) :- \+ (call(S,X), \+ call(P)).
20:01:22 <alise> 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 <alise> then:
20:01:41 <alise> ?- forall(predicate_(P), forall(empty(X), call(P,X))).
20:01:42 <alise> true.
20:03:10 <alise> nice that we have such reasoning tools in a "dumb" constraint solver
20:03:37 <AnMaster> 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 <alise> hmm wait isn't forall(S,X,P) :- \+ (call(S,X), \+ call(P)). exists
20:04:02 <Deewiant> AnMaster: Maybe make a release?
20:04:21 <AnMaster> Deewiant, no time currently. I don't think I will make one very soon.
20:04:32 <AnMaster> messing around with sf.net, freshmeat and so on takes some time
20:06:09 <AnMaster> Deewiant, does fungicide test stack stack begin/end much? If not that might be interesting
20:06:21 <alise> (forall x, P) = (~exists x, ~P), so if \+ (call(S,X), \+ call(P)) is exists x:S, P
20:06:24 <alise> then forall is...
20:06:33 <alise> \+ \+ (call(S,X), \+ \+ call(P))
20:06:56 <alise> 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 <alise> maybe i should just use forall
20:07:43 <AnMaster> 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 <Deewiant> How much more?
20:08:45 <AnMaster> Deewiant, it is due to larger constant basically. For large number of threads it is insignificant
20:09:00 <alise> wait no
20:09:03 <alise> \+ (call(S,X), \+ call(P))
20:09:03 <Deewiant> How much more?
20:09:04 <alise> is right
20:09:10 <alise> "there is no example of S such that not-P"
20:09:15 <AnMaster> but I think it may hit 500 kB extra due to creating a pool to allocate from
20:09:19 <AnMaster> something around that size
20:09:43 <AnMaster> plus a small increase since it uses pointers. So 4 or 8 bytes extra per IP
20:09:48 <AnMaster> depending on pointer size
20:09:51 <alise> ?- forall(empty, X, (X, \+ X)).
20:09:51 <alise> true.
20:09:52 <Deewiant> You haven't even measured the difference and you're making it a compile-time optional optimization? Sigh...
20:09:52 <alise> heyhey, it works
20:10:09 <AnMaster> Deewiant, I have measured it. I just don't remember the values off the top of my head
20:10:24 <Deewiant> In any case, less than a megabyte...
20:10:40 <alise> I would love to see AnMaster's perfect OS. Actually, no, I really wouldn't
20:10:41 <Deewiant> Seems pointless to leave it an option
20:10:43 <alise> s/$/./
20:11:07 <AnMaster> 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 <alise> hmm well
20:11:28 <AnMaster> used life.bf to test with
20:11:38 <AnMaster> ~20% slowdown
20:11:49 <alise> (\+ \+ foo(X)) is exists X such that foo(X)
20:11:55 <alise> example,
20:11:58 <alise> exists_true(X) :- bool(X), X.
20:11:59 <Deewiant> 20% for one bigger memory allocation? Makes no sense
20:12:01 <AnMaster> Deewiant, on my core 2 duo it wasn't measurably slower for life.bf
20:12:11 <alise> \+ \+ \+ \+ foo(X) = forall foo(X) then :-)
20:12:16 <AnMaster> Deewiant, correct, but I suspect cache effects
20:12:40 <alise> which doesn't work
20:12:45 <alise> eh what I have works
20:12:50 <AnMaster> Deewiant, since it wasn't measurable on a core 2 duo, some cache or branch prediction effect seems likely
20:12:58 <Deewiant> If you're worried about old small-cache processors lump it in some kind of EMBEDDED_SETTINGS :-P
20:13:14 <AnMaster> Deewiant, well, my desktop is still a sempron
20:14:08 <AnMaster> 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 <AnMaster> cache sizes are: Sempron: 128 kB, Pentium 3: 256 kB, Core 2 Duo: 3072 kB
20:15:03 <AnMaster> that is according to /proc/cpuinfo
20:15:11 <AnMaster> I don't know if the last one is per-core or not
20:15:24 <AnMaster> there is one such line for each core, so it may be
20:16:10 <Deewiant> I don't think it is
20:16:22 <AnMaster> 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 <AnMaster> does pentium 3 even do branch prediction?
20:17:41 <Deewiant> The original Pentium did branch prediction
20:18:02 <AnMaster> 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 <AnMaster> perhaps it's predictor is cruder
20:19:03 <Deewiant> 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 <AnMaster> Deewiant, alas I don't have one any more. One day it's heat sink wasn't enough
20:19:30 <AnMaster> it was *charred* when I opened the case.
20:19:36 <Deewiant> :-)
20:23:02 -!- augur has joined.
20:23:57 <Gregor> http://www.youtube.com/watch?v=DQV8jUpjRm0 MINDRAPE TIME
20:25:44 <AnMaster> anyway another good reason to make the new one an option is that it isn't as well tested yet.
20:26:53 <AnMaster> 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 <AnMaster> also perhaps a {-rep-}-rep that is {{{{{{{ ... }}}}}}}
20:27:39 <AnMaster> like y-rep-n I guess
20:29:09 <AnMaster> 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 <AnMaster> 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 <alise> oerjan: whoa
20:31:32 <alise> oerjan: my differentiator integrates too
20:31:41 <alise> well sort of...
20:31:47 <alise> ?- d(E, x, x*0+2*1).
20:31:48 <alise> E = x*2 ;
20:31:48 <alise> false.
20:31:48 <alise> ?- d(E, x, 2).
20:31:48 <alise> false.
20:31:49 <AnMaster> (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 <oerjan> i expect that to be rather unreliable :D
20:32:17 <alise> oerjan: naturally; it will only accept inputs in the exact form that it outputs
20:32:19 <AnMaster> oerjan, ?
20:32:27 <AnMaster> oerjan, who was that to?
20:32:31 <alise> me
20:32:37 <oerjan> YOU WILL NEVER KNOW
20:32:42 <oerjan> darn
20:32:50 <AnMaster> oh alise I expect.
20:33:05 <oerjan> NO ONE EXPECTS ALISE
20:33:16 <AnMaster> heh
20:33:32 <AnMaster> oerjan, nice monty python reference.
20:33:46 <oerjan> LIES
20:33:59 -!- Alex3012_ has joined.
20:34:22 <alise> ?- d(E, x, 1/x*x^ (1/x-1)*1+log(x)*x^ (1/x)* ((x*0-1*1)/x^2)).
20:34:23 <alise> E = x^ (1/x).
20:34:24 <alise> JUST LIKE A MAGIC
20:35:06 <AnMaster> 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 <AnMaster> rcfunge2 is even harder to see
20:35:30 <oerjan> he wanted the graphs to be dashing, obviously
20:35:35 <AnMaster> oerjan, hah
20:36:45 -!- Alex3012 has quit (Ping timeout: 276 seconds).
20:36:47 -!- Alex3012_ has changed nick to Alex3012.
20:38:28 <Deewiant> AnMaster: Because previously some lines were identical
20:38:41 <AnMaster> hm
20:38:47 <AnMaster> Deewiant, select more visible colours then?
20:38:57 <Deewiant> I do not select the colours, gnuplot does
20:39:07 * alise adds - differentiation
20:39:30 <alise> d(U+V, X, A+B) :- d(U,X,A), d(U,V,B).
20:39:30 <alise> whoops, spot the bug
20:39:40 <AnMaster> 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 <AnMaster> which may cause the default to be suboptimial
20:39:52 <Deewiant> AFAIK I can't
20:40:11 <Deewiant> 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 <AnMaster> gnuplot> help colornames
20:40:23 <AnMaster> [...]
20:40:26 <AnMaster> See `set palette`, `linestyle`.
20:40:46 <AnMaster> Deewiant, seems you can.
20:41:03 <Deewiant> Set palette looks complicated.
20:41:34 <AnMaster> Deewiant, so it does
20:42:18 <AnMaster> 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 <AnMaster> 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 <AnMaster> but the current colours are piss poor.
20:45:52 <Deewiant> 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 <AnMaster> Deewiant, hm.
20:46:22 <AnMaster> Deewiant, you could do sed for svg too
20:46:24 <Deewiant> Do you have issues with other colours than the cyan? :-P
20:46:56 <AnMaster> Deewiant, well, the one for rcfunge2 is even worse than the one for cfunge-32,
20:47:42 <AnMaster> Deewiant, plots/horizontal-p.b98/10000000/line-memtime.svg show some rcfunge-like effects for ccbi2 it seems? Any idea why?
20:47:43 <Deewiant> Ah right, that yellow.
20:47:56 <AnMaster> Deewiant, no rcfunge1 is yellow
20:48:12 <AnMaster> Deewiant, stinkhorn is quite bad too
20:48:17 <AnMaster> the colour I mean
20:48:26 <Deewiant> Right, that yellow is the one I meant.
20:48:39 <Deewiant> IMO the rcfunge2 one is fine
20:48:47 <AnMaster> but yeah: cfunge-32, rcfunge2 and stinkhorn are near invisible. (well not rcfunge2 when it goes up/down/up/down)
20:49:06 <Deewiant> I can see rcfunge2 very clearly :-P
20:49:06 <AnMaster> Deewiant, this is on my desktop display
20:49:09 <AnMaster> let me try my laptop
20:49:16 <AnMaster> it has worse colour reproduction
20:49:19 <Deewiant> But yes, monitors and eyes vary so meh
20:49:40 <AnMaster> well depends on angle of viewing
20:49:50 <AnMaster> my desktop monitor has pretty wide viewing angle
20:49:53 <Deewiant> That too, yes
20:49:56 <AnMaster> much wider than my laptop
20:50:16 <Deewiant> All in all colours in SVGs should be selectable by the web browser just like they are for text :-P
20:50:31 <AnMaster> Lenovo didn't waste money on two things at least: the built in speakers and the screen
20:50:47 <AnMaster> Deewiant, eh?
20:51:10 <Deewiant> text in HTML*
20:51:13 <AnMaster> Deewiant, oh btw, that red of ccbi1 is of varying width on my laptop
20:51:17 <AnMaster> unlike on my desktop
20:51:38 <AnMaster> as in, it is thinner when it goes horizontally than when it climbs
20:51:53 <alise> http://pastie.org/913291.txt?key=lbuqu2b1boebwbep7707iq woot
20:51:58 <alise> what fun toys.
20:52:00 <AnMaster> Deewiant, could be due to higher DPI in the laptop perhaps?
20:52:04 <alise> well, toy, singular.
20:52:05 <AnMaster> Deewiant, or older firefox
20:52:22 <Deewiant> AnMaster: It looks such here. Don't know why, don't really care.
20:52:25 <alise> oh, look: foo no longer works.
20:52:28 <alise> I don't really care, though
20:52:36 <AnMaster> Deewiant, hm
20:52:58 <alise> http://pastie.org/913294.txt?key=mef5jrherk5iytbbn98kyg
20:53:11 <AnMaster> 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 <AnMaster> (I assume you use the gc in some parts still?)
20:55:07 <AnMaster> 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 <AnMaster> both cut off way below that
20:55:21 <Deewiant> Have you read the rankings page?
20:55:21 <AnMaster> seems unfair :/
20:55:31 <AnMaster> Deewiant, yes but I don't remember anything about that bit
20:55:36 <Deewiant> Read it again.
20:57:48 <alise> yay my derivative works for a complex expression... well
20:57:51 <alise> with a large margin of error
20:58:04 <alise> 3015981 ~= 3.01298e+06
20:58:09 <AnMaster> 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 <AnMaster> s/-$/./
20:58:40 <AnMaster> Deewiant, like the last table at http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/horizontal-p.b98.html
20:58:41 <Deewiant> Right, it's under "Measurements" on the Fungicide page
20:59:03 <AnMaster> Deewiant, you said the *rankings* page just a few lines ago
20:59:10 <AnMaster> not odd I couldn't find it then
20:59:22 <Deewiant> Yes, my mistake
21:00:11 <AnMaster> "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 <Deewiant> Yes and?
21:00:32 <AnMaster> eh, why only the disarcd-run for that. Why not for the larger sizes too?
21:00:39 <Deewiant> Because it'd take forever
21:00:58 <AnMaster> Deewiant, did that discarded run change the timing at all btw?
21:01:01 <Deewiant> If it takes 3 hours to run I'm not going to run it three times just to watch it timeout
21:01:03 <AnMaster> timings*
21:01:23 <Deewiant> Maybe a bit
21:01:31 <Deewiant> Can't remember, may not've looked at it
21:02:28 <AnMaster> should have tested that before IMO. Seems silly to do it without any indication of that it is actually needed ;P
21:03:17 <Deewiant> It seems sensible since there are likely some cache effects due to the memory-measuring process
21:03:21 <AnMaster> 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 <Deewiant> I decided to it before finding out that some things take eons to run
21:04:12 <AnMaster> hah
21:04:15 -!- lament has joined.
21:04:21 <Deewiant> So then I dropped it for the longer times
21:04:33 <Deewiant> Why is there porn in the /topic, by the way?
21:04:46 <AnMaster> weird
21:04:48 <Gregor> Why would there ever not be?
21:05:01 <AnMaster> Deewiant, well that would be ccbi1, rcfunge, language-befunge and pyfunge?
21:05:03 <Deewiant> I don't know, it just hasn't always been there
21:05:07 <AnMaster> (not the pron, no)
21:05:26 <AnMaster> I guess stinkhorn for the y stuff too
21:05:29 <Gregor> It's either my fault or augur's fault :P
21:05:35 <Deewiant> It's augur's
21:07:41 <Deewiant> AnMaster: Re. the jittery memory allocation it could even be seeing something in the middle of a realloc
21:08:10 <Deewiant> But no, can't obviously say for sure what it's about
21:08:41 <alise> if I use cut to stop my program erroring, that's bad isn't it :-)
21:08:56 <alise> augur put the pornographic material in the topic in response to the fuck the police
21:09:43 <AnMaster> Deewiant, true
21:09:54 <Deewiant> 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 <alise> :-)
21:10:39 <AnMaster> (after all there are minors in here)
21:10:53 <oerjan> poor innocent minors
21:11:10 <oerjan> http://pastie.org/913294.txt?key=mef5jrherk5iytbbn98kyg
21:11:11 <AnMaster> (yes I saw that about moral police, I saw the irony in that before I did the topic change)
21:11:20 <oerjan> whoops
21:11:27 <AnMaster> oerjan, yes, like ehird. Very innocent.
21:11:36 <AnMaster> oerjan, what was that?
21:11:45 <oerjan> accidental right click
21:11:50 <AnMaster> it looks more like ehird's coding style to me
21:11:58 <AnMaster> oerjan, *right* click? Not middle click?
21:12:11 <oerjan> it's what putty uses
21:12:23 <AnMaster> oerjan, you can change that in the putty settings
21:12:28 <AnMaster> to be the usual middle for paste
21:12:50 <Gregor> See, but it's my fault because I put "(pics or it didn't happen)" there :P
21:12:59 <alise> oerjan: wait what did you change?
21:13:00 <alise> oh
21:13:07 <AnMaster> oerjan, I always found anything else confusing back when I used putty
21:13:10 <alise> AnMaster: how does it look like my coding style?
21:13:14 <alise> it's how you're meant to write prolog
21:13:16 <oerjan> i don't have a middle button. in fact i don't even have a mouse here
21:13:33 <AnMaster> oerjan, what then do you have without three buttons?
21:13:48 <AnMaster> can't be a laptop, they have three buttons too nowdays don't they?
21:13:49 <oerjan> a trackpad
21:14:24 <AnMaster> 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 <AnMaster> never noticed that before
21:14:34 -!- augur has quit (Ping timeout: 264 seconds).
21:14:36 <alise> middle /mouse/ button
21:14:49 <AnMaster> I guess it is because I hardly ever use the touchpoint
21:14:49 <alise> AnMaster: so how is it my coding style :))
21:14:52 <AnMaster> err
21:14:56 <AnMaster> touchpad
21:15:03 <AnMaster> that was an interesting mix up of the words
21:16:25 -!- Alex3012 has quit (Ping timeout: 265 seconds).
21:16:29 <AnMaster> 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 <alise> oh i remember
21:16:52 <alise> because of all those... "personal attacks"
21:16:56 <AnMaster> 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 <AnMaster> :)
21:17:09 <alise> doesn't speak so much? Because I'm fucking imprisoned monday-to-friday?
21:17:15 <alise> You complete and utter asshole.
21:17:30 <alise> And the obligatory condescending smiley face...
21:17:39 <alise> what a fucktard.
21:17:55 <AnMaster> Deewiant, btw, it looks like nothing hit the memory limit. Is that correct?
21:17:59 <Deewiant> alise: You've only been ignored since yesterday, so it seems he's talking about today.
21:18:14 <Deewiant> AnMaster: IIRC yes
21:18:40 <alise> Deewiant: "He doesn't seem to speak so much nowadays" -- that seems more like a general statement to me.
21:18:51 <AnMaster> Deewiant, I wonder if with longer timeout, ccbi1 might have hit it.
21:19:04 <Deewiant> alise: Maybe, but the half convo thing could only happen today.
21:19:07 <alise> Not that I am particularly interested in discussing the broken reasoning of an idiotic asshole.
21:19:15 <alise> Deewiant: Well, you only get half-convo things if I'm actually there to talk.
21:19:16 <Deewiant> AnMaster: Of course with longer timeout a lot of things could've hit it :-P
21:19:18 <alise> Less me, less half-convos.
21:19:21 <alise> Less issue with ignoring me.
21:19:24 <alise> That is how I parsed it.
21:19:34 <AnMaster> Deewiant, well, only those who ended due to timeout obviously
21:19:52 <AnMaster> did a lot of things do that? The graph on the main page shows them as non-completed doesn't it?
21:20:28 <Deewiant> Yes.
21:21:02 <AnMaster> hm
21:21:29 <AnMaster> 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 <AnMaster> but not from the table below where it says it ran 74
21:22:07 <Deewiant> There's a "maximum time" column, you know
21:22:09 <AnMaster> Deewiant, which one is wrong, or alternatively: why are they different?
21:22:18 <Deewiant> And "ran" is described immediately above the table
21:22:21 <AnMaster> Deewiant, what is time ratio btw?
21:22:39 <Deewiant> Ratio to minimum; I was hoping that was obvious
21:22:44 <AnMaster> Deewiant, and why are there multiple time ratio columns?
21:22:55 <Deewiant> I was hoping that was obvious too; one for total, one for max
21:23:02 <AnMaster> Deewiant, well it wasn't
21:23:11 <AnMaster> perhaps wider lines between to group them+
21:23:14 <AnMaster> s/+/?/
21:24:02 <AnMaster> Deewiant, shouldn't total time say timeout as well?
21:24:18 <Deewiant> No, it just adds the timeout value
21:24:27 <Deewiant> So that they can still be compared
21:24:35 <AnMaster> hm okay
21:25:18 <AnMaster> from mycology results page:
21:25:25 <AnMaster> "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 <AnMaster> when I checked it
21:25:36 <AnMaster> don't remember for sure
21:26:07 <AnMaster> Deewiant, does mycology check that the trefunge instructions reflect in befunge btw?
21:26:38 <Deewiant> Hmm, I don't think it does
21:27:01 <AnMaster> Deewiant, maybe it should. It could lead to some amusing results with some interpreters I bet
21:27:20 <AnMaster> of course, rcfunge just *might* do the right thing there.
21:27:36 <Deewiant> I doubt it would, with the current limited set
21:27:45 <AnMaster> Deewiant, hm?
21:27:46 <Deewiant> Rc/Funge-98 would die due to the form feed first anyway
21:27:55 <Deewiant> And I'm pretty sure the others all handle it correctly
21:28:18 <AnMaster> 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 <Deewiant> Yes, the fingerprint tests, but not everything
21:28:39 <AnMaster> hm okay
21:28:54 <Deewiant> And yes, I could, but why bother? :-P
21:28:59 <AnMaster> true
21:29:08 <AnMaster> Deewiant, what other interpreters do trefunge as well?
21:29:30 <Deewiant> Of decent ones or of all? :-P
21:29:41 <AnMaster> Deewiant, of ones currently listed on mycology page
21:29:51 <Deewiant> CCBI and Rc/Funge-98
21:30:09 <AnMaster> Deewiant, I kind of miss the old wider-than-browser-even-when-maximised table
21:30:20 <Deewiant> It's still there in the old results :-P
21:30:34 * AnMaster goes there for nostalgia
21:30:46 <alise> rc 1 or 2?
21:30:49 <Deewiant> Both
21:30:55 <AnMaster> both what?
21:30:55 <alise> it seems mkry still has handed over the project.
21:31:01 <alise> maybe he is dead after all :/
21:31:05 <AnMaster> oh to alise?
21:31:10 <alise> AnMaster: Whoops, there goes a half conversation!
21:31:12 <alise> Tricky things those.
21:32:32 <AnMaster> Deewiant, anyway, when will you update the fungicide results for cfunge wrt. the fork test
21:32:52 <Deewiant> When you'll make a release, mayhap
21:33:02 <AnMaster> Deewiant, "mayhap"? I need more definite than that
21:33:12 <alise> THIS IS IMPORTANT TO MY BUSINESS
21:33:21 <Deewiant> Toss me a few euros and I'll do it tomorrow morning
21:33:26 <AnMaster> Deewiant, har
21:33:33 <alise> ...but my business has no money
21:33:59 <AnMaster> Deewiant, I might make a release tomorrow if I have some time left over then
21:34:19 <AnMaster> I presume you will do it then at least during the next weekend
21:35:14 <AnMaster> 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 <AnMaster> 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 <Ilari> Ugh. And now I would need sound over network... :-/
22:26:07 <Ilari> I don't have available speakers and volume is not enough for wireless headphones... :-/
22:31:57 <AnMaster> Ilari, eh?
22:32:05 <AnMaster> "and volume is not enough for wireless headphones"?
22:32:23 <AnMaster> Ilari, as in, the music is so faint it can't be heard over bluetooth or what? ;P
22:33:00 <AnMaster> Ilari, however, both pulseaudio and jack have network parts
22:33:05 <AnMaster> also plain alsa
22:33:21 <Ilari> The volume is so low (and mixer master / mixer PCM is at max) that playback isn't stable.
22:33:24 <AnMaster> I never tried that though, was going to use jack but never had time for it
22:33:33 <AnMaster> Ilari, that sounds weird
22:33:42 <AnMaster> Ilari, why would it not be stable over bluetooth
22:33:59 <AnMaster> does it shut down when there is no music or something?
22:34:13 <AnMaster> and then have a significant start up time?
22:34:15 <Ilari> These headphones need certain minimum volume for stable playback. Yes, it shuts down otherwise.
22:34:29 <AnMaster> Ilari, don't you have any wired headphones?
22:34:46 <Ilari> I guess all wired headphones are broken...
22:35:14 <Ilari> 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 <AnMaster> 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 <AnMaster> those links may help
22:35:38 <AnMaster> the last one is only needed for some hardware
22:35:48 <AnMaster> basically those without a mixer capture option
22:35:52 <Ilari> Of course, if signal is too weak, it won't start up again.
22:36:12 <AnMaster> Ilari, stupid that it blasts static like that
22:36:16 <AnMaster> I wouldn't use them at al.l
22:36:19 <AnMaster> at all*
22:36:23 <AnMaster> sounds dangerous
22:36:39 <alise> <Ilari> 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 <alise> yeah that happened to me
22:36:46 <alise> then i realised that they just sound like fuzz anyway
22:36:47 <AnMaster> Ilari, you could also increase the sound volume of course that you transmit with. What produces the sound?
22:36:48 <alise> and stopped using them
22:37:57 -!- impomatic has joined.
22:40:04 <impomatic> Boxx looks interesting http://web.archive.org/web/20080319024539/boxx.origincode.com/docs.php
22:42:22 <AnMaster> impomatic, yay, light gray on white bg
22:42:25 <AnMaster> :/
22:42:36 <AnMaster> oh wait, it is light gray on *lighter* gray
22:42:38 <AnMaster> even worse
22:42:46 <AnMaster> basically unreadable page
22:43:21 <impomatic> Haven't you got a bookmarket to fix readability?
22:44:40 <AnMaster> impomatic, no? I use firebug in those cases
22:44:47 <AnMaster> but I'm not interested enough
22:44:52 <impomatic> :-)
22:51:29 <Ilari> 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 <AnMaster> Ilari, stronger signal?
22:55:25 <AnMaster> as in kill -SIGUSR1?
22:55:40 <AnMaster> oh wait
22:55:43 <AnMaster> 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 <alise> 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 <alise> swing and a miss
00:23:05 -!- comex has quit (Ping timeout: 276 seconds).
00:23:19 <Sgeo> Wait, wait, wait
00:23:28 -!- comex has joined.
00:23:30 <Sgeo> You can't use, say, Haskell to generate Objective-C code?
00:24:11 <pikhq> Correct.\
00:24:36 <pikhq> alise: Objective-C, C, or C++. So. The crap languages.
00:24:47 <alise> Sgeo: indeed
00:24:55 <alise> pikhq: well good luck calling the objective-c iphone apis from c/c++
00:25:00 <alise> without using the objc message send functions directly
00:25:16 <alise> i may just throw away my iphone
00:25:17 <pikhq> alise: True.
00:26:12 <alise> 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 <alise> 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 <pikhq> alise: They also ban "Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited"
00:27:07 <Sgeo> How would they KNOW?
00:27:09 <alise> must. make. myself. hate.
00:27:10 <pikhq> This bans... Cross-platform C libraries.
00:27:19 <alise> Sgeo: Do you want to try their patience? And because of the structure of the code.
00:27:23 <alise> Not patience.
00:27:24 <alise> Whatever.
00:27:39 <pikhq> Sgeo: You submit your code to them, and they sign the resulting binaries if it's to their liking.
00:28:12 <Sgeo> What is the POINT of forbidding even generated code, as long as the generated code is readable enough?
00:29:03 <pikhq> Sgeo: Lockin.
00:29:41 <Ilari> That latter restriction about compatiblity layer sounds like pure lock-in anyway.
00:29:45 <pikhq> "Oh, you want to develop for the iPhone? Well fuck your efforts to develop for anything else."
00:29:50 <alise> pikhq: hm?
00:29:52 <alise> no, you submit binaries...
00:29:55 <alise> afaik
00:30:02 <pikhq> alise: Ah.
00:30:11 <alise> they'll just do heuristics on the machine code, most likely
00:30:23 <alise> easy enough I'm sure: unless it's a simple to-gcc compiler
00:30:29 <alise> that optimises heavily enough to erase runtime stuff
00:30:36 <alise> and detecting libraries will be easy
00:31:05 <pikhq> 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 <pikhq> So people could make apps in Flash and stick it on the iPhone.
00:31:34 <AnMaster> <pikhq> 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 <alise> AT&T? Why would you want to be with that network?
00:31:47 <alise> pikhq: don't tell AnMaster, he's the one making a big deal about ignoring me
00:31:51 <Sgeo> alise, because that's what we're currently using, and my dad doesn't feel like switching
00:31:52 <pikhq> AnMaster: "Apple".
00:31:55 <alise> pikhq: bah
00:32:03 <AnMaster> pikhq, oh for ipod?
00:32:05 <AnMaster> err
00:32:07 <alise> lol fail
00:32:07 <AnMaster> iphone*
00:32:07 <pikhq> AnMaster: Also, you're a retard who doesn't pay attention to anything.
00:32:14 <alise> Sgeo: They /dislike people using their network connection, and blame them for their bad performance/.
00:32:18 <AnMaster> pikhq, no I have ehird on /ignore
00:32:20 <AnMaster> that explains it
00:32:25 <alise> alise is the name.
00:32:30 <alise> respect it or stfu.
00:32:44 <pikhq> AnMaster: ... The topic in question is fairly well-known by now.
00:32:54 <AnMaster> pikhq, I don't really care about apple products
00:33:02 <Sgeo> alise, not a chance in hell of convincing my dad to switch, though
00:33:10 <Sgeo> He's of the "It's good enough for now" opinion
00:33:32 <alise> 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 <alise> If you really want to, get a Google Dev Phone: a G1 without contract. But it's much more expensive.
00:33:51 <AnMaster> 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 <Sgeo> Hm
00:34:11 <Sgeo> I'd buy a Nexus One, but it's expensive without contract
00:34:13 <AnMaster> same thing really, I'm not very much interested in apple
00:34:24 * Sgeo wants "cheap without contract"
00:34:34 <Sgeo> Preferably Android, not iPhone
00:34:35 <alise> Sgeo: And I want a pony.
00:34:43 <alise> Go to Finland; their phones are mostly without-contract.
00:34:54 <alise> iPhone, cheap? Ha! The non-contract 3G S is about $700 or so.
00:34:54 <AnMaster> Sgeo, do you need a smartphone?
00:35:05 <Sgeo> AnMaster, I want one
00:35:08 <alise> Of course he needs a smartphone, otherwise he could just buy any old crud for $3.50
00:35:13 <AnMaster> ah
00:35:41 <AnMaster> 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 <AnMaster> I think it is S40 or such. Not sure
00:36:18 <AnMaster> it has java and flash though, no touch screen
00:36:23 <alise> Thanks for telling us about /your/ phones, AnMaster: we care.
00:36:39 <alise> 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 <AnMaster> RAZR?
00:37:11 <AnMaster> oh motorola
00:37:30 <AnMaster> Sgeo, clamshell, don't they easily break?
00:37:42 <Sgeo> This one has survived many falls
00:37:52 <alise> razr that's oldschool
00:38:27 <AnMaster> Sgeo, no I mean in the hinge due to wear when opening it and such
00:38:40 <Sgeo> AnMaster, *shrug*
00:39:24 <AnMaster> Sgeo, I had a clamshell model before. Some old Ericsson. It had problems in the hinge after some time
00:40:05 <AnMaster> Sgeo, ah yes: http://en.wikipedia.org/wiki/Ericsson_T28
00:40:26 <AnMaster> it still had an antenna sticking out at the top
00:40:39 <AnMaster> why did they remove them btw?
00:41:29 <alise> ?- \+ (nat(N), \+ (N+N =:= 2*N)). ;; I wish this terminated
00:41:32 <Sgeo> Does the Dev phone cost less than Nexus One?
00:42:00 <Ilari> 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 <alise> Sgeo: contractless? dunno
00:42:17 <alise> on contract all phones will be cheaper than dev
00:42:17 <AnMaster> "It was probably best known as the first phone that used Lithium polymer batteries.[1]" huh? I never knew that
00:42:25 <alise> Sgeo: note that the dev phone, not only is it expensive, but seriously the g1 is shit
00:42:33 <alise> you can only use an old version of the OS, and it is very slow
00:42:42 <Sgeo> Hm
00:43:06 <Sgeo> alise, are you SURE that the T-Mobile G1 can't be had without a contract for cheap?
00:43:31 <Gregor> The Nexus One is available without a contract.
00:43:56 <Sgeo> Gregor, it's expensive
00:44:10 <Gregor> 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 <alise> Sgeo: I am sure.
00:45:18 <Sgeo> Difference between Droid and Droid Eris?
00:45:36 <alise> No idea. The Droid apparently has some serious shittiness issues.
00:45:48 <Sgeo> Oh?
00:45:49 <alise> Eris has been axed, it seems.
00:46:07 <alise> 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 <alise> Honestly I'd just splash out for the Nexus One, as it isn't on contract at all.
00:46:33 <alise> And you can buy it ready for AT&T.
00:46:56 <alise> And, well, it's the latest and greatest, so you won't be disappointed.
00:47:03 <Sgeo> The tough part is convincing my dad to pay $529
00:47:08 <alise> It's $529, which is an alright price for a brand-new unlocked phone.
00:47:10 <alise> Sgeo: Well, yeah.
00:47:16 <alise> A dip into the piggy bank might help...
00:47:18 <AnMaster> <Gregor> Yup, that's the nature of phones in the US. <-- import from EU?
00:47:37 <alise> AnMaster: l o l
00:47:46 <AnMaster> of course shipping may be more
00:47:50 <Sgeo> 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 <AnMaster> Sgeo, how is that "unlocked" then?
00:48:11 <coppro> 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 <coppro> AnMaster: network setups vary from provider to provider; it may not work with providers that do not have the infrastructur
00:48:43 <coppro> +e
00:49:29 <AnMaster> coppro, huh? isn't that standardised?
00:49:34 <Gregor> 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 <Gregor> If the phone just supported all 3G bands, it would work on all networks.
00:49:57 <AnMaster> coppro, eh. what about those "dual band" phones and such?
00:50:30 <Gregor> 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 <AnMaster> err
00:50:31 <AnMaster> Gregor, ^
00:50:45 <Gregor> It would have to be sinc-band :P
00:50:51 <AnMaster> Gregor, "sinc"?
00:50:58 <alise> I have this huge urge to write a program to generate theorems.
00:51:07 <Gregor> Five
00:51:13 <AnMaster> heh
00:51:32 <AnMaster> Gregor, who needs 3G anyway ;P
00:51:48 <Gregor> <AnMaster> Now that Sprint has _4G_!
00:52:03 <AnMaster> it does?
00:52:13 <AnMaster> iirc there is 4G by Telia in some parts of Stockholm
00:52:15 <Gregor> Claims to anyway *shrug*
00:52:26 <Gregor> "First nationwide 4G network"
00:52:34 <AnMaster> Gregor, but what I was aiming at was GSM + EDGE
00:52:39 <AnMaster> that may be GPRS
00:52:42 <AnMaster> works fine for me
00:52:53 <Gregor> Sprint is a totally different technology, not GSM or related.
00:52:58 <Gregor> It's CDMA (?)
00:53:00 <AnMaster> it's like 640 kB. Enough for everyone.
00:53:18 <Gregor> "No one will ever need more than 640K of <whatever>"
00:53:46 <AnMaster> Gregor, basically, I have this when using my phone for data traffic: http://en.wikipedia.org/wiki/EDGE
00:54:44 <Ilari> I guess that Sprint 4G is WiMax or something related (and that Telia 4G is LTE or something).
00:55:07 <AnMaster> Ilari, I have no idea
00:55:40 <AnMaster> 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 <AnMaster> "* 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 <AnMaster> says Wikipedia
00:57:03 <Sgeo> 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 <Ilari> Actually, current LTE is pre-4G (AFAIK, no official specs on final actual 4G yet).
00:57:59 <Sgeo> 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 <Sgeo> And I prefered the keyboard in the turned-to-the-side mode than regular
01:00:04 <Sgeo> What's the main language for Android dev.? Java? Can I develop in Haskell?
01:02:07 <alise> java.
01:02:10 <alise> sort of.
01:02:25 <alise> 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 <alise> Sgeo: ipod touch has no mobile internet
01:02:48 * alise tries to wrangle prolog into spitting out algebraic identities
01:02:58 <Sgeo> alise, I know, and that would really really suck
01:03:33 <alise> it would
01:03:36 <alise> the ipod touch is near-useless
01:04:01 <Sgeo> Currently, it seems like the plan is to just get me Intenet access on my current phone
01:04:11 <Sgeo> s/phone/plan/
01:04:18 <Sgeo> Which would be needed anyway for the Nexus One
01:04:32 <Sgeo> So I need to convince my dad to spend $529 extra :/
01:04:37 <Sgeo> I can chip in maybe $150
01:06:36 <AnMaster> <Sgeo> What's the main language for Android dev.? Java? Can I develop in Haskell? <-- can't you do native nowdays iirc?
01:06:54 <AnMaster> <Sgeo> So I need to convince my dad to spend $529 extra :/ <-- wth?
01:07:03 <AnMaster> Sgeo, internet is expensive there
01:07:08 <Sgeo> AnMaster, I want a Nexus One
01:07:30 <Sgeo> He's def. going to give me Internet access one way or the other
01:07:39 <AnMaster> Sgeo, is that $529 per month on the plan?
01:07:43 <AnMaster> or what?
01:07:54 <Sgeo> AnMaster, $529 total for the Nexus One
01:07:57 <AnMaster> oh
01:07:58 <AnMaster> I see
01:08:03 <AnMaster> that makes a LOT more sense
01:11:32 <alise> i'm trying to make prolog spit out algebraic identities just by making a bunch of rules id(A,B)
01:11:55 <alise> 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 <alise> *em
01:22:04 <Sgeo> Is there any kind of insurance in case my phone breaks or gets lost or stolen?
01:25:58 <alise> apart from the police? no
01:26:13 <alise> well my identity printer keeps printing A+-A=0 again and again and again :(
01:27:20 <alise> i'm trying to make it print shallow (less than a certain number of nested applications), non-A=A, identities :(
01:29:04 <Sgeo> I have a terrible track record when it comes to phones
01:29:25 <Sgeo> Although I can get my email address engraved on it, so
01:43:46 <alise> why is this stupid code not parsing...
01:48:16 <Sgeo> How vulnerable is the Nexus One to breaking, compared to the RAZR?
01:48:17 <alise> oh
01:48:21 <alise> Sgeo: I don't know.
01:48:38 <alise> It's less "tough", probably, because it has heavy complex electronics, not just thin lightweight plastic.
01:48:46 <alise> But on the other hand it will have a thicker coating.
01:49:05 <alise> 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 <alise> They're solid things, smartphones, generally.
02:02:49 <alise> I would really like to write a computer algebra system in Prolog.
02:03:17 <alise> Although really I'd need to add some sort of nested application syntax, so that I could write:
02:03:33 <alise> ...well, things, without a bunch of sequential existentials
02:04:05 <alise> Say g[x,f[x,y,z],z] = f(x,y,z,R), g(x,R,z,R2) or something.
02:04:14 <alise> Where R2 is automatically the "result parameter" of a function if you do e.g.
02:04:25 <alise> f[x] := foo[x,bar[x,x],x]
02:04:33 <alise> which would translate to
02:04:56 <alise> f(X, R) :- bar(X, X, R1), foo(X, R1, X, R).
02:05:02 <alise> still, I don't like the []s
02:07:43 * Sgeo offered to pay $300 from his own money
02:08:11 <alise> Hmm, this would also generalise to variables:
02:08:34 <alise> x := f[x,y,z] => x(R) :- f(x,y,z,R).
02:08:49 <alise> Although with side-effects it'd have to be more.
02:15:25 <Sgeo> Can I run Marketplace applications in the Android emulator?
02:18:33 <alise> 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 <alise> 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 <Sgeo> Emulator took a while to start
02:48:41 <alise> I want F: list nat -> Boolfuck
02:48:44 <alise> such that
02:48:49 * Sgeo wonders how to fake multitouch
02:49:15 <alise> forall n in xs, eval_with_some_appropriate_input_method (F xs) n = xs[n]
02:49:48 <alise> (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 <Sgeo> If my phone actually starts ringing, I'll scream
02:50:46 <alise> ring ring
02:50:47 <alise> ring ring
02:52:27 <Sgeo> It's impossible to use the notifications thing like this
02:52:42 <alise> are you using the latest os version?
02:52:45 <alise> i.e. the one on nexus one
02:52:53 <alise> or does it only do the ugly old ui one
02:53:01 <alise> i'm considering buying a nexus one now
02:54:06 <Sgeo> 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 <alise> is it 2.1?
02:54:12 <alise> eclair?
02:54:14 <alise> if so cool
02:54:16 <alise> and i don't think you can
02:55:05 <alise> Sgeo: btw the nexus one has some slight colour issues -- can't find a link right now -- but basically
02:55:28 <alise> 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 <alise> 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 <alise> but somehow I doubt you'd notice it, were you not looking
02:55:55 <alise> and in every other way the nexus one is better
02:56:15 <alise> Sgeo: besides...the nexus one has a fucking 1ghz cpu
02:56:49 <Sgeo> I think offering to pay $300 of it with my own money is helping convince my dad
02:57:06 <Sgeo> Just wish it wasn't effectively locked into AT&T
02:57:14 <alise> you will be able to crackunlock it :P
02:57:28 <alise> 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 <alise> you will (probably) be disappointed
02:57:47 <alise> I mean, I get fed up with the iPhone keyboard and it's better than Android's
02:57:53 <alise> if you have patience it should be fine though
02:58:01 <alise> but what i'm saying is... you're not going to write emails on this thing
02:58:05 <Sgeo> It's better than typing with what the RAZR has
02:58:10 <alise> quite
02:58:21 <alise> but when you have a smartphone you want to do MOAR
02:58:31 <Sgeo> I actually got to play a bit with a Nexus One
02:58:43 <Sgeo> Talked to someone who goes to my school while we were on the bus
02:59:38 <alise> 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 <alise> (the droid screen is pretty amazing -- 265 dpi!)
03:00:07 <alise> 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 <Sgeo> Locked-into a contract is apparently not an option
03:00:12 <alise> besides
03:00:14 <alise> only verizon has droid
03:00:21 <alise> and... verizon suck donkey balls
03:00:31 <Sgeo> More than AT&T?
03:00:40 <alise> yes.
03:00:45 <alise> verizon are the ultimate suck - and I'm not even in the us
03:00:50 <alise> 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 <alise> I get the impression that Sprint is the best network
03:01:05 <alise> but they're CDMA like verizon, not GSM
03:01:09 <alise> so less phones support 'em
03:01:35 <alise> Sgeo: oh the nexus one display is OLED, that's awesome
03:02:00 <Sgeo> I think the only other real option is iPod Touch
03:02:00 <alise> get it, /anything/ that causes any sort of profit for OLED producers is a good thing
03:02:11 <alise> ipod touch isn't really an option if you want to actually do smart things with your phone
03:02:25 <Sgeo> Which is not QUITE as bad as it sounds because there are a LOT of wifi hotspots near where I live
03:02:26 <Sgeo> But still
03:03:52 <alise> if you like xkcd, xkcd has a droid and says the screen is the most orgasmic thing ever created
03:04:04 <alise> if you like xkcd you're retarded
03:04:24 <Sgeo> How long does it take an Android phone to power down? o.O
03:04:34 <alise> "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 <alise> Sgeo: Who powers down a smartphone?
03:04:41 <alise> There's a lock button.
03:04:55 -!- Alex3012 has joined.
03:05:14 <Sgeo> alise, what about temporarily preventing calls from being received?
03:05:28 <Sgeo> Um, how do I stop the emulator from shutting down?
03:05:46 <alise> stopping calls from being received is pressing hang up whenever someone tries to call.
03:05:54 <alise> or turning on aeroplane mode or analogous :P
03:06:04 * Sgeo currently uses airplane mode
03:06:31 <alise> Sgeo: Android bug, be warned: "# Sometimes, when arranging home screen icons, you feel sad and youre not sure why." --xkcd
03:06:39 <Sgeo> lol
03:06:53 <alise> "# 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 <alise> http://blog.xkcd.com/2010/02/08/android-bug-reports-songs-rovers/ --etc
03:07:25 <alise> "# 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 <alise> "# 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 <alise> 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 <Sgeo> "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 <Sgeo> Because if it could, I just accidentally prank-dialled 911
03:11:31 <Sgeo> It thinks 999 is not an emergency number
03:12:18 <Sgeo> 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 <alise> "911 <Call>" "...beep...beep..." "Uh, sorry, wrong number. <click>"
03:13:19 <alise> 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 <Sgeo> 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 <Sgeo> " 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 <alise> Sgeo: http://www.displaymate.com/Nexus_iPhone_ShootOut.htm
03:29:10 <alise> that's just the disply
03:29:23 <alise> note that the bad assessment of nexus one is based on the perspective of someone who really cares about displays
03:29:45 <Sgeo> I would rather just get something not restrictively locked down
03:30:21 <alise> for instance:
03:30:26 <alise> (protip: nothing)
03:30:57 <alise> "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 <Sgeo> Android's locked down?
03:30:59 <alise> not locked down at all
03:31:06 <alise> Sgeo: dude i'm talking about the nexus one
03:31:10 <alise> which runs... android
03:31:23 <alise> 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 <alise> * 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 <alise> * 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 <alise> all it is is
03:31:29 <alise> the bands the two use are different
03:31:32 <Sgeo> I meant, locked down in terms of installable software
03:31:42 <alise> so the AT&T one will get better coverage with AT&T
03:31:46 <alise> it'll still WORK with t-mobile
03:31:49 <alise> just not as well for hardware reasons
03:31:55 <alise> Sgeo: howso
03:32:00 <alise> nexus one has marketplace
03:32:05 <alise> and you can install your own package files
03:33:05 <alise> 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 <alise> 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 <alise> so you can even get root on it in an official way
03:34:00 <alise> Sgeo: so...
03:34:23 <Sgeo> alise, that's why I'd really rather have Nexus One than iPhone
03:34:44 <alise> I never once pushed iPhone
03:34:54 <alise> http://www.displaymate.com/Motorola_Droid_ShootOut.htm ;; more dissing of nexus one display
03:34:56 <Sgeo> I never suggested that you did
03:35:03 <alise> I'm just telling you that the Nexus One display isn't very good
03:35:13 <alise> and if you care about that sort of thing, like you want really crisp text... get the droid if you can
03:35:22 <alise> otherwise get the nexus one as it's better in other ways
03:35:28 <Sgeo> Contract == no deal
03:35:32 <Sgeo> Dad's rules, not mine
03:35:41 <alise> http://www.displaymate.com/Nexus_Droid_ShootOut.htm ;; nexus vs droid
03:35:58 <alise> well you can get unlocked droid...
03:36:01 <alise> motorola milestone
03:36:09 <alise> but you'd have to import it i think
03:36:12 <alise> from europe
03:36:38 <Sgeo> How much would that cost?
03:36:48 <alise> I'm looking it up now
03:36:52 <alise> and apparently milestone is gsm, so it'd work on at&t
03:37:16 <alise> eh apparently it's tuned for t mobile bands
03:37:48 <alise> nah you'd have to import...
03:38:12 <alise> Sgeo: well it's $552 in the uk
03:38:20 <alise> so find somewhere that ships to US and add shipping cost... not pretty
03:38:21 <alise> go for nexus
03:38:29 <alise> you probably use a shitty computer display and don't care
03:38:45 <Sgeo> The keyboard is what makes me lean to Droid very slightly
03:38:58 <Sgeo> Don't care so much about display
03:40:22 <alise> http://www.displaymate.com/Motorola_Droid_ShootOut_files/image004.jpg droid
03:40:23 <alise> http://www.displaymate.com/Motorola_Droid_ShootOut_files/image003.jpg nexus
03:40:28 <alise> (of course much smaller IRL)
03:40:36 <alise> if you are fine with that ... then it just comes down to keyboard
03:40:43 <alise> if it's only very slightly .. just get nexus
03:40:50 <alise> getting milestone would be a bitch and it would be very experimental and unsupported
03:41:04 <Sgeo> The biggest problem really is cost
03:41:13 <alise> besides, nexus is pretty
03:41:14 <alise> droid is ugly
03:41:21 <alise> Sgeo: well importing milestone would cost you top dollar
03:41:35 <alise> nexus is the cheapest you will get a contract free android phone
03:45:50 <alise> Deewiant: Maybe I can write the funge in ATS.
03:46:00 <alise> REDDIT SEZ IZ LIKE ML BUT WITH SPEEEEEEEED
03:46:12 <Sgeo> alise, just choose a language
03:46:24 <alise> German
03:46:28 <Sgeo> Even BASIC is a better choice than no choice.
03:49:28 <Sgeo> 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 <Sgeo> Pattern lock thingy decided to just ignore me
03:51:07 <Sgeo> 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 <alise> [[I hate that indentation algorithm; can't I tweak it?
04:02:52 <alise> Ah, yes, of course, but this manual will not tell you how.]]
04:02:53 <alise> Umm... fuck you too?
04:04:31 <Sgeo> Docs for what? Some Prolog thing?
04:05:40 -!- Oranjer has left (?).
04:09:36 <alise> Sgeo: sml mode for emacs
04:09:46 <alise> Deewiant: I'm trying to formulate a signature for a fungespace module
04:09:48 <alise> So far I have
04:09:53 <alise> type fungespace
04:09:54 <alise> val blank : fungespace
04:09:54 <alise> val get : fungespace * coords -> int
04:09:54 <alise> val put : fungespace * coords * int -> unit
04:10:01 <alise> What other operations do you think I'll find useful at first?
04:10:28 <alise> A bounds-calculating method?
04:10:39 <alise> That's two coords, right? Min and max.
04:12:15 <Sgeo> The Alarm Clock just crashed
04:17:36 <alise> Deewiant: BTW, do you think Judy Arrays would work well for fungespace?
04:20:23 <Sgeo> What's a Judy array?
04:21:20 <alise> http://judy.sourceforge.net/
04:21:41 <alise> It's 4:21; I have to go outside and do stuff tomorrow.
04:21:43 <alise> Should I bed myself?
04:22:43 <Sgeo> I think I confused the fake accelerometer
04:22:56 * Sgeo slaps alise for being awake
04:23:06 <alise> i'm not a norn
04:23:12 <alise> can you make masochistic norns i wonder
04:23:41 <Sgeo> Ye.. actually, hm. Maybe have "pain" decrease for normally painful activities
04:23:44 <Sgeo> Or would that not count
04:24:08 <alise> Make an increase in pain correspond to an increase in pleasure, as opposed to any negative variables.
04:26:15 <Sgeo> pain, as a drive, is, in and of itself, a negative variable
04:26:47 <Sgeo> Although we could make high concentrations of the chemical equate to low input to the brain
04:27:17 <Sgeo> I... think
04:27:20 <Sgeo> Anyways, go to sleep
04:28:37 <alise> k
04:28:40 <alise> 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 <ellisonch> 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 <AnMaster> hm
10:47:51 <AnMaster> ellisonch, tried waybackmachine or such?
10:48:10 <AnMaster> http://web.archive.org/web/*/http://members.tripod.com/rkusnery/remorse.html
10:48:17 <AnMaster> maybe something useful there?
10:48:41 <AnMaster> http://web.archive.org/web/20080403122701/http://members.tripod.com/rkusnery/remorse.html seems useful for example
10:50:54 <AnMaster> I added that link to the page on the wiki
10:51:53 <AnMaster> ellisonch, hope that helps
10:56:46 <AnMaster> ellisonch, finding an interpreter may be harder, unless there is one at http://esolangs.org/files/
10:56:53 <AnMaster> which doesn't seem to be the case
10:57:30 <AnMaster> (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 <Deewiant> ^source
13:35:18 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
13:43:45 <Deewiant> AnMaster: Hey, cfunge locks up on fungot
13:43:45 <fungot> Deewiant: what on earth did you figure out that
13:43:57 <Deewiant> fungot: top
13:43:57 <fungot> Deewiant: dammit. what happens
13:44:18 <Deewiant> fungot: Starts eating up all my memory and eventually has to be killed due to using some 7.5 gigabytes
13:44:19 <fungot> Deewiant: pythonesque list? when length is wanted? somewhere in between, i will alter the style sheet
13:44:26 <Deewiant> Don't know about that.
13:45:14 -!- alise has joined.
13:45:26 <Deewiant> alise: Don't know enough about Judy arrays to be able to say.
13:45:43 <alise> Deewiant: They're 256-tries. Basically.
13:45:57 <Deewiant> What's an n-trie
13:45:57 <alise> For hashtables; though I'm sure you could tweak what number they are.
13:46:10 <alise> http://en.wikipedia.org/wiki/Trie? :P
13:46:12 <alise> http://judy.sourceforge.net/doc/10minutes.htm
13:46:15 <Deewiant> I know what a trie is
13:46:17 <alise> ^ I found this quite helpful
13:46:46 <alise> Deewiant: I gather it means the nodes are chars
13:46:52 <Deewiant> So evidently... yeah
13:47:15 <alise> 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 <alise> Which gets me interested...
13:47:56 <Deewiant> I'd say that being good for dense stuff is more important
13:48:09 <alise> True.
13:48:25 <alise> Judy_hashing.pdf
13:48:26 <alise> 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 <alise> http://judy.sourceforge.net/examples/index.html
13:48:32 <alise> http://judy.sourceforge.net/examples/Judy_hashing.pdf
13:49:39 <Deewiant> 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 <alise> Deewiant: That .pdf is just two pages long.
13:50:18 <alise> And the 10 minute intro is mostly fluff ;-)
13:51:22 <Deewiant> Well, it looks like a decent hash table :-P
13:52:10 <alise> Right, but Judy doesn't do hashing at all by itself.
13:52:20 <alise> I think you'd use two nested Judy arrays, each with a one-wod key.
13:52:25 <alise> And I think it's optimised for that sort of thing.
13:52:32 <alise> Still, what's the expanded acronym of the thing you use, so I can look it up?
13:52:58 <Deewiant> Basically, just an array of boxes
13:53:14 <Deewiant> It's my own Funge-specific thing, so it doesn't have much of a name :-P
13:54:22 <alise> AABB or whatever?
13:54:33 <Deewiant> Axis-aligned bounding box
13:54:38 <Deewiant> I.e. a box.
13:54:57 <Deewiant> I just used that because it sounds a bit fancier than "Box" :-P
13:55:57 <alise> Okay.
13:56:11 <alise> So are all the boxes a fixed size or something, and you just allocate them around wherever changes?
13:56:20 <Deewiant> No, dynamically sized
13:56:22 <alise> I should probably read the code.
13:56:26 <alise> Deewiant: Decided how, roughly?
13:56:50 <Deewiant> For easy cases like file loading it's the smallest box in which the file fits :-)
13:57:23 <Deewiant> (Which is a poor solution for sparse files, which shows up in Fungicide as a loss to cfunge)
13:58:17 <alise> Why would that be a loss to cfunge, not you?
13:58:29 <Deewiant> A loss of CCBI to cfunge
13:58:34 <alise> 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 <Deewiant> I.e. CCBI loses
13:58:37 <alise> Deewiant: Ah.
13:59:09 <Deewiant> All cases are more or less special
13:59:35 <Deewiant> The default case, for a p into an unallocated location, is a 17*17 box centered there
14:06:39 <alise> s/2 :: ((A,B,C)?, ((A,B)?, (A,C)?)?)?
14:06:40 <alise> s(X, lam [(Y, lam [(Z, R) :- Y(Z,R1), X(Z,R1,R)])]).
14:07:44 <Deewiant> Yes.
14:08:19 <alise> :-)
14:08:32 <alise> The problem with adding higher-order predicates to Prolog is that it gets fucking ugly.
14:08:38 <alise> This would be better:
14:08:39 <alise> s/2 :: ((A,B,C)?, ((A,B)?, (A,C)?)?)?
14:08:39 <alise> s X \(Y, \(Z,R) :- Y(Z,R1), X(Z,R1,R)).
14:08:45 <alise> but requires currying to work, which it can't
14:08:48 <alise> (because you can't return values)
14:11:12 <alise> rat(A/B) :- B \= 0, gcd(A,B,1).
14:11:20 <alise> prolog won't allow you to enumerate all rationals with this definition :((
14:19:07 <Deewiant> Does INTERCAL have any multithreading kind of things?
14:20:05 <Deewiant> Where's ais when you need him
14:25:37 <alise> yes
14:25:48 <alise> it's lock-step and not multi-cpu, and it makes no fucking sense, but it has it, yes
14:26:13 <Deewiant> So how does it work
14:26:55 <alise> Nobody has any clue.
14:27:05 <alise> Read the C-INTERCAL manual?
14:27:13 <alise> http://c.intercal.org.uk/manual/vd89dqoq.htm
14:27:57 <alise> http://c.intercal.org.uk/manual/tigcnnv0.htm#Multithreading-using-WHILE ;; addition using multithreading, fuck yeah
14:28:27 <Deewiant> Alright, nexting stacks are per-thread
14:28:33 <Deewiant> That's what I wanted to know :-)
14:28:51 <alise> What on earth are you doing?
14:29:00 <Deewiant> Implementing ICAL
14:29:54 <alise> Down with the cfunge machine! Fuck yeah!
14:30:01 <alise> Deewiant: Wait, isn't it IFFI?
14:30:10 <Deewiant> The one you're thinking of is
14:30:17 <alise> Deewiant: Well, do that one.
14:30:22 <Deewiant> No. :-P
14:31:13 <alise> Deewiant: I hate you, and your family.
14:31:41 <Deewiant> Naw, you're just saying that
14:31:53 <alise> I don't even know your family, so I have no qualms with hating them.
14:32:13 <Deewiant> I find no docs for IFFI, FWIW.
14:32:25 <alise> I think it's in either cfunge or C-INTERCAL source tree.
14:32:38 <alise> Or, you know, the ther.
14:32:47 <AnMaster> <Deewiant> AnMaster: Hey, cfunge locks up on fungot <-- what?
14:32:47 <fungot> AnMaster: *sigh* i must be doing it
14:32:57 <Deewiant> AnMaster: Just that.
14:33:02 <alise> WHAT IS THE MEANING OF THIS
14:33:04 <Deewiant> $ cfunge fungot-load-freenode.b98
14:33:04 <Deewiant> RAW >>> :leguin.freenode.net NOTICE * :*** Looking up your hostname... <<<
14:33:04 <Deewiant> ^C
14:33:05 <fungot> 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 <AnMaster> Deewiant, huh? Doesn't happen with ccbi?
14:33:22 <Deewiant> Nope.
14:33:22 * AnMaster wonders what broke recently then
14:33:39 <alise> 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 <alise> Woe is I.
14:33:56 <alise> AnMaster: probably your hacks around being slow as fuck
14:34:03 <Deewiant> alise: Why hash tables? :-)
14:34:09 <AnMaster> hm wget http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 doesn't work
14:34:10 <fungot> AnMaster: it's the 1cfa paper, irc bot?
14:34:16 <AnMaster> as in
14:34:17 <AnMaster> html
14:34:20 * AnMaster opens in browser
14:34:23 <Deewiant> http://git.zem.fi/fungot/blob_plain/HEAD:/fungot.b98
14:34:24 <fungot> Deewiant: i suppose if i coded it in java
14:34:30 <Deewiant> fungot: No, that really wouldn't help.
14:34:30 <fungot> Deewiant: as long as you are. thanks, krystof.) a variety of things for cmpauxmd.o. i
14:34:44 <alise> Deewiant: Because I thought "oh, this will be dumb and simple".
14:35:02 <alise> 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 <AnMaster> Deewiant, first line of cfunge -v pleaase
14:35:06 <AnMaster> please*
14:35:07 <Deewiant> alise: You can use whatever trees they provide (surely they do provide?)
14:35:09 <AnMaster> so I know what options you used
14:35:13 <Deewiant> AnMaster: Latest bzr, any options
14:35:19 <Deewiant> But currently: cfunge 0.9.0 [+con +trace +exact-bounds +ncurses p:64 c:64]
14:35:20 <AnMaster> Deewiant, any options?
14:35:22 <AnMaster> ah
14:35:29 <AnMaster> Deewiant, did you use the new ip list or not?
14:35:32 <Deewiant> As in, I tried all relevant permutations
14:35:33 <Deewiant> Both
14:35:36 <AnMaster> huh
14:35:38 <alise> 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 <Deewiant> Both 32 and 64, both new IP list and not, both concurrent and not
14:35:52 <Deewiant> I don't think I tried without exact bounds.
14:35:53 <alise> 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 <alise> http://mlton.org/MLtonStructure
14:36:01 <alise> Deewiant: Apart from that, nope.
14:36:12 <alise> Deewiant: Remember, SML was designed to have very precise formal semantics.
14:36:14 <Deewiant> alise: Heh. Have fun.
14:36:17 <alise> Adding anything to the language makes this a harder task.
14:36:30 <Deewiant> I didn't remember because I didn't know.
14:36:33 <alise> So the strategy is pretty much "provide the fast basic structures, let the user implement the rest".
14:36:39 <Deewiant> I'm not very familiar with the MLs.
14:37:19 <alise> 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 <AnMaster> Deewiant, it locks up deep inside libc here
14:37:45 <AnMaster> Deewiant, in the SOCK stuff
14:37:49 <Deewiant> Does it also eat up tonnes of memory for you?
14:37:50 <AnMaster> which I haven't changed recently at all
14:38:01 <alise> Deewiant: Talking to me or AnMaster?
14:38:08 <alise> Anyway, I could always use... Mythryl. :-)
14:38:09 <Deewiant> alise: AnMaster.
14:38:12 <AnMaster> no
14:38:26 <AnMaster> it just times out connecting
14:38:35 <Deewiant> AnMaster: I had to kill it because it made my machine swap at over 7 gigs
14:38:46 <AnMaster> Deewiant, well, can't reproduce yet
14:38:56 <AnMaster> Deewiant, how does your fungot-load-freenode.b98 look?
14:38:56 <fungot> AnMaster: i selected ' trigger' for my cgi script running somewhere?
14:39:08 <alise> Deewiant: In fact, I don't even see a function to adjust the size of an array.
14:39:26 <Deewiant> 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 <AnMaster> aha
14:39:36 <alise> I imagine they are expecting that it will usually cause a reallocation anyway.
14:39:50 <Deewiant> alise: heh.
14:40:16 <alise> Deewiant: http://www.standardml.org/Basis/array.html <-- the entirety of the array functions
14:40:31 <AnMaster> Deewiant, hm
14:40:32 <AnMaster> brb
14:41:26 -!- tombom has quit (Ping timeout: 258 seconds).
14:42:07 <alise> Deewiant: I wonder if I could use some sort of tree to partition up fungespace.
14:42:16 <Deewiant> You could.
14:42:20 <alise> Say we have a 256x256 space; then there would be a tuple of 0-128 and 128-256.
14:42:34 <alise> Inside the former, 0-64 and 64-128.
14:42:45 <Deewiant> Look into quadtrees. :-)
14:43:26 <alise> Deewiant: Still, it sounds like it'd be quite inefficient.
14:43:35 <AnMaster> Deewiant, it locks up but it doesn't grow very fast the ram usage at least
14:43:43 <AnMaster> as in, less than a mb in several minutes
14:43:57 <AnMaster> how long did it take for you to fill up that ram?
14:44:10 <Deewiant> About 10-20 seconds maybe
14:44:18 <Deewiant> Could be due to some other settings
14:45:00 <AnMaster> Deewiant, I think I know one way it could happen for you but not me:
14:45:01 <AnMaster> (gdb) bt
14:45:01 <AnMaster> #0 0x000000000040e104 in stack_pop (stack=0x0) at /home/arvid/src/own/cfunge/trunk/src/stack.c:142
14:45:15 <AnMaster> spot the weirdness
14:45:24 <Deewiant> AnMaster: stack=0x0 :-)
14:45:31 <AnMaster> Deewiant, indeed.
14:45:42 <Deewiant> AnMaster: http://pasteit.ghost1227.com/1340 may or may not help in causing it.
14:45:45 <alise> Deewiant: Hmm, so it's not per-coordinate; you get NW/NE/SW/SE.
14:45:58 <alise> I need to implement this so I'm trying to get my head around it :-)
14:46:09 <alise> I think I want tuples, not arrays; nested tuples.
14:46:11 <alise> So
14:46:11 <AnMaster> hm I wonder why it locks up in the file output code btw
14:46:18 <AnMaster> I mean, why is it writing a file
14:46:28 <alise> type quadtree = Leaf of int | Branch of quadtree * quadtree * quadtree * quadtree
14:46:41 <Deewiant> alise: If I understand what you mean by per-coordinate, I think you might want k-d-trees
14:46:52 <AnMaster> also why didn't the assert trigger, it is compiled with asserts..
14:46:53 <alise> Deewiant: I don't want per-coordinate, though; quadtrees sound absolutely fine.
14:46:57 <alise> They're probably pretty fast, right? ... Right?
14:47:07 <Deewiant> IIRC stinkhorn uses octrees
14:47:19 <Deewiant> And it's faster than cfunge, so yeah :-P
14:47:35 -!- tombom has joined.
14:47:39 <alise> Octrees?
14:47:44 <alise> How would that help for 2D?
14:47:57 <Deewiant> Dunno, maybe it's trefunge-generic
14:48:26 <Deewiant> Hmm, Stinkhorn actually implements Trefunge; I'd forgot about that
14:48:35 <AnMaster> okay it is writing to a filename called ""
14:48:46 <AnMaster> which indicates something is indeed quite wrong
14:49:07 <Deewiant> Okay, no
14:49:10 <Deewiant> warning: -3 doesn't do anything yet
14:49:16 -!- kar8nga has joined.
14:49:25 <Deewiant> alise: So I guess the Funge-Space is there at least in part but not everything is :-)
14:49:29 <alise> Deewiant: Well, octrees would actually help for 2d right? Less traversals.
14:49:49 <alise> "Haskell, on the other hand, has a magnificently expressive type system. It has dependent types" wot
14:49:59 <Deewiant> 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 <AnMaster> fizzie, there? What revision of cfunge is fungot currently running on?
14:50:56 <fungot> AnMaster: " subject matter" is a perfectly good solution out there that was also my computer science class, but i
14:51:40 <alise> Deewiant: Eh, I can't draw it.
14:51:44 <alise> But basically, I'd make the regions cone-shaped.
14:52:09 <Deewiant> alise: And you think the sines and cosines involved in that are fast?-)
14:52:19 <alise> Deewiant: Touche.
14:52:24 <alise> Quadtree it is.
14:52:38 <alise> I have no idea how to expose pattern-matching in SML, so let's just assume I can.
14:53:11 <alise> 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 <alise> (I'm sure Okasaki would have some magic trick to avoid this.)
14:55:10 <AnMaster> Deewiant, unable to reproduce, lockup yes, memory trashing no
14:55:23 <AnMaster> and the stack thing didn't happen again weirdly enough
14:55:29 <Deewiant> Well start with the lockup
14:55:42 <AnMaster> binary revision search then
14:59:33 <AnMaster> strangely enough it happens with older revisions too
14:59:43 * AnMaster looks at older fungot revisions
14:59:44 <fungot> AnMaster: yes. you should get " fnord that doesn't seem to
15:00:36 <Deewiant> fungot seems to suggest it's a stringmode bug
15:00:36 <fungot> Deewiant: i think ti's are pretty nice though. have fun. :) that has it's advantages
15:02:00 <alise> Deewiant: My build system will be rather simple: MLton doesn't support incremental compilation :-)
15:02:18 <AnMaster> Deewiant, hm
15:02:53 <AnMaster> Deewiant, I'm trying to find last working revision of both fungot and cfunge but failing to do so
15:02:53 <fungot> AnMaster: stuff like new! miracle! space-age! are getting overused. why move if it's that camera we're talking about
15:03:08 <Deewiant> AnMaster: Maybe it never worked and it's still running on Rc/Funge-98
15:03:10 <alise> And has not many special compiler options; all optimisations are aggressively done always.
15:03:12 <AnMaster> Deewiant, what data files does it need to have created?
15:03:19 <AnMaster> Deewiant, har. I ran it before I know
15:03:22 <alise> Deewiant: I'm pretty sure fizzie did switch it over to cfunge.
15:03:23 <Deewiant> AnMaster: I don't know; I just ran it from scratch
15:03:38 <Deewiant> AnMaster: With CCBI it connected and started ponging and such, with cfunge it hung.
15:05:16 <AnMaster> 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 <AnMaster> it *could* of course have been written there. Hard to tell
15:05:50 <AnMaster> wait, I'm looking at the wrong fungot file in the editor
15:05:50 <fungot> AnMaster: about odd and even streams are in general very cool.... :) is it possible for there not to be
15:06:24 <AnMaster> well no it isn't there in the one it is running either
15:07:03 <Deewiant> AnMaster: Notice that the fungot.b98 is loaded at 0,100
15:07:03 <fungot> Deewiant: it's a recursive verb. ' void main() char x input; fnord main() tweak
15:07:10 <AnMaster> Deewiant, oh right...
15:08:42 <AnMaster> huh
15:08:56 <AnMaster> pratchett.freenode.ne
15:08:56 <AnMaster> pratchett.freenode.ne
15:08:56 <AnMaster> >31g :3g':-#^_ 1+
15:08:56 <AnMaster> >:3g:#v_ >
15:09:02 <AnMaster> I don't think that is correct
15:09:06 <AnMaster> from dumping funge space
15:10:04 <Deewiant> CCBI doesn't even end up in that code
15:10:08 <AnMaster> indeed
15:10:21 <Deewiant> It doesn't hit that ^, at least
15:10:23 <AnMaster> I guess SOCK read/write buffer is wrong
15:10:37 <AnMaster> somehow
15:19:50 <AnMaster> no it isn't SOCK code as far as I can tell
15:19:54 <AnMaster> just fungot itself
15:19:55 <fungot> AnMaster: ' fnord /a/b/ /a/b/ /a' layout would make better graph out of those pin boxes, you know
15:20:09 <AnMaster> that keeps writing that line over and over
15:20:10 <alise> Wow, MLton is truly dog slow.
15:20:58 <alise> I figured out why though.
15:20:59 <alise> It has to compile the entire standard library every time.
15:21:04 <alise> Since it's whole-program.
15:21:49 <alise> Error: quadtree.sml 15.5.
15:21:50 <alise> Syntax error: replacing INCLUDE with EXCEPTION.
15:21:52 <alise> You can't just do that!
15:22:19 <AnMaster> hm
15:22:46 <AnMaster> 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 <fungot> 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 <AnMaster> Deewiant, even very old versions show this behaviour now
15:26:46 <AnMaster> 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 <Deewiant> Works in CCBI :-P
15:27:10 <Deewiant> (Could easily be a CCBI bug of course)
15:27:14 <AnMaster> Deewiant, we handle stuff like STRN somewhat differently
15:27:15 <alise> Deewiant: Wait, how do quadtrees grow in size?
15:27:23 <alise> Oh, easy.
15:27:27 <alise> You make all the references null by default.
15:27:28 <AnMaster> like on negative arguments and such
15:27:40 <alise> Right?
15:28:05 <Deewiant> alise: I'm not sure what exactly you're asking
15:28:08 <AnMaster> 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 <fungot> AnMaster: ( i want shivers to release his new loop macros......) on time 1. then we can just make a copy
15:28:29 <alise> Deewiant: Well, I'm just asking how a quadtree handles a potentially ""infinite"" (very big) structure
15:29:20 <Deewiant> alise: Well, it just keeps on subdividing...
15:29:27 <alise> Right.
15:29:36 <alise> I guess I just don't understand how I'm meant to traverse a quadtree given (x,y).
15:29:59 <Deewiant> Each node is associated with a point
15:30:06 <alise> I get that.
15:30:10 <Deewiant> You check where your (x,y) is wrt that point
15:30:18 <alise> I just don't get how you do non-diagonals since it's NW/NE/SW/SE
15:30:18 <Deewiant> If it's NW, you go to subtree 0
15:30:27 <alise> How can I check where it is?
15:30:29 <Deewiant> Well, just pick something
15:30:45 <Deewiant> E.g. if the y coordinates are equal it's always in the N
15:30:46 <alise> Eh?
15:30:57 <Deewiant> Check where what is?
15:31:04 <AnMaster> Deewiant, even with your loading file I can't trigger the memory usage problem you mentioned
15:31:22 <Deewiant> Shrug.
15:33:01 <AnMaster> ah wait, now I can. How strange. But much slower than you described...
15:33:12 <AnMaster> Deewiant, I know why it does that now for you. It keeps executing e forever
15:33:16 <AnMaster> so yes stack would grow
15:33:31 <alise> type 'a subtree = 'a quadtree ref option
15:33:32 <Deewiant> And my machine is that much faster, so yes :-)
15:33:36 <alise> A subtree is a quadtree ref option. XD
15:33:41 <AnMaster> Deewiant, that would be because of the different server name
15:33:43 <Deewiant> AnMaster: About 300 megs a second IIRC
15:33:46 <AnMaster> it still keeps copying it all the time
15:33:57 <alise> Deewiant: So basically,
15:34:00 <alise> datatype 'a quadtree
15:34:01 <alise> = Leaf of 'a
15:34:01 <alise> | Branch of 'a subtree * 'a subtree * 'a subtree * 'a subtree
15:34:08 <alise> where a subtree is either NULL, or a pointer to another quadtree.
15:34:17 <Deewiant> alise: Your Branch needs a point
15:34:23 <AnMaster> 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 <fungot> AnMaster: ack. don't put a subject there, it was such great fun that i just found it, thanks
15:34:26 <alise> Really?
15:34:34 <alise> Deewiant: So does that mean that we can turn a leaf into a branch?
15:34:40 <Deewiant> alise: How will you know where you are otherwise?
15:34:45 <alise> So, basically, a leaf is just a special case of a branch where all the references are NULL.
15:34:46 <alise> Deewiant: Oh, I see.
15:34:58 <AnMaster> Deewiant, I have a deadline tomorrow for something at university, no time to look more into this issue now
15:34:58 <Deewiant> And yes, basically like so
15:35:08 <AnMaster> (release won't happen today)
15:35:12 <Deewiant> alise: But I don't think there's any point in turning a leaf into a branch ever
15:35:15 <Deewiant> I could be wrong.
15:35:19 <alise> datatype 'a quadtree = Branch of coords * 'a * 'a subtree * 'a subtree * 'a subtree * 'a subtree
15:35:21 <alise> Deewiant: Oh, okay.
15:35:29 <alise> But how would you get to a leaf if the coords are both the same?
15:35:34 <alise> Go a certain predefined direction?
15:35:36 <Deewiant> Hmm?
15:35:39 <alise> Seems saner to have it all in the one constructor.
15:35:45 <alise> Say you're at a branch and its (x1,y1) = your (x,y).
15:35:48 <alise> But all it has is four subtrees.
15:35:54 <alise> How do we get the value at this point?
15:36:07 -!- oerjan has joined.
15:36:10 <Deewiant> Like said, just pick a consistent way of doing it
15:36:20 <Deewiant> E.g. equal x = east and equal y = north
15:36:23 <oerjan> no, pick two!
15:36:23 <Deewiant> So in that case you'd go northeast
15:36:26 <Deewiant> Or whatever
15:36:29 <alise> Deewiant: Okay.
15:36:33 <alise> and then northeast would be a leaf
15:36:38 <Deewiant> 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 <alise> No point in lying about this code's generality.
15:38:22 <AnMaster> Deewiant, oh just one thing. it is STRN related probably
15:38:25 <alise> 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 <AnMaster> since it is written there by STRN P
15:38:46 <alise> So what I actually need is a quadtree option ref.
15:38:57 <alise> i.e., a pointer to either NONE or SOME quadtree.
15:40:13 <alise> http://pastie.org/914126.txt?key=jbijawyvc0juty7ocqj8g I think this is it.
15:40:20 <alise> But how on earth would I do exact bounds like this...?
15:44:19 <alise> I like Standard ML.
15:45:14 <fizzie> Hm, what was that about fungot.
15:45:15 <fungot> fizzie: is the fact that i'm trying to think of it
15:46:31 <AnMaster> fizzie, basically fungot ends up overwriting itself with server name
15:46:31 <fungot> 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 <AnMaster> fizzie, in current cfunge and older cfunge.
15:46:48 <AnMaster> so I'm unable to find a known good revision
15:46:50 <AnMaster> which is absurd
15:47:10 <AnMaster> fungot, thus I want the exact revision that fungot in here is running on
15:47:10 <fungot> AnMaster: if a fnord of a
15:47:21 <AnMaster> or that you push any local changes that fixes it
15:47:39 <AnMaster> fungot, exact revision of cfunge that is
15:47:39 <fungot> 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 <fizzie> 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 <AnMaster> ouch
15:48:44 <AnMaster> that old
15:48:47 <AnMaster> fizzie, Basically the P at the line >:3g:#v_ >\ :0\3p 31g >3G 05g5+0\P v
15:48:57 <AnMaster> ends up overwriting the entire program
15:49:01 <AnMaster> with the server name
15:49:04 <AnMaster> fizzie, I have no idea why
15:49:24 <fizzie> Hrm.
15:49:27 <AnMaster> and I have looked back until summer 2009 for a working revision
15:49:30 <AnMaster> of cfunge
15:50:50 <oerjan> <alise> (I'm sure Okasaki would have some magic trick to avoid this.)
15:50:53 <oerjan> zippers
15:51:08 <fizzie> I have a directory with the name "cfunge_r462"; that might be the exact revision.
15:51:20 <fizzie> I really haven't had the occasion to update.
15:51:23 <AnMaster> okay lets try it
15:51:45 <alise> oerjan: yeah i know about zippers but how would they apply here? i don't exactly understand them :P
15:51:49 <fizzie> ^source
15:51:49 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
15:51:50 <AnMaster> fizzie, I think it worked on later revisions too for a long time, possibly until freenode changed to the new ircd
15:52:25 <AnMaster> r462 works
15:52:28 <AnMaster> now lets bisect this
15:52:40 <oerjan> 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 <alise> oerjan: i see. do you think it would help for this case?
15:53:02 <fizzie> 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 <fungot> fizzie: after a very small amount of writing to memory overflow!!!
15:53:26 <oerjan> alise: well you don't need to change the parent to change the current cell
15:53:38 <alise> oerjan: what about mutating the parent?
15:53:40 <alise> e.g. the subtree
15:53:41 <alise> s
15:54:00 <oerjan> although you now need to restructure things to move to a new current cell
15:54:12 <alise> 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 <oerjan> alise: the zipper requires a new datatype for quadtrees with holes, essentially
15:54:38 <alise> Hmm, I could actually make leaves not be pointers and just mutate their parents to do it.
15:54:43 <alise> That sounds icky though.
15:55:31 <alise> I don't think you can do mutually recursive data types in SML...
15:55:35 <alise> oerjan: explain? :D
15:55:39 <oerjan> (where the hole can be one of the four directions i think)
15:55:48 <oerjan> alise: isn't that type rec or something
15:55:57 <alise> datatype quadtree
15:55:58 <alise> = Leaf of word
15:55:58 <alise> | Branch of coords * subtree * subtree * subtree * subtree
15:55:58 <alise> and subtree = quadtree option ref
15:56:02 <alise> Recursive types work fine; mutually, however...
15:56:05 <alise> ("and" is not valid there)
15:56:20 <oerjan> oh? sounds unreasonable.
15:56:41 <AnMaster> hm okay bisection shows it is between 551 and 581 now
15:56:49 <fizzie> 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 <alise> oerjan: yeah i'm sure there must be a way to do it
15:57:31 <alise> also i'm having to repeat my transparent data types in the module and in the structure
15:57:32 <alise> irritating
15:58:49 <alise> oerjan: ah it is because and implies a data type there not an alias
15:59:01 <oerjan> alise: hm i think ocaml used and there
15:59:18 <fizzie> (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 <alise> I'd just type out quadtree-option-ref if it weren't so darned verbose.
15:59:57 <alise> oerjan: nor do I
16:00:27 <AnMaster> hm r578
16:00:30 * AnMaster looks at the diff in it
16:00:50 <AnMaster> " Make stringbuffer_finish() optionally return string length. Make use of this feature in FILE, PERL, STRN and TURT."
16:00:53 <AnMaster> huh
16:01:01 <Deewiant> Ba-bam, an optimization breaks the day
16:01:06 <AnMaster> Deewiant, no code cleanup
16:01:10 <Deewiant> Darn
16:01:12 <Deewiant> :-P
16:01:21 <AnMaster> Deewiant, because the old was quite a mess of buggy strlen() and such
16:01:28 <Deewiant> But at least it worked!
16:01:32 <alise> I'd just make things abstract except I want pattern-matching on trees.
16:01:33 <AnMaster> so since the thing already *had* the string length I just made use of it
16:01:40 <AnMaster> Deewiant, sure, but that is what bisection is for :P
16:03:02 <AnMaster> fizzie, do you use any of these from STRN: G S
16:03:08 <AnMaster> if so, which ones
16:03:36 <oerjan> 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 <alise> oerjan: so in your completely professional opinion do you think it'd beat pointers?
16:04:02 <Sgeo_> alise, apparently, Droid's getting 2.1
16:04:12 <alise> Sgeo_: can you do verizon?
16:04:17 <Sgeo_> No
16:04:29 <oerjan> alise: for speed? heck no.
16:04:35 <alise> oerjan: righty ho then
16:04:38 <alise> oerjan: i also meant for elegance
16:04:41 <alise> Sgeo_: then ignore it
16:04:56 <oerjan> </fake professional option>
16:05:12 <alise> 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 <alise> and dammit, it's pretty.
16:05:28 <alise> i want one.
16:05:41 <oerjan> (as a general rule, _all_ my value judgements can be assumed fake, when i'm even willing to give them)
16:05:50 <Sgeo_> alise, I'll probably stop being outstanded the instant I accidentally drop it on the ground :/
16:05:50 <alise> and it has a freaking 1ghz processor
16:05:53 <Sgeo_> Or lose it somewhere
16:05:57 <AnMaster> hm since you use FILE too I guess it could be causing issues
16:06:00 <alise> Sgeo_: they're tough beasts
16:06:09 <alise> they're not made out of random bendable plastic you know
16:06:10 <Sgeo_> Tougher than the RAZR?
16:06:14 <alise> the only issue with dropping them is height
16:06:17 <fizzie> AnMaster: Probably I use at least STRN's G.
16:06:21 <alise> if not much height, then the thickness protects it
16:06:25 <alise> if much height the weight works against it
16:06:31 <alise> unless you're very tall, or very VERY clumsy
16:06:33 <alise> you should be fine
16:06:42 <oerjan> alise: well with all the extra data types it's not really that elegant if you don't insist on purity...
16:06:52 <fizzie> AnMaster: I'm not sure if I use S for anything much, except perhaps in the ^save stuff.
16:07:10 <alise> Sgeo_: http://www.engadget.com/photos/google-nexus-one-unboxing-and-hands-on/#2573676 <-- porn
16:07:12 <AnMaster> fizzie, so S is used? I'm trying to figure out what exact change broke this you see
16:07:34 <Deewiant> AnMaster: This is why you should've committed that as five separate changesets ;-)
16:07:52 <fizzie> 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 <alise> 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 <alise> Sgeo_: you know yo uwant one :P
16:08:10 <AnMaster> okay it is the G code
16:08:11 <alise> *you want
16:08:23 <Sgeo_> alise, did I mentioned I got to play with a Nexus One a bit on Thursday?
16:08:24 <oerjan> alise: also if you do a lot of non-local changing (like with get/put), then zippers probably get awful
16:08:27 <AnMaster> Deewiant, you mean one for STRN G one for STRN S and so on?
16:08:30 <alise> Sgeo_: yes.
16:08:42 <alise> oerjan: true.
16:08:44 <Deewiant> AnMaster: I was thinking one per fingerprint
16:08:44 <AnMaster> Deewiant, well I can actually manually revert the lines changed
16:08:48 <alise> Deewiant: with a quadtree you only store the root right?
16:08:51 <alise> and traverse each time
16:08:54 <AnMaster> and it seems to be STRN G that is causing issues
16:08:55 <alise> or do you move with the IP?
16:09:10 <Deewiant> alise: You can't move up a quadtree, so you don't have much choice
16:09:19 <alise> 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 <alise> Deewiant: right
16:09:32 * AnMaster adds the header for assert too
16:10:05 <Sgeo_> 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 <AnMaster> okay length 11 vs. length 10
16:10:16 <AnMaster> how weird
16:10:39 <AnMaster> it contains the nick of the thing.
16:10:50 <AnMaster> strange then ccbi didn't pick it up
16:10:53 <oerjan> alise: there's nothing preventing you from keeping a zipper even if the leafs are mutable, might make moving IP faster
16:11:01 <AnMaster> err
16:11:03 <AnMaster> not ccbi
16:11:05 <AnMaster> I mean mycology
16:11:15 <AnMaster> the extra char seems to be a null one
16:11:17 <oerjan> (or equivalently, a stack of subtrees up to the top)
16:11:24 <Deewiant> AnMaster: Do the Mycology UNDEFs change between those two revs?
16:11:31 <AnMaster> Deewiant, let me test
16:11:39 <oerjan> (when it's mutable you don't need those holes i should think)
16:12:06 <AnMaster> Deewiant, actually I can't easily, since this revision is so old it will hit END in current mycology nowdays
16:12:10 <AnMaster> I think
16:12:29 <Deewiant> You can just replace the first column of Mycology with v until the STRN test
16:12:37 <AnMaster> ah good idea
16:12:42 <alise> 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 <Sgeo_> *inside
16:13:11 <AnMaster> Deewiant, it hits the assert just before the line: GOOD: G works
16:13:13 <oerjan> alise: well you could also _make_ parent links
16:13:16 <AnMaster> in the new one
16:13:20 <Deewiant> Oh well
16:13:24 * AnMaster tries with the strlen() call
16:13:42 <AnMaster> Deewiant, no UNDEF there no
16:13:57 <AnMaster> Deewiant, what I believe will happen is that there will be an extra \0 byte in the newer version
16:13:59 <AnMaster> below
16:14:04 <AnMaster> Deewiant, perhaps you don't check for that :P
16:14:20 <Deewiant> Evidently not
16:14:30 * Sgeo_ wants to get his engraved with his email address
16:14:35 <Sgeo_> In case I do end up losing it
16:14:50 <AnMaster> 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 <Deewiant> Anything that'd result in anything extra is probably not checked
16:15:28 <Sgeo_> 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 <Deewiant> It might check one cell backwards and forwards but probably not more
16:15:49 <AnMaster> huh wait a second. Is strlen() number of chars *excluding* the ending \0?
16:15:52 <Deewiant> (And not necessarily even that much if I was too slow)
16:15:57 <Deewiant> AnMaster: Yes, of course. :-P
16:16:07 <AnMaster> Deewiant, hm I think that may be the issue
16:16:19 <Deewiant> It's the length of the string: the length of "foo" is 3, not 4.
16:16:22 <AnMaster> I need to check that though so I don't introduce new bugs
16:16:46 <alise> Sgeo_: Pattern locking is just for your convenience, I think.
16:16:50 <alise> Sgeo_: It should be not so hard to crack anyway.
16:16:58 <alise> Sgeo_: It's not difficult.
16:17:12 <alise> 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 <alise> Deewiant: So wait, you know how the directions represent different combinations of same/different X/Y?
16:17:34 <AnMaster> 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 <oerjan> alise: btw you might look at the infinite tree with mutable leafs i made for implementing Malbolge Unshackled >:)
16:17:36 <AnMaster> hm
16:17:44 <alise> Deewiant: When you move in different-direction, the coords always increase, right?
16:17:45 <Deewiant> alise: Say what now?
16:17:53 <alise> Deewiant: Hey, it's not my fault you said that.
16:18:00 <alise> oerjan: that sounds nice -- link?
16:18:03 <Deewiant> alise: I've no idea what you're saying, I think
16:18:07 <Sgeo_> alise, does it keep track of its waranty status? I wonder if it's possible to overwrite it >:)
16:18:14 <alise> Deewiant: I have no idea how you use quadtrees
16:18:19 <alise> Sgeo_: That is called breaking the law.
16:18:27 <alise> And I am sure that Google could find out, if you gave them the phone...
16:18:47 <alise> I jailbroke my iPhone on its first day.
16:18:53 <alise> Chillax, warranties don't matter.
16:19:21 <AnMaster> okay wth
16:19:22 <Deewiant> alise: What part of using quadtrees are you thinking about now
16:19:26 <Sgeo_> My dad thinks that since it's "new", it would be a bad idea to get it, because of potential problems
16:19:27 <AnMaster> fixing it broke mycology
16:19:27 <alise> Deewiant: I just don't understand how four directions map to coordinates of 2D space.
16:19:50 <alise> 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 <alise> It gives you the coordinates the new tree should have.
16:19:58 <alise> I am not sure how it should do this.
16:20:20 <alise> 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 <alise> Tell him that there are regular updates to the entire phone software.
16:20:39 <Deewiant> alise: I think that's implementation-dependant i.e. you can do what you like
16:20:40 <alise> Maybe that'll "fool" him.
16:20:50 <Deewiant> alise: One easy(?) way of doing it would be start out with the central node at (0,0)
16:20:57 <Deewiant> I.e. root node
16:21:09 <alise> Deewiant: So then south = decrease x, north = increase x, west = decrease x, east = increase x?
16:21:10 <Sgeo_> 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 <Deewiant> So then the space you're working in is nicely bounded on all sides
16:21:13 <oerjan> alise: http://oerjan.nvg.org/esoteric/Unshackled.hs
16:21:20 <Sgeo_> Although this uses the newest version of it
16:21:25 <alise> 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 <alise> All the others are taken.
16:21:38 <alise> Sgeo_: Well... no answer then.
16:21:44 <Deewiant> 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 <alise> oerjan: Is it fast-in-theory?
16:22:01 <alise> Deewiant: And this is where I totally stop understanding what you're trying to say. :-)
16:22:21 <Deewiant> alise: Quadtrees are about splitting the space into four parts whenever you need increased granularity
16:22:22 <Sgeo_> alise, there are PDF readers for Android, right? I think I saw one or two
16:22:30 <Deewiant> alise: So you start with zero points and a root at (0,0)
16:22:32 <alise> Sgeo_: Presumably. The browser can probably handle it.
16:22:38 <alise> The iPhone certainly has always been able to.
16:22:47 <Deewiant> alise: Then you add a point (1,1) so you make the SE node a leaf with that value
16:22:57 <alise> So S = increase X, E = increase Y.
16:23:01 <Deewiant> alise: Up to you.
16:23:03 <alise> Deewiant: What about the VALUE at this point?
16:23:08 <alise> datatype quadtree
16:23:08 <alise> = Leaf of word ref
16:23:09 <alise> | Branch of coords * subtree * subtree * subtree * subtree
16:23:13 <Deewiant> The word?
16:23:13 <alise> We're looking up (1,1), which has already been inserted.
16:23:17 <alise> We move southeast, and get to (1,1).
16:23:20 <alise> But there are only four subtrees.
16:23:22 <Deewiant> Which is a Leaf.
16:23:24 <alise> Each of them /changes/ the coordinates.
16:23:27 <alise> Deewiant: What?
16:23:28 <oerjan> alise: i don't know, although it _does_ keep a next pointer for easy incrementing
16:23:33 <Deewiant> alise: At this point, it's a Leaf.
16:23:35 <alise> Deewiant: What about when I want to move to (1,2).
16:23:41 <Deewiant> alise: I was getting to that.
16:23:42 <alise> Deewiant: You said I'd never have to change a leaf into a branch.
16:23:58 <Deewiant> alise: Maybe I was wrong: hang on, let me work through this.
16:24:11 <oerjan> alise: i mostly linked to it because it's evil ;)
16:24:17 <alise> oerjan: fair enough then
16:24:19 <Deewiant> 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 <AnMaster> oh wait I found it
16:24:29 <alise> Deewiant: And a dog.
16:24:33 <Deewiant> alise: What you need to do is subdivide the SE area into four parts
16:24:46 <alise> Deewiant: Right. But if I do that, then where goes the value at (1,1)?
16:24:48 <Deewiant> alise: The SE area at this point is (0,0) through (2^32-1, 2^32-1)
16:24:48 <Sgeo_> It still displays the Emergency Call button, even when there's no SIM card
16:24:54 <Deewiant> alise: (Assuming 32 bit words)
16:25:01 <alise> All four parts in the SE area are already taken up by subtrees.
16:25:05 <alise> So the value at (1,1) has nowhere to go.
16:25:09 <Sgeo_> Wait, can it actually use the nearest carrier it can find for emergency calls?
16:25:24 <Deewiant> alise: So you make a new tree, with root at the midpoint, (2^31, 2^31)
16:25:31 <Deewiant> alise: (± 1)
16:25:38 <alise> Deewiant: *Now* I am confused.
16:26:18 <Deewiant> alise: You replace the SE branch of your (0,0) with that tree
16:26:30 <Deewiant> 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 <Deewiant> alise: So you continue subdividing
16:26:44 <alise> I think at this point I should find a nice article. With pictures.
16:26:44 <Deewiant> alise: Until you get to a point where they go into different nodes
16:27:03 <alise> Deewiant: Doesn't that end up creating an unholy amount of subdivisions?
16:27:07 <Deewiant> alise: There are lots of java applets and the like for this :-)
16:27:18 <Deewiant> alise: Max depth O(log n)
16:27:24 <Deewiant> alise: Not unholy, no.
16:27:54 <Deewiant> 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 <alise> Quadtrees seem like such a functional data structure; shame they need to be imperative to work nicely.
16:28:14 <alise> Deewiant: Bleh!
16:28:24 <Deewiant> Do they?
16:28:27 <alise> This just keeps getting hairier at hairier.
16:28:33 <alise> Deewiant: Well, they have nice diagrams.
16:28:35 <alise> *and
16:28:42 <alise> I wonder how big the arrays should be; 80*24/
16:28:43 <alise> *?
16:28:51 <Deewiant> alise: But do they need to be imperative? The arrays don't have to be. :-P
16:29:05 <alise> 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 <AnMaster> 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 <Deewiant> alise: True enough
16:29:22 <Deewiant> alise: You probably want square arrays since each node is square, btw.
16:29:34 <AnMaster> 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 <alise> Deewiant: So, basically, these algorithms are going to be hellishly ugly.
16:29:53 <Deewiant> alise: Data structures tend to be a bit hairy.
16:30:10 <AnMaster> Deewiant, pushing fix for the STRN case at least
16:30:31 <alise> Deewiant: Not their pure forms.
16:30:43 <alise> What I really need to do is hire Okasaki and make him write this for me.
16:31:53 <Deewiant> alise: No, their pure forms tend to also be. :-P
16:32:01 <alise> You're hairy.
16:32:13 * Sgeo_ doesn't want his Gmail Contacts in his phone
16:32:28 <Sgeo_> At least, until I have a chance to clear out my contact list
16:32:52 <fizzie> For some reason I just plain like the "you can't comb a hairy ball smooth" phrase.
16:33:37 <alise> Sgeo_: Tough shit, Android is all Google, all the time. :-)
16:34:10 <Deewiant> AnMaster: Awesome, thanks.
16:34:11 <AnMaster> 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 <AnMaster> 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 <fizzie> Deewiant: Why do you want to run fungot, anyway?
16:34:54 <fungot> 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 <AnMaster> (this code is used in the fgets thingy for FILE too)
16:35:01 <alise> Deewiant: So, I understand all of it apart from the recursive subdivision.
16:35:01 <AnMaster> (and a few other places)
16:36:27 -!- fungotCCBI has joined.
16:36:35 -!- fungotCFUN has joined.
16:36:41 <Deewiant> Benchmark time!
16:36:59 <AnMaster> Deewiant, until I get a new fungespace in place I wouldn't be surprised if ccbi is faster
16:37:08 <AnMaster> and that won't happen soon
16:37:24 <Deewiant> fizzie: Maybe you can think up of some bf/ul slowness
16:37:46 <AnMaster> ^bf +[.]
16:37:46 <fungot> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP> ...
16:37:51 <AnMaster> !bf +[.]
16:37:57 <AnMaster> well what prefix does it use Deewiant ?
16:38:03 <Deewiant> ]
16:38:05 <AnMaster> ]bf +[.]
16:38:05 <fungotCFUN> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP> ...
16:38:05 <fungotCCBI> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP> ...
16:38:12 <Deewiant> But, erm
16:38:19 <AnMaster> well from here fungotCFUN was just slightly faster at that
16:38:20 <fungot> AnMaster: ok i get it well enough to predict what the most common one
16:38:20 <AnMaster> Deewiant, ^
16:38:31 <AnMaster> ]bf +[>+]
16:38:34 <Deewiant> Something that takes no time at all is pointless
16:38:37 <AnMaster> ]bf +[.]
16:38:37 <fungotCFUN> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP> ...
16:38:37 <fungotCCBI> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP> ...
16:38:49 <Deewiant> AnMaster: Please stop with that one.
16:38:56 <AnMaster> Deewiant, oh?
16:39:06 <alise> Yeah, that is annoying.
16:39:06 <AnMaster> does your client try to treat it as CTCP ?
16:39:07 <Deewiant> AnMaster: It gives me four lines of "requested unknown CTCP" every time.
16:39:13 <AnMaster> mine doesn't
16:39:20 <alise> Not mine.
16:39:20 <AnMaster> ]bf ++[.]
16:39:20 <fungotCFUN> ...
16:39:20 <fungotCCBI> ...
16:39:20 <fizzie> It's a bit noisy anyhow.
16:39:22 <AnMaster> then
16:39:23 <AnMaster> there
16:39:23 <alise> It displays a lot of boxes.
16:39:25 <AnMaster> that is better
16:39:26 <AnMaster> anyway
16:39:40 <AnMaster> I notice the cfunge one is consistently faster
16:39:49 <Deewiant> I notice they are consistently of identical speed
16:40:08 <AnMaster> Deewiant, I notice that consistently CFUN one returns just a tiny fraction of time before the CCBI one
16:40:17 <Deewiant> I ignore such fractions. :-P
16:40:28 <fizzie> Deewiant: You could just test an infiniloop, the timeout cutoff counts executed bf cycles.
16:40:30 <Deewiant> If it takes no time it's not a benchmark.
16:40:32 <fizzie> ]bf +[]
16:40:34 <fungotCFUN> ...out of time!
16:40:34 <fungotCCBI> ...out of time!
16:40:47 <Deewiant> How many cycles is the cutoff?
16:40:58 <fizzie> That got a different second in my timestamps, but it didn't take very long either.
16:41:04 <AnMaster> ]ul (foo)S
16:41:04 <fungotCCBI> foo
16:41:05 <fungotCFUN> foo
16:41:12 <Sgeo_> This phone is going to be in place of getting a new computer
16:41:18 <fizzie> There's the awfully slow underload proggie, but I've forgotten it.
16:41:21 <AnMaster> hm a slow ul one might be better
16:41:31 <Deewiant> I should probably kill my bittorrent uploads to limit network lag
16:41:41 <fizzie> Deewiant: ^bf stops after executing aaaaaa***** bytecode ops.
16:41:44 <AnMaster> ]help
16:41:50 <AnMaster> ]commands
16:41:55 <AnMaster> ]show
16:41:56 <AnMaster> err
16:41:59 <AnMaster> what was the command
16:42:01 <AnMaster> to list all
16:42:02 <AnMaster> ^show
16:42:02 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble
16:42:04 <AnMaster> hm
16:42:09 <fizzie> Probably no commands defined.
16:42:10 <AnMaster> maybe those doesn't have any
16:42:19 <AnMaster> ^show fib
16:42:19 <fungot> >+10>+>+[[+5[>+8<-]>.<+6[>-8<-]+<3]>.>>[[-]<[>+<-]>>[<2+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<3-[>+<-]]]]]]]]]]]+>>>]<3][]
16:42:23 <AnMaster> ^help
16:42:23 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
16:42:26 <fizzie> If you start with an empty state file, there aren't any. But none of those is very slow.
16:42:38 <AnMaster> ]def fib bf >+10>+>+[[+5[>+8<-]>.<+6[>-8<-]+<3]>.>>[[-]<[>+<-]>>[<2+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<3-[>+<-]]]]]]]]]]]+>>>]<3][]
16:42:38 <fungotCFUN> Defined.
16:42:38 <fungotCCBI> Defined.
16:42:48 <alise> hey guys
16:42:48 <AnMaster> fizzie, wait, does it handle the compressed one there?
16:42:50 <AnMaster> ]fib
16:42:50 <fungotCFUN> <CTCP><CTCP><CTCP><CTCP><CTCP>..<CTCP>.<CTCP>..<CTCP>...<CTCP>...<CTCP>...<CTCP>...<CTCP>.. ...
16:42:50 <fungotCCBI> <CTCP><CTCP><CTCP><CTCP><CTCP>..<CTCP>.<CTCP>..<CTCP>...<CTCP>...<CTCP>...<CTCP>...<CTCP>.. ...
16:42:52 <AnMaster> err
16:42:57 <Deewiant> ...
16:42:59 <AnMaster> ^fib
16:42:59 <fungot> 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 <alise> http://www.w3.org/MarkUp/html3/mathscripts.html ;; once upon a time, there was a <MATH> element in HTML that actually rendered summation signs and stuff
16:43:02 <AnMaster> I guess not
16:43:14 <alise> you could write
16:43:15 <AnMaster> Deewiant, not my fault it can't read it's own output
16:43:26 <alise> <MATH>&sum;_k = 1_^n^ k</MATH>
16:43:32 <alise> for sum k=1 to n, k
16:43:41 <Sgeo_> alise, did any browsers actually support it?
16:43:45 <fizzie> ]ul (xxxx):*:*:*:*:*:*:*:*:(~~)(:^)^
16:43:46 <AnMaster> fizzie, btw why that [] at the end of the fib program?
16:43:48 <alise> Sgeo_: who knows
16:43:50 <fizzie> That should take a while.
16:43:50 <alise> it's awesome
16:43:56 <alise> wish it worked
16:43:58 <AnMaster> fizzie, doesn't it time out quickly?
16:44:11 <alise> Example - the integral from a to b of f(x) over 1+x
16:44:12 <alise> <MATH>&int;_a_^b^{f(x)<over>1+x} dx</MATH>
16:44:12 <alise> which can be rendered on a fixed pitch text-only medium as:
16:44:12 <alise> b
16:44:12 <alise> / f(x)
16:44:12 <alise> | ------- dx
16:44:14 <alise> / 1 + x
16:44:16 <alise> a
16:44:19 <alise> The example uses { and } as shortrefs for <BOX> and </BOX> 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 <alise> this is hot
16:44:23 <Deewiant> fizzie: No CPU usage, at least.
16:44:26 <fizzie> No, because the Underload interp also counts executed instructions, and the instructions get slower when there's a long string.
16:44:39 <fizzie> Deewiant: Whoops, I forgot a : there, I think. :p
16:44:55 <fizzie> But it's still a bit fast; I'll refine it a bit, just a moment.
16:45:04 <AnMaster> ^ul (xxxx):*:*:*:*:*:*:*:*:(~~)(:^)^(end)S
16:45:04 <fungot> end
16:45:06 <AnMaster> yeah
16:45:27 <fizzie> ]ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(~~)(:^):^
16:45:28 <fungotCFUN> ...out of time!
16:45:28 <fungotCCBI> ...out of time!
16:45:41 <AnMaster> ^ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(~~)(:^):^
16:45:42 <fungot> ...out of time!
16:45:44 <fizzie> It's still pretty fast.
16:45:53 <AnMaster> indeed
16:46:01 <AnMaster> also Deewiant has a monster computer iirc
16:46:08 <AnMaster> some 7 or 8 GB RAM iirc
16:46:09 <Deewiant> Ideally it should take >10s on your fungot :-)
16:46:10 <fungot> Deewiant: i'd rather my scotch straight up. no scheme system still actively maintained ( although a bit different
16:46:12 <fizzie> 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 <fizzie> I'll try to cook up something that does that.
16:46:54 <alise> * Irene Gargantini: An Effective Way to Represent Quadtrees. Commun. ACM 25(12): 905-910(1982)
16:46:58 <alise> does anyone have an acm account? oerjan?
16:47:16 <AnMaster> Gregor, where is egobot? and hackego?
16:47:26 <alise> 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 <alise> so it was never official
16:47:35 <fizzie> Geh, it's still a bit too fast.
16:47:39 <fizzie> ]ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(a~a*~~^)(:^):^
16:47:39 <fungotCFUN> ...out of time!
16:47:39 <fungotCCBI> ...out of time!
16:47:39 <AnMaster> hah
16:47:45 <AnMaster> oh different seconds here
16:48:00 <fizzie> Deewiant: If you want, you could increase the limits.
16:48:08 <Deewiant> Whereabouts?
16:48:10 <AnMaster> Deewiant, anyway, if they were the same speed, then shouldn't the cfunge be after the ccbi one just *sometimes*
16:48:18 <AnMaster> Deewiant, which hasn't been the case so far
16:48:26 <Deewiant> AnMaster: It was once.
16:48:40 <AnMaster> oh yes <AnMaster> ]ul (foo)S
16:48:43 <AnMaster> ]ul (foo)S
16:48:44 <fungotCCBI> foo
16:48:44 <fungotCFUN> foo
16:48:44 <Deewiant> :-)
16:48:46 <AnMaster> hm
16:48:48 <Deewiant> heh.
16:48:48 <fizzie> Deewiant: For the underload one, it's on line 310, I believe; the ffaa***81p there.
16:48:54 <AnMaster> Deewiant, you are faster at that one program
16:48:55 -!- fungotCFUN has quit (Remote host closed the connection).
16:48:56 <AnMaster> ]ul (foo)S
16:48:56 <fungotCCBI> foo
16:48:56 -!- fungotCCBI has quit (Remote host closed the connection).
16:49:06 <fizzie> Deewiant: There's even lots of whitespace above it, shouldn't be a problem to fit in a longer number.
16:49:37 <Deewiant> So that's what, 255^2 * 100 = 6502500
16:49:43 <Deewiant> Er, no
16:49:44 <Deewiant> 255 * 100
16:49:53 <fizzie> 15*15 isn't 255.
16:49:56 -!- adam_d has quit (Ping timeout: 265 seconds).
16:50:06 <Deewiant> Blarg, I always think ff* is
16:50:14 <fizzie> Yes, it is a bit misleading.
16:50:21 <Deewiant> Anyway, let's try 500k
16:50:32 <Deewiant> ' '}:**
16:51:13 <fizzie> 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 <AnMaster> 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 <fungot> AnMaster: dont be silly.
16:51:34 <AnMaster> ]ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(a~a*~~^)(:^):^
16:51:36 <Deewiant> He said it, not me
16:51:37 <fungotCFUN> ...out of time!
16:51:39 <fungotCCBI> ...out of time!
16:51:42 <Deewiant> Awesome!
16:51:46 <AnMaster> 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 <Deewiant> Alright, that's what I wanted to know :-)
16:52:21 <AnMaster> Deewiant, but yes I do believe it extended out into -x just above the program code
16:52:36 <AnMaster> perhaps you are just growing the full sized box for the entire program in your AABB thingy
16:52:40 <Deewiant> I'm not that stupid
16:52:43 <AnMaster> Deewiant, good
16:53:29 <fizzie> 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 <AnMaster> 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 <Deewiant> fizzie: Any ideas about making that ul-interpreter runnable without requiring an IRC server
16:53:46 <fizzie> Deewiant: There's a standalone version of it already, actually.
16:53:57 <Deewiant> fizzie: Cool! Where's it at
16:54:05 -!- EgoBot has joined.
16:54:05 -!- HackEgo has joined.
16:54:06 <fizzie> Deewiant: Who knows? I'm trying to find it right now.
16:54:09 <Deewiant> fizzie: :-)
16:54:16 <AnMaster> I used to have it
16:54:19 <AnMaster> can't find it any more
16:54:21 <Deewiant> AnMaster: If it's about STRN as he suggests, it's the fact that STRN isn't optimized at all.
16:54:35 <AnMaster> oh found it
16:54:46 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
16:54:46 <AnMaster> http://sprunge.us/FLOO
16:54:46 <fizzie> 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 <fungot> fizzie: it depends. if we're going to make functional programming possible. " standard" here...
16:54:49 <AnMaster> Deewiant, see ^
16:55:02 <AnMaster> fizzie, that one was called underload.b98
16:55:13 <fizzie> 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 <Deewiant> Do these have a timeout?
16:55:41 <fizzie> Hrrm, actually probably not.
16:55:48 <Deewiant> Heh.
16:55:55 <Deewiant> Are those infinite loops?
16:55:57 <AnMaster> fizzie, mine is the non-2
16:56:16 <fizzie> Yes, the programs I did will not terminate.
16:56:35 <Deewiant> Right, so that's not very optimal.
16:56:41 <AnMaster> 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 <fungot> 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 <AnMaster> but I'm not completely sure, it was as fungot said, a long time ago
16:56:54 <fungot> 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 <oerjan> alise: i vaguely recall augur had an acm account
16:57:16 <oerjan> or something like it
16:57:21 <alise> oerjan: I guess you'd be more of an AMS person.
16:57:23 <Deewiant> 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 <Deewiant> In CCBI, that is.
16:57:37 <Deewiant> I presume yours does it in-place? :-)
16:57:45 <Sgeo_> Well, it's going to be a few days until I can get it
16:58:00 <AnMaster> Deewiant, hm it seems mine pops both too.
16:58:01 <Sgeo_> I mentioned it to my step-mom's mother, and my dad doesn't want my step-mom hearing about it
16:58:04 <AnMaster> odd
16:58:19 <AnMaster> it really should not be needed
16:58:31 <fizzie> 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 <AnMaster> it could pop top one and then push it back, after removing the final \0 byte
16:58:40 <AnMaster> could it not?
16:58:56 <Deewiant> fizzie: Yeah, I was looking at something like that.
16:59:10 <AnMaster> Deewiant, except that would run into issues should the second string have it's \0 = stack underflow
16:59:11 <AnMaster> as in
16:59:18 <AnMaster> it has no \0 in the stack
16:59:48 <fizzie> Deewiant: For example the part that does "1+ :0g:" is executed every round, somewhere in there maybe.
17:00:36 <Deewiant> underload2 looks much nicer to edit in that respect
17:01:18 <fizzie> I think it's the same code, just compacted a bit.
17:01:25 <Deewiant> Yes, it looks such.
17:02:02 <oerjan> 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 <oerjan> although you can of course do that by expanding on the fly
17:02:41 <Deewiant> But this is no good! CCBI terminated in 8 seconds and cfunge is still going. >_<
17:02:54 <Deewiant> I wonder if it infinite-looped somewhere.
17:03:35 <alise> oerjan: well it's actually Z/nZ x Z/nZ
17:03:41 <alise> where n = 2^32 or 2^64, usually
17:03:43 <alise> if I have my notation right
17:04:05 <oerjan> 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 <oerjan> alise: oh, in that case subdividing like Deewiant says makes more sense
17:05:21 <oerjan> the subdivisions are just the paired sequence of bits for x and y coordinate, really
17:05:27 <Deewiant> No, CCBI is just going a crapload faster at this than cfunge.
17:05:31 <oerjan> (direction of them, that is)
17:06:07 <fizzie> 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 <fungot> fizzie: mostly directed ais523, if you're trying to solve
17:06:11 <Deewiant> With 500k iterations CCBI takes 3.9 seconds, cfunge is giving me about 200 iterations per second
17:06:14 <Deewiant> 2000*
17:06:24 <Deewiant> (I made it print the iteration count after every 1000 iterations)
17:06:26 <AnMaster> Deewiant, that doesn't match results on irc
17:06:29 <fizzie> fungot: But I'm not trying to solve a directed ais523.
17:06:30 <fungot> fizzie: yet another reason to be in there
17:06:34 <AnMaster> Deewiant, try underload as opposed to underload2
17:07:27 <AnMaster> fungot, in where?
17:07:27 <fungot> AnMaster: ok well my code works?" " i'd try to infer what he means by enticing code and stepping in fnord.
17:07:30 <fizzie> Yes, uh, I make no guarantees that the underload2 code is actually *correct*. It's just something I had.
17:08:14 <Deewiant> Ah yes, underload.b98 is much better.
17:08:23 <Deewiant> Both go fast, with cfunge being faster.
17:08:31 <AnMaster> Deewiant, see. That is the one you should use
17:08:32 -!- tombom has quit (Quit: Leaving).
17:08:37 <Deewiant> AnMaster: ;-P
17:08:51 <fizzie> Still a bit curious that you get different results there.
17:08:54 <Deewiant> But yes, it is around ten times faster for CCBI as well, so it is preferable.
17:09:38 <alise> You can actually make this valid SGML: T_`n` = #&sum# _(`k` = 1&to;`n`)_ 1/`k`
17:09:42 <alise> s/ $//
17:09:45 <alise> Expanding to
17:09:52 <alise> Err, wait, actually:
17:09:52 <Deewiant> fizzie: If it does wrapping, that could be one reason for the difference.
17:09:53 <AnMaster> Deewiant, hah, selfishness is the strongest force.
17:09:59 <alise> T_`n`_ = #&sum# _(`k` = 1&to;`n`)_ 1/`k`
17:10:15 <fizzie> Deewiant: I don't usually do wrapping intentionally, but I guess it might do it accidentally.
17:10:25 <Deewiant> 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 <AnMaster> hm
17:11:29 <Deewiant> I wrap in the iteration time checkers, but then it should be the same for both.
17:12:02 <AnMaster> Deewiant, how much faster is cfunge than ccbi at that btw?
17:12:35 <Deewiant> AnMaster: It's around 0.7 versus 0.45 (seconds)
17:12:40 <fizzie> 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 <AnMaster> Deewiant, cfunge being 0.45?
17:12:58 <Deewiant> AnMaster: I did say it was faster...
17:13:18 <AnMaster> Deewiant, yes, but try increasing timeout so you get around 10 seconds of each
17:13:24 <AnMaster> will be interesting
17:13:30 <Deewiant> I don't care that much
17:13:36 <Deewiant> It takes a minute to callgrind as is.
17:13:44 <AnMaster> why do you callgrind it?
17:13:48 <Deewiant> To profile.
17:13:54 <AnMaster> Deewiant, you don't use oprofile?
17:13:59 <Deewiant> Evidently not.
17:14:23 <Deewiant> 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 <AnMaster> 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 <AnMaster> 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 <Deewiant> Oh wait, wtf
17:18:22 <Deewiant> My iteration-checker is broken
17:18:32 <Deewiant> It never reenters the main loop >_<
17:18:55 <AnMaster> Deewiant, in the underload2 case?
17:19:00 <AnMaster> or the underload one?
17:19:04 <fizzie> Deewiant: Yes, that's why I called it just "O(1)-ish". :p
17:19:05 <Deewiant> The latter
17:19:14 <Deewiant> fizzie: :-P
17:19:28 <Deewiant> Here we go, 3.6 versus 2.6 now.
17:19:39 <AnMaster> Deewiant, and the latter is cfunge?
17:19:40 <Deewiant> At least CCBI uses a lot less memory. :-P
17:19:43 <Deewiant> Yes.
17:20:05 <fizzie> Deewiant: Do you special-case cardinal-direction movement/wrapping somehow? I don't do non-cardinal deltas at all, after all.
17:20:16 <AnMaster> Deewiant, memory usage is not of primary interest to cfunge. As long as it is reasonable (as defined by me!)
17:20:45 <AnMaster> fizzie, haha
17:20:49 <Deewiant> fizzie: I don't solve a diophantine equation for that case
17:20:56 <Deewiant> Or I guess I do, but I avoid the division
17:21:11 <Deewiant> Or at least I think I do that.
17:21:33 <Deewiant> Yes, I appear to.
17:22:16 <AnMaster> 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 <AnMaster> that is, reversing and searching for the opposite side
17:23:33 <Deewiant> AnMaster: time ccbi slowdown.b98 mycology.b98 -> 0.87user 0.00system 0:00.88elapsed 99%CPU (0avgtext+0avgdata 66096maxresident)k
17:23:43 <Deewiant> AnMaster: time cfunge slowdown.b98 mycology.b98 -> 10 seconds and counting
17:24:08 <AnMaster> Deewiant, huh? With exact bounds?
17:24:14 <Deewiant> Yes.
17:24:26 <AnMaster> Deewiant, I'm extremely surprised. Did you change something recently?
17:24:42 <AnMaster> like no longer removing the slowdown program from memory or such
17:24:52 <AnMaster> Deewiant, or resetting the storage offset to 0?
17:24:53 <Deewiant> I don't think slowdown has changed
17:25:10 <Deewiant> I think I changed Mycology to go a bit further
17:25:16 <Deewiant> Even with a bad storage offset, or something
17:25:18 <AnMaster> Deewiant, using the slowdown version I have here, it is quick
17:25:26 <Deewiant> Latest Mycology?
17:25:30 <Deewiant> Where does it end?
17:25:41 <oerjan> in disaster, obviously
17:25:46 <Deewiant> Quite
17:26:05 <AnMaster> Deewiant, it takes
17:26:07 <AnMaster> wait
17:26:08 <AnMaster> huh
17:26:11 <AnMaster> GOOD: basic cBAD: t reflects without creating a new IP or concurrency is very broken
17:26:11 <AnMaster> Situation might be very messed up, trying to quit with q
17:26:17 <AnMaster> only with slowdown
17:26:38 <AnMaster> Deewiant, is that where ccbi ends too?
17:26:42 <Deewiant> Yes
17:26:52 <AnMaster> Deewiant, well it took about 3 seconds. Let me rerun with time
17:27:03 <AnMaster> Deewiant, 2.83 seconds wall time
17:27:21 <Deewiant> I'm at 4 minutes of CPU and counting
17:27:27 <AnMaster> Deewiant, I suppose you either disabled exact bounds or you hit a bad random position
17:27:45 <AnMaster> Deewiant, tell me the random position it ended up at
17:27:58 <Deewiant> AnMaster:
17:27:58 <Deewiant> AnMaster: That the position of the IP was ( -1178306726 1116900389 )
17:28:06 <AnMaster> hm okay
17:28:30 <AnMaster> Deewiant, my slowdown seems to be that hardwired one you gave me to test that bug some time ago
17:28:37 <Deewiant> Well heh
17:28:41 <AnMaster> Deewiant, can't find any other
17:28:43 <Deewiant> That one goes to a really low point
17:28:45 <AnMaster> link to current version?
17:29:01 <AnMaster> wgetable link that is
17:29:10 <AnMaster> Deewiant, ?
17:29:16 <Deewiant> AnMaster: !
17:29:16 <Deewiant> AnMaster: !
17:29:16 <Deewiant> AnMaster: !
17:29:17 <Deewiant> AnMaster: !
17:29:17 <Deewiant> AnMaster: !
17:29:19 <Deewiant> AnMaster: !
17:29:22 <Deewiant> AnMaster: !
17:29:24 <Deewiant> AnMaster: !
17:29:25 <AnMaster> mhm?
17:29:27 <Deewiant> AnMaster: !
17:29:29 <Deewiant> AnMaster: !
17:29:49 <AnMaster> I see you are trying to make a point. I don't see what said point is
17:29:56 <Deewiant> AnMaster: http://iki.fi/deewiant/files/befunge/programs/slowdown.b98
17:30:00 <AnMaster> thanks
17:30:13 <Deewiant> Had to upload it first
17:30:37 <AnMaster> Deewiant, does it do wrapping inside y?
17:30:45 <AnMaster> also, it seems to be writing around 0,0
17:30:49 <AnMaster> well not odd in that case
17:30:49 <Deewiant> Mycology always wrapped inside y
17:31:07 <Deewiant> If by "inside y" you mean "in the y tests", anyway.
17:31:12 <AnMaster> well yes
17:31:19 <AnMaster> I thought that was obvious
17:31:27 <Deewiant> It was, fairly.
17:32:04 <oerjan> <AnMaster> GOOD: basic cBAD: t reflects without creating a new IP or concurrency is very broken <-- :D
17:32:22 <Deewiant> Damn, that underload.b98 takes a long time.
17:32:30 <Deewiant> 62750457 ticks
17:32:30 <AnMaster> Deewiant, not on cfunge :P
17:33:01 <oerjan> scrödinger's concurrency
17:33:06 <oerjan> *+h
17:33:12 <AnMaster> Deewiant, because it is a real world application®, which cfunge® is optimised for. Unlike CCBI, optimised for exotic benchmarks
17:33:46 <oerjan> i want some proof you actually registered that trademark
17:33:56 <Deewiant> Especially the one for application®
17:33:58 <AnMaster> oerjan, I didn't. It was a joke
17:34:08 <AnMaster> Deewiant, actually it is "real world application"®
17:34:15 <AnMaster> not just application
17:34:37 <Deewiant> Removing fingerprints cut off some 0.3 seconds, but not enough to make the difference
17:34:43 <oerjan> AnMaster: you cannot joke about such matters, you'll end up in jail
17:34:50 <AnMaster> Deewiant, fingerprints from what? underload?
17:34:58 <Deewiant> AnMaster: ...... CCBI
17:35:07 <alise> 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 <alise> 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 <AnMaster> Deewiant, for mycology or underload?
17:35:14 <AnMaster> which test is you testing on
17:35:21 <Deewiant> I don't test Mycology, it runs in 0s.
17:35:22 <AnMaster> are*
17:35:44 <AnMaster> Deewiant, well then. underload.b98 needs STRN. So weird that it works at all if you remove fingerprints
17:35:48 <AnMaster> so thus it can't be it
17:35:52 <AnMaster> it must be something else
17:35:56 <Deewiant> I didn't say /all/ fingerprints
17:36:05 <AnMaster> okay
17:36:35 <AnMaster> 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 <Deewiant> AnMaster: TRDS, IMAP, IIPC, MODE...
17:36:45 <AnMaster> if those added up to 0.3 seconds something is *very* wrong
17:36:55 <Deewiant> You know, all those fingerprints that you don't implement
17:37:04 <AnMaster> Deewiant, those are in core partly, no? You have the core parts in #ifdef or such?
17:37:06 <oerjan> alise: i think that assumes actually allocating all the quadtree as an array up front
17:37:10 <Deewiant> Yes, I do.
17:37:13 <Deewiant> In part.
17:37:13 <AnMaster> right
17:37:43 <oerjan> hm, except that last sentence
17:37:48 <AnMaster> Deewiant, just accept it. You made a great funge interpreter. But you can't be best at everything
17:37:50 <AnMaster> :P
17:38:04 <Deewiant> AnMaster: So what's this I hear about you making a better Funge-Space? :-P
17:38:21 <alise> :- is notation for the turnstile |- isn't it
17:38:26 <oerjan> alise: oh wait, it's actually _saving the coordinates_?
17:38:26 <AnMaster> 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 <Deewiant> Of course it does
17:39:01 <AnMaster> 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 <Deewiant> Ended with: 11 AABBs live
17:39:06 <Deewiant> Had: 12 AABBs live at maximum
17:39:06 -!- lament has joined.
17:39:11 <AnMaster> mhm
17:39:13 <Deewiant> That doesn't sound very good.
17:39:25 <AnMaster> Deewiant, I can't tell
17:39:31 <Deewiant> I know.
17:39:41 <AnMaster> Deewiant, if the program is split out in many parts it seems reasonable
17:40:00 <AnMaster> Deewiant, also I just realised a ul program that will throw off your algorithm
17:40:06 <Deewiant> It doesn't seem split.
17:40:22 <Deewiant> 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 <AnMaster> Deewiant, one that writes large stretches of spaces in the stack then switches it to being filled
17:40:38 <Deewiant> In the stack?
17:40:43 <AnMaster> Deewiant, in the ul stack
17:40:45 <AnMaster> which is in funge space
17:40:51 <Deewiant> Right.
17:40:58 <Deewiant> That shouldn't be much of a problem?
17:41:10 <AnMaster> Deewiant, well, I don't know if you ever free AABBs?
17:41:18 <AnMaster> or shrink them
17:41:22 <Deewiant> Rarely.
17:41:31 <Deewiant> Never in this program.
17:41:43 <oerjan> the stack of 'ul
17:41:49 <AnMaster> Deewiant, what about shrinking them? Probably ccbi could be fooled into having a lot of mostly empty AABBs around
17:42:04 <Deewiant> Yes, that could happen.
17:42:35 <AnMaster> 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 <AnMaster> you know
17:42:43 <AnMaster> you should write such a test for fungicide
17:42:48 <Deewiant> ?
17:42:51 <AnMaster> But I bet you won't :P
17:42:56 <Deewiant> I don't understand what you mean.
17:43:37 <AnMaster> 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 <Deewiant> You've pretty much just described slowdown.b98. :-P
17:44:10 <AnMaster> Deewiant, and if that is cleared and then that AABB reused elsewhere for those mostly static ones.
17:44:21 <AnMaster> err
17:44:25 <AnMaster> mostly empty ones*
17:44:40 <Deewiant> If it is reused elsewhere?
17:44:44 <Deewiant> What do you mean?
17:44:50 <alise> does fungicide do slowdown?
17:44:54 <Deewiant> No.
17:44:56 <alise> if not, it should; it would then take 5 years to run
17:45:00 <Deewiant> Yes. :-P
17:45:03 <AnMaster> 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 <Deewiant> Yes, I do.
17:45:27 <AnMaster> Deewiant, oh and when it switched to hash table, does it grow any of the existing AABBs?
17:45:33 <Deewiant> No, it doesn't.
17:45:47 <alise> datatype quadtree
17:45:47 <alise> = Leaf of word array
17:45:48 <alise> | Branch of coords * subtree * subtree * subtree * subtree
17:45:52 <Deewiant> 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 <alise> This is the optimal practical structure, right?
17:46:06 <AnMaster> Deewiant, I'm not talking about underload.b98
17:46:08 <Deewiant> alise: You need a coords in the Leaf, no?
17:46:13 <alise> where subtree is a pointer to maybe-a-quadtree
17:46:15 <alise> Deewiant: Hm, right.
17:46:28 <alise> datatype quadtree
17:46:28 <alise> = Leaf of coords * word array
17:46:28 <alise> | Branch of coords * subtree * subtree * subtree * subtree
17:46:28 <alise> and type subtree = quadtree option ref
17:46:31 <AnMaster> 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 <AnMaster> inside cfunge's static area
17:46:45 <AnMaster> but outside the initial AABB
17:46:53 <alise> I believe the only operations I need are
17:46:55 <alise> val move : quadtree * direction -> quadtree
17:46:56 <alise> val leaf : quadtree -> word
17:46:57 <alise> val put : quadtree * word -> unit
17:47:01 <AnMaster> Deewiant, that is my suggestion for a new fungicide benchmark :P
17:47:01 <alise> and I can perform the rest with pattern-matching + them
17:47:02 <Deewiant> AnMaster: That sounds a bit like an anti-CCBI test. :-P
17:47:13 <AnMaster> Deewiant, yes but I feel you have too many pro-CCBI tests already
17:47:16 <AnMaster> so you need some balance
17:47:25 <Deewiant> They're not really pro-CCBI IMO.
17:47:33 <Deewiant> Most of them were written before I even knew what to do with CCBI 2.
17:47:56 <AnMaster> 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 <Deewiant> I was just thinking of different kind of data access patterns.
17:48:02 <Deewiant> kinds*
17:48:10 <alise> 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 <Deewiant> AnMaster: No, actually I was trying to be fast at everything.
17:48:28 <Deewiant> AnMaster: But heuristics will fail. (If that's what's going on here.)
17:48:48 <AnMaster> Deewiant, well, that is almost the definition of heuristics. "Will sometimes fail"
17:48:55 <Deewiant> Correct.
17:49:15 <AnMaster> Deewiant, was that to me or alise?
17:49:34 <Deewiant> Given that alise's last was a minute ago... to you.
17:49:40 <AnMaster> Deewiant, can't tell what alise is saying due to /ignore
17:49:45 <Deewiant> Then don't make it my problem.
17:49:48 <alise> Hey guys, did I mention I have alise on ignore
17:49:52 <alise> Guys GUYS WHAT ARE YOU TALKING ABOUT
17:49:53 <AnMaster> hm?
17:49:57 <alise> I can't understand you it's like you're talking to thin air
17:50:00 <AnMaster> that must have been to alise ;P
17:50:03 <Deewiant> Hmm, lots of weird boxes in underload.b98.
17:50:03 <alise> Oh it's alise. I have her on ignore by the way.
17:50:08 <AnMaster> Deewiant, hah
17:51:09 <AnMaster> 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 <AnMaster> there is no way Language::Befunge can beat ccbi, even at extremely anti-ccbi benchmarks
17:51:34 <Deewiant> If you can think of something reasonable and/or will implement it...
17:51:45 <Deewiant> AnMaster: Really, hollow-square and diagdown/diagup are anti-current-CCBI
17:51:47 <AnMaster> Deewiant, I suggested something above. I guess you consider it unreasonable?
17:52:16 <Deewiant> AnMaster: It just seems a bit random and too "tailored"
17:52:19 <AnMaster> 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 <Deewiant> What's the use case?
17:52:26 <AnMaster> since it keeps inside the b93 area
17:52:30 <Deewiant> Yes, they are a good idea
17:52:42 <Deewiant> life.bf I considered but found too much of a pain to try to figure out
17:52:50 <Deewiant> underload I didn't realize was available in such a convenient form.
17:53:00 <alise> Deewiant: Do you mind restating what the directions have to mean? Not specific ones, but the general...
17:53:07 <AnMaster> Deewiant, life.bf is some quite amazingly compact code yes
17:53:17 <AnMaster> also perhaps some IO performance tests
17:53:20 <AnMaster> that might be interesting
17:53:34 <AnMaster> not just standard IO but also i and o
17:53:41 <Deewiant> alise: Directions mean directions. What do you mean?
17:54:02 <Deewiant> 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 <AnMaster> 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 <alise> Deewiant: for instance
17:54:18 <Deewiant> AnMaster: Neither do I?
17:54:21 <AnMaster> well then
17:54:29 <AnMaster> aren't you interested in finding out?
17:54:29 <alise> NW = (-1,-1), NE = (-1,1), SW = (1,-1), SE = (1,1)
17:54:33 <alise> Deewiant: but then what of (0,2)
17:54:43 <Deewiant> AnMaster: Not really? :-P The disk tends to be the bottleneck
17:54:45 <alise> how do we get there, considering all moves are diagonal?
17:54:56 <AnMaster> Deewiant, ffs. ramdisk
17:55:02 <Deewiant> AnMaster: Rare.
17:55:08 <AnMaster> Deewiant, well you could test that
17:55:13 <Deewiant> AnMaster: Rare.
17:55:16 <Deewiant> alise: The locations of the branches don't matter, only the root.
17:55:18 <AnMaster> Deewiant, anyway for stdio you don't need to ever put it on that
17:55:20 <Deewiant> alise: Er, the current node.
17:55:25 <AnMaster> Deewiant, it could go through a pipe
17:55:30 <AnMaster> to a throughput measuring app
17:55:32 <AnMaster> or whatever
17:55:33 <alise> Deewiant: I don't quite understand. :-P
17:56:08 <AnMaster> 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 <Deewiant> 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 <AnMaster> so that might show a huge difference
17:56:25 <AnMaster> 3DSP might be interesting too
17:56:27 <alise> Deewiant: You are at (0,0).
17:56:40 <Deewiant> alise: If x is equal do we go west or east?
17:56:41 <alise> You can move to (1,1), (1,-1), (-1,1), (-1,-1).
17:56:45 <Deewiant> alise: Incorrect.
17:56:50 <Deewiant> alise: You can move NW/NE/SW/SE.
17:56:50 <alise> (NW/NE/SW/SE)
17:56:58 <alise> Deewiant: ffff
17:56:59 <Deewiant> alise: What points are there is beyond are concern at this point.
17:57:03 <Deewiant> our*
17:57:05 <AnMaster> Deewiant, something like a befunge dhrystone?
17:57:06 <alise> Okay then:
17:57:14 <alise> North - X is same; South - X is different
17:57:23 <alise> West - Y is same; East - Y is different
17:57:25 <alise> Er, wait.
17:57:27 <alise> That's silly.
17:57:30 <AnMaster> Deewiant, from what I can tell, the current fungicide benchmarks don't test arithmetic speed
17:57:32 <Deewiant> AnMaster: Yes, all manner of thing can be tested that Fungicide doesn't. It is also work to do.
17:57:33 <alise> North - Y is same; South - Y is different
17:57:40 <alise> West - X is same; East - X is different
17:57:53 <alise> So we want to move southeast?
17:58:02 <AnMaster> Deewiant, this could be one place where jitfunge could shine. Optimising divisions by 2^5 into bitshifts and such
17:58:07 <Deewiant> alise: X is same here, so southwest, no?
17:58:10 <AnMaster> which is not feasible in either cfunge or ccbi
17:58:24 <Deewiant> 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 <alise> (0,0) / (0,2)
17:58:44 <alise> (x,y)
17:58:47 <alise> x is right
17:58:48 <alise> y is wrong
17:58:57 <alise> * NW: right X, right Y
17:58:57 <alise> * NE: right X, wrong Y
17:58:58 <alise> * SW: wrong X, right Y
17:58:58 <alise> * SE: wrong X, wrong Y
17:59:09 <alise> so northeast
17:59:12 <Deewiant> alise: It's not about right/wrong
17:59:12 <alise> wait
17:59:14 <alise> y is vertical
17:59:15 <AnMaster> Deewiant, anyway most useful is definitely real programs. I think life.bf would be most useful of these
17:59:16 <alise> ffff
17:59:21 <alise> okay let me rewrite this
17:59:26 <Deewiant> alise: It's about lesser-equal/greater vs lesser/greater-equal
17:59:28 <AnMaster> which is non-trivial to adapt
17:59:51 <Deewiant> AnMaster: So please adapt it so I don't have to. :-P
17:59:53 <alise> * NW: wrong X, wrong Y
17:59:53 <alise> * NE: right X, wrong Y
17:59:53 <alise> * SW: wrong X, right Y
17:59:53 <alise> * SE: right X, right Y
17:59:56 <AnMaster> Deewiant, hah
18:00:01 <alise> Deewiant: Wrong = different, right = same
18:00:02 <alise> So
18:00:06 <alise> (x,y) = (0,0)
18:00:10 <alise> (x,y) = (0,2)
18:00:13 <AnMaster> Deewiant, how many FLOPS can FPSP in ccbi manage btw? ;P
18:00:15 <alise> x is right, y is wrong.
18:00:18 <alise> Northeast.
18:00:19 <Deewiant> AnMaster: Do not know.
18:00:23 <Deewiant> AnMaster: As you know.
18:00:31 <AnMaster> Deewiant, I'm trying to get you interested in it dammit ;P
18:00:36 <alise> We want to move northeast.
18:00:40 <Deewiant> AnMaster: Not gonna happen like that. :-P
18:00:48 <AnMaster> meh
18:00:48 <Deewiant> alise: y increases to the south, no?
18:01:10 <alise> Deewiant: Okay, I am so fucking confused. My brain appears to have forgotten coordinates entirely.
18:01:19 <Deewiant> alise: 2010-04-11 19:59:02 ( Deewiant) alise: It's about lesser-equal/greater vs lesser/greater-equal
18:01:23 <alise> But still.
18:01:27 <alise> Having NW be wrong X, right Y seems so wrong.
18:01:34 <alise> West and North seem so... samey.
18:01:35 <Deewiant> alise: It's not about wrong/right, still.
18:01:41 <alise> Deewiant: You said same/different.
18:01:47 <alise> You didn't say <=/>
18:01:53 <Deewiant> alise: Where'd I say that?
18:02:03 <alise> Ages ago.
18:02:17 <Deewiant> /last same doesn't see me saying much of anything.
18:02:24 <alise> Okay, fine.
18:02:32 <Deewiant> It does see you saying it a couple of times, though. :-P
18:02:52 <Deewiant> alise: Make life simpler for yourself and pick (1,2) for the example. :-P
18:02:52 <alise> So, wait, eh?
18:02:55 <alise> You have four comparisons.
18:03:02 <alise> So I want to map [NS][WE] to pairs of ... what?
18:03:03 <Deewiant> You have two comparisons.
18:03:09 <alise> "lesser-equal/greater vs lesser/greater-equal"
18:03:31 <AnMaster> 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 <Deewiant> alise: If input.x < node.x then go west; if input.x > node.x then go east; similarly for y
18:03:34 <AnMaster> Or perhaps the stack
18:03:51 <Deewiant> alise: The question is, which branch do we take when input.x = node.x.
18:03:59 <Deewiant> alise: (And it's completely arbitrary.)
18:04:18 <alise> Deewiant: Okay, I'll write this down.
18:04:22 <AnMaster> ah, I guess fungespace and quad/oct-tree then
18:04:49 <Deewiant> AnMaster: Disabling statistics bought me another 0.3 seconds.
18:04:54 <oerjan> 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 <Deewiant> So I'm only 0.4 seconds behind now. :-P
18:05:07 <AnMaster> Deewiant, try disable tracing for cfunge
18:05:10 <AnMaster> Deewiant, otherwise it isn't fair
18:05:11 <alise> 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 <oerjan> basically take the (x,y) coordinate, write each of x and y in binary
18:05:15 <Deewiant> AnMaster: It's enabled in CCBI.
18:05:29 <AnMaster> Deewiant, well you have a debugger for it, mine is closer to statistics
18:05:30 <Deewiant> alise: Whatever. :-P
18:05:39 <Deewiant> AnMaster: Er, no it isn't
18:05:41 <AnMaster> Deewiant, so yes disable the tracing, won't make much of a difference
18:05:50 <oerjan> say x = 00001100 and y = 11100001
18:05:51 <Deewiant> AnMaster: Both are just one if (tracing) doSomething();
18:06:06 <AnMaster> Deewiant, do you have tracing inside k too?
18:06:07 <AnMaster> Deewiant, I do
18:06:17 <Deewiant> 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 <alise> Deewiant:
18:06:23 <alise> (* North: wanted y <= current y
18:06:23 <alise> * South: wanted y > current y
18:06:23 <alise> *
18:06:23 <alise> * East: wanted x < current x
18:06:23 <alise> * West: wanted x => current x
18:06:25 <alise> *)
18:06:26 <oerjan> alise: then _pair_ corresponding bits. 01 01 01 00 10 10 00 01
18:06:29 <Deewiant> AnMaster: There are no ks in this program.
18:06:37 <AnMaster> Deewiant, my trace is all over the place too: one per ip per tick and in k
18:06:38 <alise> So, (0,2); x is ok, so West; y is wrong (wanted is greater), so South.
18:06:42 <alise> Southwest, Deewiant, right?
18:06:43 <AnMaster> Deewiant, plus in some fingerprints iirc
18:06:44 <alise> oerjan: wut.
18:06:46 <Deewiant> AnMaster: No, that's not all over the place. :-P
18:07:04 <oerjan> those pairs are your directions. 00 = SW, 01 = NW, 10 = SE, 11 = NE
18:07:07 <Deewiant> alise: Right.
18:07:10 <oerjan> (from the root)
18:07:14 <AnMaster> Deewiant, btw when do you shrink bounds in ccbi2?
18:07:20 <alise> Deewiant: But then what? Do we just insert a leaf there?
18:07:22 <Deewiant> oerjan: I don't see how this is "an easier way to look at it"
18:07:25 <AnMaster> Deewiant, lazily? Or eagerly ?
18:07:28 <Deewiant> AnMaster: In y.
18:07:36 <alise> Incidentally, I have no clue how I'm going to do exact bounds with this
18:07:40 <AnMaster> Deewiant, do you have a flag for if it is exact like I do?
18:07:41 <Deewiant> alise: No, now you go there and take a look.
18:07:47 <Deewiant> AnMaster: No, I don't.
18:07:50 <AnMaster> hm
18:07:55 <alise> Deewiant: >_<
18:08:04 <Deewiant> alise: I.e. take the SW link and do something based on what's there.
18:08:12 <AnMaster> Deewiant, btw with the hash table funge space is your wrapping still O(1)?
18:08:16 <Deewiant> alise: I.e. recursion. :-P
18:08:33 <Deewiant> AnMaster: My wrapping is not globally O(1)
18:08:35 <alise> Deewiant: I'll write a function to decide what direction to go in, then.
18:08:45 <Deewiant> alise: Good idea!
18:09:18 <Deewiant> AnMaster: But yes, it uses the same algorithm, just treating the hash table area as one more box.
18:09:28 <AnMaster> 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 <oerjan> Deewiant: well i cannot make heads or tails of what you are saying, so easier for _me_ :D
18:09:44 <AnMaster> Deewiant, do you shrink the bounds of the hash table box then?
18:09:47 <Deewiant> AnMaster: The bounds aren't used for wrapping.
18:09:55 <Deewiant> oerjan: >_<
18:10:00 <alise> Deewiant: It freaks me out that we have x,y in tuples but y,x in direction names
18:10:02 <alise> like northeast
18:10:11 <AnMaster> Deewiant, then what is used for it? if you have a huge sparely populated hash table box
18:10:11 <Deewiant> alise: Blame English. :-P
18:10:11 <oerjan> actually i guess N and S should be switched if y is numbered from top like in funge
18:10:35 <AnMaster> oerjan, I don't get it
18:10:50 <AnMaster> the pun I mean
18:10:54 -!- jcp has joined.
18:10:54 <oerjan> what pun
18:10:57 <AnMaster> probably due to something alise said?
18:11:03 <AnMaster> <oerjan> Deewiant: well i cannot make heads or tails of what you are saying, so easier for _me_ :D <Deewiant> oerjan: >_<
18:11:14 <Deewiant> AnMaster: What makes you think there is a pun anywhere.
18:11:20 <AnMaster> Deewiant, oerjan said it :P
18:11:35 <oerjan> AnMaster: he is just frustrated i don't understand his NW stuff (or at least don't think it helps any)
18:11:37 <Deewiant> If oerjan says something it is not automatically a pun.
18:11:38 <AnMaster> pretty good indicator of P(pun)
18:11:49 <AnMaster> Deewiant, it is if someone else go >_< at it
18:12:09 <Deewiant> I think I'm the only one here who goes >_< at anything
18:12:20 <Deewiant> And I think I don't usually respond to puns
18:12:20 <AnMaster> Deewiant, I do it, in other channels mostly
18:12:35 <AnMaster> more often -_- though
18:12:55 <oerjan> 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 <alise> fun directionFor ((cx,cy), (wx,wy)) =
18:13:27 <alise> case (wy <= cy, wx < cx)
18:13:27 <alise> of (false,false) => SW
18:13:27 <alise> | (false,true) => SE
18:13:27 <alise> | (true,false) => NW
18:13:27 <alise> | (true,true) => NE
18:13:40 <Deewiant> oerjan: Interleaving the x-bits and y-bits? I don't see the point of that at all
18:13:56 <alise> Deewiant: val move : quadtree * direction -> quadtree
18:13:56 <alise> val leaf : quadtree -> word
18:13:57 <alise> val put : quadtree * word -> unit
18:14:06 <alise> I think these primitives are wrong.
18:14:18 <alise> I don't think there is a useful set of primitives that do not handle coordinates themselves for this structure.
18:15:32 <oerjan> Deewiant: it tells you immediately the path from the root of the quadtree to the given coordinate
18:15:53 <AnMaster> <Deewiant> oerjan: Interleaving the x-bits and y-bits? I don't see the point of that at all <-- cache?
18:15:54 <Deewiant> oerjan: I don't understand at all how
18:16:18 <oerjan> Deewiant: let's say we have a 256 x 256 fungespace to be made into a quadtree
18:16:25 <Deewiant> oerjan: It depends on the quadtree itself, doesn't it?
18:16:45 <Deewiant> Oh, but we are assuming that it is centered at (0,0)
18:16:48 <oerjan> Deewiant: maybe you have some different structure in mind
18:16:50 <Deewiant> Which I guess helps
18:18:04 <oerjan> Deewiant: well you could make it -256 to 255 coordinates
18:18:13 <oerjan> er, -128 to 127
18:18:44 <oerjan> 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 <Deewiant> Yes, sure
18:19:13 <oerjan> you'd just have to invert the very top bits for that
18:19:29 <oerjan> (the sign bits)
18:19:34 <Deewiant> I don't see at all how this bit-interleaving works :-P
18:20:01 <oerjan> er i keep thinking y increases upward
18:20:06 <oerjan> (as in math)
18:20:17 <oerjan> so switch upper and lower above
18:20:54 <oerjan> the upper left quadrant is now (-128, -128) to (-1, -1)
18:21:09 <oerjan> and can be detected by the sign bits
18:21:15 -!- charlls has joined.
18:21:32 <oerjan> the lower right is (0, 0) to (127, 127)
18:21:46 -!- cheater2 has joined.
18:21:55 <alise> so wait using y increasing upwards should i change my north/south conditions??
18:22:01 <alise> er i mean
18:22:02 <alise> increasing downwards
18:22:05 <oerjan> now when we subdivide the latter one, we get the upper left of _that_ is (0, 0) to (63, 63)
18:22:06 <alise> (* North: wanted y <= current y
18:22:06 <alise> * South: wanted y > current y
18:22:08 <alise> I am so, so confused
18:22:19 <Deewiant> alise: Don't listen to us :-P
18:22:27 <alise> >_<
18:22:33 <Deewiant> I mean, this convo.
18:22:36 <alise> I still don't get the subdivision algorithm :D
18:22:40 <oerjan> alise: well it's just about being consistent but i assume you want south == downwards == increasing line number?
18:22:43 <Deewiant> If what oerjan does works, it's still an optimization.
18:22:52 <Deewiant> I wouldn't worry about it just now.
18:22:52 <alise> oerjan: right
18:22:57 <alise> so my two lines are correct
18:23:09 <alise> so am I right in thinking tha
18:23:09 <alise> t
18:23:15 <alise> val move : quadtree * direction -> quadtree
18:23:16 <alise> val leaf : quadtree -> word
18:23:16 <alise> val put : quadtree * word -> unit
18:23:17 <alise> is a bad set of primitives
18:23:22 <alise> because it's basically useless without coordinate stuff
18:23:54 <Deewiant> You need put : quadtree * coords * word -> unit
18:23:54 <oerjan> 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 <AnMaster> hm from the convo it seems alise isn't copying ccbi, but rather is copying Deewiant's step by step guide
18:24:09 <AnMaster> just saying
18:24:17 <Deewiant> oerjan: It tells you which quadrant to go to next
18:24:26 <alise> AnMaster: Actually, it isn't even CCBI's algorithm.
18:24:29 <Deewiant> oerjan: I mean, that's basically how a quadtree is defined
18:24:33 <alise> I'm asking for an explanation of an entirely neutral data structure.
18:24:47 <Deewiant> oerjan: About a branch, the points northwest of it are in the northwest quadrant, and so on. :-P
18:25:00 <oerjan> AnMaster: you know, either shut up or unignore alise
18:25:06 <alise> 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 <alise> *I'm ignored
18:25:16 <alise> Although I am annoyed too.
18:25:33 <oerjan> alise: the shut up goes for you too :D
18:25:36 <alise> oerjan: On the other hand, maybe he should keep me ignored :)
18:25:40 <alise> Hey, I haven't ignored him.
18:25:45 <alise> It's not my fault he's ignored me.
18:25:50 <Deewiant> I'm also annoyed, CCBI is failing at underload. :-P
18:25:52 <alise> Entirely out of my control.
18:25:55 <AnMaster> 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 <alise> Stinkhorn uses 64x64 arrays, it seems.
18:26:55 <alise> Seems like a nice round number.
18:27:13 <oerjan> 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 <Deewiant> Careful; I think Stinkhorn is GPL.
18:27:20 <alise> Deewiant: :-D
18:27:35 <alise> Although 64x64 is suboptimal in that I think Befunge-93 programs should really fit into one array.
18:27:41 <oerjan> and it's then easy to align things such that the boundaries of the squares correspond to bit boundaries
18:27:43 <alise> Then again, 80*80 is both not round and a bit too big.
18:27:48 <alise> 96*96 is just travesty, isn't it?
18:27:59 <alise> oerjan: there are no parents in quadtrees
18:28:01 <alise> you cannot traverse upwards
18:28:15 <Deewiant> 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 <Deewiant> :-D
18:28:51 <Deewiant> oerjan: You've been right so far AFAICT.
18:29:00 <alise> datatype quadtree
18:29:00 <alise> = Leaf of coords * word array
18:29:01 <alise> | Branch of coords * subtree * subtree * subtree * subtree
18:29:01 <alise> and type subtree = quadtree option ref
18:29:03 <alise> I am fairly sure I have this right by now.
18:29:09 <alise> (The array is, of course, just an optimisation.)
18:29:10 <alise> Oh, wait.
18:29:18 <Deewiant> Yes, I think you have this right.
18:29:19 <alise> This means that when I hit something I need to decide whether I'm in the bounds of any potential array.
18:29:23 <alise> Or, no.
18:29:25 <alise> That's just if I hit a leaf.
18:29:27 <alise> Isn't it?
18:29:28 <Deewiant> Yes.
18:29:31 <alise> Good.
18:29:33 <alise> Otherwise that would be painful.
18:29:54 <Deewiant> I think your arrays need to be a power of two for this to work.
18:30:06 <alise> 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 <Deewiant> At least without some carefulness.
18:30:20 <alise> Deewiant: Well, 64^2 = 4096, yep, that's a power of two.
18:30:28 <Deewiant> :-)
18:30:45 -!- Asztal has joined.
18:30:46 <AnMaster> <Deewiant> Careful; I think Stinkhorn is GPL. <-- oh, copying that too? How fun ehird must have
18:31:13 <Deewiant> AnMaster: I thought you were going to shut up.
18:31:24 <alise> 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 <AnMaster> Deewiant, well, until the point of seeing a point of pointing out something else
18:31:33 <alise> Deewiant: Apparently that'd be a "waste of key caps".
18:31:47 <alise> A point? As far as I can tell everyone either doesn't care or is irritated.
18:31:47 <Deewiant> AnMaster: There is no point if you don't know the context.
18:31:56 <alise> *went and aestivated
18:32:11 <AnMaster> Deewiant, I know the context. Just not the complete context ;P
18:32:32 <Deewiant> AnMaster: I.e. you don't know the context.
18:32:33 * alise eliminates the QUADTREE signature for now
18:32:37 <alise> this is rather concrete atm
18:33:01 <Asztal> if by Stinkhorn you mean my befunge thing, it uses the MIT license.
18:33:26 <Deewiant> Darn, my bad.
18:33:38 <alise> Asztal: Your octrees are confusing as fuck, and I'm doing it with half the trees!
18:34:07 <Asztal> alise: I agree
18:35:20 <AnMaster> Asztal, out of interest, what sort of funge space do you use? Quad tree? hash table? AABBs?
18:35:29 <AnMaster> something else?
18:35:33 <Asztal> It's an octree/quadtree
18:35:42 <AnMaster> ah
18:36:52 <oerjan> 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 <Asztal> it uses page sizes of 64x64 or 4x4x4 depending on how many dimensions are in use
18:37:21 <AnMaster> Asztal, so smaller pages in trefunge?
18:37:24 <Deewiant> Asztal: $ ./stinkhorn -3
18:37:25 <Deewiant> warning: -3 doesn't do anything yet
18:37:43 <Asztal> Deewiant: haha, interesting... it should do something
18:38:32 <AnMaster> bbl
18:38:43 <Asztal> AnMaster: yes, it's kind of a design limitation actually, it would take some work to support non-cube pages
18:38:57 <Gregor> TIME CUBE
18:39:10 <Gregor> Somebody should make a time cube programming language.
18:39:13 <Gregor> Gogogo.
18:39:54 <oerjan> 16x16x16 would be as big as 64x64 btw
18:40:02 <Asztal> Deewiant: seems like the warning is indeed wrong there... does it run a trefunge program properly?
18:41:02 <Asztal> oerjan: it seems I actually use 8x8x8.
18:41:14 <Asztal> oerjan: I think 16x16x16 wasted too much memory.
18:41:15 <Deewiant> Asztal: It doesn't seem to, no.
18:41:20 <oerjan> 8x8x8x8 would also be the same size
18:41:44 <AnMaster> 4D funge is evil ;P
18:41:51 <AnMaster> plus non-portable
18:41:57 <AnMaster> there is no standard file format for it yet
18:42:45 <AnMaster> Deewiant, old version of stinkhorn?
18:43:03 <alise> Deewiant: So, basically, all my functions on quadtrees should take coordinates, as the actual primitive quadtree functions are basically useless.
18:43:06 <alise> Yeah?
18:43:11 <Deewiant> AnMaster: Latest hg.
18:43:18 <AnMaster> mhm
18:43:36 <Deewiant> alise: I'd say that's simpler, yes.
18:43:39 <alise> So
18:43:41 <alise> val get : quadtree * coords -> word
18:43:42 <alise> val put : quadtree * coords * word -> unit
18:43:47 <alise> Although I need bounds too, don't I?
18:43:51 <alise> Bounds will be hell :(
18:43:56 <Deewiant> You don't need to worry about bounds yet :-P
18:44:10 <alise> Okay.
18:45:35 <alise> get should be easy enough... I hope.
18:46:20 <alise> methinks youAreHere : quadtree -> coords needs a better name
18:46:24 <alise> oh, "here" should do fine
18:47:44 <AnMaster> Deewiant, btw stinkhorn handles lmh correctly in 2D
18:47:47 <AnMaster> haven't tested rcfunge yet
18:48:02 <alise> fun get (qt, there) =
18:48:03 <alise> let here = currentCoords qt in
18:48:03 <alise> (* move in direction `directionFor (here, there)`,
18:48:03 <alise> subtract from coordinates appropriately (?),
18:48:03 <alise> and recurse *)
18:48:04 <alise> for branch nodes
18:48:05 <alise> right?
18:48:42 <AnMaster> Deewiant, and surprisingly so does rcfunge!
18:48:50 <AnMaster> now that was unexpected
18:48:53 <alise> Hmm, the arrays should have coordinates in the middle I think
18:49:41 <AnMaster> Deewiant, my small test program was: http://sprunge.us/WUdC
18:50:19 <alise> fun get (Leaf(here, fs), there) = dummy (* handle the arrays, etc. *)
18:50:20 <alise> | get (Branch(here, st), there) =
18:50:20 <alise> (* move in direction `directionFor (here, there)`,
18:50:20 <alise> subtract from coordinates appropriately (?),
18:50:20 <alise> and recurse *)
18:50:23 <alise> wait
18:50:26 <alise> i don't want to subtract from the coords
18:51:55 <alise> 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 <Deewiant> 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 <Deewiant> 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 <AnMaster> (can't alise figure out that sort of things himself. After all he claims to be smart and such)
18:54:03 <AnMaster> Deewiant, but that is pointless because most programs don't wrap around much
18:54:10 <alise> AnMaster has gone completely insane.
18:54:14 <alise> I think I've finally managed to crack his psyche.
18:54:18 <AnMaster> Deewiant, so I consider that utterly irrelevant for real usage
18:54:23 <ellisonch> AnMaster: thank you very much for your help re. reMorse
18:54:26 <Deewiant> Well, it depends
18:54:42 <alise> Can't ellisonch figure out that sort of things emself.
18:54:46 <alise> After all e claims to be smart and such.
18:54:48 <AnMaster> Deewiant, I suggest you try to make CCBI fast at the non-wraparound case instead
18:54:49 <Deewiant> 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 <AnMaster> Deewiant, better spent time
18:55:02 <Deewiant> Er, no.
18:55:05 <alise> (No offence, ellisonch. You're just the wonderful convenient scapegoat.)
18:55:07 <AnMaster> Deewiant, why not?
18:55:25 <AnMaster> ellisonch, no problem
18:55:36 <Deewiant> 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 <Deewiant> I.e. the wrapping hasn't been particularly optimized, it just seemed like the only sensible way to do it
18:56:08 <AnMaster> Deewiant, just making an anti-cfunge-test because you can't make ccbi look better any other way?
18:56:22 <Deewiant> What the fuck now, seriously?
18:56:34 <AnMaster> Deewiant, well that is what adding such a wrap around results in
18:56:36 <AnMaster> IMO
18:56:50 <Deewiant> I'm just messing around and seeing what affects runtime
18:57:02 <Deewiant> 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 <AnMaster> Deewiant, it favours AABB implementations and few other ones
18:57:11 <AnMaster> well good then
18:57:17 <Deewiant> I specifically stayed away from putting any conclusions in Fungicide to avoid seeming biased
18:57:45 <AnMaster> Deewiant, especially since it is hard to tell how well it reflects "real" applications yes
18:58:20 <Deewiant> I do like having fast worst cases at the slight expense of the average, though
18:58:55 <AnMaster> (When clicking logout link): Error: You have been logged out due to inactivity. To perform this action you must first log in again below: <login form follows>
18:58:57 <AnMaster> heh
18:59:03 <Deewiant> But CCBI does have worst cases in the wrapping which will make it O(n^2) in the delta, IIRC
18:59:09 <AnMaster> not the first time I seen that happen
18:59:21 <Deewiant> Or maybe just O(n)
18:59:29 <Deewiant> Can't remember exactly.
18:59:34 <AnMaster> Deewiant, hm.
19:00:30 <AnMaster> <Deewiant> I do like having fast worst cases at the slight expense of the average, though <-- opposite for me
19:01:18 <Deewiant> 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 <AnMaster> 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 <AnMaster> how bad was that case?
19:02:26 <Deewiant> Instead of getting one nice Nx1 rectangle there's one like that and then a dozen smaller squarish ones
19:02:35 <AnMaster> heh
19:02:43 <AnMaster> now that I didn't expect
19:03:01 <Deewiant> Well, the heuristic kicked in at some point and gave the Nx1
19:03:04 <AnMaster> I expected several Nx1 instead
19:03:05 <Deewiant> Fortunately enough
19:03:20 <AnMaster> Deewiant, you need to fine tune the test case to avoid that heuristic ;P
19:03:31 <Deewiant> No, I need to think about what to do in a situation like this.
19:03:48 <Deewiant> I think I might need a new subsumption pass.
19:04:07 <AnMaster> Deewiant, does it matter much though? It is still reasonably fast I presume?
19:04:18 <Deewiant> It's the same old 3ish versus 2.5ish
19:04:34 <AnMaster> Deewiant, hm? In speed ratio?
19:04:41 <Deewiant> In seconds
19:04:43 <AnMaster> ah
19:04:55 <Deewiant> Can't remember the exact numbers; I pasted them to you an hour ago or whenever.
19:04:57 <AnMaster> Deewiant, did you get better for the non-wrapping compact stack case?
19:05:04 <Deewiant> I haven't changed anything at all.
19:05:07 <AnMaster> ah
19:05:13 <Deewiant> I'm just looking at what's going on.
19:05:42 -!- myndzi has joined.
19:05:47 <Deewiant> Stinkhorn does it in about 5.5 seconds, FWIW.
19:05:58 <Deewiant> I wonder how it wraps.
19:06:12 <AnMaster> Deewiant, is that the non-wrapping that is 5.5?
19:06:17 <Deewiant> Evidently slowly enough that its time goes up a lot when wrapping as well.
19:06:22 <Deewiant> Yes.
19:06:26 <AnMaster> mhm
19:06:35 <AnMaster> how much does it go up by btw?
19:06:36 <Deewiant> Couldn't be bothered to wait for the wrapping, like with cfunge.
19:06:39 <AnMaster> ah
19:06:46 <Deewiant> Both take over a minute.
19:07:10 <AnMaster> Deewiant, I have an idea for slogan for ccbi
19:07:25 <AnMaster> CCBI: When edge cases is the only thing you care about
19:07:28 <AnMaster> what do you think?
19:07:42 <alise> AnMaster's new era: be a jerk to every single person.
19:07:43 <Deewiant> I think that's bullshit, but that's just me.
19:08:00 <AnMaster> Deewiant, but "almost the only thing" wasn't as snappy ;P
19:08:18 <pikhq> Hmm. Befunge interpreter debates?
19:08:27 <Deewiant> Not "debates", really.
19:08:29 <pikhq> You guys may well make me write a Befunge interpreter. :P
19:08:37 <AnMaster> pikhq, 93 or 98?
19:08:45 <pikhq> AnMaster: Sure.
19:08:46 <pikhq> :P
19:08:49 <AnMaster> pikhq, both?
19:08:59 <pikhq> Beats me.
19:09:05 <Deewiant> 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 <AnMaster> pikhq, and this one was in fungot
19:09:28 <fungot> AnMaster: perhaps. it doesn't lose any points for the original term. units may be the first char
19:09:36 <AnMaster> which is actually more representative than fungicide
19:09:54 <AnMaster> the ^ul interpreter to be specific
19:10:21 <pikhq> Hmm. Seems mutable. I may have to learn a thing or two about Haskell's arrays.
19:10:38 <pikhq> Or go crazy and do more functional C? :P
19:10:41 <Deewiant> 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 <alise> pikhq: Don't use arrays.
19:10:42 <fungot> Deewiant: exit the channel), is chicken a wib implementation of scheme
19:10:44 <AnMaster> pikhq, the latter!
19:10:52 <alise> pikhq: You need 2^32 x 2^32, or even ^64, size array.
19:10:54 <AnMaster> Deewiant, exactly!
19:11:01 <alise> So you want something like a hash table, or a quad tree, or an array of boxes, etc.
19:11:14 <AnMaster> fungot, wib?
19:11:14 <fungot> AnMaster: but it wasn't even a word
19:11:24 <AnMaster> indeed that was why I asked
19:11:24 <Deewiant> AnMaster: So isn't cfunge the one tuned for a special case, namely only one program? :-P
19:11:27 <alise> 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 <alise> pikhq: Add in fingerprints and you have a project that must be embarked upon sanely.
19:11:47 <Deewiant> alise: Not thousands.
19:11:56 <alise> Deewiant: Well, with exact bounds and forking?
19:11:58 <AnMaster> Deewiant, Three. life.bf, underload.b98/fungot, mycology
19:11:58 <Deewiant> alise: Those Lua ones were almost there and they were at what, 500 lines.
19:11:58 <fungot> AnMaster: and merges them correctly when i now think it would make sense in unicode.
19:12:00 <alise> Maybe a few hundred, then.
19:12:03 <alise> I meant more like 1,000.
19:12:05 <AnMaster> because those are the apps I know in befunge basically
19:12:17 <alise> Deewiant: Still, if you want any sort of speed it's over 1,000.
19:12:19 <Deewiant> alise: Forking is unnecessary, exact bounds is cheap linewise if you do it suboptimally
19:12:21 <AnMaster> there are a few small ones sure, like the TURT quine
19:12:25 <alise> And if you want a good set of fingerprints, 4,000+?
19:12:25 <Deewiant> alise: Maybe, sure.
19:12:31 <alise> Forking is unnecessary but nice to have.
19:12:41 <Deewiant> AnMaster: Define "real world app", of course. :-P
19:12:48 <pikhq> alise: Hmm. This would require some actual thought regarding good data structures then.
19:13:00 <alise> pikhq: I've spent the past hours bugging Deewiant about quadtrees.
19:13:01 <Deewiant> pikhq: That's what alise's been up to the past few hours.
19:13:12 <alise> Deewiant: A nicer phrasing of it.
19:13:17 <Deewiant> :-)
19:13:35 <alise> pikhq: Eventually I settled on
19:13:37 <alise> datatype quadtree
19:13:38 <pikhq> Hmm. Now do I want "absolutely naive and readable" or "clever and speedy"?
19:13:39 <AnMaster> 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 <fungot> AnMaster: who even needs those equations?
19:13:40 <alise> = Leaf of coords * word array (* arrays are 64x64 = 4096 words *)
19:13:40 <alise> | Branch of coords * {nw : quadtree option ref,
19:13:40 <alise> ne : quadtree option ref,
19:13:40 <alise> sw : quadtree option ref,
19:13:40 <alise> se : quadtree option ref}
19:13:44 <alise> where array is mutable and ref is a non-NULL pointer
19:13:48 <AnMaster> Deewiant, and there are two more things
19:13:52 <alise> (postfix parametric types, so it's A option)
19:14:05 <Deewiant> AnMaster: Is not part of Fungicide? ;-)
19:14:06 <alise> pikhq: If it's absolutely naive, good luck running any of the interesting programs like fungot.
19:14:06 <fungot> alise: and i hope your teacher will look at it like that
19:14:08 <AnMaster> the first is: isn't made especially to test performance (excludes slowdown.b98)
19:14:13 <AnMaster> (and fungicide too)
19:14:19 -!- kar8nga has joined.
19:14:22 <pikhq> alise: Oh?
19:14:30 <pikhq> Befunge is that freaking slow?
19:14:31 <AnMaster> the other is: is actually used by someone
19:14:32 <olsner> hmm, ML syntax, I can't help but finding it so ugly
19:14:34 <AnMaster> like fungot
19:14:34 <fungot> AnMaster: it comes from printing " digital root: " and 255 and 0, oh my
19:14:35 <pikhq> ... If implemented naively.
19:14:37 <alise> pikhq: Yes; imagine its dawdling Underload performance, slowed down by a few hundred times.
19:14:46 <AnMaster> I mean, used for something not related to the program itself exclusively
19:14:52 <AnMaster> that may arguably exclude life.bf
19:14:57 <alise> 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 <pikhq> alise: So, what you're saying is threaded code.
19:15:02 <Deewiant> AnMaster: It does IMO.
19:15:06 <pikhq> :P
19:15:06 <AnMaster> Deewiant, but I also use it sometimes to run GOL simulations
19:15:11 <AnMaster> Deewiant, before I installed golly
19:15:14 <alise> pikhq: Self-modifying? fizzie tried that
19:15:17 <Deewiant> alise: Not minutes.
19:15:17 <alise> (Language::Befunge is the slowest interp; N-dimensional Perl interp)
19:15:23 <alise> Deewiant: Language::Befunge takes how long now?
19:15:28 <Sgeo_> Hm
19:15:30 <Deewiant> alise: CCBI 1 is slower than Language::Befunge on some programs. :-)
19:15:33 <pikhq> alise: Threaded code, though. It's the Forth way!
19:15:36 <Sgeo_> Maybe I should write a Befunge interpreter in Haskell
19:15:42 <alise> pikhq: Well, whatever. :)
19:15:45 <Deewiant> alise: Hang on, /me times.
19:15:47 <alise> olsner: OCaml syntax, yes. But Standard ML>
19:15:48 <alise> *ML?
19:15:55 <alise> fun currentCoords Leaf(c,_) = c
19:15:56 <alise> | currentCoords Branch(c,_) = c
19:15:56 <alise> (*
19:15:56 <alise> | subtree (Branch(_,nw,_,_,_), NW) = nw
19:15:56 <alise> | subtree (Branch(_,_,ne,_,_), NE) = ne
19:15:56 <alise> | subtree (Branch(_,_,_,sw,_), SW) = sw
19:15:57 <alise> | subtree (Branch(_,_,_,_,se), SE) = se
19:15:58 <AnMaster> Deewiant, but yes, something made especially for benchmarking isn't a "real world" program
19:15:59 <Deewiant> alise: 17 seconds.
19:16:00 <alise> oops
19:16:02 <alise> fun directionFor ((cx,cy), (wx,wy)) =
19:16:03 <pikhq> Not sure how easy it is to handle the self-modification with that, though.
19:16:04 <alise> case (wy <= cy, wx < cx)
19:16:06 <alise> of (false,false) => #sw
19:16:08 <alise> | (false,true) => #se
19:16:10 <alise> | (true,false) => #nw
19:16:12 <alise> | (true,true) => #ne
19:16:14 <alise> looks pretty pretty to me
19:16:16 <alise> pikhq: Hard
19:16:18 <alise> JITfunge was really nitty-gritty code
19:16:41 <alise> Deewiant: How fast is CCBI2 running Mycology?
19:16:42 <AnMaster> I still have great hopes of jitfunge
19:16:43 <Deewiant> AnMaster: If I write an underload interp in Befunge for a Fungicide benchmark, is it a real world program?
19:16:48 <AnMaster> in fact I think it is the best way forward
19:16:48 <Sgeo_> Hm, too lazy to try to figure out how
19:17:01 <AnMaster> if fizzie ever continues with it
19:17:12 <AnMaster> then I bet we will see a jitccbi3 some time after
19:17:26 <AnMaster> just because Deewiant can't accept not being best at befunge ;P
19:17:28 <Deewiant> alise: Right now I've a fingerprintless version compiled, it takes 0.00s
19:17:41 <alise> Deewiant: I can't divide by zero. And with fingerprints. :-)
19:17:53 <Deewiant> alise: I don't want to compile a fingerprint version, I'm messing around.
19:18:00 <alise> Fair enough.
19:18:11 <AnMaster> Deewiant, well, would you make a ccbi3 in case of a JITing implementation overtakes you?
19:18:12 <Deewiant> But not much more than that, anyway.
19:18:21 <alise> 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 <alise> Infinity! That's bigger than 34, 3459873459, -2, and G_64.
19:18:44 <Deewiant> alise: Language::Befunge isn't that good an example, really. :-P
19:18:51 <olsner> alise: not sure which dialect I'm offended by... what's the difference between ocaml and sml syntax?
19:18:55 <Deewiant> AnMaster: If I had something interesting to do with it, sure.
19:19:04 <Deewiant> AnMaster: Not just as a matter of principle, no.
19:19:05 <alise> olsner: ocaml looks like +. this /. 3. ;;
19:19:08 <pikhq> alise: Clearly I should first do a Befunge-'93 interpreter.
19:19:15 <alise> olsner: it is incredibly offensive
19:19:34 <alise> Conversely, SML abstains from semicolons, has proper polymorphic arithmetic operations, etc.
19:19:36 <AnMaster> 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 <alise> It's basically like Haskell without indentation-sensitivity and some minor stylistic choices.
19:19:48 <alise> pikhq: That is about a page of code.
19:19:53 <alise> Less if you use a good language.
19:20:07 <alise> pikhq: Remember to prompt the user for the result to use on division-by-zero.
19:20:28 <AnMaster> pikhq, befunge93 is a good way to start at doing befunge98
19:20:32 <pikhq> alise: I was thinking of using C and crazy computed goto-ness, personally.
19:20:52 <Deewiant> pikhq: There's one like that already.
19:20:53 <AnMaster> then you extend it. Then you rewrite the funge space and the stack-stack. Then you rewrite the rest
19:20:59 <alise> AnMaster: It is not.
19:21:00 <alise> The entire fungespace architecture changes.
19:21:15 <AnMaster> Deewiant, which one?
19:21:15 <Deewiant> AnMaster: In some of the tests. Not all.
19:21:23 <Deewiant> I can't remember what it's called.
19:21:24 <AnMaster> Deewiant, I said "many"
19:21:26 <AnMaster> Deewiant, not "all"
19:21:30 <pikhq> 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 <alise> pikhq: Yeah.
19:21:48 <Deewiant> AnMaster: And you're free to look only at the other benchmarks if you wish.
19:22:00 <alise> pikhq: Mind, AnMaster certainly can't code Befunge, and I even less so.
19:22:07 <alise> Deewiant is probably the only implementer proficient in the language.
19:22:13 <AnMaster> Deewiant, well it doesn't bother me much in cfunge. But it is really unfair to something like jitfunge
19:22:17 <alise> Well, and fizzie, but his interpreters are abandoned.
19:22:22 <alise> (more or less)
19:22:55 <Deewiant> AnMaster: There's nothing "unfair" about demonstrating a program which runs slower on one interpreter than another.
19:23:40 <AnMaster> Deewiant, it is if you do it to the point of making it show "timeout" for max time :P
19:23:48 <Deewiant> No, it isn't.
19:24:04 <Deewiant> It is a simple fact: this program took over 3 hours on this interpreter.
19:24:18 <Deewiant> Whether you, the reader, care about that is up to you.
19:24:21 <AnMaster> Deewiant, anyway, how do you handle implementations that don't implement t in the rankings?
19:24:28 <Deewiant> They all do, so I don't have to worry.
19:24:41 <AnMaster> Deewiant, well if you were to add efunge it wouldn't
19:24:51 <Deewiant> Then I'd have to worry about that.
19:28:35 <Deewiant> Hmm, the runtimes are about the same for (:^):^
19:29:40 <AnMaster> 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 <AnMaster> Deewiant, also do you mirror the Nx1?
19:29:52 <Deewiant> How is it well suited?
19:29:52 <AnMaster> that could help
19:29:56 <AnMaster> since it grows into -x
19:29:57 <Deewiant> Mirror?
19:30:05 <AnMaster> Deewiant, as in start of array near origin
19:30:13 <Deewiant> No, I don't.
19:30:13 <AnMaster> and end of array growing towards -inf
19:30:22 <Deewiant> For (:^):^ it doesn't matter anyway.
19:30:25 <AnMaster> Deewiant, well then I assume you have to realloc and also move the data
19:30:41 <Deewiant> Almost nothing is allocated in that program.
19:30:41 <AnMaster> Deewiant, well duh
19:30:50 <AnMaster> Deewiant, I meant for the previous test program
19:30:56 <AnMaster> that you ran on the bots in here before
19:31:09 <Deewiant> I'm markedly less interested in the more complex test program now that this gives the same results.
19:31:44 <AnMaster> Deewiant, well, sure. Because for that I think it is all in cfunge's static space
19:31:49 <AnMaster> and for you it is all in AABBs
19:31:54 <AnMaster> the same one even
19:32:05 <AnMaster> so indeed it is not going to cause any problems for you
19:32:07 <Deewiant> cfunge's static space is an AABB.
19:32:08 <AnMaster> nor for me
19:32:11 <AnMaster> Deewiant, well yes
19:32:16 <AnMaster> Deewiant, but a fixed such
19:33:15 <AnMaster> 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 <Deewiant> Yep.
19:33:36 <Deewiant> But the difference shouldn't be that big.
19:33:42 <AnMaster> Deewiant, since it is a power of two size, it can also be smart at mapping x/y coordinates
19:33:52 <AnMaster> as in
19:34:08 <AnMaster> multiplying by line length
19:34:11 <AnMaster> is a bitshift
19:34:50 <AnMaster> 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 <AnMaster> not as bad as integer division true
19:35:02 <AnMaster> but still
19:35:11 <zzo38> Those people in ##C channel won't help they make up all sort of confusing
19:35:24 <AnMaster> of confusing what?
19:35:28 <zzo38> How to write a code that makes a compile-time error in C if the endianness is wrong?
19:35:37 <pikhq> I love me some unary &&.
19:35:39 <AnMaster> eh
19:35:56 <alise> zzo38: ooh, interesting
19:36:11 <AnMaster> zzo38, I'm not sure that is feasible. Try using something like a test program for it. Like autoconf or whatever
19:36:16 <alise> 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 <alise> zzo38: and e.g. make an array of size it, minus what it should be
19:36:31 <alise> minus one
19:36:32 <AnMaster> zzo38, better would of course be to support all both big and little endian systems
19:36:36 <alise> except opposite...
19:37:02 <Deewiant> zzo38: Endianness is a property of representations, not values, and you can only mess with values at compile time
19:37:04 <zzo38> I need to use expression that can tell at compile-time the endianness.
19:37:08 <Deewiant> My hunch is that it is impossible.
19:37:21 <zzo38> It needs to be work on little-endian only
19:37:22 -!- atrapado has joined.
19:37:25 <alise> Deewiant: I'm not sure, you can do tricks with making arrays minus-sized.
19:37:40 <AnMaster> Deewiant, as far as I can tell from AMD docs bitshift is 1 cycle. reg32 is 4 cycles
19:37:48 <AnMaster> for multiplication that is
19:37:51 <Deewiant> alise: And get a compile error?
19:37:54 <zzo38> alise: I have made trick array with negative size for checking sizeof(int) and stuff like that at compile time
19:38:15 <alise> Deewiant: But you do an expression that's only -1 if it shouldn't work.
19:38:20 <AnMaster> zzo38, you can get sizeof(int) from limits.h
19:38:20 <alise> Like zzo38 said, he's done that before.
19:38:30 <AnMaster> well you get the range of it
19:38:34 <AnMaster> trivial to compute from that
19:38:37 <Deewiant> alise: Right; but you can't do anything depending on endianness at compile time, was my point.
19:38:51 <Deewiant> alise: Minus-sized arrays is just a compile-time assertion, that's a separate thing.
19:39:21 <zzo38> 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 <AnMaster> 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 <zzo38> 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 <zzo38> AnMaster: No, it needs to work on little endian it is not supposed to work on big endian.
19:41:17 <AnMaster> #define inc_world_head
19:41:17 <AnMaster> #include "world.h"
19:41:19 <AnMaster> what?
19:41:30 <AnMaster> what is the point of that
19:41:36 <zzo38> Please note that "world.h" is this same file. It includes itself
19:41:43 <AnMaster> zzo38, yes but why
19:41:44 <zzo38> And you should be able to see the point of that
19:41:51 <AnMaster> zzo38, I see what it does
19:41:54 <zzo38> It is because of ZZT.
19:41:57 <AnMaster> but I don't see why that is useful
19:42:03 <AnMaster> zzo38, and why does zzt need it?
19:42:57 <zzo38> 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 <AnMaster> heh
19:43:26 <zzo38> Tim Sweeny wrote ZZT and his hard-drive broke, unfortunately.
19:43:45 <AnMaster> zzo38, still I tell you the compile time endianness check is most probably impossible
19:44:00 <zzo38> I want to write ZZT as GNU GPL v3
19:44:03 <alise> what about bitshift operators
19:44:10 <AnMaster> zzo38, you will have to bite the bullet and use a configure script or rewrite the code to be endianness independent
19:44:12 <pikhq> Boilerplate nearly complete. Whoo.
19:44:24 <AnMaster> or just assume it is little endian and fail on big endian
19:44:27 <zzo38> OK. How do I use a configure script?
19:44:33 <AnMaster> pikhq, boilerplate for what?
19:44:51 <pikhq> Befunge '93 interpreter...
19:45:25 <AnMaster> 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 <pikhq> With control-flow being done via an array of addresses. :P
19:45:33 <AnMaster> or that errors
19:45:49 <AnMaster> zzo38, there is GNU autotools but that is quite a horrible mess to write for
19:45:59 <AnMaster> may be easier to write your own shell script
19:46:07 <AnMaster> at least if you target *nix
19:46:10 <AnMaster> for windows I have no clue
19:46:15 <AnMaster> cygwin I guess
19:46:17 <AnMaster> or mingw
19:46:26 <zzo38> 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 <AnMaster> zzo38, or you could use something like cmake to do it. Which is like autoconf but another system
19:46:47 <AnMaster> it could compile a test program and do something based on the output
19:46:54 <AnMaster> which is the basic ideas of all configure scripts
19:47:32 <zzo38> 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 <pikhq> Oh, wait. Don't have a stack. Time to copy in Pikhq's Naive C Stack.
19:47:48 <AnMaster> zzo38, so do something like $CC -o test endiantest.c && FOO="$(./test)" && rm ./test
19:47:52 <AnMaster> well that won't work
19:48:02 <Gregor> pikhq: Just use Gregor's Naïve C Buffers
19:48:02 <AnMaster> due to what assignment and && does in bash
19:48:06 <AnMaster> but you get the general idea
19:48:20 <AnMaster> zzo38, then you do something by checking $FOO or whatever your variable is.
19:48:34 <AnMaster> pikhq, you don't have a stack?
19:48:51 <AnMaster> pikhq, as in, funge stack or C stack?
19:48:53 <zzo38> AnMaster: OK I understand the endianness check now but can you answer my second question?
19:49:00 <pikhq> Gregor: Oh, right. Those are nicer than my naive stack.
19:49:02 <AnMaster> zzo38, hm *looks*
19:49:11 <pikhq> AnMaster: Funge stack. Though I am making no use of the C stack.
19:49:13 <AnMaster> zzo38, define counted strings
19:49:22 <pikhq> My interpreter is based on computed goto.
19:49:25 <AnMaster> zzo38, if you mean pascal style <length><data>?
19:49:32 <zzo38> AnMaster: Yes I mean like that
19:49:45 <AnMaster> zzo38, str[_1]?
19:49:54 <AnMaster> oh wait I see now
19:50:00 <AnMaster> heh at that name
19:50:25 <AnMaster> zzo38, well not really. I see one issue here and that is that you allocate more than is needed
19:51:01 <AnMaster> zzo38, a 10 char long string20 would still take 24 bytes (21, but three bytes of padding is added to that)
19:51:02 <zzo38> AnMaster: What you mean by that, how is it allocate more than is needed?
19:51:21 <zzo38> AnMaster: OK now I know.
19:51:32 <zzo38> Is there a way to remove the padding?
19:51:35 <AnMaster> zzo38, I would allocate it dynamically as a length byte + a number of chars
19:52:01 <zzo38> I do need to remove the padding so that it can work like how it is stored in ZZT
19:52:16 <AnMaster> 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 <alise> Deewiant: Well, I've implemented -- I believe correctly -- get.
19:52:32 <alise> So only put to go.
19:52:36 <AnMaster> 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 <zzo38> AnMaster: Does GNU compiler can remove the padding?
19:52:52 <AnMaster> zzo38, perhaps convert it to/from C-strings as you need it?
19:52:53 <pikhq> Gregor: Definitely using the buffer macros of yours.
19:53:11 <AnMaster> zzo38, I think so, some type __attribute__ iirc
19:53:36 <zzo38> I need to make it so that if it overflows, it overflows in the exact same way as ZZT does it
19:53:44 <AnMaster> zzo38, http://gcc.gnu.org/onlinedocs/gcc/Type-Attributes.html
19:53:53 <zzo38> Thanks
19:53:59 <AnMaster> zzo38, removing padding would slow it down for arrays of such though
19:54:17 <pikhq> Gregor: Well. Adapting, more-like.
19:54:18 <AnMaster> zzo38, oh wait it won't work
19:54:24 <AnMaster> there is more padding
19:54:26 <AnMaster> it won't be 24
19:54:34 <AnMaster> since there will be padding between the length and the array too
19:54:37 <AnMaster> not just at the end
19:54:37 <Gregor> pikhq: Any generally-useful changes you make could be committed upstream :P
19:55:00 <AnMaster> Gregor, what are these buffer macros?
19:55:03 <pikhq> Gregor: Only thing I'm *adding* is a PUSH_BUFFER macro.
19:55:16 <pikhq> AnMaster: Just some macros for handling C buffers safely.
19:55:26 <AnMaster> pikhq, like buffers of bytes?
19:55:31 <pikhq> Yes.
19:55:33 <AnMaster> right
19:55:41 <AnMaster> pikhq, why do you need that in a befunge interpreter?
19:55:41 <Gregor> AnMaster: http://codu.org/projects/stuff/hg/index.cgi/file/tip/buffer.h
19:55:44 <Gregor> No, buffers of types.
19:55:49 <Deewiant> AnMaster: What're the bounds of cfunge's static area?
19:55:53 <Gregor> The buffers can be of anything.
19:55:55 <AnMaster> Deewiant, why do you ask?
19:56:23 <olsner> any particular reason it's all macros rather than e.g. inline functions?
19:56:38 <Deewiant> AnMaster: I want to see what making the first box be like that will do to the performance
19:56:48 <pikhq> olsner: Because.
19:56:54 <AnMaster> Deewiant, I need to check then
19:57:09 <AnMaster> #define FUNGESPACE_STATIC_OFFSET_X 64
19:57:09 <AnMaster> #define FUNGESPACE_STATIC_OFFSET_Y 64
19:57:10 <AnMaster> #define FUNGESPACE_STATIC_X 512
19:57:10 <olsner> pikhq: Okay.
19:57:10 <AnMaster> #define FUNGESPACE_STATIC_Y 1024
19:57:14 <AnMaster> Deewiant, that should tell you
19:57:27 <Deewiant> AnMaster: So from (-64, -64) to (512-64, 1024-64)?
19:57:31 <AnMaster> Deewiant, yes
19:57:36 <Deewiant> Alright, thanks
19:58:26 -!- zzo38 has quit (Ping timeout: 260 seconds).
19:59:00 <AnMaster> Deewiant, also this is carefully tuned so that (FUNGESPACE_STATIC_X * FUNGESPACE_STATIC_Y * sizeof(funge_cell)) % 128 == 0 holds true
19:59:22 <AnMaster> Deewiant, I'll let you figure out why on your own (alternatively read the code)
19:59:50 <Deewiant> Well you've bragged about your inline asm often enough so presumably you want it aligned :-P
20:00:16 <AnMaster> Deewiant, correction: I want it to be not write outside of the array. That would be bad
20:00:23 <AnMaster> so it needs to be a multiple of a SSE store
20:00:46 <AnMaster> it isn't because of alignment. Which is also an issue of course
20:00:59 <Deewiant> You could always write the remaining bytes without an SSE store
20:01:16 <AnMaster> Deewiant, more complex. Too lazy
20:01:22 <Deewiant> :-P
20:01:31 <AnMaster> for alignment I use an __attribute__ to ensure it is aligned
20:01:43 <AnMaster> because SSE store requires it
20:01:43 <Sgeo_> "One and one still is one"
20:01:58 <AnMaster> as in it will cause an SIGSEGV (or was it SIGBUS) if not
20:03:19 <AnMaster> 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 <Deewiant> Yes, I have.
20:03:37 <AnMaster> Deewiant, really? The sync issues seems quite bad tot me
20:03:51 <Deewiant> Doesn't mean I can't consider it.
20:04:12 <AnMaster> I doubt it would help much in practise
20:04:16 <AnMaster> most files aren't so large
20:04:24 <AnMaster> even fungot is only some 1000+ lines iirc?
20:04:25 <fungot> AnMaster: except maybe when entering stuff into repl. then they're a bit steep. a meg of irc is quite dead.
20:04:50 <Deewiant> 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 <alise> <Sgeo_> "One and one still is one"
20:05:13 <alise> But it is /also/ one other one.
20:05:49 <AnMaster> Deewiant, you mean it was faster using that size I used?
20:05:55 <AnMaster> Deewiant, or that it wasn't faster?
20:06:20 <Deewiant> I mean that having the first box be a constant size helps.
20:06:39 <AnMaster> Deewiant, ah so the bitshift thing didn't affect it much?
20:06:56 <Deewiant> I mean it did. Or I don't know if it's that, but it's probably part of it.
20:06:57 <AnMaster> Deewiant, and yes it helps. But I bet it slows down some stuff in fungicide
20:07:25 <Deewiant> Can I tell cfunge to not use its non-temporal loads and whatnot?
20:07:45 <AnMaster> brb there is some large moth
20:07:47 <AnMaster> just brb
20:08:00 <AnMaster> ah got it
20:08:12 <AnMaster> a large moth in front of the monitor was somewhat distracting heh
20:08:24 <AnMaster> Deewiant, what do you mean? for filling it with spaces? Well let me check
20:08:50 <AnMaster> Deewiant, yes
20:08:59 <Deewiant> How?
20:09:00 <AnMaster> Deewiant, use ccmake to edit the build settings
20:09:04 <AnMaster> Deewiant, to to advanced
20:09:11 <AnMaster> edit the cflags to add: -DCFUN_NO_SSE
20:09:20 <AnMaster> Deewiant, that will be pure C one
20:09:37 <AnMaster> Deewiant, it is meant for some static analysis tools screwing up on the inline asm and such :D
20:09:56 <AnMaster> Deewiant, be aware of that if you type at the start of a field in cmake it will erase that field
20:10:04 <AnMaster> so add it in the middle or two the end
20:10:04 <Deewiant> I know how ccmake works.
20:10:13 <Deewiant> CCBI 2 uses a CMake build system.
20:10:15 <AnMaster> Deewiant, I always found that "feature" annoying btw
20:10:17 <AnMaster> Deewiant, ah
20:10:35 <Deewiant> Welp, it made just about no difference anyway.
20:10:59 <AnMaster> Deewiant, oh? Well it made here on my slower system. I guess your system is too fast to see it
20:11:08 <AnMaster> Deewiant, basically I was having bad cache trashing without it
20:11:15 <AnMaster> due to the small cache I guess
20:12:59 <AnMaster> I wonder, why do I use intrinsics instead of inline asm for clang.
20:13:08 * AnMaster tests removing that check
20:13:27 <AnMaster> ah now I know
20:13:35 <AnMaster> error: invalid output constraint '=o' in asm
20:13:39 <AnMaster> which gcc is happy with
20:15:29 <AnMaster> Deewiant, so, is ccbi with the static space as fast as cfunge on that test case? ;)
20:18:41 <Deewiant> Nah, it's still around 0.3 seconds slower
20:18:42 <AnMaster> pikhq, I still haven't figured out why you added me to #irp access list. Do tell me please.
20:19:23 <AnMaster> Deewiant, you said "anything less than a second doesn't matter" before iirc? :P
20:19:33 <alise> because you systematically probe people about their creations, as a program would, so you can figure them out? :)
20:19:41 <alise> Asztal: ping
20:19:55 <AnMaster> anyway, "plausible" reasons why I'm faster at this: I don
20:19:59 <Deewiant> AnMaster: Yes, something like that. I think I was referring to times below a second, but yeah.
20:20:00 <AnMaster> don't* have code for other AABBs
20:20:02 <AnMaster> for example
20:20:21 <AnMaster> Deewiant, "<Deewiant> Nah, it's still around 0.3 seconds slower"
20:20:21 <pikhq> AnMaster: I was asked to hand op to someone in there.
20:20:21 <AnMaster> :P
20:20:23 <pikhq> So I did.
20:20:31 <Deewiant> AnMaster: I mean, total running times.
20:20:32 <AnMaster> pikhq, oh? by who?
20:20:34 <pikhq> Also, WTF does "string mode" do?
20:20:39 <pikhq> There's no documentation.
20:20:41 <AnMaster> pikhq, string mode implements string mode
20:20:42 <pikhq> AnMaster: Don't remember.
20:20:45 <Asztal> alise: hello
20:20:46 <Deewiant> pikhq: What documentation are you looking at?
20:20:50 <AnMaster> pikhq, befunge98 documents it
20:20:57 <pikhq> Wiki, http://catseye.tc/projects/befunge93/doc/befunge93.html.
20:21:00 <AnMaster> pikhq, basically from " to the next " all are pushed as chars
20:21:13 <Deewiant> pikhq: It says it right there in the first par under "The Stack"
20:21:16 <AnMaster> pikhq, "hello" would push, h, e, l, l, o
20:21:19 <pikhq> Ah.
20:21:30 <AnMaster> pikhq, that is their ASCII value
20:21:33 <alise> 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 <pikhq> Mmkay.
20:21:42 <AnMaster> pikhq, note: a zero byte inside a string is *perfectly* valid
20:21:44 <pikhq> Easy enough.
20:22:06 <AnMaster> pikhq, of course a zero byte anywhere in the source is perfectly okay. mycology even tests that for befunge-98
20:22:13 <pikhq> AnMaster: Not a big deal. :)
20:22:17 <AnMaster> I doubt it fit into the 93 section
20:22:34 <AnMaster> 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 <pikhq> Mmkay.
20:23:02 <Deewiant> fgets() doesn't stop at 0.
20:23:38 <AnMaster> Deewiant, ah yes, it was getline() that had the issue
20:23:47 <AnMaster> still you need to think about it when handling the string
20:23:56 <AnMaster> because it is no string, it is a binary buffer
20:24:27 <Deewiant> Just don't think of it as a string and it's no problem :-P
20:24:48 <AnMaster> 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 <pikhq> AnMaster: I've not bothered writing file-handling yet.
20:25:21 <AnMaster> pikhq, just pointing out some annoying pitfalls. That's all
20:25:27 <pikhq> Mmkay.
20:25:42 <AnMaster> I knew I would have liked to know about them in advance myself :P
20:25:55 <pikhq> :P
20:25:56 <AnMaster> there are a lot more of them for 98 than 93 of course
20:26:17 <Deewiant> I don't see why you would ever write code that /doesn't/ handle inconsistent all kinds of newlines correctly
20:26:31 <AnMaster> Deewiant, haha.
20:26:35 <AnMaster> I can easily tell you
20:26:40 <AnMaster> because you used getline() for example
20:26:57 <Deewiant> I don't see why you would ever not just use fgetc() ;-P
20:27:04 <AnMaster> Deewiant, iirc you complained about having to handle all the newline types too
20:27:25 <Deewiant> I doubt it, I always do that.
20:27:38 <AnMaster> Deewiant, it was when cfunge was still very new
20:27:54 <AnMaster> Deewiant, anyway fgetc() is suboptimal! Having to go into bloated glibc code to fetch from it's buffer
20:28:02 <AnMaster> that was *measurable* with glibc
20:28:18 <AnMaster> Deewiant, doing even fread() or such is much faster
20:29:47 <AnMaster> Deewiant, btw I realised I have not yet seen cat in befunge. Things calling themselves cat sure
20:29:51 <AnMaster> but not proper cat
20:30:07 <Deewiant> "Proper cat"?
20:30:23 <AnMaster> Deewiant, as in takes a number of files on command line, outputs them in the order given
20:30:30 <AnMaster> which is what cat is actually meant to do
20:30:35 <Deewiant> Right.
20:30:56 <alise> proper cat izunt fake cat
20:30:56 <AnMaster> cat(1p) is very rare in esolangs
20:31:13 <AnMaster> cat "copy input to output" is common yes
20:31:47 <Deewiant> GNU cat ignores -u, why's that
20:33:24 <Asztal> alise: that looks sane to me.
20:33:45 <AnMaster> Deewiant, I have no idea
20:33:47 <alise> Asztal: good; now I can proceed to break it
20:33:50 <AnMaster> Deewiant, but yes I know about that
20:33:54 <alise> and bug Deewiant some more about the subdivision algorithm :-)
20:34:11 <AnMaster> wait I know
20:34:16 <AnMaster> and pikhq can explain it
20:34:26 <AnMaster> it must be because it loves showing off it's buffer implementation
20:36:28 <Deewiant> Blarg, LLVM stopped inlining an alwaysinline which is now killing performance.
20:36:36 <AnMaster> Deewiant, heh
20:36:48 <AnMaster> Deewiant, alwaysinline = microoptimising to me
20:37:11 <AnMaster> Deewiant, but there is help: rewrite it as a macro. Unless it actually "outlines" that
20:37:29 <AnMaster> (iirc gcc has an option to try to factor out common code for size optimisation)
20:37:55 <Deewiant> Of course it's micro-optimizing; doesn't mean it doesn't help :-P
20:38:17 <Deewiant> And yes, of course I can force the inlining in other ways but blah.
20:41:14 <Deewiant> Oh hey, I think it's because it's recursive now.
20:42:33 <alise> 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 <Deewiant> Yes.
20:44:02 <alise> Deewiant: And the leaf should contain an array centred on the cell I'm setting.
20:44:12 <Deewiant> That's up to you.
20:44:12 <alise> So I need to allocate from point-(32,32) to point+(32,32).
20:44:21 <AnMaster> Deewiant, you can't possibly inline a recursive function :P
20:44:33 <Deewiant> Sure you can, just to a limited depth.
20:44:34 <alise> Deewiant: Do I need to handle overflow in this code? I doubt it, since ints are... well... so big.
20:44:40 <alise> But maybe you guys run into that.
20:44:41 <AnMaster> well okay
20:44:43 <Deewiant> alise: I don't know.
20:44:45 <Deewiant> I know I need to.
20:44:46 <AnMaster> Deewiant, but I don't know any compiler doing it
20:44:49 <Deewiant> Not sure with quadtrees.
20:45:00 <Deewiant> Gah
20:45:11 <AnMaster> Deewiant, was any of that directed at me?
20:45:17 <Deewiant> No.
20:45:19 <AnMaster> ah
20:45:37 <AnMaster> Deewiant, you could manually make it inlineable btw
20:45:56 <AnMaster> Deewiant, as in: foo() and foo_rec
20:45:56 <Deewiant> How do I do an s/// replacement with sed on a line that matches /foo/ but not /bar/?
20:46:07 <AnMaster> Deewiant, with sed. Hm... No idea
20:46:17 <Deewiant> With non-sed?
20:46:29 <AnMaster> Deewiant, with pcregrep I know how to match it
20:46:36 <AnMaster> Deewiant, but that can't replace
20:46:48 <AnMaster> Deewiant, basically you want negative lookahead/lookbehind
20:46:53 <Deewiant> No I don't
20:46:58 <AnMaster> okay
20:47:03 <AnMaster> Deewiant, it should be possible with sed btw
20:47:03 <Deewiant> I just want if (/foo/) if (not /bar/) s///
20:47:06 <AnMaster> try reading man page
20:47:10 <AnMaster> Deewiant, okay what about awk then
20:47:16 <AnMaster> that should be *trivial* in awk
20:47:22 <AnMaster> heck you almost wrote it in awk already
20:47:32 <Deewiant> How do I write if (not /bar/) in awk
20:47:47 <AnMaster> Deewiant, like that or very similar. Don't remember of the top of my head
20:48:01 <AnMaster> Deewiant, try info gawk
20:48:43 <AnMaster> http://www.gnu.org/software/gawk/manual/html_node/If-Statement.html#If-Statement should help
20:48:52 <Deewiant> And then how do I do a s/// in awk
20:49:14 <alise> Hmm, I don't.
20:49:15 <Deewiant> I could pipe it to sed obviously ;-P
20:49:18 <AnMaster> Deewiant, again see info gawk, I have done this I know. It was quite some time ago
20:49:25 <alise> Deewiant: I don't suppose you feel like having one more bash at explaining the subdivision algorithm to me? ;-)
20:49:41 <Deewiant> AnMaster: I'm browsing it, just not seeing it which is why I asked.
20:49:50 <AnMaster> http://www.gnu.org/software/gawk/manual/html_node/Pattern-Overview.html#Pattern-Overview
20:49:51 <AnMaster> http://www.gnu.org/software/gawk/manual/html_node/Action-Overview.html#Action-Overview
20:49:55 <AnMaster> should help somewhat
20:50:06 <Deewiant> I've seen both of those pages, still missing it.
20:50:25 <AnMaster> Deewiant, I can't find the script where I did it. But I know I have done it
20:50:29 <Deewiant> Bah, I'll just pipe it to sed. :-P
20:50:44 <AnMaster> Deewiant, how would you then replace it in those files?
20:51:00 <AnMaster> marking the line with a marker at the start or somethiong?
20:51:02 <AnMaster> something*
20:51:15 <AnMaster> Deewiant, http://www.gnu.org/manual/gawk/html_node/String-Functions.html
20:51:23 <Deewiant> Hmm, except it loses order.
20:51:41 <AnMaster> Deewiant, I think you want the sub() function
20:51:43 <Deewiant> AnMaster: awk '{print foo | "sed bar"}
20:51:46 -!- ais523 has joined.
20:51:59 <AnMaster> Deewiant, that isn't complete
20:52:01 -!- adam_d has joined.
20:52:03 <AnMaster> the ' is never closed
20:52:06 <pikhq> Well, this now runs "Hello, world" correctly.
20:52:09 <Deewiant> AnMaster: '
20:52:12 <alise> hi ais523
20:52:13 <AnMaster> pikhq, congrats
20:52:27 <AnMaster> Deewiant, syntax error: line 2: AnMaster: Something expected
20:52:28 <AnMaster> ;P
20:52:29 <Deewiant> alise: You go into the middle of the unallocated area.
20:52:31 <pikhq> Let's see what instructions are unimplemented.
20:52:35 <Deewiant> AnMaster: That was the closing '.
20:52:40 <alise> Deewiant: What is the unallocated area?
20:52:46 <pikhq> &!gp
20:52:47 <AnMaster> Deewiant, well it read AnMaster: there
20:52:49 <pikhq> Erm.
20:52:49 <AnMaster> obviously
20:52:51 <ais523> hi alise
20:52:51 <pikhq> &~gp
20:52:54 <alise> fun put (Leaf(here, page), there, value) =
20:52:54 <fizzie> 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 <alise> if withinArray (there, here) then
20:52:55 <alise> let (x,y) = relativeCoords (there, here) in
20:52:55 <alise> Array.update (page, flatCoords (x,y), value)
20:52:55 <alise> else
20:52:56 <alise> (* The current leaf does not contain what we want; we must transform it into a branch *)
20:52:58 <pikhq> And reading stuff in from file.
20:52:59 <alise> Specifically that is the code I am trying to write.
20:53:04 -!- Oranjer has joined.
20:53:09 <AnMaster> fizzie, it runs life.bf still?
20:53:30 <fizzie> No, I don't think so. Haven't tried lately, though.
20:53:33 <Deewiant> alise: Hmm, I'm not sure how it should be computed actualy
20:53:35 <Deewiant> +l
20:53:53 <AnMaster> pikhq, g and p are easy. & and ~ may not be due to the way their buffers interact
20:54:05 <alise> Let's bother Asztal to tell us.
20:54:26 <Deewiant> alise: Basically it's the area covered by that node
20:54:34 <AnMaster> 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 <AnMaster> if I remember correctly
20:54:52 <alise> Deewiant: ? No, that branch is for "this 64x64 node does not contain the point we want".
20:54:56 <AnMaster> fizzie, it used to work
20:55:03 <alise> So we need to create a new branch, which has one of the branches be the 64*64 node.
20:55:13 <Deewiant> alise: Yes
20:55:25 <fizzie> 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 <Deewiant> alise: But I meant the maximum area that branch could cover
20:55:33 -!- alise has left (?).
20:55:34 <AnMaster> fizzie, ah
20:55:35 -!- alise has joined.
20:55:39 <alise> So what needs answering is:
20:55:45 <alise> What coordinates does the new branch have?
20:55:49 <Deewiant> 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 <alise> And we need to add a node in this branch we create
20:55:57 <Deewiant> alise: Er, (1,1) I guess but whatever.
20:55:58 <alise> What of its coordinates?
20:56:09 <AnMaster> Deewiant, so any luck with gaining on those 0.3 faster of cfunge?
20:56:11 <alise> Deewiant: But what do you mean by two?
20:56:20 <Deewiant> alise: Two?
20:56:21 <alise> All pages are 64x64; all branches merely have one coordinate pair.
20:56:25 <alise> *by "to"?
20:56:33 -!- charlls has quit (Quit: Saliendo).
20:56:37 <Deewiant> alise: I mean that that's the area covered by that branch
20:56:46 <Deewiant> alise: The tree root covers the whole space from -2^32 to 2^32-1
20:56:51 <fizzie> 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 <Deewiant> alise: And the node SE from that covers 1 to 2^32-1
20:56:59 <alise> Deewiant: But that's the entirety of fungespaec.
20:57:02 <alise> *fungespace
20:57:06 <Deewiant> alise: Yes, and that's what your tree can store.
20:57:19 <alise> So if SE has half, and another has half, what of the other two?
20:57:26 <AnMaster> fizzie, cool. How much slower is it using the LLVM framework instead of putting the machine code in the buffer directly?
20:57:28 <Deewiant> alise: It doesn't have half, it has a quarter.
20:57:41 <Deewiant> alise: NW has -2^32 to 0, for example.
20:57:49 <Deewiant> alise: (I'm simplifying and saying only one coordinate.)
20:57:51 <alise> Deewiant: What about NE/SW?
20:57:55 <AnMaster> Deewiant, is alise having problems understanding a quadtree? :D
20:57:57 <alise> Oh, I see.
20:58:12 <alise> AnMaster: considering Deewiant himself just said he wasn't sure what the algorithm was...
20:58:13 <fizzie> 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 <AnMaster> fizzie, hm
20:58:39 <fizzie> 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 <AnMaster> fizzie, that would require heuristics
20:59:13 <Deewiant> alise: Well, I understand the concept, but I'm not seeing the algorithm right now. :-P
20:59:28 <Deewiant> AnMaster: JIT is all about heuristics.
20:59:30 <pikhq> Hmm. Need file-reading now.
20:59:44 <AnMaster> Deewiant, well yes
20:59:45 <fizzie> 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 <AnMaster> pikhq, simple: mmap() the file, then loop through that
21:00:06 <pikhq> AnMaster: Meh.
21:00:37 <AnMaster> pikhq, mmap() because if you use fgets() handling \r\n split between two "chunks" you read in is quite annoying
21:00:51 <AnMaster> same for fread() or any other similar call obviously
21:00:59 <AnMaster> you could use fgetc() but who wants to do that?
21:01:01 <pikhq> AnMaster: I'm just going to be going char by char, then. :P
21:01:19 <fizzie> 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 <AnMaster> pikhq, you don't aim at beating ccbi and cfunge performance? Huh?
21:01:37 <pikhq> AnMaster: ... Reading. In. A. File.
21:02:00 <pikhq> I am *reading in an 80x25 file*. Performance is moot.
21:02:37 <AnMaster> pikhq, true. Just make a 25*80+1 buffer for fread
21:02:39 <AnMaster> fread()
21:02:42 <AnMaster> wait
21:02:59 <AnMaster> fread() needs 25*80+2*25 to handle \r\n
21:03:02 <AnMaster> I think
21:03:36 <AnMaster> pikhq, btw you know you should discard anything wider than 80 columns then?
21:03:46 <AnMaster> pikhq, that is how mycology befunge93 part works
21:03:57 <AnMaster> that anything outside it is discarded
21:07:01 <ais523> <clamav security update> Fix Quantum decompressor
21:08:13 <Deewiant> ais523: http://en.wikipedia.org/wiki/Quantum_compression
21:08:43 <ais523> 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 <ais523> also, that's a pretty bizarre technology to be using, but I suppose it makes sense in a virus scanner
21:09:48 <ais523> in case someone tries to trick people into decompressing a malicious .CAB file
21:10:43 <AnMaster> "Each of these require at least a 386 CPU to run"
21:10:46 <AnMaster> ehrrm
21:10:53 <AnMaster> riiight
21:15:04 <ais523> well, if there's more than one, where on earth are you going to find a dual-core 386?
21:16:13 <AnMaster> ais523, :D
21:16:38 <AnMaster> ais523, were there ever SMP 386?
21:16:50 <AnMaster> ais523, I mean, I know there were SMP Pentium
21:16:55 <AnMaster> (original ones even iirc?)
21:17:00 <ais523> I don't know, but it seems unlikely
21:17:14 <pikhq> The cat program on the esolang wiki... Seems wrong.
21:18:05 <pikhq> By "wrong" I of course mean "jumps off into nothingness with glee".
21:18:24 <Deewiant> pikhq: Wraparound.
21:18:42 <pikhq> Deewiant: Oh.
21:18:50 <pikhq> Darnit, gotta futz with step then.
21:18:53 <ais523> Befunge doesn't really have nothingness
21:19:15 <oerjan> befunge the anti-zen language
21:19:33 <Deewiant> In -98 you can run into infinite loops like that
21:19:50 <Deewiant> Well, I guess an empty file in -93 does the job as well :-P
21:20:48 <pikhq> What value should EOF be?
21:20:53 <AnMaster> pikhq, what?
21:20:56 <Deewiant> In what situation?
21:21:04 <pikhq> For ~
21:21:05 <ais523> Deewiant: is an annihilator program possible in -93?
21:21:11 <Deewiant> ~ should reflect
21:21:15 <Deewiant> ais523: Annihilator?
21:21:17 <AnMaster> Deewiant, eh?
21:21:18 <fizzie> 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 <ais523> Deewiant: one that deletes its entire source code
21:21:25 <pikhq> ?
21:21:27 <AnMaster> Deewiant, what do you mean ~ should reflect on eof?
21:21:32 <Deewiant> ais523: I don't think so.
21:21:36 <AnMaster> oh
21:21:37 <ais523> by p'ing a space onto every cell of the playfield
21:21:37 <Deewiant> AnMaster: Shouldn't it?
21:21:38 <AnMaster> on EOF
21:21:40 <AnMaster> not EOL
21:21:41 <AnMaster> I misread
21:21:42 <Deewiant> AnMaster: :-P
21:21:46 <Deewiant> AnMaster: And miswrote? ;-P
21:21:49 <pikhq> Deewiant: What does "reflect" mean?
21:21:51 <AnMaster> pikhq, correct ~ should reflect on EOF
21:21:57 <Deewiant> pikhq: Reverse the direction of the instruction pointer
21:21:58 <AnMaster> Deewiant, thinko (like typo)
21:21:59 <ais523> 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 <pikhq> AnMaster: DEFINE REFLECT.
21:22:07 <AnMaster> pikhq, delta is mirrored
21:22:15 <AnMaster> pikhq, so it bounced back from where it came
21:22:24 <Deewiant> ais523: Hmm.
21:22:26 <ais523> and the p's themselves are the last thing to be deleted
21:22:32 <pikhq> Uh... http://catseye.tc/projects/befunge93/doc/befunge93.html Where is that in here?
21:22:49 <AnMaster> pikhq, with befunge98 and it's arbitrary delta you basically multiply dx and dy with -1
21:22:57 <Deewiant> pikhq: Presumably nowhere. -93 is a bit underspecified.
21:23:00 <AnMaster> pikhq, oh, 93, no clue
21:23:13 <Deewiant> pikhq: So in 93, knock yourself out with UB or do what everybody else does and reflect. :-)
21:23:13 <pikhq> Deewiant: Mmkay.
21:23:27 <pikhq> I'll go reflect then.
21:23:37 <oerjan> BOOORING
21:24:08 <AnMaster> Deewiant, in 93, pushing -1 isn't completely uncommon
21:24:18 <AnMaster> oerjan, what is boring?
21:24:23 <Deewiant> AnMaster: It isn't? Darn.
21:24:39 <Deewiant> I figured reflection was fairly much the norm there too.
21:24:40 <AnMaster> Deewiant, well, anagolf's b93 interpreter seems to push -1
21:24:41 <AnMaster> iirc
21:24:43 <pikhq> I just want cat to work. :(
21:24:49 <AnMaster> Deewiant, just as an example
21:24:51 <oerjan> AnMaster: reflecting
21:25:03 <AnMaster> pikhq, oh you need different cat for push -1 and reflect
21:25:12 <ais523> ooh, I've just reverted vandalism by a logged-in user on Esolang
21:25:13 <AnMaster> reflecting one is one char shorter
21:25:24 <AnMaster> ais523, logged in spam happens
21:25:25 <Deewiant> pikhq: That cat wants a negative one for EOF, it seems.
21:25:31 <Deewiant> So don't reflect. Meh.
21:25:34 <pikhq> Deewiant: Mmm.
21:25:35 <ais523> 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 <AnMaster> pikhq, make it an option
21:25:49 <AnMaster> pikhq, because a lot more code assumes reflection
21:25:52 <fizzie> Deewiant: Where was the ask-on-/0 thing stated, do you remember?
21:25:55 <oerjan> 9 out of 10 vampires agree: don't reflect
21:25:59 <AnMaster> fizzie, in befunge93
21:26:14 <AnMaster> fizzie, for 98 it is "push zero
21:26:16 <AnMaster> "
21:26:17 <pikhq> AnMaster: But that means argument handling!
21:26:21 <Deewiant> fizzie: In the -98 spec.
21:26:23 <AnMaster> pikhq, yes and?
21:26:27 <AnMaster> pikhq, getopt() is nice
21:26:36 -!- alise has joined.
21:26:41 <pikhq> Also, the cat program I'm using seems to not end on EOF. :P
21:26:51 <pikhq> Just output... EOF...
21:27:01 <AnMaster> huh
21:27:03 <pikhq> I'm not sure... Why.
21:27:06 <pikhq> Probably a bug.
21:27:08 <AnMaster> pikhq, link to it?
21:27:14 <AnMaster> and I can tell you if it should do that
21:27:24 <pikhq> ~:1+!#@_,
21:27:24 <AnMaster> or if it is an interpreter bug
21:27:27 <AnMaster> hm
21:27:29 <AnMaster> lets see
21:27:34 <fizzie> 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 <AnMaster> 1+!?
21:27:54 <Deewiant> AnMaster: It wants negative one for EOF.
21:28:09 <AnMaster> Deewiant, yes but add 1 logical not won't do that will it?
21:28:12 <Deewiant> fizzie: Well yes, I don't know about that.
21:28:25 <Deewiant> AnMaster: It will make the _ go left if it was EOF, thus hitting the @.
21:28:25 <AnMaster> oh wait it will
21:28:28 <AnMaster> true
21:28:40 <AnMaster> so indeed it shouldn't output EOF
21:28:55 <AnMaster> doing that indicates your _ is flawed. Or your # is *very* flawed
21:29:06 <AnMaster> (or your @ is extremely flawed)
21:29:16 <Deewiant> If you cat an empty file it will output EOF.
21:29:25 <Deewiant> Or no, it won't.
21:29:27 <Deewiant> Never mind.
21:29:54 <AnMaster> pikhq, will you do befunge98 or will you stay at 93?
21:30:33 <Deewiant> http://github.com/serprex/Befunge/blob/master/marsh.c is the fast -93 one I was thinking of.
21:30:54 <pikhq> AnMaster: 93 ATM.
21:31:00 <pikhq> http://sprunge.us/JRWd
21:31:04 <AnMaster> pikhq, so no plans to do 98 later?
21:31:22 <AnMaster> Deewiant, "#ifdef FUNGE" seems quite hilarious
21:31:28 <pikhq> Maybe. Maybe not.
21:31:36 <fizzie> 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 <Deewiant> No, it doesn't. :-P
21:32:10 <pikhq> Anything *obviously* wrong in there?
21:32:41 <AnMaster> ['+'] = &&add <-- is that C?
21:32:47 <pikhq> Yes.
21:32:55 <pikhq> GNU C, but yes.
21:32:56 <Deewiant> pikhq: Popping an empty stack doesn't seem worky?
21:32:57 <AnMaster> pikhq, the [] around an index like that?
21:33:05 <pikhq> Deewiant: Ah.
21:33:06 <pikhq> AnMaster: Yes.
21:33:12 <fizzie> That's a C99 thing.
21:33:22 <AnMaster> fizzie, hm only used the .foo C99 thing
21:33:27 <AnMaster> never the array index thingy
21:33:30 <pikhq> fizzie: The labels as values aren't, though.
21:33:30 <fizzie> It has both.
21:33:44 <fizzie> pikhq: Right, that's just a GNUism.
21:34:02 <AnMaster> <pikhq> Anything *obviously* wrong in there? <-- no. But then nothing is obviously right either
21:34:06 <AnMaster> it is too confusing for it
21:34:31 <Deewiant> pikhq: Also your ? ;-P
21:34:38 -!- MigoMipo has quit (Remote host closed the connection).
21:34:41 <AnMaster> pikhq, you won't pass mycorand
21:34:54 <pikhq> Deewiant: Couldn't be assed to do use rand yet. :P
21:34:58 <AnMaster> it runs until it gets two different random numbers iirc
21:35:11 <Deewiant> It runs until ? has gone in every direction.
21:35:28 <AnMaster> ah that even
21:35:33 <Deewiant> AnMaster: Why does oprofile point me to wrong symbols :-/
21:35:38 <pikhq> AnMaster: What's confusing about it, though?
21:35:53 <AnMaster> Deewiant, cfunge or ccbi?
21:35:57 <Deewiant> CCBI
21:35:58 <AnMaster> Deewiant, it never happened to me
21:36:04 <fizzie> 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 <AnMaster> so I guess some D weirdness
21:36:13 <Deewiant> callgrind works fine.
21:36:17 <pikhq> The only logic at all is in step.
21:36:20 <AnMaster> Deewiant, but remember it is low overhead in kernel based
21:36:30 <Deewiant> AnMaster: Doesn't help me if it gives me wrong results.
21:36:43 <AnMaster> Deewiant, while callgrind basically emulates it in a virtual machine of it's own iirc
21:36:47 <AnMaster> like all of valgrind does
21:37:01 <Deewiant> Yes; and one reports things right, the other wrong.
21:37:16 <AnMaster> Deewiant, one is based on reality and both reported correctly for me
21:37:30 <AnMaster> Deewiant, but like your memory graph it might miss some tiny bit
21:37:41 <Deewiant> AnMaster: It's not reality when it's telling me about functions that are never called in the whole execution.
21:37:52 <AnMaster> Deewiant, that should not happen
21:37:55 <AnMaster> and never happened to me
21:38:05 <Deewiant> No kidding it probably "should not" happen, but it does. :-P
21:38:20 <AnMaster> Deewiant, what could happen is that it misses a tiny bit due to it being between sampling interval iirc
21:38:26 <AnMaster> since it uses performance counters of the CPU
21:38:39 <Deewiant> Yeah, that's not very important.
21:38:56 <AnMaster> Deewiant, well I can't help you since I have never seen it
21:39:16 <AnMaster> you could try debugging oprofile but I expect that to be a nightmare
21:39:32 <AnMaster> Deewiant, maybe two functions share a common tail? Does LLVM do that kind of size optimisation?
21:39:53 <Deewiant> It might.
21:40:14 <AnMaster> Deewiant, that could screw up something that isn't observing the calls, but looks at the program counter value and such
21:42:49 <AnMaster> pikhq, does that program pass mycology's b93 section?
21:43:23 <Deewiant> Bah, I'd got used to the speed of oprofile. :-P
21:43:42 <AnMaster> Deewiant, well yes callgrind is much slower and may not reflect a real computer
21:43:54 <AnMaster> for example modern computers have better hardware prefetch than it
21:43:55 <AnMaster> iirc
21:44:13 <AnMaster> Deewiant, like it either doesn't emulate hw prefetch or it emulates a perfect one
21:44:18 <AnMaster> oprofile shows the reality
21:44:26 <AnMaster> well except for your symbol name issue
21:44:34 <Deewiant> Yeah, so it actually doesn't show the reality. :-P
21:44:41 <AnMaster> Deewiant, it does for me though
21:44:51 <Deewiant> Well good for you.
21:44:57 <AnMaster> Deewiant, I blame your system/D + LLVM/other
21:45:00 <AnMaster> pick the one your prefer
21:45:08 <Deewiant> I don't need a scapegoat.
21:45:31 <AnMaster> meh should have told me before I went to all that trouble writing them down :P
21:45:54 <AnMaster> Deewiant, and yes what you really need is an escapegoat.
21:47:01 <pikhq> AnMaster: Lemme check.
21:47:08 <AnMaster> pikhq, do you handle wrapping around to the minus side correctly?
21:47:16 <AnMaster> pikhq, I don't think so
21:47:21 <AnMaster> pikhq, as in going < over the edge
21:47:23 <fizzie> Deewiant: Aw, that marsh.c doesn't even check for stack underflow and return 0; it just crashes in that case.
21:47:30 <fizzie> Deewiant: That's a cheaty way to be fast. :p
21:47:32 <AnMaster> pikhq, your code seems to only work for going > over the edge
21:47:48 <Deewiant> fizzie: There's a marshsafe.c, maybe that one does?
21:47:56 <fizzie> That sounds likely.
21:48:18 <AnMaster> Deewiant, the put code in the safe one seems longer
21:48:26 <AnMaster> I think it checks p is within bounds
21:49:06 <AnMaster> it also does check for /0
21:49:43 <AnMaster> hm iirc ppc's integer division gives you zero on division by zero
21:50:11 <AnMaster> FILE*rand=fopen("/dev/urandom","r"); <- heh
21:51:07 <fizzie> 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 <Deewiant> Maybe it's just broken. :-P
21:51:31 <AnMaster> fizzie, segfault?
21:52:56 <fizzie> 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 <AnMaster> fizzie, heh at that last one
21:53:25 <AnMaster> fizzie, I don't have serp or sort here
21:53:26 <AnMaster> links?
21:53:38 <AnMaster> also sort in befunge93 would be very limited
21:54:15 <fizzie> It sorts the letters of one word.
21:54:21 <fizzie> At http://quadium.net/funge/downloads/bef93src/
21:54:22 <AnMaster> fizzie, how long?
21:55:02 <fizzie> I don't know. Probably not very.
21:56:16 <pikhq> AnMaster: I appear to be having issues with reflection.
21:56:36 <alise> A real befunge would translate the whole program to an array of pointers to code.
21:56:37 <AnMaster> pikhq, ip.dx *= -1; ip.dy *= -1;
21:56:39 <AnMaster> that should work
21:56:45 <alise> (with specialised jumps for each direction)
21:56:48 <AnMaster> adapt it for you variable names
21:57:06 <AnMaster> fungespace_vector_x *= -1;
21:57:08 <AnMaster> fungespace_vector_y *= -1;
21:57:09 <AnMaster> it seem
21:57:11 <AnMaster> seems*
21:57:18 <AnMaster> pikhq, you reflect on unknown right?
21:57:29 <pikhq> AnMaster: Trying to now.
21:57:36 <alise> I want a Nexus One now.
21:57:40 <alise> Badly.
21:57:41 <pikhq> Minor issue -- this... Doesn't seem to be doing that right.
21:57:51 <fizzie> This is admittedly a very non-scientific benchmark, but: http://pastebin.com/nfmUUEwq
21:58:05 <AnMaster> fizzie, ff?
21:58:16 <fizzie> AnMaster: The thing I mentioned a moment ago.
21:58:17 <alise> fast funge, says fizzie.
21:58:22 <alise> Oh wait you can't hear >:)
21:58:23 <fizzie> <fizzie> 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 <ais523> and what's marshsafe?
21:58:25 <fizzie> That one.
21:58:29 <AnMaster> ah
21:58:31 <alise> ais523: deewiant's github link
21:58:35 <ais523> ah, ok
21:58:37 <AnMaster> fizzie, several screens ago
21:58:50 <fizzie> AnMaster: Well, you're being so noisy.
21:58:51 <Deewiant> That github link is on the esolangs.org Befunge page.
21:59:07 <AnMaster> fizzie, I usually talk a lot
21:59:21 <fizzie> AnMaster: That was the plural, whole-channel "you", though.
21:59:27 <AnMaster> fizzie, ah
21:59:41 <AnMaster> fizzie, could have been made clearer with "you all" or such
22:00:21 <fizzie> 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 <AnMaster> haha
22:00:41 <AnMaster> pikhq, did you see what I said about going over the < edge?
22:00:48 <AnMaster> pikhq, that it seemed broken in your program
22:00:50 <ais523> fizzie: in befunge-93, without writing outside the playfield (which is IIRC undefined), is there any way to tell?
22:01:07 <AnMaster> pikhq, also wth:
22:01:10 <AnMaster> 306 fungespace_x += fungespace_vector_x;
22:01:11 <AnMaster> 307 fungespace_x %= 25;
22:01:11 <AnMaster> 308 fungespace_y += fungespace_vector_y;
22:01:11 <AnMaster> 309 fungespace_y %= 80;
22:01:17 <AnMaster> pikhq, I think you need to swap those
22:01:21 <AnMaster> 80 and 25
22:01:28 <AnMaster> your program is the wrong way around
22:01:31 <ais523> depends on the definitions of x and y, surely?
22:01:37 <AnMaster> ais523, well true
22:01:46 <fizzie> 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 <AnMaster> pikhq, and yes it does the wrong thing when you hit -1
22:02:42 <AnMaster> <ais523> 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 <Deewiant> ais523: If it's not undefined, there is a way to tell.
22:03:07 <pikhq> AnMaster: Yeah, that's the issue.
22:03:10 <AnMaster> Deewiant, no there isn't
22:03:27 <Deewiant> AnMaster: Yes there is; put an @ at 255,0 and wrap around.
22:03:31 <ais523> Deewiant: well, depends on what it's defined /to/
22:03:35 <AnMaster> Deewiant, not if it is implementation defined
22:03:37 <Deewiant> ais523: Yes.
22:03:39 <AnMaster> which is a third option
22:04:08 <AnMaster> Deewiant, some interpreted could implement that as 255%80,0%25
22:04:15 <AnMaster> interpreter*
22:04:39 <AnMaster> pikhq, idea: befunge-98 self interpreter
22:04:43 <AnMaster> I don't think it has been done
22:04:50 <Deewiant> slowdown.b98.
22:04:57 <AnMaster> Deewiant, not a true self interpreter
22:05:01 <AnMaster> Deewiant, it uses the host
22:05:17 <AnMaster> Deewiant, it's like calling eval()
22:05:21 <fizzie> 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 <Deewiant> Hmm, I wonder how underload.b98 manages to slow down when I preallocate an appropriately-sized box for the stack.
22:06:04 <AnMaster> fizzie, he could use 4 custom ones so it didn't need to check that
22:06:15 <alise> Sgeo_: no.
22:06:22 <AnMaster> Deewiant, hah
22:06:24 <Sgeo_> :(
22:06:24 <alise> Sgeo_: flash will, though, when the new version is out; but why would you want to?
22:06:25 <fizzie> 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 <Sgeo_> alise, Robozzle
22:06:33 <alise> laggy, shitty, battery-draining
22:06:34 <AnMaster> Sgeo_, no one uses that anyway?
22:06:40 <AnMaster> Sgeo_, there is a js version iirc
22:06:41 <alise> Sgeo_: bug him to make a paid android app
22:06:59 <AnMaster> fizzie, oh true
22:07:10 <AnMaster> fizzie, he could use out of band data
22:07:22 <AnMaster> fizzie, like a 34 bit word
22:07:30 <AnMaster> of course that is best left to VHDL people
22:07:45 <AnMaster> or other which can do non-standard word width
22:07:52 <AnMaster> s/which/who/
22:09:52 <Sgeo_> My dad's asking me to think hard about this
22:09:55 <Deewiant> 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 <Sgeo_> He suggested thinking about a no-contract iPhone, due to the number of apps. He also suggested getting a small laptop
22:10:26 <Sgeo_> Since I can't get both a better computer and a smartphone
22:12:16 <ais523> heh, you can use control-return to open links in a new tab using the keyboard in Firefox
22:12:43 <ais523> 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 <AnMaster> Deewiant, or 16-bit
22:14:06 <Deewiant> On modern machines, 16-bit tends to be a bad idea.
22:14:37 <ais523> doesn't 16-bit get emulated in microcode?
22:14:45 <pikhq> Hrm. I seem to get no output from mycology.
22:16:27 <pikhq> Ah. It's an issue in the file loading.
22:17:24 <pikhq> Whoo, I now segfault.
22:18:25 <pikhq> 0x00007ffff7ad99b5 in getc () from /lib/libc.so.6
22:18:32 <pikhq> How the hell am I segfaulting there?
22:18:39 <Deewiant> Buffer overrun.
22:18:41 <ais523> passing it a NULL file pointer
22:18:58 <ais523> getc's a macro, it probably doesn't sanity-check its input
22:19:08 <pikhq> I didn't call getc.
22:19:10 <Deewiant> If it's a macro it can't be in the stack trace.
22:19:15 <ais523> yep, good point
22:19:19 <pikhq> 112 int c = fgetc(f);
22:19:23 <ais523> this is even more bizarre given that the function version's called fgetc
22:19:25 <pikhq> That's the line it's called from.
22:19:28 <ais523> hmm, ok
22:19:45 <ais523> so the function fgetc shows as getc in stack traces?
22:19:50 <pikhq> Yes.
22:19:52 <ais523> pikhq: why use fgetc ever, except to take its address?
22:20:09 <pikhq> ais523: Probably no good reason.
22:20:44 <pikhq> Okay, that still confuses me.
22:20:59 <ais523> hmm, I wonder if fgetc has sanity checks?
22:21:09 <pikhq> "f" is still a perfectly valid FILE*.
22:21:24 <ais523> err, it's pointing to a char, not to a file
22:21:29 <lament> how come fax isn't here?
22:21:32 <fizzie> ais523: At least my /lib/libc.so.6 has the symbols getc and fgetc with the identical address.
22:21:42 <fizzie> ais523: In this sort of situation gdb would probably just pick the first one.
22:21:46 <ais523> ah, ok
22:21:56 * Sgeo_ tries to access the bus scheduling stuff via the emulator
22:22:07 <Sgeo_> I see schedules for the train, but no bus stuff GRRR
22:22:10 <pikhq> ais523: getc takes a file?
22:22:16 <Sgeo_> F U Usablenet Mobile
22:22:20 <AnMaster> lament, because he is not currently in this channel
22:22:22 <ais523> pikhq: yep
22:22:22 <AnMaster> that is why
22:22:23 <AnMaster> ;P
22:22:24 <ais523> it's getchar that doesn't
22:22:30 <pikhq> Yuh.
22:22:38 <ais523> or getch doesn't either, but it's curses/DOS
22:22:42 <ais523> rather than standard C
22:22:49 <pikhq> So, yeah. I have no clue how this is segfaulting.
22:23:07 <fizzie> Step up in gdb, print out "f" just in case?
22:23:17 <AnMaster> what fizzie said and also link to the file
22:23:19 <ais523> did you ever call setvbuf or an abbreviation for it on f?
22:23:22 <AnMaster> pikhq, also try valgrind
22:23:24 <pikhq> fizzie: I'm examining f's buffer right now.
22:23:24 <ais523> it could be that something's happened to the buffer
22:23:36 <Sgeo_> The Android browser does NOT seem to support PDF
22:23:47 * Sgeo_ pokes alise. You said that iPhone supports PDFs?
22:23:49 <pikhq> ais523: No.
22:24:01 <AnMaster> Sgeo_, get a computer if you want one. Get a phone if you want a phone
22:24:05 <pikhq> I'm actually very, very curious why I'm not getting anything *else* from gdb.
22:24:06 <ais523> Sgeo_: it's not normally web browsers that support PDFs, but plugins
22:24:17 <AnMaster> Sgeo_, also surely you can install a pdf reader in it?
22:24:17 <pikhq> I *have* full debugging info and source code for my libc.
22:24:25 <AnMaster> ais523, exception: konqueror ?
22:24:26 <Sgeo_> AnMaster, I'm looking into that
22:24:26 <ais523> or separate programs
22:24:28 <AnMaster> or wait
22:24:34 <ais523> AnMaster: arguably konqueror isn't a web browser
22:24:35 <AnMaster> it does it as kpdf_kpart or such
22:24:41 <AnMaster> maybe
22:24:41 <ais523> it's a superset of a web browser
22:24:46 <AnMaster> true
22:24:48 <fizzie> 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 <pikhq> I *should* be able to actually debug libc.
22:24:56 <Sgeo_> Hm
22:25:14 <ais523> pikhq: just because you have debugging libc doesn't mean the program's linked against it
22:25:16 <fizzie> Sgeo_: Anyway, doesn't the saying go "there's an app for that".
22:25:20 <Sgeo_> 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 <ais523> you might need to set an env variable to tell it to link that version of libc
22:25:37 <pikhq> ais523: Every single binary on my system is splitdebug.
22:25:49 <alise> Sgeo_: yes iphone can read pdfs
22:25:53 <pikhq> I don't *have* non-debugging versions.
22:26:22 <pikhq> At least, I shouldn't. And yet, here's libc. Without debugging info.
22:26:25 <ais523> pikhq: surely, just the executable binaries?
22:26:37 <ais523> or are you saying that, say, your compressed tarballs are debugging versions too?
22:26:38 <alise> http://andpdf.sourceforge.net/ gross but
22:26:39 <Sgeo_> That.. may push my hand to an iPhone
22:26:48 <alise> Sgeo_: No.
22:26:56 <alise> I am the biggest iPhone evangelist on the planet, I love the things, but no.
22:27:00 <ais523> that's a really bad reason to get an iPhone
22:27:04 <alise> Apple have finally stepped too far: buying one is simply immoral now.
22:27:09 <pikhq> ais523: Yes, the executable ones.
22:27:10 <pikhq> :P
22:27:13 <ais523> alise: it seems unlikely that you're the biggest iPhone evangelist on the planet
22:27:14 <AnMaster> <ais523> pikhq: just because you have debugging libc doesn't mean the program's linked against it <-- split debug info?
22:27:20 <alise> (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 <alise> (or c/c++)
22:27:22 <ais523> have you /seen/ some of the Apple evangelists on the Internet
22:27:26 <alise> (no third-party languages or runtime)
22:27:32 <ais523> alise: hmm, interesting
22:27:34 <Sgeo_> alise, will Android 1.5 programs work on 2.1?
22:27:38 <alise> Interesting and evil.
22:27:39 <ais523> they've banned interpreted languages forever
22:27:44 <alise> Sgeo_: Probably, but look at that screenshot; it's hideous.
22:27:47 <pikhq> What the hell?
22:27:57 <ais523> presumably, this is to get rid of the actionscript -> obj-c compiler someone wrote
22:27:57 <alise> http://androidforums.com/support/1198-pdf-android-work-around.html lol export to jpeg
22:28:00 <pikhq> I've got a .debug file for everything *but* libc.
22:28:03 <alise> Android Portal MultiReader: Free Word viewer / PDF reader for T ...
22:28:09 <fizzie> 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 <alise> Sgeo_: http://bsegonnes.free.fr/multireader/en_multireader.html
22:28:29 <alise> doesn't seem to do "rich" pdf stuff but...
22:28:34 <ais523> yay evince
22:28:38 <ais523> alise: you probably don't want to
22:28:47 <Sgeo_> I think I'll avoid telling my dad that iPhone has PDF capabilities
22:28:51 <alise> ais523: ?
22:28:56 <ais523> this reminds me of the exploit in the PDF spec people found recently
22:28:57 <Sgeo_> He's currently under the impression that it simply can't be done
22:28:58 <alise> ais523: I mean even basic formatting, maybe I'm wrong though
22:29:02 <ais523> ah
22:29:09 <alise> Sgeo_: heh
22:29:16 <ais523> 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 <ais523> *spec
22:29:22 <alise> Sgeo_: I take it your dad has no actual reason to believe himself to be competent in tech matters?
22:29:35 <fizzie> 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 <Sgeo_> He's.. somewhat competent. Competent enough to, say, know how to set a password in BIOS
22:29:53 <alise> That's barely competent :P
22:29:53 <ais523> 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 <ais523> 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 <ais523> *and
22:30:11 <alise> Sgeo_: Oh yeah, what fizzie said, look at the N900
22:30:13 <alise> not a very good touchscreen
22:30:18 <ais523> that's actually /happened/ to me, although I wasn't on a phone at the time
22:30:19 <alise> but it almost certainly does pdf :P
22:30:29 <ais523> and the source is decent for editing, but bad for reading
22:30:38 <Sgeo_> How many apps are available for the N900?
22:30:44 <alise> Sgeo_: less than android
22:31:01 <alise> Sgeo_: why do you need pdf?
22:31:03 <alise> Academic papers?
22:31:06 <Sgeo_> alise, bus schedules
22:31:09 <fizzie> alise: Well, there's as many apps as there are in Debian, if you want to be technical about it...
22:31:24 <alise> Sgeo_: Presumably they don't change so often?
22:31:32 <Sgeo_> alise, correc
22:31:32 <fizzie> (Since there's a "install a Debian in a ext2 filesystem image" app in the official repository.)
22:31:37 <Sgeo_> t
22:31:45 <alise> Well, fizzie is right Sgeo_; technically maemo can run most Gtk applications.
22:31:47 <alise> Really badly, though.
22:31:53 <Sgeo_> They do change every few months, actually. Rarely the ones I use
22:31:55 <alise> Sgeo_: then just export them to pngs on your computer and put them on your android
22:32:09 <fizzie> 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 <ais523> "I like this, therefore most people probably dislike it"?
22:32:53 <alise> I don't think, therefore statistically I'm more likely to be than if I did think.
22:32:53 <ais523> anyway, hasn't maemo merged with moblin nowadays?
22:32:57 <fizzie> 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 <ais523> presumably nowadays you need to look at the capabilities of meego
22:33:02 <alise> Evidence: there are more existing things that don't think than things that think.
22:33:25 <fizzie> 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 <alise> cognition is actually evidence /against/ you existing :-)
22:33:30 <AnMaster> <ais523> this reminds me of the exploit in the PDF spec people found recently <-- ?
22:33:41 <AnMaster> <fizzie> 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 <ais523> AnMaster: basically, you can specify attachments and executables that should open them
22:33:45 <fizzie> 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 <ais523> you can make the PDF file a polyglot PDF/executable for target platform, and open it with itself
22:34:09 <AnMaster> ais523, oops
22:34:19 <ais523> but it would be an exploit even without that, just a harder one to exploit
22:34:25 <AnMaster> ais523, should definitely not be implemented
22:34:31 <ais523> yep
22:35:07 <Sgeo_> alise, what happens when I need a schedule for a bus I didn't plan on taking?
22:35:11 <Sgeo_> It has happened
22:35:38 * Sgeo_ installed an alternative .. market app? app app? on the emulator
22:35:39 <fizzie> 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 <AnMaster> <Sgeo_> alise, what happens when I need a schedule for a bus I didn't plan on taking? <-- happens to me too
22:36:43 <fizzie> Alternatively, you could put a pdf-to-png cgi script on some web-host and use that to open PDFs.
22:36:51 <AnMaster> I go to their website and read the html page
22:37:01 <AnMaster> well you search first
22:37:04 <alise> Sgeo_: where's the download link for the emulator?
22:37:06 <AnMaster> I don't do it from the phone
22:37:11 <AnMaster> due to opera mini being what it is
22:37:16 <Sgeo_> alise, somewhere on http://developer.android.com/
22:37:17 <fizzie> Can you use google's PDF "preview" thing with arbitrary PDF urls?-)
22:37:30 <AnMaster> fizzie, no idea. Try it?
22:37:33 <Sgeo_> http://developer.android.com/sdk/index.html
22:37:40 <Sgeo_> Requires a bit of fiddling
22:38:57 * Sgeo_ sees something about a standalone emulator, but that's 1.5
22:38:59 <fizzie> 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 <Sgeo_> fizzie,
22:39:24 <Sgeo_> hm
22:39:55 * Sgeo_ tries MultiReader
22:40:37 <alise> What fizzie said is probably the best idea.
22:40:44 <alise> Google will almost certainly optimise for Google shit working perfectly.
22:40:49 <Sgeo_> 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 <fizzie> Well, the google-docs viewer does Powerpoint too.
22:41:28 <alise> Sgeo_: well, buy a laptop :P
22:41:30 <Sgeo_> 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 <alise> SEXY PURPOSES
22:42:33 <fizzie> 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 <alise> Sgeo_: do you really need eclipse to install android emulator?
22:43:15 <Sgeo_> alise, no
22:43:22 <pikhq> 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 <fizzie> alise: It's better than the Windows you need to install a Symbian emulator. :p
22:43:30 <Sgeo_> Nor do you need to do command-line stuff
22:43:32 <alise> Sgeo_: how did you download it then?
22:43:49 <Sgeo_> In the .zip, there's a utility called SDK Setup
22:43:59 <Sgeo_> [erm, on Windows, not sure about other OSes]
22:44:27 <Sgeo_> I did need to download some packages using that utility, I probably installed stuff that wasn't needed
22:44:32 <alise> Which zip? :P
22:44:36 <alise> I'm having trouble finding the download
22:44:50 <AnMaster> fizzie, you will have to rerun those affected by it then
22:45:01 <Sgeo_> http://developer.android.com/sdk/index.html
22:45:05 <Sgeo_> "Download the Android SDK"
22:45:34 <alise> Well, that would work. :P
22:46:35 <fizzie> 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 <AnMaster> mhm
22:47:15 <fizzie> (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 <Sgeo_> It feels awkward that alise needs my help, rather than the other way around
22:50:58 <alise> Need to get 267MB of archives.
22:51:01 <alise> Forget Eclipse, then.
22:51:30 <Sgeo_> alise, Eclipse has nothing to do with anything
22:51:37 <Sgeo_> Unless you're trying to practise developing
22:52:56 -!- oerjan has quit (Quit: Good night).
22:53:03 <alise> Right.
22:53:20 <Sgeo_> I can live with the viewer thing
22:53:23 <alise> Do I need the jdk?
22:53:28 <alise> I guess not, but I bet I need the JRE.
22:53:33 <alise> Maybe not, though.
22:53:38 <ais523> I find the JDK is nice to have
22:53:40 <Sgeo_> You just need what's in the .. yeah, you do kind of need Java stuff
22:53:44 <ais523> although, maybe more so if you teach Java for a living
22:55:45 <Sgeo_> Just seems inconvenient to go to the viewer from links on the full version of the MTA's site
22:55:51 <fizzie> 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 <fizzie> And the same for the "jar" command-line tool for peeking inside .jar files.
22:56:27 <Sgeo_> Aren't .jar files just .zip files or something, or am I misremembering, or is that old information
22:56:36 <fizzie> They are, so that's a minor thing.
22:56:38 <Deewiant> They are.
22:56:40 <Sgeo_> Stuff keeps freezing in the emulator :/
22:56:55 <fizzie> I still write "jar xvf file.jar" when trying to extract one, by force of habit.
22:57:08 <Sgeo_> The real phone better not be as badly behaved as this
22:57:14 <AnMaster> <Sgeo_> It feels awkward that alise needs my help, rather than the other way around <-- relish the feeling while it lasts
22:57:22 <ais523> they're zipfiles with a few special files in at known locations
22:57:41 <AnMaster> fizzie, jar xvf?
22:57:59 <fizzie> AnMaster: Yes?
22:58:10 <AnMaster> fizzie, does that work?
22:58:15 <fizzie> That's the syntax.
22:58:19 <fizzie> Extract jar file
22:58:19 <fizzie> jar x[vf] [jarfile] [inputfiles] [-Joption]
22:58:23 <AnMaster> fizzie, can you use it for normal zip?
22:58:45 <AnMaster> fizzie, I always need to check docs of zip when I want to unpack a zip
22:58:52 <fizzie> Apparently you can.
22:59:04 <fizzie> At least "jar tf bleh.zip" for a completely ordinary .zip seems to list files.
22:59:09 <fizzie> Didn't try extracting anything.
22:59:30 <Deewiant> "unzip foo.zip"
22:59:42 <fizzie> Deewiant: Admittedly it's not a very complicated syntax. :p
22:59:59 <fizzie> Deewiant: Though "unzip -l foo.zip" -- if you want to see the contents first -- is not *so* simple to remember.
23:00:02 <Gregor> fizzie: BSD?
23:00:11 <Gregor> Oh fleh
23:00:12 <Deewiant> fizzie: unzip -t works as well, no?
23:00:13 <Gregor> Cancel that.
23:00:15 <Gregor> Misread.
23:00:27 <fizzie> Deewiant: It might; -l is the only thing I remember. :p
23:00:37 <fizzie> Deewiant: There's still the "-" there.
23:00:51 <Deewiant> Yes, the "-" is such a rare thing that you might forget about it.
23:01:04 <Sgeo_> Why does THIS document viewer also feel a need to read my "phone state and identity"?
23:01:09 <fizzie> Deewiant: Apparently -t also calculates the CRC, which might be not what you want.
23:01:38 <Deewiant> Yes, it is short for "test" after all.
23:01:41 <AnMaster> Sgeo_, who knows
23:01:45 <Sgeo_> 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 <Sgeo_> Then agian, it is a Trial
23:03:06 <Sgeo_> Maybe it's storing stuff to ensure against trying to keep it in the phone area
23:03:07 <alise> 4% [3 sun-java6-jre 2153087/6,421kB 33%]
23:03:09 <alise> keeps freezing on this
23:03:12 <alise> are you suuuure i need java
23:03:23 <Sgeo_> alise, you can try without and see what happens
23:03:29 <alise> yeah it wants java
23:03:30 <alise> ffs
23:03:33 <alise> why won't it just download
23:03:35 <Sgeo_> It does keep popping up console windows .. oh
23:03:44 <fizzie> .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 <alise> 4% [4 sun-java6-jre 2324862/6,421kB 36%] 912B/s 15h 24min 21s
23:03:56 <alise> heh it improved now
23:03:59 <alise> now only 20 minutes to go
23:04:01 <alise> now 9
23:04:10 <alise> fizzie: MAH EAR FILE
23:04:14 <alise> for filing my ears
23:04:21 <alise> so is the next .nail
23:05:11 <fizzie> alise: fileext says for .nail: "Primary association: Unknown Apple II File". That's probably no longer related.
23:06:57 <Sgeo_> Oh look, it wants to open something ON THE PHONE! AND I GAVE YOU INTERNET ACCESS, YOU PIECE OF SHIST
23:07:43 <alise> Shist.
23:08:41 <fizzie> "Shist" is this enemy type in Chrono Trigger.
23:08:47 -!- tombom has quit (Quit: Leaving).
23:09:24 <fizzie> http://www.spriters-resource.com/snes/chronotrigger/rubble_icon.PNG -- there, that's a Shist.
23:09:27 <fizzie> Now you know!
23:10:21 <fizzie> (It might be a Rubble too... the difference's just in the palette.)
23:14:02 <fizzie> 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 <AnMaster> <fizzie> http://www.spriters-resource.com/snes/chronotrigger/rubble_icon.PNG -- there, that's a Shist. <-- aargh
23:20:09 <AnMaster> they had massive HP didn't they?
23:20:16 <fizzie> AnMaster: No, just massive evasion.
23:20:30 <AnMaster> fizzie, maybe there were different coloured ones?
23:20:32 <AnMaster> as well
23:20:33 <fizzie> AnMaster: And the "lock all" ability, which meant you could only use phyiscal attacks.
23:20:49 <fizzie> AnMaster: Well, Rubble's the grey one. I guess Shists had more HP than Rubbles, yes.
23:20:56 <AnMaster> ah
23:21:17 <Sgeo_> Ok, OfficeSuite's taking forever
23:21:34 <fizzie> 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 <AnMaster> fizzie, true but weren't APs caped?
23:22:08 <fizzie> 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 <AnMaster> capped*
23:22:47 <AnMaster> fizzie, I remember I stopped getting tech points at some point
23:22:53 <AnMaster> before I had the majority of techs
23:22:53 <Sgeo_> 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 <alise> Sgeo_: tell him he's wrong
23:23:05 <Sgeo_> Not as bad as this, though
23:23:08 <alise> I read PDFs on my iphone regularly
23:23:13 <alise> it's beautifully antialiased and rendered perfectly
23:23:18 <alise> exactly the same as on os x
23:23:19 <AnMaster> Sgeo_, so that is going to decide it?
23:23:20 <alise> exact same engine
23:23:28 <Sgeo_> AnMaster, not if I have any say
23:23:36 <AnMaster> Sgeo_, can't you search for time tables without pdf
23:23:54 <ais523> "looks like crap" may just mean "screen too small"
23:24:03 <ais523> with nontechnical people, it's hard to know
23:24:48 <alise> Sgeo_: just get a nexus one
23:24:55 <alise> as someone who's used an iphone extensively, the nexus one looks awesome
23:24:57 <AnMaster> true
23:25:00 <fizzie> 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 <fizzie> AnMaster: At least I distinctly remember learning Luminaire on the single reappearing Rubble, after a long and boring while.
23:25:47 <AnMaster> fizzie, heh
23:26:27 <Sgeo_> http://i.imgur.com/S6pDQ.png
23:26:30 <fizzie> 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 <AnMaster> fizzie, hm
23:28:32 <alise> Sgeo_: linus torvalds likes the nexus one
23:28:36 <alise> http://torvalds-family.blogspot.com/2010/02/happy-camper.html
23:28:48 <Sgeo_> Isn't he also a KDE fan?
23:29:08 <Sgeo_> [Well, I shouldn't dis KDE. It's just Kubuntu I've had troubles with, really]
23:30:36 <alise> No, actually.
23:30:44 <alise> He's decided that KDE 4 sucks so much that GNOME is better.
23:30:47 <alise> iirc
23:30:59 <ais523> Sgeo_: don't worry, it's fair to hate Kubuntu's packaging of KDE
23:31:04 <ais523> which IIRC, and IME, is really bad
23:31:28 <alise> Sgeo_: Besides, dammit, the Nexus One has a 1 gigahertz processor.
23:31:37 <Sgeo_> I don't know if it's the packaging, but it was always crashy for me
23:31:37 <alise> ais523 barely even has a gigahertz processor on his laptop XD
23:32:11 <alise> 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 <alise> everything i've read confirms that getting root is "official"
23:32:38 <ais523> alise: yep, you just install a package that lets you become root
23:32:42 <alise> no
23:32:50 <alise> you just hold down the trackball at boot
23:32:52 <ais523> hmm, am I thinking of a different platform?
23:32:53 <ais523> ah
23:32:54 <alise> type in fastboot oem unlock
23:33:00 <alise> and you can just shazam, become root
23:33:15 <Sgeo_> alise, would that allow bypassing pattern lock?
23:33:16 <Sgeo_> :/
23:33:39 <ais523> 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 <alise> Sgeo_: Who would know how to?
23:34:07 <alise> Sgeo_: Dude, if your phone is stolen, and the person who stole it is an expert,
23:34:08 <alise> you are fucked.
23:34:11 <alise> But no experts steal phones.
23:34:35 <alise> 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 <AnMaster> ais523, heh
23:36:37 <AnMaster> ais523, how does the package manager work then?
23:36:46 <ais523> AnMaster: probably suid
23:36:57 <ais523> or something equivalent
23:37:24 <AnMaster> *shudder*
23:37:53 <alise> worrying over total linux security correctness in a phone produces openmoko
23:38:07 <alise> and if you know anything about openmoko you'll know that's an insult
23:38:07 <ais523> the Linux systems at university run updates as root during the boot process
23:38:15 <AnMaster> what?
23:38:19 <Sgeo_> alise, what's OpenMoko?
23:38:27 <pikhq> So, apparently glibc has a misfeature in its buildsystem.
23:38:27 <alise> Sgeo_: a defunct company
23:38:29 <pikhq> --omitfp
23:38:35 <alise> Sgeo_: they used to make really shitty linux phones that barely worked
23:38:35 <AnMaster> pikhq, ouch
23:38:39 <alise> now they don't make mobiles any more
23:38:42 <pikhq> This causes it to build with -fomitfp -O99 -g0
23:38:47 <AnMaster> -O99?
23:38:52 <pikhq> Yes.
23:38:57 <alise> -O100 ;; one faster
23:38:59 <pikhq> And no, that does not do anything.
23:39:00 <AnMaster> ..................
23:39:13 <pikhq> -g0 disables debugging.
23:39:25 <AnMaster> I know what -g0 does
23:39:29 <pikhq> -fomitfp breaks debugging *only on x86*.
23:39:33 <alise> but it OMITS FRAME POINTERS FUCK YEAH
23:39:37 <AnMaster> pikhq, x86_64 too
23:39:38 <ais523> I thought -O only went to 7
23:39:38 <alise> or maybe it omits floating point operations
23:39:41 <AnMaster> and a few other platforms
23:39:41 <pikhq> AnMaster: No.
23:39:43 <AnMaster> ais523, to 3
23:39:53 <ais523> AnMaster: I think it depends on details
23:39:55 <AnMaster> pikhq, sure? I'm almost completely sure about this
23:39:56 <pikhq> On x86_64, all optimisation levels omit the frame pointer.
23:39:59 <ais523> 3 is the highest normal useful value
23:40:07 <AnMaster> pikhq, yes okay so it always break debugging then?
23:40:15 <ais523> I think values higher than that have a special meaning on some platforms
23:40:17 <pikhq> No, it doesn't.
23:40:20 <AnMaster> mhm
23:40:32 <AnMaster> ais523, huh
23:40:35 <pikhq> Only a small handful of architectures.
23:40:40 <AnMaster> which ones?
23:41:10 <ais523> can't remember offhand, but I'm pretty sure I've seen -O7 before
23:41:20 <pikhq> Lemme check.
23:41:21 <alise> 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 <Sgeo_> 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 <Sgeo_> [in the hypothetical future where I drive]
23:42:40 <pikhq> I can't find anything other than "breaks on x86 and maybe elsewhere"
23:42:44 <alise> Sgeo_: with all due respect, your dad is fucking insane
23:43:04 <alise> "Turn left." <Sgeo's consciousness> I see a turn to the left, WAIT i must pay attention... what's this? turn left? *turns right*
23:43:28 <AnMaster> pikhq, "maybe elsewhere" is enough for me
23:43:37 <ais523> alise: do you know about hazard fixation?
23:43:38 <fizzie> 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 <pikhq> But apparently not x86_64.
23:43:58 <ais523> 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 <alise> ais523: true
23:44:07 <Sgeo_> o.O RoboZZle has an iPhone version
23:44:10 * Sgeo_ grumbles
23:44:14 <alise> ais523: but listening to a gps doesn't exactly make you a dangerous driver
23:44:44 <ais523> depends on if you concentrate on it rather than the road
23:45:14 <ais523> 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 <fizzie> 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 <alise> Sgeo_: I take it that Sprint isn't even remotely an option?
23:46:50 <Sgeo_> alise, unless Sprint has a contract-free phone
23:46:53 <ais523> fizzie: seems a little dubious
23:46:55 <alise> If it was the HTC EVO 4G might be a consideration, although I don't think it's technically out yet.
23:46:58 <alise> Well, no, Sprint are a network.
23:47:01 <ais523> presumably there are thousands of root exploits in there
23:47:04 <alise> 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 <alise> Or the HTC Desire. (a "cousin of the nexus one", apparently)
23:48:18 <alise> 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 <alise> 64 more megs of ram though :P
23:48:41 <alise> it has the htc sense ui though
23:48:45 <alise> which is... prettier
23:48:48 <alise> http://www.blogcdn.com/www.engadget.com/media/2010/03/htcdesiretriohed03302010.jpg
23:49:42 <alise> i'd just get the nexus one
23:49:44 <Sgeo_> I take it that RoboZZle shouldn't be enough of a reason to push me towards iPhone
23:49:51 <alise> it shouldn't :-)
23:49:51 <coppro> it should not
23:49:58 <alise> i am sure it will be ported to android some time
23:50:02 <alise> and besides
23:50:09 <alise> no amount of robozzle can make up for apple's immorality
23:50:14 <coppro> it's true
23:50:18 <alise> i defended the iphone dammit but the latest change is just unacceptable
23:50:29 <alise> 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 <coppro> they've managed to even make me feel bad for working on clang
23:50:58 <ais523> alise: food for thought: iPhone licensing allows GPLv2 software but not GPLv3 software
23:51:22 <alise> coppro: ah, don't let that bother you
23:51:37 <alise> them supporting clang is a good thing no matter what else they do
23:51:37 <coppro> alise: yeah, I won't. It still makes me feel a little bad :(
23:51:48 <alise> say you were in germany in hitler's reign
23:51:48 <Sgeo_> clang?
23:51:56 <coppro> Yeah, I know
23:51:57 <alise> and hitler had a program to feed young orphans -- even if they're jews, or gay, or whatever
23:52:06 <alise> and it was a wild success, feeding tons of people and making them all happylike
23:52:11 <alise> would it be wrong to help this program?
23:52:11 <coppro> Sgeo_: The LLVM C/C++/Obj-C compiler
23:52:18 -!- FireFly has quit (Quit: Leaving).
23:52:21 <alise> Of course, it's not like Apple is anywhere near as bad as hitler :P
23:52:23 <AnMaster> hello? am I still connected?
23:52:28 <Sgeo_> AnMaster, no
23:52:29 <AnMaster> what the hell happened there
23:52:32 <AnMaster> Sgeo_, thanks
23:52:39 <ais523> alise: you'd have to be careful to make sure you were supporting the program rather than the people behind it
23:52:43 <AnMaster> Sgeo_, http://www.internetpulse.net/
23:52:48 <AnMaster> I seems to have been hit by
23:52:49 <alise> ais523: under hitler? that would be dangerous
23:52:49 <AnMaster> that
23:52:50 <ais523> this sort of issue happens with aid programs in corrupt countries
23:52:57 <alise> everyone under hitler supported hitler :-)
23:52:58 <AnMaster> "The server at www.internettrafficreport.com is taking too long to respond."
23:53:00 <AnMaster> still get that
23:53:01 <ais523> alise: exactly
23:53:08 <alise> so at least you could do some good
23:53:12 <AnMaster> half of internet is unreachable from here!
23:53:15 <AnMaster> or so
23:53:20 <coppro> that happens
23:53:29 <ais523> hmm, depeering?
23:53:32 <coppro> probably
23:53:38 <AnMaster> ais523, perhaps
23:53:42 <coppro> it's happened to me
23:53:43 <AnMaster> it is getting somewhat better
23:53:45 <Gregor> Now, to turn that into a political statement./
23:53:48 <AnMaster> freenode timed out before
23:53:53 <AnMaster> but now it works again
23:53:57 <Gregor> <AnMaster_China> Half of the Internet is unreachable from here!
23:53:59 <Gregor> Boo China!
23:54:04 <AnMaster> I guess it got rerouted
23:54:06 <AnMaster> Gregor, har
23:54:20 <AnMaster> ais523, seems they routed around it
23:54:21 <Sgeo_> http://www.youtube.com/watch?v=SnWJ29eNCbY RoboZZle's a ship now?
23:54:34 <AnMaster> internet traffic report up again
23:54:39 <ais523> ah, ok
23:54:47 <ais523> not a depeering, just a problem
23:54:57 <ais523> the whole trick with depeerings is that half the time you /can't/ reroute around them
23:55:01 <ais523> because it would cause too much political strife
23:55:03 <coppro> the tubes were clogged
23:55:13 <ais523> or, at least, people demanding loads of money
23:55:17 <AnMaster> ais523, indeed it isn't completely down
23:55:34 <alise> Though I loathe to quote techcrunch:
23:55:35 <alise> 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 <alise> 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 <alise> Note that full-brightness gameplay for 1.5 hours is unlikely.
23:56:08 <ais523> alise: I do that all the time on the DS
23:56:18 <ais523> so it rather depends on whether you bought your mobile for gaming or not
23:56:30 <ais523> (presumably, some people do that; or maybe they don't)
23:56:35 <alise> ais523: well, yes
23:56:40 <ais523> (still, whatever possessed anyone to invent the N-Gage?)
23:56:46 <AnMaster> hahah :D
23:56:49 <alise> but do you really need it on full brightness all the time?
23:57:00 <AnMaster> `addquote <ais523> (still, whatever possessed anyone to invent the N-Gage?)
23:57:04 <HackEgo> 147|<ais523> (still, whatever possessed anyone to invent the N-Gage?)
23:57:34 <AnMaster> ais523, wonderful quote
23:57:35 <ais523> alise: with the original DS, there are only two brightness settings, full and off
23:57:51 <ais523> and you can't change them except on the startup screen, which you have to powercycle to reach
23:57:59 <alise> I have the original DS
23:58:02 <alise> & proud
23:58:12 <ais523> alise: same, and the touchscreen still worsk
23:58:13 <ais523> *works
23:58:16 <alise> ditto
23:58:19 <alise> but i don't play on it all that much
23:58:26 <ais523> I use it when I can't sleep
23:58:27 <alise> `quote
23:58:29 <HackEgo> 52|<ehird> Apple = Windows.
23:58:33 <alise> ais523: I use laptops for that P
23:58:34 <alise> *:P
23:58:36 <Sgeo_> http://www.appleinsider.com/articles/10/04/11/steve_jobs_defends_apples_changes_to_iphone_developer_agreement.html
23:58:43 <ais523> alise: so do I sometimes, but they tend to make me less inclined to sleep rather than more
23:58:47 <alise> although monday-to-friday i can't do /anything/ when i can't sleep
23:58:52 <alise> `quote
23:58:54 <HackEgo> 25|`quote
23:58:54 <ais523> ouch
23:58:58 <alise> Nice quote.
23:59:04 <ais523> (quote quote)
23:59:25 <alise> `quote
23:59:27 <HackEgo> 75|* ehird disables javascript
23:59:30 <alise> `quote
23:59:31 <HackEgo> 18|<fungot> GregorR-L: i bet only you can prevent forest fires. basically, you know.
23:59:44 <alise> Smokey would be so much better if he said that.
23:59:46 <alise> `quote
23:59:48 <HackEgo> 13|* ehird has joined #lobby <Madelon> hmmm clean me
23:59:51 <alise> `quote
23:59:52 <HackEgo> 124|<Warrigal> I cannot eat meat that isn't flat.
23:59:56 <alise> `quote
23:59:57 <HackEgo> 72|<ehird> ignore me, i'm full of bullshit
2010-04-12
00:00:03 <alise> Truer words never spoken.
00:00:07 <AnMaster> stop the spam please
00:00:08 <ais523> is there any way to tell who added a quote?
00:00:14 <alise> ais523: yes
00:00:15 <AnMaster> `help
00:00:16 <alise> `help
00:00:17 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
00:00:22 <alise> http://codu.org/projects/hackbot/fshg/
00:00:23 <AnMaster> ais523, see the hg repo
00:00:24 <alise> shows the user
00:00:24 <alise> `quote
00:00:27 <HackEgo> 21|<pikhq> First, invent the direct mind-computer interface. <pikhq> Second, you know the rest.
00:00:28 <Sgeo_> 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 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
00:00:29 <ais523> `whoami
00:00:34 <HackEgo> No output.
00:00:38 <ais523> that's... odd
00:00:40 <ais523> `run whoami
00:00:41 <Sgeo_> So better just to force everyone to do it one way to..
00:00:41 <HackEgo> No output.
00:00:44 * Sgeo_ growls
00:00:50 <alise> `quote
00:00:52 <HackEgo> 115|<coppro> hmm... does anyone know a nonsense game designed for the mentally handicapped involving yelling
00:00:58 <ais523> clearly, we need to name a user "No output." just to screw with people
00:01:04 <alise> `quote
00:01:05 <HackEgo> 58|<mycroftiv> [...] sometimes i cant get out of bed becasue the geometry of the sheet tangle is too fascinating from a topological perspective
00:01:11 <alise> i miss mycroftiv
00:01:13 <alise> he was a lunatic
00:01:25 <Sgeo_> was?
00:01:26 <alise> `quote
00:01:27 <HackEgo> 25|`quote
00:01:29 <alise> Sgeo_: well, is.
00:01:32 <Sgeo_> Ok
00:01:46 <AnMaster> can we stop the spam?
00:01:53 <alise> `quote
00:01:54 <alise> AnMaster: no.
00:01:54 <HackEgo> 16|<Madelon> 11 holes for me :D
00:01:59 <alise> o_O
00:02:00 <alise> `quote
00:02:02 <HackEgo> 102|<Madelon> I want to read about Paris in the period 1900-1914 <Madelon> not about the sexual preferences of a bunch of writers >.>
00:02:06 <AnMaster> I guess not
00:02:08 <alise> `quote
00:02:10 <HackEgo> 132|<dtsund> 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 <alise> if anyone says anything of interest i'll stop
00:02:15 <alise> `quote
00:02:16 <AnMaster> just go fuck the bot in /msg
00:02:16 <HackEgo> 66|<Aftran> It looks like my hairs are too fat. Can you help me split them?
00:02:17 <AnMaster> Gregor, ^
00:02:18 <AnMaster> Gregor, ^
00:02:21 <alise> botsex
00:02:23 <alise> `quote
00:02:25 <AnMaster> Gregor, ehird is spamming with the bot agian
00:02:25 <HackEgo> 18|<fungot> GregorR-L: i bet only you can prevent forest fires. basically, you know.
00:02:26 <AnMaster> again*
00:02:32 <alise> no he isn't, ehird isn't even in here
00:02:34 <Gregor> AnMaster: I can see that.
00:02:37 <alise> & besides nobody is saying anything of interest
00:02:42 <alise> so nyah
00:02:44 <AnMaster> Gregor, make it ignore him or something for a while
00:02:55 <Gregor> Can't.
00:02:56 <ais523> grr, I hate channel politics
00:03:01 <AnMaster> Gregor, why not?
00:03:08 <AnMaster> Gregor, tell him to use /msg then
00:03:17 <Sgeo_> Vote for ais523 for #esoteric president!
00:03:19 <Gregor> alise: use /msg then
00:03:23 <alise> Gregor: no u
00:03:30 <AnMaster> Gregor, you could do it with iptables anyway, deep packet inspection to discard packages from him ;P
00:03:36 <alise> `quote
00:03:37 <HackEgo> 99|<coppro> things are more awesome when written by someone in here
00:03:44 <AnMaster> Gregor, he refuses to?
00:03:48 * Sgeo_ may end up slapping alise
00:03:52 <ais523> alise: that's one of the most ridiculous ways to ignore people on IRC I've ever heard
00:03:56 <ais523> *AnMaster:
00:04:02 <AnMaster> ais523, ?
00:04:09 <AnMaster> ais523, what is?
00:04:14 <ais523> deep packet inspection
00:04:18 <AnMaster> ais523, oh yes hah
00:04:24 <ais523> hmm, do you only have three lines of memory even for your own comments?
00:04:26 <alise> `quote
00:04:26 <Gregor> Deep ... DEEP packet inspection.
00:04:28 <HackEgo> 108|<Warrigal> It's not incest if you're third cousins!
00:04:34 <Sgeo_> ais523, you addressed alise at first
00:04:43 <pikhq> Gregor: iptables is capable of some pretty damned deep packet inspection.
00:04:47 <ais523> Sgeo_: yep, then corrected
00:04:55 <pikhq> And its replacement should be more-so.
00:04:56 <ais523> I thought everyone could do IRC corrections in their head nowadays
00:04:59 <ais523> apart from possibly newbies
00:05:08 <Gregor> Mmm yeah ... I love that DEEP packet inspection. So deeeeep ...
00:05:21 <AnMaster> ais523, I can do it. Just that I thought it was about me having ehird on /ignore
00:05:26 <AnMaster> which is currently the case
00:05:34 <ais523> AnMaster: but it wasn't him talking, it was me
00:05:42 <ais523> or do you have lines that nickping him/her on ignore too?
00:05:51 <AnMaster> ais523, no but that is a good idea
00:05:57 <alise> Hey guys did I mention I'm ignoring alise
00:06:05 <alise> stop pointing it out you dumbass
00:06:07 <AnMaster> ais523, I didn't see the * however
00:06:07 <alise> it's just irritating
00:06:17 <AnMaster> ais523, I use s/// or put the * after generally
00:06:25 <AnMaster> night
00:06:26 <ais523> umm, putting the * after makes it harder to see
00:06:32 <ais523> it's easy enough to see if a comment starts with a *
00:06:37 <ais523> and it makes little sence out of context otherwise
00:06:39 <ais523> *sense
00:06:51 <lament> *
00:06:53 <ais523> 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 <alise> it's a swedishism
00:07:01 <alise> like bork bork bork
00:07:11 <ais523> alise: that's a fake swedishism
00:07:12 <alise> that's postfix too
00:07:15 <alise> ais523: shut up
00:07:52 <alise> 3 weeks HackBot <Guest31015> run chmod 777 Guest_hacked
00:07:53 <alise> 3 weeks HackBot <Guest31015> run printf "#!/bin/sh \n echo Guest Hacked " > Guest_hacked
00:07:55 <alise> That is some pretty major hacking
00:08:24 <ais523> wait, in that order?
00:08:42 <alise> no, opposite
00:08:51 <alise> 5 weeks HackBot <MissPiggy> touch me
00:08:51 <ais523> ah, ok
00:08:53 <alise> >_<
00:08:55 <ais523> still, that isn't really hacking
00:09:04 <ais523> that's like people who edit wikis and claim it's hacking
00:09:20 <alise> PRETTY MAJOR HACKING I THINK YOU'LL FIND
00:09:40 <alise> <alise> addquote <scarf> and an AMICED literal would presumably /add/ info to the source <scarf> whatever info gets added, that's the value that the AMICED doesn't contain <scarf> 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 <ais523> this is why I like new-tab opening at the end, it means I read breadth-first rather than depth first
00:11:11 <ais523> hey, maybe this is how I manage to escape TV Tropes
00:11:54 <alise> ais523: unfortunately, that impedes actual navigational use of tabs
00:12:13 <alise> (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 <alise> )
00:12:26 <ais523> hmm, I use new-window for that
00:12:32 <ais523> tabs are just a todo list of things to read
00:13:23 <ais523> 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 <ais523> so you can go both depth-first and breadth-first
00:14:23 <pikhq> I use buffers and don't care about the order.
00:14:41 <pikhq> I think internally I've got some sort of data structure assigning order to it in my head?
00:15:03 <alise> "In your head" is usually a bad sign; your computer could probably do that for you.
00:15:55 <pikhq> alise: You mean my computer can account for my random whims?
00:15:55 <coppro> Hmm... I can't even remember what I was thinking of when I wrote 115
00:16:22 <ais523> coppro: obviously, or you wouldn't have had to ask
00:16:24 <pikhq> I think half the order is "interest".
00:16:36 <alise> pikhq: Well, no.
00:16:39 <alise> I said "probably".
00:16:43 <alise> coppro: 115 what?
00:16:46 <ais523> alise: the quote earlier on
00:16:52 <alise> `quote 115
00:16:53 <HackEgo> 115|<coppro> hmm... does anyone know a nonsense game designed for the mentally handicapped involving yelling
00:16:58 <alise> coppro: it was some pun
00:17:14 <coppro> that sounds likely
00:17:22 <alise> like if you pronounced it out it sounded like that
00:17:23 <alise> or something
00:17:29 <alise> grep for it in your logs or whatever
00:18:26 <coppro> I have logs?
00:19:28 * Sgeo_ wonders if he can use ANGEL on Android
00:19:48 <alise> 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 <alise> robably talk too fast and mumble too much for this to work well.
00:19:57 <alise> ANGEL?
00:20:18 <alise> [[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 <alise> 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 <alise> which you want to do, if you want to put music on it
00:22:04 <Sgeo_> alise, school website
00:22:15 <alise> Sgeo_: does it work in webkit?
00:22:17 <alise> if so, probably yes.
00:22:19 <alise> (try chrome)
00:22:26 <Sgeo_> alise, it's not officially supported
00:22:33 <alise> Does it work?
00:22:35 <Sgeo_> It works well enough for most things, but not everything
00:23:56 <alise> Is that okay?
00:24:00 <alise> If so, it will probably work on Android.
00:24:13 <alise> Besides, you don't even have iPhone as an option: it's AT&T, yes, but it's also contract.
00:24:19 <ais523> why would music take up that much space?
00:24:22 <alise> And the contractless iPhone 3G S is ~$700.
00:24:27 <alise> ais523: Uh... it does.
00:24:33 <ais523> I'm pretty sure you can fit MIDI files on floppies
00:24:35 <alise> Or is this a shitty "LOL MIDI" leadup?
00:24:38 <ais523> yep
00:24:40 <alise> How did I know.
00:24:45 <Sgeo_> Hey, I like MIDIs!
00:24:59 <ais523> I think the problem is that MIDIs are /good enough/
00:25:00 <Sgeo_> MIDIs have a strong connection with the shitty 3d games I like!
00:25:19 <ais523> although I normally compile them into .ogg files on this computer, so they take less CPU to play
00:25:36 <Sgeo_> [well, actually, outside of a few MIDIs from AW, it's mostly a 2d thing that I get MIDIs from]
00:25:39 <ais523> really, we should have a format along the lines of .s3m
00:25:46 <ais523> or whatever it's called
00:26:05 <ais523> 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 <Sgeo_> :D
00:28:26 <Sgeo_> [Well, pending a decent Android .ppt viewer]
00:29:00 <ais523> heh, there isn't even a decent Windows .ppt viewer
00:29:56 <ais523> powerpoint is arguably the worst of the major Office apps
00:30:45 <pikhq> They're all pretty bad though.
00:31:14 <ais523> yep, Excel is the best
00:31:19 <pikhq> Though at least Microsoft has finally gotten at least a *bit* of a clue about how to serialise things.
00:31:33 <ais523> 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 <pikhq> They used to just write a massive chunk of memory to file.
00:32:10 <pikhq> The registry still does this.
00:32:40 <alise> Sgeo_: you could download the free ones from elsewhere i bet
00:32:43 <pikhq> A registry file sometimes includes random chunks of the actual program.
00:33:03 <Sgeo_> alise, did you get the emulator working?
00:33:12 <alise> Sgeo_: I actually just resumed my java download now...
00:35:06 <alise> The doubt within quantifiers.
00:35:46 <alise> Sgeo_: apparently foxit have been working on an android pdf reader
00:35:48 <alise> also pdfmenot.com
00:36:27 <alise> oh pdfmenot is now google docs viewer
00:36:29 <alise> shorter url though
00:37:11 <alise> Sgeo_: http://www.dataviz.com/products/documentstogo/android/ does full, proper pdf rendering
00:37:16 * Sgeo_ tries AppBrain
00:37:19 <alise> $19.99 tho
00:37:40 <Sgeo_> http://www.androidzoom.com/android_applications/productivity/beamreader-pdf-viewer_bfbo.html looks good
00:37:44 <alise> (oh foxit for android died)
00:37:56 <alise> 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 <alise> (20 dollars minus one cent)
00:38:15 <alise> like with antialiasing unlike that beamreader
00:40:13 <alise> 16% [1 sun-java6-bin 7749120/27.4MB 28%] 188kB/s 3min 24s
00:40:16 <alise> on mobile internet
00:40:18 <Sgeo_> Pressing Tab doesn't switch between fields
00:40:20 <alise> this is a momentous day for humanity, folks
00:40:28 <alise> Sgeo_: quicker to touch
00:40:31 <alise> surely
00:40:34 <ais523> alise: what, downloading Java?
00:40:36 <gm|lap> java serialised classes are pretty hardcore
00:40:42 <alise> ais523: no, the speed over totally wireless internet
00:40:44 <Sgeo_> alise, when I'm in the emulator, it's quicker to press Tab
00:40:46 <alise> gm|lap: java anything is not hardcore.
00:40:48 <alise> Sgeo_: well, true
00:40:56 <gm|lap> and from my experience harder to parse than class files
00:41:40 <gm|lap> 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 <ais523> incidentally, what happens if you serialise a Class object?
00:42:02 <gm|lap> not sure, idunno if it implements Serializable
00:42:04 <ais523> probably nothing particularly interesting
00:42:22 <ais523> gm|lap: gah, for a moment I forgot about Java preventing you doing insane things
00:42:26 <Sgeo_> Stupid 404!
00:42:41 * Sgeo_ wonders if Google removed the AppBrain app from the Marketplace
00:42:50 <Sgeo_> Or if the Marketplace detects that I'm trying to cheat it
00:42:52 <ais523> which reminds me, why does no "Java-like OO" language allow you to mark methods abstract but give an implementation anyway?
00:43:08 <ais523> it would make it a lot clearer what methods could be replaced entirely, and which had to be wrapped
00:43:13 <gm|lap> public final class Class<T>
00:43:13 <gm|lap> extends Object
00:43:14 <gm|lap> implements Serializable, GenericDeclaration, Type, AnnotatedElement
00:43:24 <ais523> hmm, is serialisable
00:43:51 <gm|lap> it probably gives you information on the class, but that's about it
00:44:25 <gm|lap> i once made a minecraft map loader in lua
00:44:39 <gm|lap> slow and not very faithful to the spec but it worked
00:44:57 <gm|lap> although i think Notch has decided to use a simpler format
00:45:17 <alise> Sgeo_: the marketplace is not required
00:45:20 <alise> you can install ipk files too
00:45:24 <alise> or are they some other extension i forget
00:45:29 <alise> it's in the emulator website docs
00:45:34 <Sgeo_> alise, apk
00:45:36 <gm|lap> http://java.sun.com/javase/6/docs/platform/serialization/spec/protocol.html
00:45:55 <Sgeo_> 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 <Sgeo_> I installed an alternative Market thing, but I want the real one on here
00:46:25 <gm|lap> it's a fairly well packed format
00:56:45 -!- coppro has quit (Ping timeout: 245 seconds).
00:56:52 <Sgeo_> To have an Internet connection whereever I am
00:56:58 * Sgeo_ fantasizes
01:04:44 <alise> Sgeo_: It's awesome.
01:08:04 <alise> You can IRC from ANYWHERE
01:08:04 <alise> :|
01:08:04 <alise> Nooo, I just ran out of mobile broadband
01:08:24 <ais523> alise: does it charge by the byte?
01:08:31 <ais523> if so, how come you're still talking here?
01:09:28 <ais523> hmm, maybe alise isn't
01:11:03 <pikhq> So, I still haven't a clue why this segfaults.
01:11:19 <pikhq> Heck, I haven't a clue *how* this segfaults.
01:11:20 <alise> Sgeo_: ping
01:11:34 <ais523> alise: poing
01:11:52 <ais523> 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 <Sgeo_> pong
01:13:11 <Sgeo_> DAMMIT
01:13:36 <Sgeo_> :(
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 <Sgeo_> 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 <pikhq> Finally, running mycology.
01:30:16 <pikhq> BAD: BAD: \ doesn't swap
01:30:19 <pikhq> This confuses me.
01:30:33 <pikhq> ... Because \ swaps.
01:31:18 <pikhq> Ah. Comment weirdness.
01:32:17 <pikhq> "// \ " apparently comments out the next line.
01:32:26 <pikhq> Somehow.
01:35:54 <pikhq> And now, mycology.b98 executes, outputs no BAD lines, then segfaults.
01:37:32 <pikhq> I get 2263 lines of output.
01:38:54 <pikhq> v#-5 gv#-20-30pGOOD: p modifies space
01:39:03 <pikhq> Final line before segfaulting.
01:39:50 <pikhq> $1 = {bufsz = 1024, bufused = 18446744073709549303, buf = 0x1000000607010 <Address 0x1000000607010 out of bounds>}
01:39:59 <pikhq> Dear me. That seems quite wrong.
01:40:22 <pikhq> Gregor: Any idea what could cause bufused > bufsz?
01:40:47 <Gregor> pikhq: Something going horribly wrong? :P. Adding to the buffer without EXPANDing it first?
01:41:39 <pikhq> Gregor: Only added to with PUSH. Which checks for that.
01:41:54 <Gregor> PUSH should just be WRITE_BUFFER(..., 1, ...) :P
01:42:12 <pikhq> ... Shush you.
01:45:22 <pikhq> Same behavior. Hooray.
01:46:05 <Gregor> Show us the codezes.
01:46:26 <pikhq> Welp, that's fun. I was stepping below the array.
01:46:40 <Gregor> Ohhhhkidokie.
01:47:11 <pikhq> In spite of all array indexing being modular arithmetic...
01:47:35 <Gregor> Yessss ... array indexing in crazy-land.
01:47:51 <pikhq> Perhaps my indexes should be unsigned. :P
01:47:55 <pikhq> Yup, that fixes it.
01:48:11 <pikhq> And now I get errorness.
01:48:16 <pikhq> GOOD: p modifies space
01:48:17 <pikhq> BAD: p doesn't modify space%
01:48:27 <pikhq> Which is it, mycology?
01:49:51 <Gregor> Are "space" and "space%" not the same?
01:50:28 <pikhq> % is my terminal showing the lack of newline before EOF.
01:50:37 <pikhq> Erm.
01:50:38 <pikhq> My shell.
01:50:43 <Gregor> Ah :P
01:50:44 <pikhq> It was also reversed.
01:53:13 <pikhq> Deewiant: So, any idea how p can both modify and not modify space? :P
01:53:25 <pikhq> I appear to be taking both branches somehow. XD
01:54:37 <Gregor> AnMaster: You should be able to help pikhq here, right?
01:55:24 <pikhq> Gregor: Deewiant wrote Mycology. I presume he could help.
01:55:39 <Gregor> Ah, didn't know the author was also an #esoteric'er.
01:56:30 <pikhq> 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 <pikhq> Backtrace? Check.
02:42:32 * Sgeo_ should learn zippers
02:46:19 -!- Asztal has quit (Ping timeout: 276 seconds).
02:46:48 <pikhq> 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 <pikhq> 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 <Sgeo_> Will anyone kill me if I start programming in Scala?
04:55:48 -!- Oranjer has left (?).
04:57:30 <pikhq> No.
05:13:15 -!- coppro has joined.
05:15:54 <Sgeo_> <paulp> I think people have fit full working world taking over AI into 6K. We can fit "x => x + 1"
05:16:20 <Sgeo_> [that was after <paulp> ah, lightweight anonymous functions. http://pastie.org/915119 ]
05:30:47 <Sgeo_> Huh. Scala has mutable and immutable variables
06:22:04 <augur> http://images.4chan.org/co/src/1271047978643.png
06:22:47 -!- oerjan has joined.
06:23:00 <coppro> Sgeo_: so does C++. woop de doo
06:24:12 <coppro> augur: epic
06:24:16 <augur> :)
06:26:29 -!- adu has quit (Quit: adu).
06:28:30 -!- ellisonch has left (?).
06:36:12 <pikhq> coppro: C++ has many sorts of mutability and immutability.
06:36:29 <pikhq> Just like everything else.
06:36:30 <pikhq> :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 <Deewiant> 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 <oerjan> 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 <Sgeo_> "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 <oerjan> 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 <pikhq> Deewiant: Which way does it wrap around?
17:38:38 <Deewiant> Across the west edge
17:39:13 <pikhq> Hrm. Not seeing that in the execution trace.
17:40:13 <Deewiant> It should do that right after it prints the "GOOD: p works" stuff
17:40:33 <pikhq> stepping: (0, 17) ; : No-op
17:40:36 <pikhq> stepping: (15, 17) +; +: 0 0 resulting in 0
17:40:49 <pikhq> ... That... Is an odd place to step to.
17:41:05 <Deewiant> It should step to 80,17 methinks :-)
17:41:12 <pikhq> Yes.
17:47:38 -!- kar8nga has joined.
17:51:55 <pikhq> And now it goes into an infinite loop between (0, 18) and (14, 18). ... Somehow.
17:52:06 <pikhq> stepping: (0, 18) #; #: skipping char
17:52:10 <pikhq> stepping: (14, 18) ; : No-op
17:52:20 <pikhq> How does that make... Sense?
17:52:34 <pikhq> *Oh*.
17:52:51 <pikhq> Didn't fix the wrapping logic in #.
17:53:55 <pikhq> Okay then. Now passes Mycology.
17:55:01 <pikhq> In 0.005 seconds. Granted, Mycology 93, but still.
17:55:11 <pikhq> Now to randomise the directionness.
17:59:08 <pikhq> What the hell?
17:59:30 <pikhq> mycorand.bf has become... An ELF file?
18:00:43 <pikhq> I'm not going to ask how I managed to get an ELF file to the start of that.
18:02:25 <AnMaster> pikhq, still haven't got befunge 93 to work?
18:02:36 * AnMaster is somewhat surprised
18:03:16 <AnMaster> pikhq, rand() is easy though
18:03:37 <AnMaster> just srand(time(NULL)) and then rand() % 4
18:03:45 <pikhq> AnMaster: Yeah.
18:03:52 <pikhq> I just hadn't *bothered*.
18:03:59 <AnMaster> pikhq, and if your MAX_RAND isn't evenly divisable by 4 you have a strange system
18:04:18 <pikhq> By the way, it's hard to get B93 working when you're segfaulting in getc. :P
18:04:33 <AnMaster> pikhq, what was the cause of that btw?
18:04:50 <pikhq> It was actually segfaulting elsewhere and screwing with gdb.
18:05:00 <AnMaster> wow, must have been a bad segfault
18:05:10 <pikhq> Yeah.
18:05:23 <AnMaster> pikhq, what was the other segfault caused by?
18:06:23 <AnMaster> pikhq, remember to try mycouser too
18:06:27 <AnMaster> iirc that works for 93 too?
18:06:32 <AnMaster> it tests input
18:06:40 <AnMaster> and div by zero
18:06:57 <fizzie> Well, I have a *** glibc detected *** ./jitfunge: double free or corruption (out): 0x0000000001644ec0 *** which is not much nicer.
18:07:32 <AnMaster> fizzie, those tend to be annoyingly useless backtraces too
18:07:35 <AnMaster> gdb helps
18:07:38 <fizzie> It happens inside llvm's _ZN4llvm10VirtRegMap20runOnMachineFunctionERNS_15MachineFunctionE function; don't you just love C++ method name manglings?
18:07:44 <AnMaster> yeargh
18:08:04 <AnMaster> fizzie, suggestion: attach gdb, it handles unmangling too
18:08:27 <fizzie> Yes, though it doesn't help that much to catch the bug.
18:09:14 <fizzie> 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 <AnMaster> 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 <AnMaster> I'm not sure what the locking overhead would be
18:09:45 <AnMaster> but I think it may be not too bad
18:10:05 <fizzie> That could be done, yes.
18:10:09 <AnMaster> well probably do some loop heuristics on the |
18:10:15 <AnMaster> after all it could be a plain if ran once
18:10:29 <AnMaster> maybe look for hot spots by counting hits or such?
18:10:43 <AnMaster> iirc the java vm does that sort of things
18:10:55 <pikhq> AnMaster: I'm still having odd issues on mycorand.bf
18:11:02 <AnMaster> fizzie, I don't know how much of a PITA the locking would be wrt llvm
18:11:13 <AnMaster> pikhq, oh?
18:11:18 <pikhq> Among these issues are infinite loops.
18:11:30 <AnMaster> pikhq, I guess your randomness isn't random enough
18:11:44 <AnMaster> pikhq, make sure you actually map 0-3 to different directions
18:11:49 <AnMaster> and haven't typoed anything
18:12:09 <AnMaster> I remember doing % 4 and then mapping 1-4 once.
18:12:13 <AnMaster> worth checking for too
18:12:48 <pikhq> AnMaster: It's not getting in an infinite loop there.
18:12:55 <AnMaster> pikhq, oh?
18:12:59 <AnMaster> then where?
18:13:10 <AnMaster> note: I don't have mycology handy atm
18:13:17 <AnMaster> so I can't just take a line/col reference
18:13:30 * AnMaster is on a mobile device
18:13:35 <pikhq> It's somehow finding itself in the middle of a string and not in string mode.
18:13:45 <pikhq> So it reflect back and forth.
18:13:46 <AnMaster> pikhq, did you do #" ?
18:13:49 <pikhq> Erm. Reflects.
18:14:03 <AnMaster> pikhq, or perhaps like that but wrapping
18:14:04 <pikhq> I'm not sure how it even got there, actually.
18:14:12 <pikhq> It's in the *middle* of the string.
18:14:14 <AnMaster> pikhq, trace it step by step then
18:14:33 <AnMaster> pikhq, as in make it print out x,y,cell-value for each thing it executes
18:14:48 <AnMaster> then trace through that
18:15:12 <AnMaster> pikhq, useful if another (known working) interpreter can do that too. Then you can just diff the trace output
18:15:44 <AnMaster> 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 <AnMaster> -t 4 to cfunge should be perfect for this
18:16:10 <pikhq> AnMaster: I've had it stepping for a while now.
18:16:21 <AnMaster> pikhq, then surely you can see where it enters the string?
18:16:54 <AnMaster> pikhq, perhaps some wrapping issue?
18:17:16 <pikhq> AnMaster: It's hard to get this behavior.
18:17:31 <pikhq> Sometimes it just infinite loops putting out the string. Which *also* confuses me.
18:17:40 <AnMaster> pikhq, eh...
18:17:45 <AnMaster> pikhq, try valgrind
18:18:30 <AnMaster> 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 <pikhq> It also only hits "?;" twice.
18:19:34 <AnMaster> pikhq, wait what? ; ?
18:19:47 <AnMaster> isn't that befunge-98
18:20:50 <pikhq> Oh, sorry. That's from my tracing output. :P
18:21:12 <AnMaster> well, back at a computer
18:21:15 <pikhq> *Ah*. p is modifying the wrong cell.
18:21:24 <AnMaster> aha
18:21:28 <AnMaster> pikhq, how comes?
18:22:07 <pikhq> Swapped order. :P
18:22:13 <AnMaster> 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 <Deewiant> AnMaster: As I've often said, "yes s | ccbi -t" is a tracer :-P
18:22:22 <AnMaster> pikhq, yet you passed mycology?
18:22:32 <AnMaster> Deewiant, in a fairly hard to parse format
18:22:36 <AnMaster> iirc
18:22:39 <pikhq> AnMaster: Yes, mycology tested (9,9).
18:22:44 <Deewiant> It's not meant to be machine-readable.
18:22:46 <AnMaster> Deewiant, one line per executed instruction?
18:22:51 <AnMaster> Deewiant, well that is what I need it for
18:22:57 <AnMaster> to diff
18:23:06 <pikhq> And now it passes mycorand.
18:23:10 <Deewiant> You can diff other stuff too?
18:23:12 <AnMaster> Deewiant, maybe you should move that cell in mycology 93
18:23:27 <pikhq> About to test division by zero...
18:23:28 <pikhq> zsh: floating point exception ./a.out mycology/mycouser.b98
18:23:28 <pikhq> :)
18:23:29 <AnMaster> Deewiant, yes but I can't easily sed it to the same format as the trace output to compare to
18:23:41 <AnMaster> pikhq, why in zsh?
18:23:54 <pikhq> Because my shell is reporting the exception?
18:24:00 <Deewiant> 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 <AnMaster> ah right
18:24:03 <AnMaster> makes sense
18:24:16 <AnMaster> Deewiant, well, that is what you use sed for
18:24:34 <AnMaster> Deewiant, I remember adding such a trace just to track down some t bug early on
18:24:41 <AnMaster> which iirc was the one that turned out to be in ccbi
18:24:43 <Deewiant> So write the sed that changes CCBI's output to whatever you like? You only have to do it once :-P
18:25:19 <AnMaster> Deewiant, also a compact trace is more readable IMO. You can see more of the events without scrolling
18:25:43 <AnMaster> 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 <Deewiant> I typically don't want just a trace, I want to see what's going on
18:26:07 <AnMaster> some higher levels is for more detailed info, like top elements of stack and so on, that is less readable
18:26:19 <AnMaster> Deewiant, yes I often find a trace to be a good way to see what is going on
18:26:36 <Deewiant> Aren't you the one who usually uses a debugger to find C bugs? :-P
18:27:26 <AnMaster> 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 <Deewiant> So why are you so against debugging Befunge?
18:28:19 <pikhq> GOOD: 1 / 0 = 0
18:28:20 <AnMaster> Deewiant, I'm not. I'm just against a lack of easy-to-sed-on trace output
18:28:21 <pikhq> zsh: floating point exception ./a.out mycology/mycouser.b98
18:28:24 <pikhq> *sigh*
18:28:29 <AnMaster> pikhq, that is for modulo
18:28:43 <AnMaster> pikhq, also befunge93 should ask you for the value
18:28:44 <Deewiant> AnMaster: I mean, I honestly do not see a use case for tracing
18:28:46 <pikhq> Immediately before?
18:28:47 <pikhq> stepping: (44, 4) %; %: 0 1 resulting in 0
18:29:00 -!- tombom_ has joined.
18:29:07 <pikhq> 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 <Deewiant> AnMaster: I find the good debugger useful, tracing not so much.
18:29:12 <AnMaster> 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 <AnMaster> t bugs especially
18:29:34 <AnMaster> pikhq, sure it does. I remember reading that
18:29:39 <Deewiant> When there's a bug in t, just break on t and single step.
18:30:01 <AnMaster> Deewiant, well duh in t itself
18:30:06 <AnMaster> Deewiant, I meant in concurrency in general
18:30:23 <Deewiant> Anyway, the point of the CCBI debugger is to debug Befunge, not Befunge interpreters.
18:30:27 -!- augur has joined.
18:30:33 <AnMaster> Deewiant, some timing issue in string mode I remember only tracking down due to tracing
18:30:53 <AnMaster> Deewiant, well okay. I use gdb + a .gdbinit for debugging funge
18:31:08 <Deewiant> You're doing it the wrong way around :-P
18:31:24 <Deewiant> You should use gdb to debug the interpreter and the interpreter to debug Befunge :-P
18:31:31 <AnMaster> Deewiant, didn't you only support a single breakpoint or such in ccbi1?
18:31:37 <AnMaster> gdb supports a lot more :P
18:31:54 -!- tombom has quit (Ping timeout: 240 seconds).
18:32:19 <pikhq> AnMaster: Hmm. It seems that this reflects on \0.
18:32:48 <AnMaster> pikhq, hm?
18:32:50 <Deewiant> AnMaster: CCBI 2 supports more. I really only need one typically, though.
18:32:53 <AnMaster> where does \0 come into it?
18:33:04 <AnMaster> Deewiant, how many?
18:33:10 <AnMaster> (does it support now)
18:33:24 <Deewiant> AnMaster: Arbitrarily many.
18:33:30 <AnMaster> Deewiant, also using gdb is in theory faster, it uses hardware breakpoint after all ;P
18:33:43 -!- augur_ has joined.
18:33:50 <Deewiant> Actually it probably uses software breakpoints, but yeah
18:34:01 <Deewiant> I'm just not interested in my interpreter's internals when I've got buggy Befunge.
18:34:06 <pikhq> AnMaster: There's an early newline.
18:34:08 <AnMaster> Deewiant, gdb? No. I prefer hardware breakpoints when possible
18:34:13 <pikhq> The Befunge array is 0-filled.
18:34:20 -!- augur has quit (Read error: Connection reset by peer).
18:34:21 <AnMaster> what?
18:34:32 <AnMaster> pikhq, funge space is *space* filled
18:34:37 <AnMaster> not \0 filled
18:34:44 <pikhq> AnMaster: I'm describing my interpreter.
18:34:51 <AnMaster> pikhq, then you are doing it wrong
18:34:59 <AnMaster> it should be space filled
18:35:19 <Deewiant> AnMaster: So what, you monitor memory addresses?
18:35:21 <pikhq> http://catseye.tc/projects/befunge93/doc/website_befunge93.html Not in here.
18:35:23 <pikhq> :P
18:35:30 <pikhq> Nor is the "reflect on unknown" thing.
18:35:44 <Deewiant> Mycology isn't very Befunge-93.
18:36:01 <AnMaster> pikhq, a lot of things will break if you don't space fill it
18:36:23 <AnMaster> pikhq, every other interpreter I know of does it. Even for 93
18:36:26 <Deewiant> It doesn't need to be space filled, it just needs to work.
18:36:31 <AnMaster> true
18:36:37 <Deewiant> I.e. if you have something like
18:36:38 <Deewiant> > v
18:36:39 <Deewiant> @
18:36:40 <Deewiant> ^ <
18:36:44 <Deewiant> Then the v should hit the <
18:36:50 <AnMaster> Deewiant, it needs to be space in there
18:36:54 <Deewiant> No it doesn't
18:36:59 <Deewiant> The v just needs to hit the <.
18:37:00 <AnMaster> Deewiant, because otherwise g on that x,y won't work
18:37:14 <Deewiant> Well, the docs don't say that. :-P
18:37:53 <AnMaster> 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 <AnMaster> I mean explicitly for a >
18:38:26 <Deewiant> Eh? They say that g pushes the value of the char at (x,y)
18:38:35 <AnMaster> Deewiant, well then, what is the char space?
18:38:39 <AnMaster> a space!
18:38:41 <AnMaster> see
18:38:49 <Deewiant> But there is no space to the right of the @
18:39:19 <Deewiant> 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 <AnMaster> Deewiant, okay, but that will break a hell of a lot of programs
18:39:38 <AnMaster> pikhq, also a fair number of befunge93 programs depend on unknown reflecting
18:39:39 <Deewiant> I doubt many programs rely on that
18:39:48 <Deewiant> AnMaster: Do they? Don't most interpreters nop?
18:39:54 <pikhq> AnMaster: They're wrong!
18:40:00 <AnMaster> Deewiant, well I remember running into a few
18:40:07 <AnMaster> pikhq, well maybe, but that is your issue then
18:42:30 <AnMaster> 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 <oerjan> 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 <pikhq> But I'm not *doing* 98.
18:43:20 <AnMaster> pikhq, well then *shrug*
18:44:46 <AnMaster> Deewiant, have you seen http://catseye.tc/projects/bef/src/bef2c.c ?
18:44:49 <AnMaster> I'm confused now
18:45:08 <Deewiant> Yes, I've seen t hat
18:45:14 <Deewiant> What about it?
18:45:27 <AnMaster> Deewiant, optimisation? befunge? compiler?
18:45:51 <Deewiant> What about it? :-P
18:45:59 <AnMaster> Deewiant, how does it handle self modification?
18:46:06 <AnMaster> if it does then how does it optimise
18:46:21 <Deewiant> It just pretty much bundles an interpreter with the code like all Befunge compilers I know of
18:46:39 <AnMaster> what about the optimisation then
18:46:55 <Deewiant> Dunno, haven't looked into that.
18:47:55 <Deewiant> Or hmm, I'm not sure if that's the one I was thinking of.
18:48:07 <Deewiant> Well, whatever.
18:48:36 <AnMaster> pikhq, the reference befunge93 implementation:
18:48:37 <AnMaster> memset(pg, ' ', LINEWIDTH * PAGEHEIGHT);
18:48:42 <AnMaster> see http://catseye.tc/projects/bef/src/bef.c
18:48:51 <pikhq> AnMaster: Reference implementation != spec.
18:49:12 <AnMaster> pikhq, just telling you that *not* making it default to space is bloody stupid
18:49:33 <pikhq> I'm just telling you that making it default to anything is bloody stupid.
18:49:45 <pikhq> Therefore it defaults to nothing.
18:49:47 <AnMaster> default to anything?
18:50:00 <AnMaster> it is filled with random uninitialised data?
18:50:25 <pikhq> No, it's 0-filled, as are all uninitialised C globals.
18:50:26 <AnMaster> pikhq, filling it with \0 is, you see, also defaulting to something
18:50:49 <pikhq> Programs relying on any unspecified behavior will be shot.
18:51:39 <oerjan> fungestation 9000
18:51:45 <AnMaster> pikhq, what good reason do you have to *not* follow the common practise here? Are you aiming for a DS9K?
18:52:24 <pikhq> AnMaster: "Eff you, unspecified behavior."
18:52:52 <AnMaster> pikhq, I fail to see how that answers my question about your good reason
18:53:39 <pikhq> 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 <pikhq> And I care not for "what other implementations do".
18:54:17 <AnMaster> 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 <AnMaster> so you have to change it
18:54:25 <Deewiant> No he wouldn't.
18:54:41 <Deewiant> The only problematic instruction is t.
18:54:46 <AnMaster> Deewiant, yes that is the one I meant
18:54:52 <Deewiant> t is optional.
18:54:56 <AnMaster> well okay
18:54:59 <AnMaster> he could skip it
18:55:11 <oerjan> we should all sop using i
18:55:12 <pikhq> 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 <AnMaster> oerjan, ?
18:55:26 <AnMaster> oh ffs
18:55:31 <AnMaster> >_<
18:55:53 <pikhq> http://sprunge.us/SBIe
18:55:53 <Deewiant> It's pretty obvious what to do with t once you've done it "wrong", though.
18:55:56 <AnMaster> pikhq, it doesn't work as in it will cause a fork bomb the way it is defined
18:57:30 <pikhq> AnMaster: Okay then.
18:58:53 <AnMaster> Deewiant, would a to-the-letter befunge-98 spec following implementation (excluding t issues) pass mycology?
18:59:07 <Deewiant> It should.
18:59:28 <AnMaster> Deewiant, remember it is vague. I'm thinking it would hit issues on k
18:59:46 <Deewiant> Sure, it's vague, but everything non-UNDEF is IMO inferrable.
18:59:58 <AnMaster> Deewiant, not sure about the k issues
19:01:04 * AnMaster wgets that source
19:01:28 <AnMaster> pikhq, anything special to build it? just clang -o pikhq-bef pikhq-bef.c ?
19:02:12 <pikhq> AnMaster: That should do it.
19:02:12 <AnMaster> hm didn't work
19:02:21 <pikhq> It's very GCC-specific.
19:02:37 <AnMaster> pikhq-bef.c:146:23: error: cannot compile this GNU array range designator extension yet
19:02:38 <AnMaster> void *lookup[256] = {
19:02:38 <AnMaster> ^
19:02:39 <AnMaster> indeed
19:02:54 <AnMaster> -std=c99 to gcc breaks too
19:03:09 <Deewiant> Of course it does, since it uses GNU extensions.
19:03:13 <pikhq> -std=gnu99
19:03:14 <AnMaster> pikhq-bef.c:146:23: error: cannot compile this GNU array range designator extension yet
19:03:14 <AnMaster> void *lookup[256] = {
19:03:15 <AnMaster> ^pikhq-bef.c: In function ‘instrs’:
19:03:15 <AnMaster> pikhq-bef.c:183: warning: array subscript has type ‘char’
19:03:15 <AnMaster> pikhq-bef.c:371: warning: array subscript has type ‘char’
19:03:17 <AnMaster> err
19:03:24 <AnMaster> synergey fails at copy paste fail
19:03:27 <pikhq> gcc -std=gnu99
19:03:32 <AnMaster> what I meant to paste was:
19:03:35 <AnMaster> pikhq-bef.c:183: warning: array subscript has type ‘char’
19:03:35 <AnMaster> pikhq-bef.c:371: warning: array subscript has type ‘char’
19:03:35 <AnMaster> pikhq-bef.c:371: warning: array subscript has type ‘char’
19:03:37 <AnMaster> I get lots of that
19:03:56 <pikhq> AnMaster: Okay. So?
19:04:05 <AnMaster> pikhq, just thought I'd tell you
19:04:20 <pikhq> It's perfectly defined behavior, it's just very likely to be wrong in most programs.
19:06:43 <AnMaster> ./pikhq-bef-tux ~/dragon/src/own/cfunge/trunk/examples/wumpus.bf
19:06:47 <AnMaster> Segmentation fault
19:06:54 <AnMaster> pikhq, let me pastebin the program
19:07:05 <AnMaster> http://sprunge.us/LMhC
19:07:24 <AnMaster> pikhq, it is strange it segfaulted.
19:07:37 <pikhq> Yup, definitely segfaults.
19:07:44 <AnMaster> 58 is not prime.
19:07:44 <AnMaster> Segmentation fault
19:07:49 <AnMaster> from another program
19:07:55 <AnMaster> pikhq, do you grow the stack properly?
19:07:59 <AnMaster> or do you just stack overflow
19:08:10 <AnMaster> http://sprunge.us/OXfD
19:08:13 <AnMaster> is the prime program
19:08:15 <AnMaster> which also segfaults
19:08:20 <pikhq> AnMaster: The macros do in fact grow the stack.
19:08:21 <Deewiant> These programs are all on catseye.tc
19:08:33 <AnMaster> Deewiant, ah yes indeed I guess
19:08:36 <pikhq> It appears to be trying to access outside of fungespace somehow.
19:08:45 <AnMaster> Deewiant, I forgot the source so I just found it easier to pastebin them
19:08:48 <pikhq> fungespace_x = 4294967295
19:09:05 <AnMaster> pikhq, do you not check that it is in bounds? because these are classical befunge93 apps
19:09:07 <pikhq> The issue is in string mode.
19:09:12 <AnMaster> hm
19:09:30 <pikhq> String mode is *probably* supposed to wrap. :P
19:09:31 <AnMaster> pikhq, you don't handle wrapping in string mode?
19:09:37 <AnMaster> haha
19:09:41 <pikhq> I thought I did but apparently not.
19:09:42 <AnMaster> pikhq, of course it is supposed to wrap
19:09:55 <pikhq> Yes, it obviously should.
19:09:56 <pikhq> It just didn't.
19:10:11 <AnMaster> 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 <AnMaster> so probably another error in it
19:10:36 <AnMaster> Deewiant, and you should extend the 93 part of mycology ;P
19:10:58 <AnMaster> Deewiant, oh and more important: not use 9,9 for p test
19:11:05 <Deewiant> I'm not really interested in the 93 part of Mycology :-P
19:11:06 <AnMaster> use something like 8,9 or whatever
19:11:15 <AnMaster> Deewiant, the p test applies to 98 too iirc?
19:12:02 <Deewiant> Yes, but there's a later pg test that uses -3,-2
19:12:35 <AnMaster> hm wait is http://sprunge.us/jDBL befunge98? Why does does it use .bf extension
19:12:43 <AnMaster> well it is officially befunge97 but...
19:12:55 <Deewiant> Mike's programs all use .f98 IIRC.
19:13:02 <AnMaster> in any case, your interpreter crashes on http://sprunge.us/jDBL as well
19:13:10 <AnMaster> Deewiant, Mike?
19:13:11 <Deewiant> It's not official or anything, it's just a recommendation.
19:13:13 <Deewiant> AnMaster: Riley.
19:13:14 <AnMaster> Deewiant, it says "Kevin Vigor"
19:13:21 <AnMaster> not Mike Riley
19:13:21 <Deewiant> Yes...
19:13:28 <pikhq> Gah! sprunge stopped pasting!
19:13:28 <Deewiant> I just said that Mike uses .f98.
19:13:30 <AnMaster> ah
19:13:35 <AnMaster> pikhq, oh?
19:14:09 <pikhq> I can't get sprunge to hand me a URL any more.
19:14:37 <pikhq> WTH?
19:14:57 <Deewiant> There are other pastebins.
19:14:58 <AnMaster> pikhq, works for me
19:15:03 <AnMaster> I just tested
19:15:18 <pikhq> Still not working for me.
19:15:32 <pikhq> GAH WHAT THE HELL
19:15:39 <AnMaster> pikhq, no idea then. Maybe PEBKAC?
19:15:44 <pikhq> I accidentally output into befunge93.c
19:15:48 <pikhq> Thus erasing it.
19:15:54 <pikhq> What was the last paste of it? :P
19:15:59 <AnMaster> pikhq, hg revert :P
19:15:59 <Deewiant> >_<
19:16:11 <pikhq> AnMaster: Not in hg
19:16:11 <AnMaster> pikhq, and if not learn to use version control
19:16:16 <fizzie> 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 <AnMaster> pikhq, well I hope that taught you a lesson
19:16:26 <pikhq> I don't version control until there's... more than one file.
19:16:42 <AnMaster> well then you will have to find it in scrollback yourself
19:16:51 <AnMaster> shouldn't be too hard anyway
19:16:53 <Deewiant> fizzie: gnuuubl?
19:17:11 <AnMaster> pikhq, but if you promise to use a VCS then: <pikhq> http://sprunge.us/SBIe
19:17:16 <fizzie> Deewiant: An expression of despair.
19:17:22 <Deewiant> Quite.
19:17:43 <AnMaster> in what language is "gnuuubl"?
19:17:45 <fizzie> Instead of version control, you could opt for something like NILFS for /home.
19:18:07 <Deewiant> I opt for doing testing in a different directory than the source :-P
19:18:09 <AnMaster> fizzie, heh
19:18:10 <pikhq> http://sprunge.us/KKDR There you go.
19:18:10 <oerjan> it's the sound of a gnu being dragged into a pool by a crocodile. very traumatic.
19:19:16 <Deewiant> For the gnu, that is.
19:19:33 <oerjan> Quite.
19:19:39 <pikhq> pi.bf appears to segfault, but that's not B93 so I don't care. :P
19:19:49 <AnMaster> pikhq, the prime one then?
19:19:56 <AnMaster> it still segfaults
19:19:57 <pikhq> Works just fine.
19:19:57 <AnMaster> and it is 93
19:20:01 <AnMaster> pikhq, segfaults here
19:20:16 <pikhq> Backtrace?
19:20:17 <AnMaster> segfaults unless running under gdb
19:20:21 <AnMaster> WTH
19:20:30 <AnMaster> under GDB it goes negative instead
19:20:35 <AnMaster> which is even more weird
19:20:48 <pikhq> *Oh*.
19:20:54 <pikhq> Fun fact: chars are signed. :P
19:21:07 <pikhq> Well. On x86 and x86_64.
19:21:16 <pikhq> Lemme go make them unsigned.
19:21:18 <fizzie> On some compilers.
19:21:18 <AnMaster> pikhq, see: http://sprunge.us/BdIR
19:21:25 <AnMaster> pikhq, I thought you used 32-bit cells?
19:21:27 <AnMaster> in befunge
19:21:32 <fizzie> Wasn't that what the pasted warning was about anyhow?
19:21:46 <pikhq> AnMaster: No, you use "a stack".
19:22:08 <AnMaster> pikhq, you can't really since you can't reach down deep in the stack
19:22:20 <AnMaster> pikhq, oh also: it includes controlcodes
19:22:25 <AnMaster> that seems to have been lost in the paste
19:22:29 <AnMaster> I see:
19:22:36 <AnMaster> 17 is a prime.[0004]
19:23:39 <pikhq> http://sprunge.us/bFiZ And now?
19:24:27 <AnMaster> pikhq, works in gdb. Still segfaults outside gdb
19:24:45 <pikhq> Might I suggest getting a core dump?
19:25:23 <AnMaster> pikhq, I'm doing that already
19:25:27 <AnMaster> before you mentioned it
19:25:37 <pikhq> Then where's it segfaulting?
19:25:48 <AnMaster> ore was generated by `./pikhq-bef-tux /home/arvid/dragon/src/own/cfunge/trunk/examples/prime.bf'.
19:25:48 <AnMaster> Program terminated with signal 11, Segmentation fault.
19:25:48 <AnMaster> #0 0x0000000000401889 in ?? ()
19:25:48 <AnMaster> (gdb) bt
19:25:48 <AnMaster> #0 0x0000000000401889 in ?? ()
19:25:53 <AnMaster> pikhq, the stack is smashed
19:25:54 <pikhq> -g
19:25:59 <pikhq> Oh dear.
19:26:00 <AnMaster> pikhq, I compiled with g
19:26:07 <AnMaster> I'm not *that* stupid
19:26:11 <pikhq> Well, I got nothing.
19:26:14 <AnMaster> pikhq, -ggdb3 -O0 in fact
19:26:22 <pikhq> Except "works for me"
19:26:25 <AnMaster> $ gcc --version
19:26:25 <AnMaster> gcc (GCC) 4.4.3 20100316 (prerelease)
19:26:29 <AnMaster> that is what arch uses
19:26:32 <AnMaster> let me try on ubuntu
19:26:37 <pikhq> gcc (Gentoo 4.4.3 p1.0) 4.4.3
19:27:03 <Deewiant> 401889 looks like a reasonable address.
19:27:20 <AnMaster> segfaults on ubuntu too
19:27:29 <AnMaster> $ gcc --version
19:27:29 <AnMaster> gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3
19:27:33 <fizzie> 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 <AnMaster> that is jaunty
19:27:51 <AnMaster> Deewiant, the next frame does not:
19:27:56 <AnMaster> #1 0x0000000000000006 in ?? ()
19:27:56 <AnMaster> #2 0x003b000000000002 in ?? ()
19:27:56 <AnMaster> #3 0x0000000000000802 in ?? ()
19:28:02 <Deewiant> fizzie: What /are/ you doing in there? :-P
19:28:03 <AnMaster> 0x0000000000000006?
19:28:06 <AnMaster> *unlikely*
19:28:17 <Deewiant> Impossible, in user mode.
19:28:25 <AnMaster> Deewiant, actually not.
19:28:46 <AnMaster> Deewiant, but unless you tune a sysctl nowdays it is forbidden for normal user space
19:29:10 <AnMaster> pikhq, anyway I can send you the binary and the core dump if that helpos
19:29:11 <AnMaster> helps*
19:29:12 <fizzie> 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 <Deewiant> Well yes, I meant under a typical OS.
19:29:27 <pikhq> AnMaster: Doubtful.
19:29:38 <AnMaster> pikhq, anyway, let me try valgrind
19:29:41 <oerjan> fizzie: it's a rotation
19:29:44 <pikhq> A stack smash isn't all that helpful of a core dump. :P
19:29:47 <AnMaster> funny thing
19:29:50 <AnMaster> it works under valgrind
19:29:55 <AnMaster> BUT
19:29:59 <AnMaster> it gives lots of invalid reads
19:30:04 <pikhq> Screams bloody murder?
19:30:22 <AnMaster> pikhq, http://sprunge.us/FbSN
19:30:50 <pikhq> Deewiant: Being able to map 0x0 is a simple system configuration on Linux.
19:31:03 <AnMaster> pikhq, notice some corruption in output for some primes
19:31:07 <AnMaster> like �
19:31:27 <pikhq> AnMaster: Hmm.
19:31:38 <oerjan> Deewiant: i recall reading about a recent exploit based on mapping it
19:31:39 <AnMaster> pikhq, anyway, can you reproduce those valgrind errors?
19:31:50 <fizzie> 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 <Deewiant> pikhq: Under a typical and typically configured OS >_<
19:32:20 <pikhq> AnMaster: Yes.
19:32:34 <pikhq> Deewiant: It used to be the default, actually. :P
19:32:35 <AnMaster> pikhq, then I find it not unlikely that fixing those will fix the bug
19:32:37 <oerjan> fizzie: if you are populating V and (X,Y) in the wrong order, you would get that
19:32:53 <Deewiant> pikhq: How recently?
19:32:57 <AnMaster> ouch that was awkwardly wored
19:33:00 <AnMaster> worded*
19:33:16 <pikhq> Deewiant: 2.6.something
19:33:17 <AnMaster> Deewiant, until quite recently
19:33:22 <AnMaster> Deewiant, 2.6.20 or something like that?
19:33:27 <AnMaster> 2.6.22 perhaps
19:33:36 <AnMaster> perhaps a bit earlier
19:33:39 <Deewiant> O_o
19:33:42 <pikhq> Though you'd have to explicitly ask for mmap to 0 for that to happen.
19:33:49 <AnMaster> well yes
19:34:14 <AnMaster> I always have to change the sysctl when I run sheepshaver
19:34:49 <pikhq> putchar(BUFFER_TOP(stack)); <-- ... *This* is a source of an invalid read. WTH?
19:34:50 <Deewiant> Sheepshaver?
19:34:53 <fizzie> 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 <AnMaster> Deewiant, macos classic ppc emulator
19:35:29 <AnMaster> Deewiant, I'm sure I mentioned that when I was working on porting ick to it
19:35:40 <AnMaster> something that mostly worked apart from some compiler bugs in MPW
19:35:46 <Deewiant> I'm sure I've completely forgotten.
19:36:06 <pikhq> *Oh*.
19:36:08 <Deewiant> fizzie: How do you identify JITable regions in Befunge?
19:36:21 <pikhq> AnMaster: I think this program relies on 0 being gotten when you pop from an empty stack.
19:36:37 <AnMaster> pikhq, well duh
19:36:40 <pikhq> I'll redo my stack code a bit after I get some food.
19:36:42 <Deewiant> pikhq: That it is in the docs.
19:36:44 <AnMaster> pikhq, that is how it should work
19:36:47 <Deewiant> pikhq: -it
19:36:56 <pikhq> Deewiant: I just forgot about it.
19:37:24 <AnMaster> Deewiant, you should add a warning about b93 parts being incomplete ;P
19:37:40 <pikhq> AnMaster: Already is one.
19:37:49 <AnMaster> pikhq, oh? okay
19:38:04 <fizzie> 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 <Deewiant> Hmm.
19:40:12 <AnMaster> bbl getting some food too
19:40:31 <fizzie> I could do some sort of "interpret without tracing unless this bit of code sees multiple executions" heuristics too, I guess.
19:41:29 <Deewiant> But where does a trace begin/end?
19:41:50 <pikhq> Deewiant: Presumably on branches.
19:44:24 <fizzie> 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 <Deewiant> Something being based on both coordinates and value, I guess?
19:45:33 <fizzie> "something" meaning "a cell registered as being part of an existing trace".
19:46:46 <Deewiant> And "cell" including both coordinates and value, I guess? :-P
19:47:58 <fizzie> 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 <pikhq> Wouldn't that break on p?
19:49:03 <Deewiant> Doesn't that mean that self-modifying code breaks?
19:49:22 <fizzie> 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 <pikhq> Mmkay.
19:50:18 <fizzie> 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 <pikhq> Basically "p is slow mode".
19:50:45 <fizzie> 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 <pikhq> From the sounds of things your JIT will only be slow when you're modifying something that will then be executed.
19:51:29 <pikhq> Otherwise, you're invalidating 0 traces.
19:51:45 <pikhq> Which will then be executed 0 more times.
19:52:00 <fizzie> Yes, though there's still some overhead in checking for trace-ownership.
19:52:08 <pikhq> True.
19:53:05 <fizzie> 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 <Deewiant> Spot.*
19:53:47 <fizzie> Yes.
19:54:14 <fizzie> This is also a bit hypothetical description since things are more or less broken at the moment.
19:54:19 <Deewiant> heh.
19:58:04 <fizzie> 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 <pikhq> Hmm. Are there any notable *Unefunge* 98 interpreters? :P
20:00:33 <fizzie> 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 <AnMaster> back
20:04:28 <fizzie> TRACE: executing trace 0x1e312f0, in entry 2, stack: 2 2 0
20:04:29 <fizzie> jitfunge llvm runtime: impossible
20:04:29 <fizzie> Segmentation fault (core dumped)
20:04:31 <fizzie> Still not quite it. :p
20:04:34 <fizzie> Oh well.
20:05:11 <oerjan> hm, what if a trace is invalidated _while it is running_?
20:06:20 <fizzie> 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 <AnMaster> pikhq, did you fix your stack?
20:06:41 <oerjan> ah
20:07:00 <AnMaster> <fizzie> jitfunge llvm runtime: impossible <-- I disagree
20:07:09 <AnMaster> it *is* possible
20:07:12 <AnMaster> just needs a lot of work
20:07:24 <AnMaster> ;P
20:07:29 <fizzie> oerjan: That was also a bit hypothetical, I'm afraid:
20:07:30 <fizzie> fis@eris:~/src/jitfunge/src$ grep -i suicide *.cc
20:07:31 <fizzie> interp.cc: /*! \todo handle: put on current trace - suicide */
20:07:43 <oerjan> heh
20:08:06 <fizzie> It *was* handled properly in some earlier iteration of jitfunge codebase, though.
20:08:12 <fizzie> Except for those cases where it was buggy.
20:08:31 <AnMaster> 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 <AnMaster> 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 <fizzie> 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 <pikhq> AnMaster: Not yet.
20:10:54 <pikhq> AnMaster: I'll probably go ahead and make it a little cleaner-looking.
20:11:26 <AnMaster> pikhq, that may take some time
20:11:31 <Deewiant> fizzie: How's Mycology with your current iteration
20:11:36 <pikhq> AnMaster: Eh.
20:11:43 <AnMaster> (sorry)
20:11:47 <AnMaster> (no offence meant)
20:11:56 <AnMaster> (just the chance for that joke was too good to miss)
20:12:07 <AnMaster> pikhq, oh also I think crashing on an invalid program is a bad idea.
20:12:12 <AnMaster> Just my two euros
20:12:51 <fizzie> Deewiant: I haven't been morbid enough to try.
20:12:57 <Deewiant> :-)
20:13:53 <fizzie> Deewiant:
20:14:00 <fizzie> 0 1 2 3 4 5 6 7
20:14:00 <fizzie> GOOD: , works
20:14:01 <fizzie> G
20:14:04 <fizzie> codegen.cc:275: [compile] not handled: 46
20:14:05 <AnMaster> G?
20:14:16 <pikhq> AnMaster: Hah.
20:14:20 <AnMaster> fizzie, what is 46?
20:14:23 <fizzie> The llvm codegen is really rudimentary.
20:14:24 <AnMaster> pikhq, about?
20:14:30 <AnMaster> pikhq, the mangled idiom?
20:14:34 <pikhq> AnMaster: Crashing on invalid programs.
20:14:41 <fizzie> AnMaster: Ascii 46, so it's "."
20:14:57 <AnMaster> pikhq, The point is there is no such thing as invalid befunge code to my mind
20:15:05 <AnMaster> of course to 93 devs it might appear different
20:15:22 <AnMaster> fizzie, but... how did it output the numbers then?
20:15:42 <Deewiant> fizzie: You're off to a good start!
20:15:43 <fizzie> AnMaster: Those were probably output by the tracing interp. As was the "G" there.
20:15:49 <AnMaster> fizzie, ouch
20:16:09 <AnMaster> fizzie, how stable is the tracing interpreter?
20:16:12 <fizzie> 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 <AnMaster> fizzie, so you can't handle >:#,_ yet?
20:16:49 <fizzie> Sure I can, as long as there is nothing in the trace that it can't compile.
20:16:53 <fizzie> It runs hello-world just fine.
20:16:58 <AnMaster> haha
20:17:00 <fizzie> A bit noisily, perhaps, but otherwise fine.
20:17:28 <AnMaster> 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 <AnMaster> fizzie, I don't think mycology expects , to work once and then stop working the next time
20:18:29 <Deewiant> The readme states that things are generally assumed to work an arbitrary number of times if they worked once :-)
20:18:40 <AnMaster> Deewiant, how can you say "GOOD: , works"?
20:18:41 <fizzie> 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 <Deewiant> AnMaster: How?
20:18:54 <Deewiant> AnMaster: Just so. :-P
20:18:55 <AnMaster> Deewiant, after all you can't see that it was actually output
20:19:18 <AnMaster> Deewiant, well, it could have been faked, Hard coded to always output those letters in a cycle forever ;P
20:19:18 <Deewiant> If it wasn't output, it's not GOOD, now is it.
20:19:39 <Deewiant> Sure, but then it wouldn't output the other things correctly.
20:19:49 <AnMaster> true
20:19:50 <fizzie> http://pastebin.com/vPefjzpw -- jitfunge running hello.b98.
20:20:18 <AnMaster> 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 <Deewiant> AnMaster: Mycology isn't meant to be a Turing test...
20:21:34 <Deewiant> 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 <AnMaster> Deewiant, heh
20:22:35 <AnMaster> Deewiant, is mycology re-entrant?
20:23:09 <Deewiant> No, (0,0) and thereabouts can have various values after an execution
20:23:43 <fizzie> 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 <AnMaster> Deewiant, hm
20:24:03 <fizzie> 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 <AnMaster> Deewiant, it would be the perfect way to test jitfunge though in both modes
20:24:38 <AnMaster> fizzie, how will it break it?
20:25:02 <Deewiant> AnMaster: Just use a loader, hacking the JIT so it doesn't drop traces that were overwritten by an i :-P
20:25:53 <fizzie> 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 <Deewiant> It jumps directly, since that's easier to write. (Just subtract the x pos from the target pos)
20:28:47 <fizzie> 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 <AnMaster> fizzie, try gdb? But that may not help with JITing
20:37:18 <fizzie> 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 <fizzie> /*! \todo recompile if next->compiled */
20:39:04 <fizzie> Well, yes, I don't think that actually invalidates the compiled code.
20:39:12 <Deewiant> :-)
20:39:15 <fizzie> Obviously I need a DWIM-capable compiler.
20:39:41 <AnMaster> fizzie, sin
20:39:43 <AnMaster> err
20:39:45 <AnMaster> isn't*
20:39:48 <AnMaster> that what you are writing
20:39:51 <AnMaster> fizzie, no?
20:42:47 <pikhq> Segfaulting now. HOORAY.
20:44:51 <pikhq> stack_push 9, -1876564017 on stack
20:44:54 <pikhq> The hell?
20:45:44 <pikhq> That's... The first stack access...
20:46:15 <pikhq> Oh, wait. stack_init is not returning a stack. XD
20:47:08 <oerjan> shocking!
20:47:44 <pikhq> And the sanity check... Outputs "0 0 1 2 3 4 5 6 7 8 ".
20:48:05 <Deewiant> That's a bit insane.
20:48:10 <oerjan> i tak... yeah
20:48:26 <pikhq> Yes, it is.
20:50:06 <pikhq> Just off by one.
20:51:36 <pikhq> And now mycology fails. :(
20:53:34 <oerjan> so from today's experiences we can deduce that befunge interpreters generally develop _backwards_ in time
20:54:04 <pikhq> bufsz is 0... How is bufsz 0?
20:54:09 <oerjan> (generalized from at least two examples, here)
20:54:12 <AnMaster> pikhq, because it is zero?
20:54:31 <AnMaster> presumably it was set to that at some point
20:54:38 <pikhq> AnMaster: It never was.
20:54:41 <pikhq> It was initialised to 1024.
20:54:51 <pikhq> And the only thing that modifies it doubles it.
20:54:52 <AnMaster> pikhq, gdb watchpoint then
20:55:08 <oerjan> well if you double it enough times...
20:55:32 <AnMaster> <oerjan> 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 <pikhq> Yup, it's actually doubling that much.
20:57:03 <pikhq> Which scares me.
20:57:30 <AnMaster> pikhq, it is doing something wrong then
20:57:55 <oerjan> now now, don't leap to conclusions
20:57:55 <pikhq> Yes.
20:57:56 <AnMaster> pikhq, sure you didn't mix up * and ^?
20:58:06 <AnMaster> pikhq, or even * and ↑
20:58:17 <pikhq> That's better.
20:58:23 <AnMaster> pikhq, hm?
20:58:36 <pikhq> AnMaster: Wrong test for when to resize the stack.
20:58:49 <pikhq> BAD: 0! != 1
20:58:53 <pikhq> That I hope is simple.
20:59:39 <pikhq> Okay, then. Passing Mycology again.
20:59:48 <pikhq> But not mycorand.bf
21:00:23 <AnMaster> <pikhq> BAD: 0! != 1 <-- how the?
21:00:49 <Deewiant> You're the first I know of to have triggered that one.
21:00:50 <AnMaster> pikhq, how could just fixing stack underflow cause that?
21:01:01 <AnMaster> Deewiant, why did you test it then?
21:01:05 <pikhq> AnMaster: Typo.
21:01:10 <pikhq> Deewiant: It was a typo.
21:01:27 <AnMaster> Deewiant, presumably it is a fatal error?
21:01:49 <Deewiant> AnMaster: If I tested only things that ever failed in CCBI Mycology would be less than half its current size :-P
21:01:51 <pikhq> It is.
21:02:59 <AnMaster> Deewiant, well, you seem uninterested in adding things no one fails at
21:03:03 <AnMaster> when I suggest things
21:03:36 <pikhq> And now, the prime number thing is borken.
21:03:45 <pikhq> It thinks everything is prime.
21:03:55 <AnMaster> pikhq, how the fuck
21:03:56 <Deewiant> AnMaster: In this case, since later parts of Mycology depend on !, it has to be tested.
21:04:05 <AnMaster> Deewiant, okay
21:04:05 <pikhq> AnMaster: I wish I knew.
21:04:22 <AnMaster> pikhq, do the other ones work? life.bf, wumpus and so on?
21:04:42 <Deewiant> That'd be amusing
21:04:48 <Deewiant> But unlikely
21:04:54 <AnMaster> Deewiant, what? If everything was prime? :D
21:05:10 <Deewiant> If the others worked
21:05:16 <AnMaster> heh
21:05:24 <AnMaster> if it passes mycology
21:06:46 <pikhq> That's a gigantic trace.
21:06:55 <AnMaster> pikhq, heh
21:07:33 <AnMaster> 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 <pikhq> *That's* better.
21:09:24 <AnMaster> pikhq, what caused it?
21:09:31 <pikhq> http://sprunge.us/iZVC
21:09:56 <pikhq> AnMaster: Reversed order of arguments for %.
21:10:22 <AnMaster> hah
21:10:46 <pikhq> BTW, this no longer segfaults on pi.bf
21:10:58 <pikhq> It doesn't *do* anything, but it no longer segfaults.
21:11:29 <AnMaster> pikhq, hm
21:12:50 <pikhq> Once again, though. Are there any notable Unefunge '98 programs or interpreters?
21:13:43 <AnMaster> pikhq, iirc ccbi can run it
21:14:20 <pikhq> I suspect Unefunge '98 would be much easier to compile efficiently is the thing...
21:14:32 <AnMaster> pikhq, it is still selfmodifying
21:14:38 <pikhq> Yes.
21:14:41 <AnMaster> and I don't know any programs in it at all
21:15:28 <pikhq> The bit about being 2-d makes things a bit harder, what with needing smart data structures and all that.
21:15:42 <AnMaster> pikhq, your current program is broken I think
21:15:48 <AnMaster> pikhq, wumpus no longer works
21:15:54 <pikhq> Yeah. Not sure why.
21:15:58 <AnMaster> pikhq, I think read char perhaps?
21:16:05 <pikhq> Possible.
21:16:17 <pikhq> Though rot13 still works.
21:16:17 <AnMaster> hm no
21:16:28 <AnMaster> robot.b93 still works
21:17:49 <AnMaster> pikhq, this is also broken: http://sprunge.us/QVgW (fib.bf)
21:17:55 <AnMaster> (usage: give a number, hit enter)
21:18:11 <AnMaster> $ ./cfunge ../examples/fib.bf
21:18:11 <AnMaster> 9
21:18:11 <AnMaster> 34
21:18:28 <AnMaster> pikhq, that is what should happen
21:18:43 <pikhq> And what actually happens?
21:18:52 <AnMaster> oh wait, that a can be changed to 91+
21:18:56 <AnMaster> but it is still broken
21:19:01 <AnMaster> pikhq, it outputs lots of zeros
21:19:11 <pikhq> Weird.
21:19:20 <AnMaster> wait now it works
21:19:23 <AnMaster> heisenbug
21:19:35 <pikhq> Here it does a lot of nothing.
21:19:49 <pikhq> Oh, input.
21:20:04 -!- oerjan has quit (Quit: Good night).
21:20:08 <pikhq> Yeah, whole lot of 0s here.
21:20:54 <AnMaster> pikhq, well first changing it from a to 91+ didn't fix it
21:20:55 <AnMaster> then it did
21:21:12 <AnMaster> so consider it a non-reproducible heisenbug
21:21:19 <AnMaster> (a is b98)
21:21:34 <pikhq> Wait, "a"? Ah. No wonder it does a whole lot of nothing.
21:22:13 <pikhq> Okay, then. It's just wumpus. And I got nothing.
21:22:37 <AnMaster> pikhq, on wumpus?
21:22:40 <AnMaster> well, trace it
21:22:44 <AnMaster> I get it ignoring my inpu t
21:22:47 <AnMaster> input*
21:22:54 <AnMaster> pikhq, trace it and compare to last working trace
21:23:03 <AnMaster> hg pull the old revision
21:23:24 <AnMaster> (or however you do that with hg)
21:23:29 <fizzie> 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 <pikhq> I'll futz with it later.
21:23:49 <AnMaster> fizzie, --db-attach=yes
21:23:53 <AnMaster> fizzie, and do bt
21:24:18 <AnMaster> fizzie, heck valgrind should provide a bt too
21:24:52 <fizzie> 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 <fizzie> ==14642== by 0x4EA678: CodegenLLVM::compile(Trace*, TList<ImOp>*, int) (Function.h:126)
21:25:21 <fizzie> Where CodegenLLVM::compile is my function, but Function.h:126 is some inlined thing inside LLVM's Function.h header.
21:25:39 <fizzie> So it doesn't list the spot in the CodegenLLVM::compile function where the error actually happens.
21:26:34 <fizzie> gdb's backtrace somehow manages to list it properly, though, so --db-attach=yes helped.
21:30:34 <fizzie> 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 <fizzie> Perhaps it only removes all references held by the function, and I need to call fun->eraseFromParent(); instead.
21:33:22 <AnMaster> fizzie, Can't help you there. Too much C++ nonsense
21:33:30 <fizzie> "This method unlinks 'this' from the containing module and deletes it."
21:34:00 <fizzie> 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 <fizzie> Yes, it fixed that particular problem at least.
21:36:39 <fizzie> 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 <AnMaster> heh
21:37:35 <AnMaster> fizzie, you know, I would have been able to tell that you wrote that line even without the nick at front.
21:37:45 <AnMaster> Sometimes you have a very distinctive style
21:37:51 <AnMaster> can't really pinpoint what it is
21:41:24 <fizzie> %stack2 = phi i32* [ %entry_stack, %FunEntry ], [ <null operand!>, %Code11 ] ; <i32*> [#uses=1]
21:41:32 <fizzie> The <null operand!> might not be what I want.
21:43:29 <fizzie> It seems to get a bit confused if there's an entry point immediately after a _ branch.
21:49:47 <fizzie> fis@eris:~/src/jitfunge/src$ echo '(hello)S' | ./jitfunge ../underload.b98 2>/dev/null
21:49:48 <fizzie> unterminated (.
21:49:52 <fizzie> Well, it doesn't crash...
21:51:12 <AnMaster> fizzie, that is one step forward
21:51:24 <AnMaster> fizzie, also: try mycology, it tells you when something is wrong
21:51:37 <AnMaster> it is probably saner to make it pass a bit further first
21:52:48 <fizzie> Guess so; though it's a bit of a big program, long traces to look through.
21:55:26 <AnMaster> fizzie, well getting mycology going a bit of the way should help
21:55:45 <fizzie> I guess I should at least add the , there. :p
21:57:18 <fizzie> The ., I mean.
21:58:47 <AnMaster> indeed
21:59:02 <fizzie> fis@eris:~/src/jitfunge/src$ ./jitfunge ../../jitfunge_old/jitfunge/myco/mycology/mycology.b98 2>/dev/null
21:59:02 <fizzie> 0 1 2 3 4 5 6 7
21:59:02 <fizzie> GOOD: , works
21:59:02 <fizzie> Segmentation fault (core dumped)
21:59:05 <fizzie> Heh, it got worse.
22:01:04 <fizzie> $1 = (struct llvm::Function *) 0x0
22:01:07 <fizzie> That's probably why.
22:01:13 <AnMaster> fizzie, backtrace is useful? I'm surprised
22:01:30 <fizzie> As long as you bother stepping out of the LLVM internals, sure.
22:01:45 <AnMaster> fizzie, what if it crashes in generated code?
22:01:57 <fizzie> Then it'll probably be less helpful.
22:02:25 <AnMaster> heh
22:02:33 <fizzie> 0 1 2 3 4 5 6 7
22:02:33 <fizzie> GOOD: , works
22:02:34 <fizzie> GOOD: : duplicates
22:02:34 <fizzie> GOOD: empty stack pops zero
22:02:34 <fizzie> GOOD: 2-2 = 0
22:02:34 <fizzie> GOOD: | works
22:02:36 <fizzie> GOOD: 0! = 1
22:02:38 <fizzie> Segmentation fault (core dumped)
22:02:40 <fizzie> Yay, it got further.
22:02:41 <AnMaster> heh
22:02:42 <fizzie> Soon it'll be too long to paste here. :p
22:03:40 <fizzie> Crashes when compiling a !.
22:04:30 <AnMaster> mhm
22:04:55 <AnMaster> fizzie, for bug testing maybe you should make it always compile the trace even the first time
22:05:11 <fizzie> 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 <AnMaster> fizzie, sec
22:05:25 <Deewiant> The Mycology comparison page links to .txts for reference output
22:05:30 <Deewiant> iki.fi/deewiant and browse.
22:05:47 <AnMaster> fizzie, http://sprunge.us/KFKR
22:05:47 <Deewiant> First column of the table IIRC.
22:05:51 <fizzie> Deewiant: Oh, those are links. I didn't notice. :p
22:05:58 <fizzie> I was there already, but only saw the fancy table.
22:06:52 <Deewiant> In this case I think I remember by heart that it tries 7! = 0 next
22:07:01 <Deewiant> Don't know what's after that, though.
22:07:09 <fizzie> 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 <fizzie> $1 = {arg = 7, c = 1 '\001'}
22:08:12 <fizzie> GOOD: 7! = 0, followed by a "Gcodegen.cc:263: [compile] not handled: 42".
22:08:26 <Deewiant> That'd be *?
22:08:30 <fizzie> Yes.
22:08:35 <fizzie> Who needs to multiply numbers anyway?
22:08:37 <Deewiant> :-)
22:10:33 <fizzie> Also my - instruction subtracts values the wrong way around, eh-heh.
22:10:45 <fizzie> Why didn't you make that "2-2 test unsymmetric? Didn't we talk about this?-)
22:11:01 <Deewiant> I don't know how you people manage these symmetry failures, I don't think I've ever coded one :-P
22:11:16 <AnMaster> ffs
22:11:27 <fizzie> 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 <Deewiant> Your fault for overengineering :-P
22:11:46 <AnMaster> haha
22:12:04 <fizzie> Last time I was accused of underengineering when it wasn't trivial to switch backends. :p
22:12:13 <Deewiant> ;-P
22:12:27 <fizzie> GOOD: 8*0 = 0
22:12:27 <fizzie> GOOD: # < jumps into <
22:12:27 <fizzie> GOOD: \ swaps
22:12:27 <fizzie> Gcompiler.cc:334: [compile] unknown op in intermediate compiler: 96
22:12:42 <Deewiant> 96... it's before a... dunno
22:12:50 <fizzie> It's the backtick.
22:12:56 <Deewiant> Ah.
22:13:02 <AnMaster> fizzie, did it compile the \ btw?
22:13:11 <AnMaster> fizzie, or just trace it?
22:13:37 <AnMaster> fizzie, as I said you might want to actually compile these all the time during this phase of development
22:13:44 <fizzie> It does compile \. It doesn't generate any code for \, though.
22:13:52 <fizzie> It's just a matter of swapping register names, after all.
22:13:53 <AnMaster> fizzie, well that could be an issue
22:13:57 <AnMaster> hah
22:14:16 <fizzie> 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 <fizzie> Actually it seems to compile out some of mycology's tests too, since the arguments to _s are constant.
22:16:27 <AnMaster> 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 <AnMaster> or it won't test "constant one"
22:25:09 <fizzie> 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 <fizzie> GOOD: 01` = 0
22:25:23 <fizzie> GOOD: 10` = 1
22:25:23 <fizzie> ... then an infinite loop.
22:25:38 <AnMaster> fizzie, infinite loop of what?
22:25:44 -!- kar8nga has quit (Remote host closed the connection).
22:25:47 <fizzie> Of no output.
22:26:01 <AnMaster> fizzie, ah, so not of those two lines repeating?
22:26:09 <fizzie> No, those came just once.
22:26:16 <fizzie> "GOOD: 900pg gets 9" is supposed to come next.
22:26:40 <fizzie> Interestingly it seems to be an infinite loop not in generated code.
22:26:45 <AnMaster> fizzie, how if your fungespace implemented?
22:26:47 <Deewiant> I have an excuse for using (0,0) there, since it makes the code 6 chars shorter.
22:26:51 <AnMaster> fizzie, quad tree? hash table?
22:27:02 <AnMaster> Deewiant, :P
22:27:16 <Deewiant> AnMaster: Which actually matters in the Befunge-93 area.
22:27:19 <fizzie> Just a regular hash table at the moment.
22:27:24 <AnMaster> Deewiant, yeah
22:27:44 <AnMaster> fizzie, do you generate 64 bit code nowdays?
22:28:13 <AnMaster> fizzie, and how hard would switching to that be?
22:28:20 <AnMaster> if you still generate 32-bit
22:28:29 <Deewiant> Should be pretty trivial with LLVM.
22:28:30 <AnMaster> llvm would do some of the work
22:28:41 <AnMaster> Deewiant, you still have to care about type sizes to some extent
22:28:47 <fizzie> 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 <fizzie> I use 32-bit cells currently, but that's just a two-line change.
22:29:10 <AnMaster> fizzie, hah, when I last saw the old one it was 32-bit only
22:29:32 <fizzie> Yes, there's been one or two iterations in-between, more or less borken.
22:32:04 <AnMaster> fizzie, how much easier is it using the llvm backend?
22:34:25 <fizzie> 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 <fizzie> 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 <Deewiant> One wonders why your x coordinate is so high.
22:36:29 <fizzie> Should it wrap around close to these parts? I guess it might, but not before the 900pg test.
22:36:42 <Deewiant> Right after the 900pg, IIRC.
22:36:48 <fizzie> I think my wrapping's completely untested.
22:37:00 <Deewiant> I think your wrapping won't work. ;-)
22:37:02 <AnMaster> s/untested/broken/
22:39:17 <fizzie> My phrasing was more gentle.
22:39:27 <AnMaster> fizzie, and?
22:39:33 <fizzie> And inaccurate.
22:39:38 <AnMaster> hah
22:39:50 <AnMaster> so it was broken then?
22:40:07 <fizzie> Probably; I haven't exactly figured out yet how. It might also just get lost somehow.
22:41:41 <AnMaster> aka broken ;P
22:42:46 <fizzie> 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 <fizzie> The $ there on that line looks as if it's supposed to wrap there.
22:44:02 <AnMaster> fizzie, how did it mirror there?
22:46:09 <fizzie> There's an _ at column 6; it hits that, prints something, goes to the < at 13, then enters a print loop.
22:46:33 <fizzie> That's okay so far; then it starts tracing from the _ leftwards, reads the $, and should wrap somewhere.
22:46:49 <fizzie> Instead it ends the trace and comes out of the trace function at column 427.
22:46:49 <Deewiant> Certainly not to column 427.
22:47:01 <fizzie> Yes, I guess you could call that broken, if you were so inclined.
22:48:27 <AnMaster> XD
22:49:01 <fizzie> Deewiant: The cardinal movement thing wraps by setting the X coordinate to the largest Y value. :p
22:49:13 <Deewiant> :-D
22:49:43 <fizzie> Hrmm, well:
22:49:44 <Deewiant> Incidentally, if your line count is 427, your Mycology is very old or you're doing something else wrong.
22:49:51 <fizzie> This is very old.
22:49:56 <fizzie> ../../jitfunge_old/jitfunge/myco/mycology/mycology.b98
22:50:03 <Deewiant> There are bugfixes in the new ones, you know? :-P
22:50:28 <fizzie> Well, now, at least this looks interesting:
22:50:35 <fizzie> GOOD: 01` = 0
22:50:35 <fizzie> GOOD: 10` = 1
22:50:35 <fizzie> GGBG
22:50:35 <fizzie> GOOD: a pushes 10
22:50:35 <fizzie> GOOD: b-f push 11-15
22:50:36 <fizzie> GOOD: [ turns left
22:50:38 <fizzie> GOOD: ] turns right
22:50:39 <Deewiant> GGBG
22:50:40 <fizzie> GOOD: instructions between ; are skipped
22:50:42 <fizzie> BUBAD: k reflects
22:50:44 <fizzie> And BUBAD.
22:50:44 <Deewiant> BUBAD!
22:51:05 <pikhq> y'might want to check out the latest.
22:51:06 <Deewiant> Bubu-bubad to the bone.
22:51:07 <pikhq> :P
22:51:31 <fizzie> Have to go to sleep, wake-up time at something like 05am "tomorrow"; will continue this hilariosity later.
22:51:52 <Deewiant> 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 <Deewiant> At least I think that 427 lines implies somewhere around release one or two.
22:52:26 <Deewiant> Hell, I might not have something that old under revision control.
22:52:27 <fizzie> 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 <Deewiant> It should say "Befunge-98 detected" and stuff before it goes to a.
22:53:25 <fizzie> Just for fun, I'll try the newest one too.
22:54:04 <fizzie> Well, no changes so far; it's still GGBG BUBAD. I guess you haven't changed this early bits significantly.
22:54:24 <Deewiant> No, not significantly.
22:54:30 <Deewiant> (Maybe not at all up to that point.)
23:00:47 <pikhq> I think from this we can learn that Befunge is just plain hard to implement at all.
23:01:16 <Deewiant> There's a bit of a gap between "implement" and "JIT compile"
23:01:39 <pikhq> Yeah, but even B93 gave me some trouble. :P
23:02:02 <pikhq> Granted, what I was doing *was* a not-very-good threaded code compiler. But still.
23:02:37 <Deewiant> Half your problem was writing threaded code in C the first time around :-P
23:03:01 <pikhq> :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 <Sgeo_> Are there any reasons not to use Scala?
00:08:35 <Quadrescence> if you don't have jvm them yes
00:14:09 <Asztal> wow, I knew stinkhorn was slow at the `y' instruction, but... wow
00:14:44 <Asztal> 17500 times as slow as ccbi2
00:15:33 <Asztal> I never really considered the allocation strategy on the stack stack since I just used STL containers.
00:15:49 <Asztal> (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 <Asztal> 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 <manager> www.penisland.us
01:43:56 -!- manager has left (?).
01:44:35 -!- aschueler has quit (Quit: leaving).
01:55:48 <Gregor> 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 <uorygl> I wonder if there's a really easy trick I could use to remember things really well.
03:37:20 <uorygl> If I think of one, I'll let you guys know. :P
03:39:06 <coppro> <3 Power Grid
03:39:38 <pikhq> Decent board game.
03:39:47 <uorygl> Is that a song by Jerry Martin?
03:39:54 <uorygl> No, alas, it's a board game.
03:39:59 <pikhq> No, it's a board game.
03:40:26 <coppro> 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 <Sgeo_> Note to self: Doesn't matter that ANGEL is supposed to store my work. Save anyway.
03:43:46 <pikhq> coppro: Hahah.
03:44:28 <coppro> 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 <Sgeo_> This is.. self-slappingly annoying
03:46:37 <coppro> Sgeo_: hmm?
03:47:14 <Sgeo_> Did some homework a while back, put it on the school site through which my professor receives homework
03:47:34 <Sgeo_> 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 <coppro> :(
03:48:00 <coppro> I should really start a git repo for my homework
03:53:23 <uorygl> Or do it on paper!
03:53:40 <uorygl> I must admit I sort of like being a Luddite.
03:55:34 <Sgeo_> I'd lose the paper
03:55:43 <coppro> lol
03:55:47 <coppro> I'm in Sgeo_'s boat
03:56:05 <uorygl> I wouldn't lose the paper, I'd leave it in an easy-to-remember but inaccessible place. :P
03:56:35 <Sgeo_> 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 <pikhq> If you see me taking notes in class, they are incomprehensible to anyone but me.
03:58:08 <pikhq> It's gotten worse with the addition of kanji to my idiosyncratic script...
03:58:25 <uorygl> 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 <pikhq> uorygl: I have a bit.
03:58:55 <uorygl> That way, you'll have tons of little fragments of writable stuff.
03:59:00 <pikhq> Fairly interesting.
03:59:06 <uorygl> Sgeo_: only if your phone is an iPad. :P
03:59:07 <pikhq> Dude, I know 2,000 kanji.
03:59:16 <pikhq> I already have tons of fragments of writable stuff.
03:59:16 <pikhq> :)
03:59:18 <uorygl> Hmm. When did you start learning those things?
03:59:28 <uorygl> Kanji.
03:59:29 <Sgeo_> uorygl, I'm perfectly willing to use the keyboard of a Nexus One
03:59:46 <pikhq> Start? Few years ago. Go hardcore and actually learn them well? 2.5 months ago.
03:59:53 <uorygl> Hmm.
04:00:21 <uorygl> I hereby decree that I did precisely the same thing with Lojban's gismu.
04:00:33 <Sgeo_> I did something similar with Haskell
04:00:34 <pikhq> Helpful, no?
04:00:54 <Sgeo_> Although my hardcore Haskell phase seems to be ending
04:01:16 <uorygl> 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 <uorygl> 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 <lament> and the most suitable emotion is terror
04:03:56 <uorygl> "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 <pikhq> Hah.
04:12:03 <Gregor> 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 <Sgeo_> 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 <nooga> blabs
05:06:52 <uorygl> This soundtrack contains a song called "The Kill Ring".
05:07:03 <uorygl> 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 <oerjan> <uorygl> I wonder if there's a really easy trick I could use to remember things really well.
05:23:32 <oerjan> i knew one once, but i forgot it.
05:28:02 <pikhq> Alas.
05:28:14 <nooga> golf
05:28:19 <Adrian^L> Who's augur ?
05:28:55 <oerjan> a linguist
05:29:11 <nooga> who's who anyway? :D
05:29:22 <fizzie> A "Whp
05:29:29 <Adrian^L> My name is Adrian.
05:29:31 <fizzie> I no type can.
05:29:43 <fizzie> A "who's who on #esoteric" book would probably sell well.
05:29:49 <nooga> :D
05:29:55 <nooga> so true
05:30:17 <Adrian^L> What's his connection to me? I apparently know him, but I'm not sure how, in his IRC incarnation.
05:31:16 <oerjan> 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 <nooga> seeing _underlined_ text in a terminal is so _cool_
05:32:02 <Adrian^L> I'm often busy.
05:32:28 <oerjan> also are you from norway? i knew a Lamo at university.
05:32:52 <nooga> i'm in a troll mood
05:33:08 <nooga> do norwegians actually believe in trolls?
05:33:09 <Adrian^L> tunes.org/~nef//logs/esoteric/09.08.19
05:33:18 <Adrian^L> is what brought me here.
05:33:21 <oerjan> nooga: i'm sure there are _some_
05:34:31 <nooga> near Bodo
05:35:28 <Adrian^L> Hrm. This isn't helping.
05:35:31 <fizzie> You've got that Trolltech thing, at least.
05:35:55 <Adrian^L> The log linked above implies that I know augur elsewhere via another name.
05:36:14 <Adrian^L> I'm trying to connect the two nodes.
05:36:45 <oerjan> Adrian^L: well "come to defcon" was mentioned
05:37:00 <oerjan> Adrian^L: he used to go as psygnisfive btw
05:37:21 <Adrian^L> That answers everything.
05:37:28 <Adrian^L> Thanks, oerjan :)
05:37:38 <oerjan> you're welcome :)
05:38:03 <Adrian^L> Disorganized ex-crime owes you a favor ;>
05:38:11 <oerjan> whoops
05:38:33 <Adrian^L> Why whoops?
05:38:46 <oerjan> that sounds scary :D
05:39:04 <Adrian^L> it ought not.
05:39:45 <Adrian^L> Why have this channel here, as opposed to, say, 2600Net?
05:40:20 <nooga> wny not freenode?
05:40:24 <oerjan> ask the founder, who disappeared years ago
05:41:48 <Adrian^L> mumble.
05:47:21 <nooga> 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 <coppro> almost always
05:48:02 <coppro> although I've unfortunately not ever found a channel for discussion of gaming
05:48:23 <nooga> ./j #sex
05:48:47 <oerjan> software exchange
05:50:44 <nooga> no, just try it ;d
06:09:53 <pikhq> Adrian^L: So, you have a Wikipedia article. Niceness.
06:10:22 <pikhq> 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 <Rugxulo> I think CCBI --befunge93 has a bug with regards to ';' (semicolon)
06:24:41 <Rugxulo> hmmm, but fbbi -93 seems to also do the same ... shouldn't they only skip "; ... ;" when in 98 mode??
06:25:02 <Rugxulo> (CCBI doesn't skip but reflects back, which can't be right in 93 mode)
06:28:00 <fizzie> 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 <Rugxulo> well none of the other 93 interpreters I'm trying seem to reflect, so ...
06:29:03 <fizzie> Yes, but it's still not exactly forbidden.
06:29:18 <fizzie> Admittedly many 93 interps treat non-defined ops as nops.
06:29:49 <Rugxulo> 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 <Rugxulo> 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 <Rugxulo> the Esolang wiki on Befunge really needs revising
08:07:00 <Rugxulo> but at least somebody added an interesting link lately: "Marsh" ( http://github.com/serprex/Befunge )
08:07:29 <Rugxulo> on my P4, it's pretty fast (GCC-compiled), not so much my other cpus
08:09:44 <fizzie> We had some talk about Marsh here.
08:10:00 <fizzie> It's also somewhat broken; the default version doesn't even do "pop 0 from empty stack".
08:10:10 <fizzie> There were some issues with the marsh_safe version too.
08:10:22 <Rugxulo> C99, assumes "/dev/random" exists, fixit.py kludge (which I'm not entirely sure about)
08:10:47 <Rugxulo> well, it's obviously not perfect, but it beats the x86 BEFI.COM on this P4 with my lame benchmark.bef
08:11:18 <Rugxulo> possibly more to do with the P4's quirks than anything, other machines are much slower
08:12:02 <fizzie> Also, re. speed: http://pastebin.com/nfmUUEwq
08:12:20 <fizzie> If you have an actual benchmark.bef for Befunge-93, I'd like to have it.
08:12:24 <pikhq> My Befunge interpreter appears to use the same implementation technique, but with different bugs. :P
08:12:37 <Rugxulo> so "ff" is yours?
08:12:43 <Rugxulo> written in what?
08:12:54 <fizzie> Written in C.
08:13:10 <Rugxulo> you're gonna laugh (or get mad), but here's my "benchmark" (lame, I know):
08:13:11 <Rugxulo> 91+:*-:0`#@ #._
08:13:20 <fizzie> It's also mostly bug-free: http://pastebin.com/BmmymUz7
08:13:46 <pikhq> fizzie: What's the testfile.txt in question?
08:14:12 <fizzie> pikhq: The Complete Stories, Volume 1, Isaac Asimov.
08:14:20 <fizzie> (I just wanted some mostly-ascii text.)
08:14:23 <pikhq> Mmm.
08:14:40 <fizzie> It's a bit un-redistributable that way; perhaps I should've just generated something.
08:15:18 <pikhq> I'll go fetch something off of Gutenberg then.
08:15:34 <Rugxulo> fizzie, for a horrible laugh, read this: http://pastebin.com/QekgWsxT
08:16:54 <pikhq> 156 ./a.out bench.bf 0.00s user 0.00s system 50% cpu 0.006 total
08:17:09 <pikhq> :)
08:18:12 <fizzie> 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 <Rugxulo> BEFI is actually 128*128, and it didn't hurt much there (obviously)
08:18:47 <Rugxulo> I guess the point is that GCC is better at P4 than others
08:18:59 -!- FireFly has quit (Quit: Leaving).
08:19:01 <Rugxulo> (IIRC, 26 secs. for marshsafe on the same benchmark)
08:20:00 <pikhq> I can't compare with cfunge, because cfunge doesn't handle EOF right for B93.
08:20:27 <pikhq> (reflect on EOF is but one valid behavior, and this ROT13 program assumes -1 = EOF instead)
08:20:46 <pikhq> So, need a better benchmark. :/
08:20:53 <Rugxulo> 27.410 secs.
08:21:02 <fizzie> Waiting for marshsafe to finish here.
08:21:06 <Rugxulo> (marsh.c but without fixit.py crud)
08:21:27 <fizzie> I haven't looked at what fixit.py does.
08:21:53 <fizzie> 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 <pikhq> so, what should the output from this actually be?
08:22:18 <Rugxulo> fizzie, who me? I think so, yeah
08:22:40 <pikhq> I'm going to guess "definitely not 156".
08:22:52 <Rugxulo> no
08:22:57 <pikhq> Hooray, I've found a small testcase that fails.
08:23:01 <fizzie> On my system, it outputs 2147483596 at the end; I guess it does -100 until the cell wraps around.
08:23:13 <pikhq> Good, the only other thing that failed was Hunt the Wumpus.
08:23:14 <fizzie> 156 sounds a bit like byte-sized stack cell.
08:23:14 <Rugxulo> yes
08:23:16 <Rugxulo> that's correct
08:23:25 <Rugxulo> 2147483596 is correct
08:23:36 <fizzie> Since -100 % 256 would be 156 for some values of %.
08:24:05 <pikhq> Gah. Yeah, it's still on char cells.
08:24:07 <Rugxulo> 27.680 (marshsafe.c)
08:24:08 <pikhq> Lemme change that.
08:24:13 <fizzie> Strange, marshsafe doesn't seem to want to finish.
08:24:33 <pikhq> It now outputs -100 immediately.
08:24:47 <pikhq> Erm. *unsigned* int might help. XD
08:25:01 <fizzie> You want signed stack cells, in fact.
08:25:01 <pikhq> Or not.
08:25:09 <fizzie> Otherwise it'll output 2^32-100 immediately.
08:25:26 <fizzie> 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 <fizzie> 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 <Rugxulo> how did you compile it?
08:26:57 <fizzie> gcc -o marshsafe marshsafe.c -std=gnu99 -O3
08:27:04 <pikhq> Imma sleep. I'll futz with this in the morning.
08:27:22 <Rugxulo> here's what I did:
08:27:23 <Rugxulo> gcc -std=gnu99 -DFUNGE marshsafe.c -o funge.exe -O2 -mtune=native -fmerge-all-constants -fomit-frame-pointer -fno-gcse
08:27:29 <Rugxulo> (slightly modified from makefile)
08:27:38 <fizzie> Oh, right, that damned -DFUNGE.
08:27:46 <fizzie> The most sensible thing ever.
08:28:15 <Rugxulo> fizzie, what cpu? (Core2, perhaps?)
08:28:36 <fizzie> It's an old-ish Athlon X2.
08:28:52 <fizzie> Uh, "5600+" or some other such silly model name.
08:29:11 <Rugxulo> can't be that old if it's X2
08:29:24 <fizzie> That's why the "-ish".
08:29:41 <Rugxulo> I don't know why he has #ifdef FUNGE ... what other use is marshsafe.c ?????
08:31:05 <fizzie> Gah, it still doesn't seem to be doing much; ^c'd it after three minutes.
08:31:15 <Rugxulo> try without -O3
08:31:16 <fizzie> Lunch now, will get back to benchmarking after.
08:31:51 <Rugxulo> I still say CCBI reflecting on ';' in B93 is wrong :-P
08:37:29 <Rugxulo> 3 mins. for CCBI (in B98 mode)
08:44:21 <Rugxulo> BTW, I think "bef2c -p -o" + GCC ran second fastest on my old P166
08:45:55 <Rugxulo> 7.5 mins. for "ccbi --befunge93" :-/
08:46:02 <Rugxulo> weird
08:47:31 <Rugxulo> 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 <Rugxulo> (runs Hunt the Wumpus now???)
08:50:47 <Rugxulo> seems fixit.py is changed, no longer assumes "%rax" is available
08:53:28 <Rugxulo> 27.350 secs (marsh), 27.630 secs (marshsafe) ... so not much difference
08:57:09 <Rugxulo> heh, "README" (but in French, go figure)
09:00:11 <Rugxulo> wait, "Bejit" ... perhaps he means JIT for Befunge??
09:00:14 <fizzie> Mine is around two days old, so I guess it might not be the newest either.
09:00:34 <Rugxulo> April 11th, that's what it says on the Github site
09:00:43 -!- Gracenotes has quit (Ping timeout: 260 seconds).
09:01:34 <fizzie> 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 <Rugxulo> did you remember -DFUNGE ?
09:02:07 <fizzie> Yes, I copy-pasted what you had.
09:02:20 <Rugxulo> hmmm, odd ... what GCC?
09:02:20 <fizzie> It's also eating 100% of CPU.
09:02:31 <fizzie> gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
09:02:36 <Rugxulo> 100% of an X2??? that can't be right
09:02:56 <fizzie> Yes, it goes up to 200%.
09:02:59 <Rugxulo> try with -O0 and see if it finishes there
09:03:19 <Rugxulo> it definitely should be done in under a minute on a modern cpu
09:03:32 <fizzie> 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 <fizzie> I'll try with -m32 as a quick fix.
09:04:39 <Rugxulo> yikes
09:05:00 <Rugxulo> well that's an implementation bug anyways, B93 always has 32-bit stack, right? ;-)
09:05:19 -!- Gracenotes has joined.
09:08:30 <Rugxulo> fungus and mooz links on Esolangs wiki are broken
09:08:50 <fizzie> Yes, mooz's site has been gone for a long long time now.
09:09:09 <fizzie> Hm, there's something wrong with my current, cleaned-up version of ff; for the rot13 benchmark, http://pastebin.com/30vpMbwN
09:09:52 <Rugxulo> is mooz the same as this guy? http://frox25.no-ip.org/~mtve/code/eso/bef/
09:10:09 <fizzie> No, that's a different person.
09:10:34 <Rugxulo> okay, it was the "mtv3" part that confused me
09:11:48 <Rugxulo> dunno why ff3 is slower, could be anything
09:12:27 <fizzie> 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 <Rugxulo> mtve = MTV Europe (dunno why he chose that nickname)
09:12:57 <Rugxulo> 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 <fizzie> Aw, Rugxulo already went? Anyhow, here's a ff3-vs.-marshsafe benchmark: http://pastebin.com/SgBzjEc6
11:13:53 <Deewiant> Slightly different output from the two there.
11:14:00 <Deewiant> (The blank line)
11:14:56 <Deewiant> How does jitfunge manage on that one? Seems so simple that it might be able to handle it :-)
11:17:03 <fizzie> Hm, it prints out 0. :p
11:17:16 <Deewiant> heh
11:20:05 <fizzie> It generates a single trace for most of that, containing
11:20:07 <fizzie> entry: 1
11:20:08 <fizzie> r0 <- STACK
11:20:08 <fizzie> r1 <- - r0, 100
11:20:08 <fizzie> STACK <- r1
11:20:08 <fizzie> r2 <- ` 0, r1
11:20:08 <fizzie> STACK <- r2
11:20:10 <fizzie> entry: 0
11:20:12 <fizzie> r3 <- STACK
11:20:14 <fizzie> _ r3
11:20:16 <fizzie> end
11:20:28 <fizzie> But for some reason the "end" command loops to entry point 0, not entry point 1.
11:21:40 <fizzie> The uncompiled trace looks like http://pastebin.com/03uCcPDD
11:22:28 <fizzie> exit[0] is the branch to the .@ bit, exit[1] should loop to the beginning, not the if itself.
11:25:05 <Deewiant> 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 <Deewiant> GCC compiles the equivalent C to an infinite loop; bloody C with its unspecified integer underflow.
11:26:31 <fizzie> Another wrapping bug, heh.
11:26:56 <fizzie> Funny, now it prints out 200.
11:27:18 <fizzie> This time the compiled trace is:
11:27:20 <fizzie> entry: 0
11:27:20 <fizzie> r0 <- STACK
11:27:20 <fizzie> r1 <- - r0, 100
11:27:20 <fizzie> STACK <- r1
11:27:20 <fizzie> r2 <- ` 0, r1
11:27:21 <fizzie> _ r2
11:27:23 <fizzie> end
11:27:24 <Deewiant> Can I tell GCC to optimize based on two's complement semantics?
11:28:32 <Deewiant> Ah, -fwrapv.
11:28:55 <Deewiant> Welp, it doesn't optimize it into a constant either.
11:29:18 <fizzie> 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 <Deewiant> I thought you fixed that one already? :-P
11:29:43 <fizzie> I thought so too.
11:31:03 <fizzie> 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 <Deewiant> Both compilers have an extra, unnecessary 'test' instruction in the loop, too.
11:33:13 <fizzie> fis@eris:~/src/jitfunge/src$ time ./jitfunge ../../ff/benchmark.bef 2>/dev/null
11:33:13 <fizzie> 2147483596
11:33:13 <fizzie> real 0m0.112s
11:33:13 <fizzie> user 0m0.090s
11:33:13 <fizzie> sys 0m0.020s
11:33:31 <fizzie> Well, it's not too shabby.
11:33:32 <Deewiant> Sounds about right.
11:33:52 <Deewiant> Are you using LLVM 2.6, by the way?
11:33:55 <fizzie> There's also quite a lot of tracing IO going out to /dev/null.
11:34:07 <fizzie> This is some sort of 2.7, whatever Ubuntu lucid had.
11:34:25 <fizzie> Version: 2.7~svn20100409-0ubuntu1
11:34:45 <Deewiant> Alright.
11:35:21 <fizzie> I wonder if fixing this broke whatever it was that I misfixed last time.
11:35:32 <fizzie> It was something about p, but was it in mycology?
11:35:56 <Deewiant> If it wasn't, it'll probably turn up in there at some point ;-P
11:36:14 <fizzie> At least current version runs mycology with the GGBGs and BUBADs. :p
11:39:22 <fizzie> 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 <Deewiant> Given that it's platform-specific, you can't do it with just LLVM
11:40:24 <Deewiant> Well, maybe there's a related intrinsic somewhere.
11:40:53 <fizzie> Yes, but I probably can hack together something that works on one platform based on what I already have.
11:40:58 <fizzie> The rest can use a slower stack.
11:41:15 <fizzie> I'm not even sure if it is faster; depends on the frequency of empty-stack-pops, of course.
11:41:27 <Deewiant> Yes, of course you can use inline asm to do it however you like platform-specifically.
11:45:32 <fizzie> Do I need to create ptrtoint instructions if I want to compare two pointers?
11:46:00 <Deewiant> I don't think so, no.
11:46:05 <fizzie> Ah, icmp can compare pointers too.
11:46:06 <Deewiant> I think icmp works on pointers.
11:46:17 <fizzie> Yes, I just didn't expect, given the interger-sounding name.
11:46:34 <fizzie> "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 <asiekierka> hi
11:50:44 <asiekierka> i think i had an idea for a 2-command (space (NOP) and non-space (everything else)) esolang
11:51:11 <asiekierka> but i don't think it'll be turing-complete
11:51:19 <asiekierka> though wait, i have an idea how to make it so
11:54:02 <fizzie> 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 <Deewiant> Astonishing!
11:54:45 <fizzie> At least I got the underflow-protected stack pop done without having to add more basic blocks in the mix. :p
11:54:52 <asiekierka> POSTANTOUS: http://pastebin.com/Ce9GLxdn
11:54:56 <asiekierka> design draft
11:55:08 <asiekierka> also
11:55:14 <asiekierka> it's all seen as in
11:55:24 <asiekierka> ^ being the NORTH of the instruction pointer's direction
11:55:28 <asiekierka> so if it's heading west, ^ is WEST
11:55:32 <asiekierka> and like that
11:56:03 <asiekierka> what do you think
11:56:16 <asiekierka> POSTANTOUS stands for POSition's imporTANT...ous
11:57:40 <asiekierka> http://pastebin.com/GLafvxmk
11:58:11 <asiekierka> new version of draft
11:58:33 <asiekierka> now
11:58:50 <asiekierka> the problem is i dont think any "this setup might stand for that, and also that" things can be found
12:02:00 <nooga> asiekierka: how about building 8088 based computer using prototype board and wires
12:02:27 <asiekierka> i wish i had a protoboard and wires
12:02:28 <asiekierka> :(
12:03:07 -!- _asw has joined.
12:03:33 <asiekierka> http://pastebin.com/frdr6jm9
12:03:37 <asiekierka> DRAFT v3
12:03:48 <nooga> i'm writing BIOS for that thing ;d
12:03:54 <asiekierka> wow
12:03:56 <asiekierka> lucky you
12:04:10 <asiekierka> i wish i could have a huge wirewrap protoboard
12:05:49 <nooga> not lucky, just bored :D
12:07:37 <asiekierka> NEW version: http://pastebin.com/why9uvaY
12:07:43 <asiekierka> Also I want to have a prototype board, wires
12:07:45 <asiekierka> and tons of chips
12:07:59 <asiekierka> i want to make a 6502 based computer
12:08:01 -!- _asw has left (?).
12:08:43 <asiekierka> now i think i've implemented every combination
12:08:52 <asiekierka> if any other combination is found
12:08:56 <asiekierka> it just goes forward
12:09:58 <asiekierka> i want a huge wirewrapping protoboard
12:10:00 <asiekierka> and wires
12:10:02 <asiekierka> and wirewrap tools
12:10:04 <asiekierka> 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 <nooga> and
12:57:11 -!- asiekierka has joined.
13:01:45 -!- asiekierka has quit (Ping timeout: 258 seconds).
13:02:00 <fizzie> 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 <Deewiant> I'm not trying to be confusing :-P
13:02:39 <fizzie> That'd be a first! Uh, I mean...
13:02:48 <Deewiant> 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 <fizzie> 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 <fizzie> 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 <fizzie> ... 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 <fizzie> A representative sample: http://pastebin.com/0ZG5S5cR
13:09:04 <fizzie> (That's the <>^v implementations.)
13:09:48 -!- asiekierka has quit (Ping timeout: 258 seconds).
13:09:58 <Deewiant> >_<
13:10:06 <fizzie> What, you don't like it?-)
13:11:12 <Deewiant> Now do the equivalent for Befunge-98: keep an w*h*5 array where the fifth is used for noncardinal deltas
13:12:02 <fizzie> 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 <fizzie> "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 <fizzie> Surreal.
13:22:12 <Deewiant> The Nethack ones seem to be the best.
13:22:27 -!- asiekierka has quit (Ping timeout: 258 seconds).
13:22:49 <fizzie> 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 <AnMaster> fizzie, "op_goleft_right"?
13:57:17 <AnMaster> It's like: Keep left →
13:58:32 <AnMaster> <Deewiant> 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 <Deewiant> It's independent of your storage solution, but it's probably just a pessimization with hash tables.
13:59:56 <AnMaster> indeed
14:07:18 -!- asiekierka has quit (Ping timeout: 258 seconds).
14:10:47 -!- asiekierka has joined.
14:15:19 <fizzie> 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 <fizzie> 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 <fizzie> 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 <fizzie> (typedef void *opset[4]; currently.)
14:22:31 -!- augur has quit (Ping timeout: 240 seconds).
14:27:21 <AnMaster> heh
14:27:37 <AnMaster> fizzie, how much do you gain from those 4 pointers thingy?
14:27:46 <AnMaster> fizzie, compared to doing it a more "normal" way
14:28:30 <AnMaster> 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 <AnMaster> 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 <AnMaster> fizzie, oh and where can I get the full source of that program?
14:30:13 <fizzie> 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 <AnMaster> hm
14:30:48 <AnMaster> fizzie, what does += PF_W * sizeof(opset); do?
14:30:57 <Deewiant> PlayField_Width presumably.
14:31:05 <fizzie> Yes. Well, including the borders.
14:31:10 <Deewiant> I.e. move down one Y-coordinate.
14:31:11 <AnMaster> oh so that is the logic for moving to next cell?
14:31:34 <AnMaster> fizzie, hm I would have expected it to be in the (presumably) macro IP_GOTO
14:31:57 <fizzie> #define IP_GOTO do { trace(); goto **(void **)ip; } while (0);
14:32:01 <fizzie> s/;$//
14:32:02 <AnMaster> otherwise you have to duplicate a lot in about every function
14:33:15 <fizzie> 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 <AnMaster> 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 <fizzie> These direction-changing commands are special, because I need to adjust the distance to change delta.
14:33:36 <AnMaster> ah
14:34:08 <AnMaster> fizzie, the down_down, up_up and so on variants don't need that though
14:34:34 <AnMaster> fizzie, what is the type of ip?
14:34:37 <fizzie> Yes, I just thought they looked aesthetically more pleasing like that, as opposed to having just MOVE_DOWN there.
14:35:27 <fizzie> 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 <fizzie> I never need to point between the void *s there, after all.
14:35:57 <AnMaster> "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 <AnMaster> fizzie, yes the sizeof thingy confused me. What is opset btw?
14:36:41 <fizzie> <fizzie> (typedef void *opset[4]; currently.)
14:36:50 <AnMaster> hm
14:37:27 <AnMaster> fizzie, url to this amazing code
14:37:29 <fizzie> 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 <fizzie> There is still no URL.
14:37:43 <AnMaster> fizzie, any reason not to upload it somewhere?
14:38:13 <fizzie> No particular reason, no. I just don't have a habit of sharing absolutely everything I do.
14:38:32 <AnMaster> :/
14:38:39 <AnMaster> fizzie, could you please share this one?
14:38:58 <fizzie> Aren't you a more 98 person, anyway?
14:39:27 <Deewiant> Your habits are poor.
14:39:30 <AnMaster> It is still interesting to study.
14:39:34 <fizzie> 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 <AnMaster> fizzie, how many files is it?
14:39:58 <fizzie> One.
14:40:05 <AnMaster> well then, why not pastebin? ;)
14:41:37 <AnMaster> 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 <fizzie> Well, if you absolutely must have an intermediate version, http://pastebin.com/ah2NcAgV
14:43:02 <AnMaster> fizzie, hm? You mean one mixed interleaved/non-interleaved?
14:43:45 <fizzie> No, that's the interleaved thing.
14:43:50 <AnMaster> ah good
14:43:53 <fizzie> But it's not release-quality. :p
14:44:14 <AnMaster> fizzie, TURN()?
14:44:29 <fizzie> Turns to arbitrary delta.
14:44:39 <AnMaster> fizzie, is it 93 + extras then?
14:44:40 -!- MizardX has joined.
14:44:59 <fizzie> No, "arbitrary" meaning any of the four cardinal ones not depending on what the ip is now.
14:45:05 <fizzie> That's a rather curious meaning, but anyway.
14:45:19 <AnMaster> fizzie, oh, but why would it be useful for 93?
14:45:35 <AnMaster> oh wait, ?
14:46:22 <fizzie> 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 <AnMaster> hah
14:46:59 <AnMaster> fizzie, high speed random number generators!
14:47:50 <AnMaster> fizzie, huh? where is next defined?
14:48:00 <fizzie> It's a macro parameter.
14:48:03 <AnMaster> oh duh
14:49:09 -!- oerjan has joined.
14:51:26 <AnMaster> fizzie, out of interest, why if and not switch for op_rand?
14:52:13 <fizzie> No real reason for that either. The if takes perhaps two lines less vertical space.
14:52:24 <fizzie> Or three, depending on bracing.
14:52:26 <AnMaster> hm perhaps
14:52:45 <Deewiant> Or zero, depending on bracing. :-P
14:52:47 <AnMaster> or one less but that would be messy
14:53:38 <Deewiant> switch (t) { case 0: TURN(0); NEXT_LEFT;
14:53:38 <Deewiant> case 1: TURN(1): NEXT_RIGHT;
14:53:38 <Deewiant> case 2: TURN(2): NEXT_UP;
14:53:38 <Deewiant> case 3: TURN(3): NEXT_DOWN; }
14:53:39 <AnMaster> 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 <Deewiant> True that.
14:54:01 <Deewiant> So negative one, depending on bracing.
14:54:12 <AnMaster> Deewiant, or two less
14:54:18 <Deewiant> Two?
14:54:28 <AnMaster> Deewiant, yes, just write two of the cases on the same line
14:54:41 <Deewiant> That's getting unreadable already :-P
14:54:43 <AnMaster> I didn't say it was a good idea
14:55:09 <Deewiant> Doesn't fit in 80 columns.
14:55:13 <AnMaster> fizzie, memcpy(pfcode[pos], ops[val], sizeof *pfcode); <-- wonderful
14:55:31 <Deewiant> What's special about that?
14:56:09 <AnMaster> Deewiant, did I say it was special?
14:56:18 <Deewiant> You said it was wonderful, which is certainly special.
14:56:26 -!- augur has joined.
14:56:41 <AnMaster> mhm
14:56:59 <fizzie> 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 <AnMaster> fizzie, ah hm didn't think about that
14:57:37 <AnMaster> fizzie, remember to test it on a wide selection of representative b93 programs ;)
14:58:02 <augur> pahaha
14:58:08 <augur> Adrian^L: i should've known it was you
15:00:01 <augur> 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 <AnMaster> fizzie, how goes jitfunge now?
15:27:08 <AnMaster> how far does it get in mycology and can it run underload.b98?
15:27:14 <Deewiant> BUBAD.
15:27:25 <AnMaster> Deewiant, BUBAD? That looks mangled
15:27:37 <Deewiant> GGBG.
15:27:49 <AnMaster> Deewiant, so , is completely broken or what?
15:28:19 <Deewiant> jitfunge has a hard time being "completely broken", it seems to usually be partially broken.
15:28:21 <AnMaster> assuming GGBG was what it output for GOOD
15:28:26 <AnMaster> :D
15:28:30 <Deewiant> It wasn't.
15:28:36 <AnMaster> Deewiant, then what was it?
15:28:42 <Deewiant> It was GGBG. I don't know why it output it.
15:28:57 <AnMaster> heh
15:29:12 <AnMaster> Deewiant, but at what point does it output that?
15:29:13 <Deewiant> , seems fine, anyhow.
15:29:17 <Deewiant> See the logs.
15:30:23 <AnMaster> Deewiant, which part of it?
15:31:21 <Deewiant> Of the logs? Just grep for GGBG.
15:31:24 <AnMaster> oh found it
15:31:34 <AnMaster> <fizzie> GOOD: 10` = 1
15:31:34 <AnMaster> <fizzie> GGBG
15:31:34 <AnMaster> <fizzie> GOOD: a pushes 10
15:31:35 <AnMaster> hm
15:31:40 <AnMaster> it skips several lines there
15:31:43 <AnMaster> as far as I can tell
15:32:54 <AnMaster> Deewiant, btw:
15:32:57 <AnMaster> GOOD: a pushes 10
15:32:57 <AnMaster> GOOD: b-f push 11-15
15:33:02 <AnMaster> why are those separated?
15:33:19 <AnMaster> like why not: a-f pushes 10-15
15:33:23 <Deewiant> IIRC, it only checks for reflection on a.
15:33:28 <AnMaster> GOOD: a pushes 10
15:33:28 <AnMaster> GOOD: b-f push 11-15heh
15:33:29 <AnMaster> argh
15:33:34 * AnMaster kills synergy
15:33:35 <Deewiant> Or something like that.
15:33:41 <AnMaster> heh was what I typed
15:33:51 <AnMaster> then I got a ghost paste in the buffer at the start somehow
15:33:57 <Deewiant> Or it has a couple of error messages for a, but just that one GOOD/BAD for b-f.
15:34:00 <AnMaster> just a split second before I hit enter
15:34:09 <AnMaster> hm
15:36:16 <fizzie> 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 <fizzie> Discount the copy-paste problem that got the compilation and running on the same line.
15:36:42 <AnMaster> fizzie, what is the benchmark?
15:36:43 <Deewiant> (1) doesn't tend to work that well, I'd do (2).
15:37:04 <AnMaster> fizzie, btw how does that ff3.c handle # in column 80 when going > ?
15:37:07 <Deewiant> AnMaster: 91+:*-:0`#@ #._
15:37:38 <AnMaster> Deewiant, oh I see.
15:37:56 <fizzie> AnMaster: UNDEF: edge # skips column 80
15:37:57 <Deewiant> 91+:*, incidentally, is an awfully complicated way of writing "d".
15:38:08 <AnMaster> ah
15:38:23 <AnMaster> fizzie, I mean, you don't crash due to missing the marker in the padding column
15:38:42 <fizzie> AnMaster: There's two column's worth of padding because of that.
15:38:48 <AnMaster> Deewiant, eh how does 91+:* add up to d?
15:38:54 <fizzie> Not d, "d".
15:39:01 <AnMaster> oh hah
15:39:06 <AnMaster> but why
15:39:21 <Deewiant> In -98, the equivalents would be a:* and 'd
15:39:54 <AnMaster> Deewiant, I guess it is semantics: Is it used as a char or as a number
15:40:22 <Deewiant> Bah, who cares about assigning semantics to stack cells in Befunge :-P
15:40:34 <AnMaster> isn't 91+:*-:0` comparing -100 to 0?
15:40:43 <Deewiant> On the first iteration, yes.
15:40:47 <AnMaster> oh right
15:41:09 <Deewiant> That code is equivalent to: int s = 0; do s -= 100; while (s <= 0);
15:44:45 <AnMaster> Deewiant, unfair to bignum ;P
15:45:17 <fizzie> 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 <AnMaster> hah
15:46:06 <AnMaster> 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 <oerjan> multiply by 2^32 ~= 4 billion
15:47:30 <AnMaster> lets say 6 seconds for 32-bit. Then we have 6 * 2^32... Ouch
15:47:58 <fizzie> I waited some five minutes or so.
15:48:02 <Deewiant> Yeah, I ran it for about 10 mins in CCBI and cfunge and then realized they were both 64-bit :-P
15:48:18 <AnMaster> about 817 years
15:48:20 <AnMaster> it seems
15:48:27 <Deewiant> Only?
15:48:32 <Deewiant> Long enough anyways.
15:48:38 <AnMaster> well, I could have typoed in units(1)
15:48:38 <oerjan> `calc 6*2^32 seconds in years
15:48:51 <AnMaster> oerjan, what bot?
15:48:52 <HackEgo> 6 * (2^32) seconds = 816.613247 years
15:48:55 <AnMaster> ah
15:49:10 <AnMaster> `run type calc
15:49:11 <HackEgo> calc is /tmp/hackenv.15888/bin/calc
15:49:13 <fizzie> marsh takes 12 seconds on my system; not that another power of 2 matters *that* much.
15:49:16 <AnMaster> `file bin/calc
15:49:18 <HackEgo> bin/calc: Bourne-Again shell script text executable
15:49:50 <AnMaster> `run head bin/calc | tr '\n' '|'
15:49:51 <HackEgo> #!/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 <AnMaster> `run grep -i google bin/calc
15:50:12 <HackEgo> --dump --width=1000 'http://google.com/search?q='"$QUERY" |
15:50:15 <AnMaster> ah
15:50:49 <Deewiant> :-P
15:50:53 <AnMaster> Deewiant, how long did it take for 32-bit CCBI?
15:51:11 <Deewiant> I hadn't a 32-bit CCBI binary so I haven't tried.
15:51:17 <AnMaster> ah
15:51:35 <AnMaster> Deewiant, presumably more than 6 seconds though
15:52:40 <AnMaster> bbl
15:53:33 <fizzie> <Rugxulo> 3 mins. for CCBI (in B98 mode)
15:53:40 <fizzie> Don't know what to compare that to, though.
15:53:47 <fizzie> Or what version, for that matter.
15:54:03 <fizzie> Deewiant: Did you notice the part about CCBI reflecting on ; in 93-mode?
15:54:36 <Deewiant> Yes, and no need to single out ;, it'll reflect on every non-93 instruction.
15:55:23 <fizzie> Right, well, he was strongly against that sort of thing. :p
15:55:43 <Deewiant> Yes, I noticed. :-P
15:56:22 <Deewiant> CCBI takes 27 seconds for me here.
15:56:33 <Deewiant> -93 only.
15:57:25 <fizzie> Average of 20 runs; not much of a difference: http://pastebin.com/EwDv8J2e
15:57:51 <fizzie> Could even have been other stuff on the system, it's not very idle.
15:58:00 <Deewiant> 11 seconds in -98; I wonder how that manages to be faster.
15:58:55 <Deewiant> Oh, it could be the wraparound.
15:59:03 <Deewiant> It probably is, actually.
15:59:28 * Deewiant makes it non-wrappy
16:00:25 <Deewiant> Yeah, now it's 9 seconds in -93 and 14 in -98.
16:00:53 <Deewiant> The Befunge-93 loader always makes an 80x25 box, you see.
16:01:12 <Deewiant> But, IIRC, it uses the same wrapping code as -98.
16:01:26 <Deewiant> So for every iteration, the -93 did an extra 70 or so nops.
16:02:34 <fizzie> 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 <AnMaster> <fizzie> Right, well, he was strongly against that sort of thing. :p <-- who? Rugxulo? And why is he against it.
16:07:48 <AnMaster> <Deewiant> So for every iteration, the -93 did an extra 70 or so nops. <-- yet it was faster?
16:08:07 <Deewiant> No, it was more than twice as slow.
16:08:12 <AnMaster> <Deewiant> Yeah, now it's 9 seconds in -93 and 14 in -98.
16:08:19 <AnMaster> you reversed the order then
16:08:22 <Deewiant> Notice how the tense changed.
16:08:36 <AnMaster> aha
16:08:40 <Deewiant> "_Now_ it _is_ [faster in -93]"
16:08:52 <Deewiant> "The -93 _did_ an extra 70 or so nops"
16:09:08 <AnMaster> <Deewiant> But, IIRC, it uses the same wrapping code as -98. <-- should have been used there then?
16:09:10 <AnMaster> or something
16:09:20 <AnMaster> <Deewiant> The Befunge-93 loader always makes an 80x25 box, you see. <-- or on that line
16:09:31 <Deewiant> Eh?
16:09:32 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
16:09:37 <Deewiant> Those remain correct.
16:09:52 <AnMaster> Deewiant, so how did you make it faster if you didn't change those
16:10:02 <Deewiant> AnMaster: 2010-04-13 17:59:04 * Deewiant makes it non-wrappy
16:10:11 <AnMaster> ah
16:10:16 <AnMaster> didn't notice that
16:10:44 <AnMaster> Deewiant, then why is 93 mode faster than 98 mode? Completely different mainloop or something?
16:10:57 <Deewiant> Well yes, lots of simplifications can be mode.
16:10:59 <Deewiant> made.
16:11:26 <AnMaster> Deewiant, true but is it worth the code duplication and such?
16:11:56 <Deewiant> The code duplication would happen anyway, to not slow down 98.
16:12:06 <AnMaster> hah
16:12:42 <AnMaster> fizzie, why @eris? A strange system name to me
16:13:58 <fizzie> Couldn't figure out anything else, so used the well-used and -reused Greeks.
16:14:08 <AnMaster> ah
16:14:13 <AnMaster> fizzie, who was eris then
16:14:25 <fizzie> Goddess of discord; also the goddess of discordians.
16:14:26 <Deewiant> Simplifying the wrapping code brought it down to 16 seconds. Still loses to -98, though.
16:14:31 <AnMaster> hah
16:14:35 * oerjan throws AnMaster an apple
16:14:45 <fizzie> 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 <oklofok> :D
16:15:11 <AnMaster> oerjan, I'm not picking up anything _you_ threw.
16:15:23 <AnMaster> who knows, it could be a tick one that sprays water at you or something
16:15:40 <fizzie> Momus, where fungot runs, is another one of those.
16:15:40 <fungot> fizzie: i'd be happy to help you with that?
16:15:44 <fizzie> 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 <oerjan> darn, saved by his natural paranoia
16:15:48 <fizzie> Thought it appropriate for a webserver.
16:16:32 <AnMaster> fizzie, quite a diverse list
16:16:53 <AnMaster> especially the censure part doesn't seem to fit in
16:17:21 <oerjan> `define censure
16:17:23 <HackEgo> * 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 <Deewiant> I wonder why CCBI is about 5-10% faster on underload.b98 when it's got 64-bit cells.
16:20:56 <AnMaster> Deewiant, heh
16:21:42 <oerjan> you fool, it was a golden apple!
16:22:00 <oerjan> golden delicious, to be precise. *munch*
16:22:01 <AnMaster> oerjan, well the grip was coated in aqua regia.
16:22:27 <AnMaster> (with a thickening substance added, so you can actually coat with it)
16:22:44 <AnMaster> oerjan, I don't think that is healthy to eat
16:23:30 <oerjan> i've got plenty of acid in my stomach already.
16:23:52 <AnMaster> 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 <AnMaster> fizzie, so how goes it?
19:53:44 <fizzie> 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 <pikhq> Internet back!
21:31:40 <AnMaster> fizzie, jitfunge and ff3
21:31:45 <AnMaster> or whatever
21:32:05 <AnMaster> fizzie, and does -fmerge-all-constants really make any difference?
21:32:10 <AnMaster> and does it still work then?
21:32:26 <pikhq> I'm getting half a mind to write a Befunge-98 interpreter.
21:32:38 <pikhq> Oh, BTW, I fixed my Befunge-93 interpreter.
21:32:44 <AnMaster> pikhq, ah, link?
21:32:51 <pikhq> Un momento.
21:32:59 <pikhq> http://sprunge.us/CSZJ
21:33:05 <AnMaster> I prefer a memento to be frank ;P
21:33:24 <fizzie> 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 <AnMaster> pikhq, it still counts -128 is not a prime
21:34:42 <AnMaster> pikhq, still valgrind errors too
21:34:53 <fizzie> 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 <pikhq> AnMaster: Uh, WTF and WTF?
21:35:20 <AnMaster> pikhq, sec
21:35:23 <Gregor> jitfunge *brain explodes*
21:35:32 <fizzie> AnMaster: Valgrind's stack traces are indeed not very useful for problems in LLVM's JIT'd functions:
21:35:33 <fizzie> ==9627== Conditional jump or move depends on uninitialised value(s)
21:35:34 <fizzie> ==9627== at 0x4048354: ???
21:35:34 <fizzie> ==9627== by 0x5C22C4C: (below main) (libc-start.c:226)
21:35:41 <pikhq> AnMaster: Well, it definitely does Wumpus correctly. :P
21:35:50 <AnMaster> pikhq, http://sprunge.us/iHXP
21:36:21 <AnMaster> fizzie, what about gdb? Is it as useless or does llvm do some funky JIT debug info that gdb can read?
21:36:51 <AnMaster> 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 <AnMaster> I presume the same applies to any other continue commands
21:37:40 <pikhq> AnMaster: Oh, that's an easy fix.
21:38:13 <fizzie> 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 <AnMaster> pikhq, what was the bug with wumpus btw?
21:39:01 <pikhq> AnMaster: I had val1 and val2 as unsigned ints instead of ints.
21:39:17 <pikhq> Thus screwing up signed comparison.
21:39:19 <pikhq> http://sprunge.us/LGJX
21:39:32 <AnMaster> pikhq, heh that caused wumpus failing?
21:39:36 <pikhq> Still getting issues with prime, but no invalid reads outside of libc.
21:39:37 <pikhq> Yes.
21:39:48 <pikhq> It also caused the failure of a simple benchmark.
21:40:32 <AnMaster> pikhq, I still get negative values in prime?
21:40:54 <pikhq> AnMaster: I'm not sure.
21:40:58 <AnMaster> or do you mean that was the still left issue
21:40:59 <fizzie> AnMaster: Heh... if I add the "--db-attach=yes" flag, the error disappears.
21:41:05 <AnMaster> fizzie, whoops
21:41:12 <pikhq> Yes, that's the still-remaining issue.
21:41:18 <pikhq> I'm honestly not sure how that's doing wrap-around.
21:41:36 <AnMaster> pikhq, printf("%d") -> printf("%u") or such perhaps
21:41:38 <AnMaster> ?
21:41:42 <AnMaster> haven't looked at the code
21:42:03 <AnMaster> what are you doing
21:42:07 <AnMaster> printf %i?
21:42:15 <AnMaster> what the heck is %i
21:42:32 <pikhq> ... Signed integer.
21:42:39 <AnMaster> pikhq, that is the issue then :P
21:42:44 <pikhq> No it's not.
21:42:55 <AnMaster> hm
21:42:56 <AnMaster> okay
21:43:04 <pikhq> *Oh*.
21:43:19 <pikhq> That's sticking numbers in fungespace, yes?
21:43:24 <AnMaster> pikhq, yes
21:43:33 <pikhq> Fungespace is a bunch of signed chars.
21:43:38 <AnMaster> pikhq, is that the spec?
21:43:50 <pikhq> "Undefined".
21:44:07 <AnMaster> pikhq, does it say it is char even?
21:44:20 <fizzie> It's an "80x25 torus of ASCII text", that's about all.
21:44:37 <pikhq> No, it would be entirely valid for that to be 7-bit.
21:44:38 <fizzie> Many make it unsigned bytes.
21:44:39 <AnMaster> pikhq, oh and it segfaults on pi2 again
21:45:14 <AnMaster> 9 s->buf = realloc(s->buf, s->bufsz);
21:45:16 <AnMaster> on that line
21:45:23 <AnMaster> *** glibc detected *** /home/arvid/dragon/funges/pikhq-bef/pikhq-bef-tux: realloc(): invalid next size: 0x0000000000607010 ***
21:45:26 <pikhq> How odd.
21:45:40 <fizzie> AnMaster: Here's the very useful gdb backtrace on the error:
21:45:42 <AnMaster> pikhq, valgrind shows a write error before
21:45:43 <fizzie> (gdb) bt
21:45:43 <fizzie> #0 0x0000000004048354 in ?? ()
21:45:43 <fizzie> #1 0x00000007ff0002e0 in ?? ()
21:45:43 <fizzie> #2 0x0000000005c77a3f in _IO_new_file_overflow (f=0x0, ch=-16776704) at fileops.c:889
21:45:43 <fizzie> #3 0x0000000000000000 in ?? ()
21:45:59 <AnMaster> fizzie, hah
21:46:09 <AnMaster> fizzie, disassemble, I guess that is all you can do
21:46:25 <AnMaster> pikhq, I suspect you overwrite malloc bookkeeping data
21:46:30 <AnMaster> just a hunch
21:46:48 <pikhq> fungespace[val1][val2] = val3;
21:46:57 <AnMaster> pikhq, hm?
21:47:07 <fizzie> 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 <AnMaster> pikhq, you fail at bounds checking? :D
21:47:18 <pikhq> Yes, there is no bounds checking.
21:47:21 <AnMaster> fizzie, hah
21:47:31 <AnMaster> pikhq, well that is wrong ;P
21:47:46 <pikhq> AnMaster: No, it's invoking undefined behavior.
21:47:47 <pikhq> :P
21:47:48 <AnMaster> pikhq, I would do it abs(x) % 80 and so on
21:48:08 <AnMaster> pikhq, sure, but I consider it a bug to crash on invalid input
21:48:09 <pikhq> I'll go make it do more sane behavior, though.
21:48:12 <AnMaster> for any app
21:48:33 -!- charlls has quit (Read error: Connection reset by peer).
21:48:43 <pikhq> AnMaster: Yes, this is why I'm adding boundschecking.
21:48:48 <AnMaster> :)
21:49:06 <AnMaster> pikhq, I recommend using a fuzz tester btw. It would catch this type of stuff
21:49:42 <pikhq> Eh.
21:49:53 <AnMaster> Please input a number: 3
21:49:54 <AnMaster> UNDEF: got 3 which is hopefully correct.
21:49:54 <AnMaster> Please input a character: UNDEF: got 10 '
21:49:54 <AnMaster> ' which is hopefully correct.
21:49:56 <fizzie> ff3 doesn't do bounds checking either, to be honest; it's not like a well-behaved program would need it.
21:49:59 <AnMaster> I don't think that is how it should work
21:50:05 <AnMaster> but it might be undef in b93
21:50:12 <pikhq> There's... Issues with that.
21:50:23 <pikhq> It's undefined, but yes, I should fix it.
21:50:29 <Deewiant> I think it's undef in b98 as well.
21:50:30 <AnMaster> pikhq, in b98 I'm pretty sure integer input should eat the newline if one follows it directly
21:50:37 <AnMaster> Deewiant, is it? Huh
21:50:37 <pikhq> fizzie: Link to fastfunge?
21:50:39 <Deewiant> IIRC the spec doesn't say that.
21:50:43 <pikhq> AnMaster: "Undefined but I should fix it."
21:50:48 <AnMaster> Deewiant, "everyone does it"?
21:50:56 <Deewiant> I did it because it seemed sensible, and since then it seems everybody else does it. :-P
21:51:01 <AnMaster> Deewiant, well okay
21:51:28 <AnMaster> Deewiant, you are a trendsetter ;P
21:51:36 <Deewiant> Yep :-P
21:51:39 <fizzie> pikhq: http://git.zem.fi/ff
21:51:57 <AnMaster> pikhq, I get valgrind errors enter a to mycouser as the number
21:52:08 <AnMaster> yes the letter a
21:52:17 <AnMaster> ==27876== Use of uninitialised value of size 8
21:52:18 <AnMaster> ==27876== at 0x4E695CB: _itoa_word (in /lib/libc-2.11.1.so)
21:52:19 <pikhq> AnMaster: One screaming bug at a time man. :P
21:52:27 <AnMaster> pikhq, link to bug tracker?
21:52:55 <pikhq> AnMaster: irc://irc.freenode.com/esoteric
21:53:00 <AnMaster> haha
21:53:13 <AnMaster> pikhq, well I will write them down in a text file and pastebin that
21:56:16 <AnMaster> pikhq, okay for me to paste the bug descriptions now?
21:56:33 <pikhq> Invalid reads fixed (stupidity in stack regrowing).
21:56:36 <pikhq> http://sprunge.us/TfeK
21:56:39 <AnMaster> mycouser.b98:
21:56:40 <AnMaster> * valgrind errors on ctrl-d at integer prompt. B98 reflects. Unknown what B93 does.
21:56:40 <AnMaster> * 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 <pikhq> Erm. Resizing.
21:57:04 <Deewiant> Yes, that latter one is defined.
21:59:01 <pikhq> The only valgrind errors I'm seeing are from libc...
21:59:25 <pikhq> I have a sneaking suspicion that their printf does crazy stuff.
21:59:47 <AnMaster> pikhq, the ones I see there are itoa
22:00:13 <AnMaster> pikhq, http://sprunge.us/KbTd
22:00:29 <AnMaster> pikhq, and printf
22:00:47 <AnMaster> pikhq, but that might be because itoa returns some undef value
22:00:52 <AnMaster> due to you passing it a non-number
22:00:55 <pikhq> Possible.
22:01:36 <AnMaster> pikhq, oh see:
22:01:38 <AnMaster> ==27931== Uninitialised value was created by a stack allocation
22:01:38 <AnMaster> ==27931== at 0x400C68: instrs (pikhq-bef.c:153)
22:01:43 <AnMaster> with valgrind --track-origins=yes ./pikhq-bef-tux ~/dragon/src/own/cfunge/trunk/mycology/mycouser.b98
22:02:05 <pikhq> Oh, that's helpful.
22:02:11 <AnMaster> pikhq, well yes, it is slower too
22:02:19 <AnMaster> well not noticeable so for this case
22:02:28 <pikhq> Except that nothing is made at that line.
22:02:37 <pikhq> Except the stack frame itself.
22:02:37 <AnMaster> pikhq, sure it is, the stack frame
22:02:40 <AnMaster> pikhq, exactly
22:02:49 <AnMaster> pikhq, which means you know which function
22:03:20 <AnMaster> heh seems to be main one
22:03:42 <AnMaster> pikhq, point is, I think you do something funky when trying to parse letters as integers
22:03:49 <pikhq> *Ah*.
22:04:07 <pikhq> When that happens, the value ends up being unchanged from what it was.
22:04:09 <AnMaster> bad pikhq not checking return value of scanf :P
22:04:15 <pikhq> Said value is... Undefined.
22:05:15 <AnMaster> 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 <AnMaster> ;)
22:05:28 <pikhq> http://sprunge.us/CJcX
22:05:36 <Deewiant> What's wrong with scanf?
22:05:51 <pikhq> There it is without odd valgrind errors, and I'll go about fixing the actual *behavior* next time the mood strikes.
22:06:03 <pikhq> (I know what to fix and how to fix it, just can't be bothered to)
22:06:27 <AnMaster> Deewiant, that it is a mess? Especially for reading strings
22:06:34 <AnMaster> somewhat less so for integers, but still
22:06:38 <Deewiant> How is it a mess?
22:07:28 <AnMaster> Deewiant, well, I don't know how to explain it. It feels like gets() almost in "eww" level
22:07:43 <Deewiant> Seems fine to me :-P
22:07:47 <AnMaster> only way it could be worse would be using global buffers and being non-reentrant
22:08:04 <AnMaster> strtok() is that level of ewww
22:08:28 <AnMaster> "* 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 <Deewiant> What I'd expect from C :-P
22:10:29 <AnMaster> hah
22:10:54 <AnMaster> pikhq, testing on random data I get a valgrind error
22:10:59 <AnMaster> http://sprunge.us/JMQU
22:11:04 <AnMaster> that was on the program itself
22:11:14 <AnMaster> should I filebin my compiled version?
22:11:44 <AnMaster> pikhq, or can you reproduce it with your own copy?
22:12:55 <AnMaster> pikhq, *prod*?
22:13:08 <Deewiant> What's your rush?
22:13:53 <AnMaster> Deewiant, ?
22:14:00 <Deewiant> "*prod*"
22:14:44 <AnMaster> I want to know if I should filebin it or go do other stuff
22:14:49 <AnMaster> while being afk
22:15:12 <AnMaster> wow I got it to do:
22:15:14 <AnMaster> Illegal instruction
22:15:17 <Deewiant> "*prod*" generally doesn't help
22:15:21 <AnMaster> by running it on /dev/urandom
22:15:22 <AnMaster> :D
22:15:29 <Deewiant> >_<
22:15:39 <AnMaster> pikhq, see http://sprunge.us/NAIM too
22:15:46 <AnMaster> Deewiant, yes but it still shouldn't crash!
22:16:06 <Deewiant> IIRC pikhq was accepting crashes for undefined behaviour
22:16:56 <AnMaster> theory: it crashes on negative values because lookup table go from 0 to 256
22:17:04 <AnMaster> err
22:17:06 <AnMaster> 0-255
22:17:07 <AnMaster> and fungespace is signed
22:17:16 <AnMaster> so it reads below the place it should read
22:19:19 <AnMaster> okay there are two things. One is somehow loading the file it can end up doing something fishy
22:19:26 <AnMaster> the other seems to be what I thought
22:21:53 <AnMaster> Deewiant, basically, using chars in the range 128-255 I think you can cause it to execute any code you want
22:22:19 <AnMaster> 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 <AnMaster> ==28011== Access not within mapped region at address 0xD39AD3D
22:22:55 <AnMaster> ==28011== at 0xD39AD3D: ???
22:22:55 <AnMaster> ==28011== by 0x400C56: main (pikhq-bef.c:150)
22:23:19 <AnMaster> or:
22:23:20 <AnMaster> ==28013== Bad permissions for mapped region at address 0x3
22:23:20 <AnMaster> ==28013== at 0x3: ???
22:23:20 <AnMaster> ==28013== by 0x400C56: main (pikhq-bef.c:150)
22:23:53 <AnMaster> Deewiant, wow I got it to end up inside the valgrind helper itself
22:23:55 <AnMaster> ==28016== Bad permissions for mapped region at address 0x380040B0
22:23:55 <AnMaster> ==28016== at 0x380040B0: ??? (in /usr/lib/valgrind/exp-ptrcheck-amd64-linux)
22:25:42 -!- Oranjer has joined.
22:26:40 <AnMaster> "You bumped the wumpus." <-- huh I thought you were eaten instead
22:26:55 <Deewiant> There are variants.
22:27:08 -!- Oranjer has quit (Read error: Connection reset by peer).
22:27:35 <AnMaster> 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 <pikhq> AnMaster: Yeah, well. Make fungespace signed.
22:36:19 <pikhq> Erm. Unsigned.
22:36:53 <AnMaster> pikhq, no idea where that is
22:37:38 <AnMaster> pikhq, -Dchar="unsigned char"?
22:38:03 <AnMaster> (nah, would be evil)
22:38:17 <pikhq> http://sprunge.us/KJTi
22:38:19 <pikhq> Thar.
22:39:26 <AnMaster> pikhq, and still this: http://sprunge.us/dJId
22:39:46 <AnMaster> pikhq, something messed up in file loading
22:41:19 <AnMaster> 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 <AnMaster> pikhq, it happens on mycology too I think you go one further than your array
22:42:07 <AnMaster> for funge space
22:42:09 <AnMaster> or something like that
22:42:11 <pikhq> s/<=/</
22:42:21 <pikhq> while(j < 25) {
22:42:28 <pikhq> That should be what the line reads.
22:42:34 <AnMaster> 145 fungespace[j][i] = c;
22:42:37 <AnMaster> is what it reads?
22:42:43 <pikhq> Trivial fix, and surprising that didn't cause breakage.
22:42:49 <AnMaster> oh
22:42:50 <AnMaster> right
22:43:00 <pikhq> I was going 1 row too far into the array was all.
22:43:10 <AnMaster> pikhq, indeed
22:43:29 <AnMaster> pikhq, it probably went into some other static data
22:43:41 <AnMaster> and valgrind --tool=memcheck (the default) can't detect that
22:43:51 <pikhq> Probably
22:44:13 <AnMaster> 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 <AnMaster> or something like that
22:44:35 <AnMaster> and if it is a non-dynamically allocated block memcheck won't do anything much with it
22:45:37 <pikhq> 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 <songhead95> brainfuck compilers for handhelds?
22:54:50 <songhead95> No interpreters!
22:55:05 <songhead95> I have never written a brainfuck interpreter for a handheld!!!
22:55:10 <songhead95> any tips?
22:55:18 <ais523> wow: http://code.msdn.microsoft.com/ookLanguage
22:55:24 <ais523> songhead95: hmm, you may be able to write one yourself
22:55:33 <ais523> BF interps/compilers are some of the easiest programs to write around
22:55:53 <ais523> as for that msdn link, it doesn't even seem to be an April Fool's joke
22:55:54 <songhead95> yes. I have written compilers for gameboy and iphone
22:55:57 <pikhq> The *only* thing that's even vaguely difficult is parsing it.
22:56:06 <songhead95> don't know how to write an interpreter though
22:56:08 <ais523> they've just taken to using esolangs as examples for some reason
22:56:16 <ais523> songhead95: basically, you try to mimic the structure of the program
22:56:28 <ais523> as in, if the command is >, then add one to the pointer, etc
22:56:32 <ais523> basically a massive switch statement
22:56:46 <songhead95> yes, I know I sound like a noob, but the '[' and ']' always get me
22:56:54 <songhead95> while looping always gets me
22:56:54 <ais523> 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 <songhead95> nice
22:57:23 <ais523> one easy one is to move forwards/backwards through the program counting brackets until you reach a balance
22:57:34 <pikhq> 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 <songhead95> 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 <pikhq> Likely.
22:58:42 <songhead95> and an interger reading it one character at a time
22:58:52 <songhead95> like code[instruction]
22:58:57 <pikhq> For the simple case, yes.
22:59:08 <songhead95> alright
22:59:15 <ais523> that works fine for BF, it's arguably designed so that that's possible
22:59:34 <songhead95> ok
22:59:48 <songhead95> I will something, and be back!
23:00:53 <songhead95> oh yeah, and one other thing.
23:00:59 <songhead95> I am going to be writing it in bc
23:01:17 <songhead95> so the putchar and getchar will be in base 10/16
23:01:53 <songhead95> or maybe I'll try C first
23:02:01 <songhead95> yeah that sounds easier
23:02:13 <songhead95> sorry i tend to talk to myself in public online
23:02:57 <ais523> doesn't matter, monologuing can be useful
23:03:04 <ais523> you sometimes get logreaders responding to you months later
23:03:13 <songhead95> oh
23:03:24 <ais523> or even just lurkers coming up with something insightful
23:03:35 <pikhq> Yeah, monologuing is fairly normal here.
23:03:54 <songhead95> \\////\\\\///\\\///
23:04:09 <songhead95> oh I was just playing with the keyboard and accidently hit enter
23:04:18 <songhead95> I don't get a prize for that, do I?
23:04:35 <Gregor> `google bc language
23:04:37 <HackEgo> 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 <Gregor> Oh, that bc :P
23:04:46 <ais523> o
23:04:59 <ais523> songhead95: meh, that's along the same lines as random o-ing
23:05:19 <ais523> 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 <ais523> *about
23:05:55 <Gregor> pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
23:05:56 -!- coppro has joined.
23:06:02 <Gregor> POOPPY!
23:06:23 <songhead95> I LIKE CHICKEN
23:07:09 <ais523> hmm, maybe I should link coppro to http://code.msdn.microsoft.com/ookLanguage too
23:08:10 <songhead95> Cross compiling C for the ipod touch, with headers like stdio.h
23:08:15 <songhead95> for the brainfuck
23:08:28 <Gregor> lawlwtf
23:08:46 <Gregor> songhead95: That violates the Apple SDK's license agreement :P
23:08:48 <coppro> Oo
23:08:48 <AnMaster> <ais523> hmm, maybe I should link coppro to http://code.msdn.microsoft.com/ookLanguage too <-- wth
23:09:17 <ais523> AnMaster: as far as I can tell, Microsoft wanted an example of adding a new language to Visual Studio
23:09:20 <AnMaster> ah
23:09:29 <ais523> and picked a relatively simple esolang in order to keep the example simple
23:09:32 <AnMaster> ais523, why didn't they pick intercal ;P
23:09:36 <AnMaster> hah
23:09:38 <songhead95> or unlambda
23:09:44 <ais523> it is still kind-of crazy that there's semi-offiical support for Ook! in Visual Studio 2010, though
23:09:55 <coppro> I refuse to believe that you can integrate new languages until they make it easy to use a custom build system
23:09:55 <ais523> heh, I guess both INTERCAL and Unlambda would be too complex for an example
23:09:57 <songhead95> or dupdog
23:10:08 <ais523> hardly anyone's heard of dupdog
23:10:10 -!- Oranjer has quit (Read error: Connection reset by peer).
23:10:24 <AnMaster> which one was dupdog now again?
23:10:38 <ais523> AnMaster: it was one developed in this channel when someone was messing with egobot
23:10:42 <ais523> http://esolangs.org/wiki/Dupdog if you need a link
23:11:19 <ais523> 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 <AnMaster> oh the dual interpreter one
23:11:53 <ais523> (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 <songhead95> my favorite category of the wiki is unknown computational class
23:12:47 <Gregor> My favorite category is Languages written by Gregor Richards
23:13:33 <coppro> By 'sub-TC', you mean you think it is not TC?
23:13:43 <AnMaster> ais523, idea: implement it in a sub-TC lang
23:13:51 <AnMaster> ais523, I don't think it would be impossible
23:13:54 <ais523> coppro: yep
23:14:05 <ais523> well, to be precise, sub-TC means it can't do everything that a TC lang can
23:14:22 <ais523> uncomputable is also non-TC, but it's over TC rather than under
23:14:32 <coppro> ok
23:14:45 <ais523> 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 <songhead95> a language that's only command is "X"
23:14:52 <ais523> you can define them but not implement them
23:14:53 <songhead95> X prints out one of two things
23:15:01 <songhead95> P=NP or P!=NP
23:15:01 <Gregor> ais523: Guhh ... not necessarily? A language can be uncomputable but not useful for computation, can't it?
23:15:09 <songhead95> who will write the interpreter
23:15:13 <ais523> Gregor: good point, it's independent
23:15:15 <AnMaster> ais523, that makes natural languages uncomputable right?
23:15:35 <ais523> AnMaster: natural languages are incompletely specified, you can't work out their computational class as a result
23:15:53 <ais523> 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 <AnMaster> ais523, well if you can describe an uncomputable language in natural languages...
23:16:16 <ais523> AnMaster: again, arguably you can't describe /anything/ in a natural language
23:16:26 <AnMaster> ais523, eh?
23:16:30 <ais523> and I'm not convinced being able to describe something is the same as being able to implement it
23:16:37 <AnMaster> hm okay
23:16:45 <ais523> AnMaster: because the meaning isn't pinned down to the level required to have a useful implementation
23:16:56 <songhead95> I have a slightly related question
23:17:21 <AnMaster> ais523, can you implement anything in a natural language? Well I guess IRP...
23:17:26 <ais523> 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 <ais523> AnMaster: I'm not sure if IRP coutns
23:17:32 <ais523> *counts
23:17:35 <Gregor> Yay IRP 8-D
23:17:36 <AnMaster> ais523, heh
23:17:42 <ais523> but it's one of those langs like HQ9+
23:17:46 <ais523> obviously useless, yet it makes you think
23:18:05 <AnMaster> ais523, it is far more powerful than HQ9+ if the interpreters are in the mood for it ;P
23:18:19 <ais523> AnMaster: yep, but rather less accurate
23:18:30 -!- Sgeo has joined.
23:18:34 <ais523> what do we have the computational class of HQ9+ down as atm anyway?
23:18:36 <AnMaster> ais523, well, it is probabilistic
23:18:46 <ais523> probabilisticness makes it so hard to tell
23:18:48 <AnMaster> and the probability decreases with the complexity of the program
23:19:10 <Sgeo> HQ9+ is probabalistic?
23:19:17 <AnMaster> Sgeo, no. IRP
23:19:33 <songhead95> 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 <ais523> songhead95: yep, the existence of an infinitely fast computer is one way to get uncomputable behaviour
23:20:04 <ais523> or, well, anything that lets you do infinite computations in finite time
23:20:37 <ais523> 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 <songhead95> so the halting problem is near-computable when the code doesn't take input, and is run on a superfast processor
23:21:13 <ais523> well, you can think of it as being only a "factor of infinity" away from being computable
23:21:17 <ais523> but that's rather a large factor
23:21:42 <AnMaster> ais523, it would be a major shock to me if someone found something that was an UTM and could be implemented
23:21:47 <AnMaster> as an UTM I mean
23:22:01 <songhead95> wouldn't a factor of infinity be infinity
23:22:02 <songhead95> ?
23:22:02 <ais523> AnMaster: because that requires infinite data storage
23:22:06 <ais523> songhead95: yes
23:22:10 <songhead95> so there goes my theory
23:22:13 <ais523> the point is, you need a computer that's infinitely more powerful than existing ones
23:22:18 <ais523> any finite number isn't good enough
23:22:19 <AnMaster> ais523, well yes that is why a real life UTM would be a major shock indeed
23:22:35 <ais523> AnMaster: real life extendable-storage is entirely possible, though
23:22:44 <ais523> and the only reason it wouldn't work is the Earth running out of resources to extend it
23:22:47 <AnMaster> 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 <ais523> AnMaster: the observable universe is finite
23:23:21 <Gregor> (by definition)
23:23:29 <AnMaster> 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 <Slereah> It could be infinite
23:23:47 <Gregor> Slereah: The UNIVERSE could be, the OBSERVABLE universe could not.
23:23:54 <Slereah> There were some theories about an infinite observable universe
23:24:03 <Slereah> Back in the static model
23:24:08 <AnMaster> ais523, sure, you might have to pause the thing if it caught up with you and continue extending it
23:24:15 <Gregor> I suppose if time goes infinitely back, sure, but that's all weird :P
23:24:16 <ais523> Gregor: by definition, combined with the values of a few constants which we happen to know the approximate values of
23:24:20 <ais523> AnMaster: pausing's fine
23:24:24 <ais523> the issue is literally running out of storage
23:24:30 <Sgeo> Scala: Good language, or bad language
23:24:36 <ais523> never used it
23:24:38 <Gregor> 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 <Slereah> The usual argument against it was the blackness of the sky
23:25:04 <Slereah> But there are actually some configuration where it doesn't happen
23:25:13 <Slereah> A universe with a fractal structure works
23:25:16 <ais523> pity alise isn't here, that's who you should ask for (relatively accurate) judgements on how good languages are
23:25:22 <AnMaster> 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 <AnMaster> as you can never catch up with the speed of light this is no problem
23:25:46 <Slereah> AnMaster : You cannot, actually
23:25:52 <ais523> AnMaster: it is a problem, because you can never get outside the observable area
23:25:54 <Slereah> There were some calculations done about this
23:25:58 <ais523> it doesn't get bigger, it gets smaller over time
23:26:04 <AnMaster> ais523, eh?
23:26:10 <Slereah> Also, space expansion
23:26:10 <AnMaster> how would that work
23:26:12 <ais523> so you can't "wait for things to become observable"
23:26:23 <AnMaster> ais523, how can it get smaller over time+
23:26:26 <AnMaster> s/+/?/
23:26:40 <ais523> AnMaster: think of it staying the same size but everything else getting bigger to compensate
23:26:44 <ais523> so effectively, it gets smallre
23:26:45 <ais523> *smaller
23:26:48 <Sgeo> Grrr
23:26:48 <AnMaster> err
23:27:00 <AnMaster> ais523, you mean that space expands? okay
23:27:02 <Sgeo> I did NOT want to be reminded about how there's a RoboZZle app for iPhone but not Android
23:27:14 <AnMaster> ais523, well does one end of the tape have to be able to observe the other end?
23:27:32 <ais523> AnMaster: yes, or you can /never/ get to the bit of the tape you can't observe
23:27:36 <ais523> as in, you have two different programs
23:27:40 <ais523> you seem to be missing the concept of "observable" here
23:27:55 <ais523> there is no way that anything that isn't observable, from your point of view, can ever affect you
23:27:59 <ais523> no matter what you do or what happens
23:28:03 <ais523> at least, with current physics
23:28:04 <AnMaster> 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 <ais523> AnMaster: no, it won't
23:28:18 <AnMaster> ais523, that makes no sense
23:28:19 <ais523> it's moving away from you at faster than the speed of light
23:28:20 <Sgeo> Would it be a bad thing to do most of my recreational programming in Scala?
23:28:28 <ais523> and the light gets further away from you over time
23:28:34 <AnMaster> ais523, well okay so the tape would break by that wouldn't it?
23:28:50 <AnMaster> ais523, how comes earth and everything isn't torn apart by this
23:28:50 <ais523> AnMaster: probably, yes
23:29:08 <ais523> AnMaster: because the effect over a small scale is too small to notice
23:29:22 <ais523> and gravity/elasticity is a much stronger effect on the small scale
23:29:30 <ais523> where by "small" I mean "smaller than a galaxy or so"
23:29:35 <AnMaster> ais523, okay what about a wormhole then when you start reaching the problematic area?
23:29:46 -!- augur has joined.
23:29:48 <ais523> AnMaster: wormholes may change the way this works
23:29:56 <ais523> but they haven't been proven to exist
23:30:12 <ais523> also, so would finding something with better information storage density than a black hole
23:30:22 <ais523> (note: that's a theoretical limit, nobody's entirely sure how to store information in a black hole)
23:30:24 <AnMaster> ais523, ?
23:30:31 <AnMaster> hah
23:30:35 <songhead95> I wonder what it's like outside of time-space, in a black hole
23:31:37 <ais523> 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 <ais523> looking at something that falls into a black hole from the outside, it's like it sort of stops and fades
23:33:02 <ais523> it falls in slowly over the course of forever, but quickly the light disappears
23:33:14 <ais523> because otherwise you could generate energy like that
23:33:23 <ais523> (exponential decay in theory)
23:33:32 <AnMaster> 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 <ais523> probably less accurate, the universe is just that weird
23:33:46 <AnMaster> I'm not saying it is so, just that it is worth considering
23:33:53 <ais523> theory: some amused deity is making the laws of physics up as they go along
23:34:07 <AnMaster> ais523, hah
23:34:11 <ais523> coming up with some new weirdness whenever they reach a level at which we can actually detect what happens
23:34:14 <AnMaster> ais523, sounds like discworld almost
23:34:15 <coppro> :D
23:34:18 <ais523> this seems to explain most of physics, IMO
23:34:26 <coppro> the answer is obvious
23:34:26 <Gregor> `addquote <ais523> theory: some amused deity is making the laws of physics up as they go along
23:34:29 <HackEgo> 149|<ais523> theory: some amused deity is making the laws of physics up as they go along
23:34:32 <coppro> the world is a computer simulation
23:34:49 <AnMaster> ais523, sure. I recently heard that from the point of view of a photon, every distance is zero
23:34:49 <coppro> at high levels, things work in simple manner because they've been programmed that way
23:34:50 <Gregor> coppro: However, not that lame "statistically we're a computer simulation" theory BS.
23:34:55 <AnMaster> also, time doesn't pass
23:35:09 <Gregor> The universe is a computer simulation, within a computer simulation, within a computer simulation ad infinitum.
23:35:12 <AnMaster> amongst many other things this doesn't explain the term "light year"
23:35:13 <AnMaster> :P
23:35:14 <coppro> at low levels, things break down because we get to the actual level near code
23:35:16 <coppro> Gregor: nah
23:35:18 <Gregor> The universe contains itself (in a simulation) and is its own cause.
23:35:24 <ais523> Gregor: that theory fails, because statistically speaking, we're likely to have a different theory of statistics from other simulations
23:35:31 <pikhq> Gregor: The universe is clearly a highly accurate universe implementation.
23:35:36 <Gregor> ais523: That's why I called it lame :P
23:35:40 <ais523> and as a result, the universe that contains ours is likely to have a different theory of statistics from ours
23:35:44 <ais523> and so, all bets are off
23:35:54 <AnMaster> what?
23:36:01 <Gregor> pikhq: What a hilariously useless statement X-D
23:36:11 <songhead95> The universe that contains ours...
23:36:13 <pikhq> I know, isn't it?
23:36:15 <AnMaster> oh and another thing: photons lack mass. Yet they can push things (see: solar sails)
23:36:20 <AnMaster> how the fuck is that possible
23:36:31 <coppro> they have momentum
23:36:33 <pikhq> AnMaster: Photons possess energy.
23:36:37 <AnMaster> pikhq, hm
23:36:58 <coppro> when they hit something, they vibrate slower and push a little
23:37:00 <ais523> they have (mass-energy)
23:37:04 <coppro> energy is conserved
23:37:07 <pikhq> Another fun thing: you know the weird photon/wave duality of light?
23:37:12 <pikhq> Not just light.
23:37:13 <AnMaster> pikhq, yes
23:37:15 <coppro> not just light
23:37:17 <AnMaster> pikhq, electrons too
23:37:18 <pikhq> Electrons do the same thing.
23:37:18 <AnMaster> and so on
23:37:20 <AnMaster> yeah
23:37:21 <coppro> and sound waves
23:37:22 <AnMaster> I know
23:37:26 <coppro> and fullerenes
23:37:28 <ais523> we should create a partical/wave-dual esolang
23:37:32 <Gregor> Uhh, not sound waves ... or fullerenes.
23:37:32 <AnMaster> coppro, sound wave behave like particles??
23:37:37 <coppro> yes
23:37:39 <ais523> phonons!
23:37:43 <AnMaster> [citation needed]
23:37:43 <pikhq> AnMaster: Yes.
23:37:49 <songhead95> do soundwaves have the same capabilities of photons, like pushing things?
23:37:59 <AnMaster> pikhq, how the fuck does a sound wave behave like a particle
23:38:04 <coppro> http://en.wikipedia.org/wiki/Phonon
23:38:05 <pikhq> songhead95: Sound waves are literally the pushing of things.
23:38:06 <ais523> songhead95: soundwaves can certainly push things, given that they're inherently mechanical anyway
23:38:14 <Slereah> heh
23:38:50 <AnMaster> wth
23:38:58 <coppro> 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 <Sgeo> fullerenes?
23:39:22 <AnMaster> coppro, what is the wavelength of a coppro?
23:39:32 <AnMaster> Sgeo, carbon allotrope (sp?)
23:39:33 <pikhq> AnMaster: Fairly low.
23:39:34 <coppro> depends on how fast I'm moving
23:39:43 <ais523> I've seen a book where the wavelength of a human was calculated
23:39:55 <ais523> and it was really really incredibly small
23:39:56 <AnMaster> ais523, heh, what did it end up at
23:40:03 <ais523> can't remember the exact value
23:40:14 <AnMaster> ais523, well, to the order of magnitude?
23:40:26 <ais523> AnMaster: smaller than even most stuff that comes up in fundamental physics
23:40:31 <songhead95> hahaha I played wikipedia race, and in 14 links got from Phonon to house of wax(film)
23:40:40 <ais523> maybe around 10^-30, to an order of magnitude of order of magnitudes
23:41:01 <AnMaster> heh
23:41:10 <AnMaster> ais523, in meters?
23:41:16 <ais523> who cares
23:41:26 <ais523> could be any unit you like at that degree of inaccuracy
23:41:27 <coppro> apparently, when walking, my wavelength is roughly 1.5*10^-35 metres
23:41:32 <AnMaster> ais523, well if it was in Hz it would be rather different
23:41:35 <AnMaster> than if it was in meters
23:41:47 <coppro> Hz are not a measure of distance
23:41:52 <AnMaster> coppro, correct
23:41:55 <AnMaster> 1/distance
23:42:05 <AnMaster> which is why it would end up so differently
23:42:08 <coppro> 1/period
23:42:17 <pikhq> AnMaster: http://en.wikipedia.org/wiki/Matter_wave Calculate it yourself.
23:42:18 <pikhq> :)
23:42:23 <coppro> Hz = s^-1
23:42:49 <Slereah> You can actually do quantum mechanics without the whole wave thing
23:42:54 <AnMaster> hm how did you get from wavelength to hz then?
23:42:56 <AnMaster> ...
23:43:01 <AnMaster> I'm too sleepy
23:43:38 <coppro> Wavelength is related to frequency by velocity
23:43:44 <AnMaster> ah
23:43:56 <Slereah> *momentum
23:44:00 <coppro> no
23:44:15 <Slereah> (yes)
23:44:21 <coppro> momentum has a mass dimension
23:44:28 <coppro> wavelength and frequency do not
23:44:35 <Slereah> Hence the Planck constant
23:44:49 <coppro> I wasn't talking about the de Broglie equation
23:44:56 <Slereah> Oh.
23:44:59 <Slereah> But
23:45:06 <Slereah> This also works for light
23:45:10 -!- augur has quit (Ping timeout: 264 seconds).
23:45:11 <Slereah> And phonons
23:45:15 <coppro> f\ = v
23:45:17 <Slereah> Even though they're only pseudoparticles
23:45:35 <coppro> for light, this is extra simple because v = c in a vacuum
23:46:40 <oklopol> fullerons
23:47:02 <oklopol> no wait i suppose fullerene already refers to the particle version
23:47:36 <coppro> fulleraves?
23:47:46 <AnMaster> full rave?
23:50:12 -!- Oranjer has quit (Read error: Connection reset by peer).
23:51:00 -!- Oranjer has joined.
23:55:00 <songhead95> do people usually get mad if you haphazardly post large chunks of code and ask what your doing wrong?
23:55:56 <Slereah> songhead95 : Post them on pastebin
23:56:08 <songhead95> ok
23:57:25 <songhead95> http://pastebin.com/ZD1faJ6X
23:57:42 <songhead95> I followed earlier instructions without adding the loops yet
2010-04-14
00:06:22 <songhead95> did I make an error so embarrassing that it needs no response?
00:06:43 <ais523> no, I just wasn't paying attention
00:06:44 * ais523 looks
00:07:23 <ais523> songhead95: barring the non-implementation of [ and ], that's almost identical to the original BF interp
00:07:34 <pikhq> Yup, that's the correct behavior.
00:08:07 <songhead95> than how come when I compile it and write ++++ ++++ ++++ ++++ ++++ ++++ ++++ ++++ ++++ ++++ .
00:08:13 <songhead95> ^D
00:08:15 <songhead95> it does nothing
00:09:04 <ais523> strange
00:09:15 <ais523> are you sure the output wasn't overwritten by your prompt?
00:09:28 <ais523> try ++++ ++++ ++++ ++++ ++++ ++++ ++++ ++++ ++++ ++++ . > +++++ +++++ .
00:09:55 <songhead95> still nothing
00:10:51 <ais523> bizarre
00:11:02 <songhead95> what happens when you compile it?
00:11:04 <ais523> oh, got it
00:11:11 <ais523> the line "interpreter=0" needs to be moved one line earlier
00:11:19 <songhead95> oooh
00:11:35 <ais523> as it is, you've put most of your code in the C equivalent of a header comment
00:11:44 <ais523> (using two while loops with identical conditions, so the second one can't run)
00:14:11 <songhead95> but if when the first one ends, and the interpreter is set to 0, the array code is used read only
00:15:09 <songhead95> and I am still baffled at the thought of the loops
00:18:20 <songhead95> so on "case '['"
00:18:39 <songhead95> i need a var named nested to look for the nearest ']'
00:18:50 <songhead95> but execute everything on the way if it is 1
00:19:00 <songhead95> or wait
00:19:01 <songhead95> no
00:20:36 <songhead95> didn't someone say there were 5 or 6 ways of doing this
00:20:37 <songhead95> ?
00:20:49 <AnMaster> of what? loops in bf? probably
00:21:02 <AnMaster> I would put it in a linked list with down wards nodes for loops
00:21:06 <AnMaster> if doing bf in C
00:21:15 <AnMaster> the recursive parser would put it in that
00:21:25 <AnMaster> trivial, done it when writing bf compilers
00:21:44 <AnMaster> bf *interpreters* never interested me much, but the same idea should work
00:22:05 <songhead95> what about a two dimensional array that is different levels of nested loops?
00:22:12 <songhead95> wait no it would work different
00:22:25 <AnMaster> that sounds weird
00:22:27 <songhead95> auughh
00:22:40 <songhead95> have you read my pastebin?
00:22:43 <AnMaster> songhead95, you just need to track [ as you go along
00:22:53 <AnMaster> songhead95, no I'm not on a device where I can easily do that
00:23:20 <AnMaster> songhead95, anyway track [ in a stack, then when you hit a ] you pop the last [ position
00:23:22 <AnMaster> that works too
00:24:04 <AnMaster> you need to add the tests at [ and at ] for if the loop should continue
00:24:20 <AnMaster> well, either that or keep track of where the ] was when you jump back to [
00:24:49 <AnMaster> songhead95, as an optimisation you can store the position of the matching ] to the [ when parsing
00:24:55 <songhead95> I can't get too into this now, but I will be back!
00:25:06 <AnMaster> otherwise if you never enter the loop you need to run along the code and not executing it
00:25:09 <AnMaster> 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 <Rugxulo> 03:12:29 <fizzie> Aw, Rugxulo already went?
01:20:13 <Rugxulo> yeah, after an hour + half of no chat :-)
01:20:23 <Rugxulo> (vastly different timezones don't help either)
01:20:49 <augur> adrian is so silly 8D
01:21:42 <Rugxulo> I assume -DFUNGE isn't really needed for ff3 (unless based upon Marsh, doubt it)
01:22:23 <Rugxulo> would be interesting to see somebody with a behemoth of a fast machine try the "benchmark" (AnMaster? Deewiant?)
01:22:29 <Sgeo> Yay! Chrome spontaneously froze
01:22:36 <Rugxulo> on Linux?
01:22:41 <Sgeo> Windows
01:22:48 <Rugxulo> Win7 x64?
01:23:03 -!- aschueler has quit (Quit: leaving).
01:23:06 <Sgeo> No
01:23:08 <Rugxulo> are you sure? it's usually most stable on Windows
01:23:09 <Sgeo> WinXP
01:23:22 <Rugxulo> 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 <Rugxulo> that's probably why, it uses more RAM than Firefox with more tabs open
01:23:52 <Sgeo> :/
01:24:13 <Rugxulo> 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 <Rugxulo> gah, stupid "reboot now?" reminder over and over again
01:24:39 <Sgeo> Rugxulo, I remember there's a trick to disable that, but don't remember what it was
01:24:52 <Rugxulo> sure, kill it ;-)
01:27:04 <Sgeo> What's the nicest way to determine dpi?
01:30:42 <Gregor> Sgeo: Put your eye RIIIIIGHT next to the monitor and count.
01:32:47 <Sgeo> Why does my emulated Android phone have no net connection?
01:32:54 <Sgeo> The one I made before had one :/
01:40:20 * Sgeo goes to play in the emulator's terminal emulator
01:41:03 <Rugxulo> what kind of stuff can you run on it?
01:41:25 <Sgeo> Um, Android apparently uses something called Dalvik
01:43:12 <Sgeo> Oh, huh, networking's working now
01:43:33 <Rugxulo> Dalvik is some lite Java-ish VM, right?
01:43:58 <Sgeo> 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 <Rugxulo> fizzie, still here? you should try "bef2c -p -o" and use GCC on that
05:38:56 <Rugxulo> speeds up the (lame) "benchmark" a lot that way
05:39:12 <Rugxulo> AnMaster, it doesn't use string mode mostly because bef2c doesn't handle that
05:39:24 <Rugxulo> so I couldn't do "d" instead of 91+:*
05:40:04 <Rugxulo> now only takes 20 secs. (bef2c/GCC-compiled output) on this P4
05:43:02 <Rugxulo> actually, I think I accidentally timed the 4.2.3 output in the whole comparison that I quoted earlier
05:43:13 <Rugxulo> I can't match the time for GCC 4.4.2 on this P4
05:43:35 <Rugxulo> apparently 4.4.2 is much faster (52 secs.) vs. 4.2.3 (76 secs) or something like that
05:43:50 <Rugxulo> but whatever, the comparison is still valid, I used the same .EXE on each machine :-P
05:44:26 <Rugxulo> bah, stupid timezones
05:44:38 <AnMaster> <Rugxulo> 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 <pikhq> And a fairly simple part of Befunge.
05:45:00 <Rugxulo> 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 <AnMaster> yes
05:45:13 <Rugxulo> bef2c doesn't handle "p" or string mode
05:45:18 <AnMaster> Rugxulo, buggy
05:45:19 <Rugxulo> blame Pressey, not me ;-)
05:45:27 <AnMaster> true
05:46:01 <pikhq> Rugxulo: Reflection on unknown is fairly useful for Befunge 98.
05:46:10 <Rugxulo> yeah, but for --befunge93 ????
05:46:12 <pikhq> Where it is entirely possible for an instruction to not be supported.
05:46:26 <pikhq> And that is just common behavior in Befunge 93.
05:46:27 <Rugxulo> bef.c (without -q) whines but still ignores 'em
05:46:45 <pikhq> But Befunge 93 does not define that behavior.
05:46:45 -!- Oranjer has left (?).
05:46:48 <pikhq> :)
05:47:05 <Rugxulo> I'll admit, I haven't tested every B93 implementation ever, but 99% of them don't reflect on ';' (etc)
05:47:19 <pikhq> Mine does. ;)
05:47:37 <Rugxulo> then you'll be glad to know that I worked around it in two of my other (lame) .bef scripts
05:47:51 <fizzie> Rugxulo: I get something like 0.2 seconds for the benchmark in jitfunge.
05:48:01 <AnMaster> Rugxulo, .bef?
05:48:04 <AnMaster> isn't it .bf
05:48:16 <Rugxulo> I prefer ".bef"
05:48:23 <Rugxulo> Brainf*** uses .b and sometimes .bf
05:48:24 <AnMaster> .b -> brainfuck; .bf -> befunge93; .b98 -> befunge98
05:48:36 <Rugxulo> besides, the original interpreter was "bef", so ...
05:48:51 <pikhq> 16 seconds for my interpreter.
05:48:58 <Rugxulo> on what hardware?
05:48:58 <AnMaster> Rugxulo, yeah by that logic befunge98 should be .ffbi
05:49:04 <Rugxulo> also try "bef2c -p -o"
05:49:11 <Rugxulo> no, but you know what I mean
05:49:24 <pikhq> Phenom II x3 710.
05:49:30 <AnMaster> Rugxulo, I don't?
05:49:37 <Rugxulo> since "bf" was ambiguous, I think "bef" is more appropriate, *especially* since the original interpreter was named "bef" (and not "bf")
05:49:38 <pikhq> Also: I'm not *sure* how long cfunge takes on it.
05:49:49 <Rugxulo> pikhq, what GCC?
05:50:06 <pikhq> (I killed it after some 11 minutes)
05:50:11 <fizzie> pikhq: Tried ff3 on your box?
05:50:13 <pikhq> gcc (Gentoo 4.4.3 p1.0) 4.4.3
05:50:14 <Rugxulo> ooh, x3, lucky dog ... I saw an ad for an AMD x3 only once, almost wanted it just for the novelty ;-)
05:50:14 <AnMaster> pikhq, that was 64-bit or 32-bit?
05:50:17 <pikhq> fizzie: Yeah, 5 seconds.
05:50:26 <pikhq> AnMaster: *Oh*. Probably 64-bit. XD
05:50:35 <AnMaster> pikhq, yeah 64-bit is default
05:50:47 <AnMaster> pikhq, have fun during the next 800+ years!
05:50:50 <Rugxulo> heh
05:51:12 <pikhq> AnMaster: Now then.
05:51:26 <AnMaster> (probably much more than that, it doesn't scale linearly with number of bits I bet)
05:51:27 <Rugxulo> pikhq, I dunno if 16 secs. is optimal for your advanced hardware ... for a P4, sure, but for a Phenom II ... ???
05:51:48 <pikhq> Rugxulo: My interpreter could be much faster.
05:52:07 <pikhq> Cfunge takes 10s.
05:52:09 <Rugxulo> they all can ;-)
05:52:26 <pikhq> Ff3 takes 5.
05:53:03 <pikhq> Amusingly, if I were to *make* mine faster, I would basically have the same code as ff3.
05:53:06 <AnMaster> pikhq, really? not too shabby
05:53:13 <AnMaster> pikhq, did you use -march=native?
05:53:15 <Rugxulo> have you tried bef2c yet?
05:53:33 <Rugxulo> -march=native didn't help at all here (P4)
05:53:52 <AnMaster> Rugxulo, you tried cfunge too?
05:53:56 <pikhq> 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 <AnMaster> pikhq, ah
05:54:03 <Rugxulo> no, cfunge won't run on Win32, remember?
05:54:15 <AnMaster> Rugxulo, how would I remember you use win32 though?
05:54:22 <AnMaster> Rugxulo, also iirc ehird got it working under cygwin
05:54:29 <AnMaster> with gcc 3.x
05:54:36 <pikhq> I've been considering writing me a Befunge '98.
05:54:40 <Rugxulo> latest Cygwin has (IIRC) GCC 4.x
05:55:00 <AnMaster> pikhq, oh btw, how long does ccbi1 and ccbi2 take on that benchmark for you?
05:55:16 <pikhq> AnMaster: I am *not* setting up a fucking D compiler.
05:55:30 <Rugxulo> don't have to, binaries provided on Deewiant's site
05:55:39 <pikhq> It has just given me too damned much pain.
05:55:46 <AnMaster> pikhq, he has binaries
05:55:46 <pikhq> Rugxulo: Okay then.
05:56:09 <fizzie> fis@eris:~/src/jitfunge/src$ time ./jitfunge ../../ff/benchmark.bef 2>/dev/null
05:56:12 <fizzie> 2147483596
05:56:14 <fizzie> real 0m0.153s
05:56:21 <pikhq> fizzie: Nice.
05:56:26 <AnMaster> fizzie, system specs?
05:56:27 <Rugxulo> http://users.tkk.fi/~mniemenm/files/befunge/interpreters/ccbi/ccbi-linux-x86-64.txz
05:57:11 <fizzie> AnMaster: Athlon X2 5600+ or something; ff3 runs benchmark.bef in 6.something seconds.
05:57:21 <AnMaster> ah
05:57:58 <pikhq> The binary has 64-bit cells.
05:58:00 <AnMaster> fizzie, did it properly execute it or was it skipping most due to some bug?
05:58:24 <Rugxulo> Deewiant, why no comparison with FBBI anymore? too buggy??
05:58:24 <fizzie> AnMaster: Judging from the result, I'd say it does it right.
05:58:25 <AnMaster> pikhq, oh right
05:58:30 <Rugxulo> (re: Mycology)
05:58:43 <pikhq> 32-bit build does *not*. :)
05:59:29 <pikhq> ccbi takes 19 seconds.
05:59:56 <AnMaster> pikhq, hah. Well that is a 32-bit pointer build
06:00:16 <AnMaster> it might explain why it is slower in part
06:00:45 <pikhq> And it takes 45 seconds with --befunge93.
06:00:50 <AnMaster> pikhq, haha
06:00:53 <pikhq> That is a *slow* b93 interpreter. :P
06:00:59 <AnMaster> pikhq, well he said he worked on it
06:01:39 <AnMaster> 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 <AnMaster> everything else follow 98 rules still
06:01:57 <pikhq> AnMaster: I noticed, actually.
06:02:02 <AnMaster> consider it just a compatibility mode
06:02:08 <AnMaster> not a full befunge93 mode
06:02:25 <AnMaster> I really lack interest in doing anything more advanced for befunge93
06:02:37 <pikhq> Yeah...
06:02:49 <pikhq> If you *really* want to, just ship ff3 or something.
06:02:52 <Rugxulo> snob ;-)
06:02:58 <AnMaster> Rugxulo, to me?
06:03:00 <AnMaster> heh
06:03:06 <Rugxulo> yes (semi-jokingly)
06:03:09 <AnMaster> right
06:03:13 <augur> http://ocw.mit.edu/OcwWeb/hs/geb/VideoLectures/index.htm
06:03:25 <AnMaster> Rugxulo, I just find befunge93 fairly boring compared to befunge98
06:03:46 <AnMaster> pikhq, can you check how long efunge takes on it?
06:03:55 <pikhq> AnMaster: Link?
06:04:01 <AnMaster> pikhq, do you have bzr?
06:04:13 <AnMaster> I haven't yet made a release
06:04:15 <pikhq> AnMaster: No.
06:04:24 <AnMaster> let me see if it has tarballs
06:04:42 <pikhq> 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 <AnMaster> pikhq, https://code.launchpad.net/~anmaster/efunge/trunk
06:04:55 <Rugxulo> AnMaster, so boring that you can't implement compatibility? tsk tsk ...
06:05:07 <AnMaster> Rugxulo, would slow me down :P
06:05:08 <Rugxulo> does anyone here have write access to the esolang archive?
06:05:22 <AnMaster> pikhq, there is no release yet sorry
06:05:22 <pikhq> Making all of the actual interpreting instructions step just via goto *ip++, goto *ip--, or goto *ip+=delta.
06:05:35 <Rugxulo> after all the time you "saved" with your lightning-fast C99/POSIX/x64+SIMD B98 interpreter?? :-P
06:05:43 <AnMaster> pikhq, anyway efunge will either be slower or faster than Language::Befunge. Which of those I don't know
06:05:59 <AnMaster> Rugxulo, how do you mean saved?
06:06:06 <Rugxulo> conserved
06:06:17 <AnMaster> Rugxulo, oh I meant "slow me down" as in "slow interpreter down"
06:06:37 <Rugxulo> keep the fast bits for B98 mode, others for B93
06:06:49 <pikhq> (Oh, and obviously invalidating precompiled threads upon code modification)
06:06:57 <pikhq> Thoughts?
06:07:01 <Rugxulo> I can't think of any B93 script that needs a "fast" interpreter anyways
06:07:05 <AnMaster> Rugxulo, still. You need to have two main loops and two different switch statements
06:07:14 <AnMaster> Rugxulo, this benchmark? life.bf?
06:07:30 <Rugxulo> write a B93 interpreter in B98, then, if that's all that fascinates you ... best of both worlds :-))
06:07:41 <AnMaster> pikhq, ?
06:07:54 <AnMaster> Rugxulo, hah
06:08:16 <Rugxulo> (seriously, though, esolang archive is dreadfully anemic, all of us could add lots and lots to it)
06:08:47 <AnMaster> mhm
06:08:49 <pikhq> 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 <AnMaster> pikhq, you mean like ff3?
06:09:13 <pikhq> For Befunge-98.
06:09:26 <AnMaster> pikhq, you still have non-cardinal delta
06:09:30 <AnMaster> like going diagonally
06:09:40 <AnMaster> or (3,48) or whatever
06:09:42 <Rugxulo> BTW, just vaguely curious, anybody ever used the Sponge "compiler"?
06:09:46 <pikhq> Argh, yes. That would require significantly more work.
06:10:00 <AnMaster> Rugxulo, the scheme→befunge one?
06:10:05 <Rugxulo> yes
06:10:06 <AnMaster> tried it
06:10:32 <pikhq> AnMaster: I'd be tempted to treat that as a slow case.
06:10:37 <pikhq> :P
06:10:39 <AnMaster> Rugxulo, iirc it lacked call/cc which made me somewhat uninterested
06:10:52 <pikhq> (how much code actually *uses* non-cardinal delta, anyways?)
06:11:04 <AnMaster> pikhq, I use 11x fairly often
06:11:07 <Rugxulo> he didn't seem to provide any examples, so I was curious if it was "just because" or ...
06:11:19 <pikhq> Hmm...
06:11:30 <AnMaster> pikhq, also remember the code may not be compact. You may have a single value at (1778246873,6472673) or whatever
06:12:08 <AnMaster> Rugxulo, who is/was "he" there?
06:12:18 <pikhq> Non-cardinal delta makes it a royal pain to *cache* any of the threaded code.
06:12:19 <Rugxulo> whoever wrote Sponge (I forget ...)
06:12:21 <AnMaster> ah
06:12:40 <AnMaster> pikhq, See, befunge98 is a lot more interesting ;P
06:12:45 <AnMaster> a greater challenge
06:12:59 <AnMaster> bbl, going to university
06:13:00 <pikhq> AnMaster: A single value at (1778246873,6472673)?
06:13:16 <pikhq> Why, that would just be an array with two elements!
06:17:58 <fizzie> 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 <fizzie> It would have been nicer if it could have moved the stack push/pop out of the loop.
06:25:00 <pikhq> Faster than what nearly anything else is going to do with it.
06:26:01 <Rugxulo> sed -e 's/\(.\{80\}\).*/\1/' -e '25q' mycology.b98 >mycology.b93
06:26:07 <Rugxulo> (seems correct, easier than manually doing it)
06:26:55 <Rugxulo> that's what I get for sticking with 128x128 for no good reason :-/
06:27:08 <Rugxulo> sorry, just rambling to myself, carry on ...
06:27:42 <Rugxulo> (none of you ever did benchmarking after running through bef2c, oh well ...)
06:29:01 <Rugxulo> 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 <pikhq> Because I decide what to do on undefined behavior. :P
06:30:37 <ais523> what undefined case is this?
06:30:59 <Rugxulo> reflecting on unrecognized chars in B93 mode
06:31:01 <pikhq> ais523: What to do on unknown characters, Befunge93.
06:31:04 <ais523> 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 <ais523> pikhq: ah
06:31:08 <Rugxulo> original / official doesn't reflect, but ...
06:31:21 <Rugxulo> BTW, ais523, did you release a new Intercal on April 1?
06:31:26 <ais523> no
06:31:30 <pikhq> In Befunge93, most things are undefined.
06:31:33 <ais523> I don't have one to release, I've hardly worked on it
06:31:39 <Rugxulo> awww :-/
06:31:50 <ais523> 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 <ais523> so people with more spare time than me can fork it, or whatever
06:32:12 <Rugxulo> what, you're giving up? *sniff*
06:32:22 <fizzie> Hee, with -DUNSAFE_STACK, it goes nicely: http://zem.fi/~fis/jitbench-unsafe.txt
06:32:27 <fizzie> .LBB12_2: # %Entry0
06:32:28 <fizzie> # =>This Inner Loop Header: Depth=1
06:32:28 <fizzie> addECX, -100
06:32:28 <fizzie> testECX, ECX
06:32:28 <fizzie> jle.LBB12_2
06:32:44 <fizzie> Hm, raw tabs. Anyway.
06:32:59 <ais523> Rugxulo: no, not really
06:33:04 <ais523> just, unlikely to work on it very fast
06:33:21 <ais523> I /did/ get a bug report recently, which I may try to fix
06:33:32 <ais523> and a feature request, denied on the basis that it already existed with the same syntax in Perl and PHP
06:34:28 <nooga> what request exactly?
06:34:47 <ais523> the $$variable syntax from Perl/PHP
06:34:54 <ais523> (which would become ..1 or whatever in INTERCAL)
06:35:01 <pikhq> ais523: Though crazy, yeah. Definitely not for INTERCAL.
06:35:12 <pikhq> It's insufficiently crazy -- someone's done it!
06:35:22 <ais523> yep
06:35:52 <Rugxulo> speaking of crazy, I wonder if AnMaster has considered using Pash (Powershell subset) for anything ;-)
06:36:33 <Rugxulo> Pash = crazy, not AnMaster (obviously?)
06:36:38 -!- augur has quit (Quit: Leaving...).
06:36:53 <ais523> just being here is evidence of being crazy, or else lost
06:36:55 <Rugxulo> ah, forgot he left for university, bah
06:37:09 * Rugxulo still doesn't understand _Lost_
06:37:34 <ais523> I don't think you're meant to understand it
06:38:59 <Rugxulo> well, there aren't that many episodes left!!
06:46:05 -!- oerjan has joined.
06:47:26 <Rugxulo> damn Wikipedia is weird ... why hyperlink the number "4" ???
06:47:50 <oerjan> *some of wikipedia's editors
06:48:05 <oerjan> i don't think it's generally recommended behavior :D
06:48:10 <ais523> Rugxulo: if it's a date, that's fine
06:48:11 <oerjan> *its
06:48:18 <Rugxulo> not a date
06:48:20 <nooga> uh
06:48:28 <ais523> piping it to [[4 (number)]] is weird, and possibly should be delinked
06:48:30 <Rugxulo> I've also seen a link to a page for "motherf**ker" !!
06:48:33 <ais523> linking it to [[4]] is just plain wrong
06:48:47 <Rugxulo> all because "Epic Beard Man" [sic] is famous for that on his shirt :-))
06:49:02 <Rugxulo> so yeah, quite absurdly useless
06:49:19 <oerjan> *it's
06:49:39 <oerjan> too early for me
06:50:13 <Rugxulo> "4 (four) is a number, numeral, and glyph. It is the natural number following 3 and preceding 5."
06:50:19 <Rugxulo> (turning into Sesame Street?)
06:50:31 <ais523> Rugxulo: just in case you don't know what 4 is
06:50:46 <ais523> in some esolangs, defining numbers can be rather tricky
06:51:06 <ais523> in Underload, for instance, you'd probably define 4 as (:::***), but might use any number of other definitions
06:51:17 <Rugxulo> "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 <Rugxulo> I'm so glad Wikipedia cleared that up for me ;-)
06:52:11 <Rugxulo> and we (#esoteric) are the crazy ones??? :-P
06:52:59 <oerjan> everyone is crazy, just some people are so crazy they think they aren't
06:55:11 <Rugxulo> 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 <Rugxulo> ah well, gonna jet ...
07:22:43 <Rugxulo> 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 <Deewiant> In case Rugxulo logreads...
09:58:41 <Deewiant> 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 <Deewiant> 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 <Deewiant> 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 <fizzie> Deewiant: Of course you can just customize the interp for the particular program:
10:05:55 <fizzie> fis@eris:~/src/ff$ gcc -o ff3 ff3.c -DINTERLEAVED -O2
10:05:56 <fizzie> fis@eris:~/src/ff$ time ./ff3 benchmark.bef
10:05:56 <fizzie> 2147483596
10:05:56 <fizzie> real 0m6.119s
10:05:56 <fizzie> user 0m6.080s
10:05:58 <fizzie> sys 0m0.000s
10:06:00 <fizzie> fis@eris:~/src/ff$ gcc -o ff3 ff3.c -DINTERLEAVED -DPF_X=15 -DPF_Y=1 -O2
10:06:03 <fizzie> fis@eris:~/src/ff$ time ./ff3 benchmark.bef
10:06:05 <fizzie> 2147483596
10:06:08 <fizzie> real 0m2.429s
10:06:10 <fizzie> user 0m2.420s
10:06:13 <fizzie> sys 0m0.000s
10:06:18 <Deewiant> fizzie: That's cheating. :-P
10:06:57 <fizzie> Deewiant: No, it's... uh, being environmentally conscious! No sense in wasting bytes!
10:08:19 <Deewiant> 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 <fizzie> 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 <Deewiant> Which would be very cheap in -93
10:10:25 -!- lereah_ has joined.
10:10:30 <fizzie> 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 <Deewiant> You're sick in bed and on IRC about Befunge? That's clever :-P
10:11:27 <fizzie> What else is there to do?
10:12:07 <Deewiant> Typically when I'm bedridden I pretty much just sleep and eat
10:12:30 <fizzie> 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 <Deewiant> 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 <AnMaster> <Rugxulo> speaking of crazy, I wonder if AnMaster has considered using Pash (Powershell subset) for anything ;-) <-- I never heard of pash before
15:35:15 <AnMaster> <pikhq> 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 <AnMaster> 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 <AnMaster> <fizzie> 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 <AnMaster> <oerjan> 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 <oerjan> sometime not just after i woke up
15:43:37 <AnMaster> oerjan, okay. But that doesn't spec how long
15:43:39 <AnMaster> like
15:43:46 <AnMaster> half an hour?
15:43:48 <AnMaster> 1 hour?
15:43:50 <AnMaster> 3 hours?
15:43:57 <oerjan> and perhaps after i finish breakfast, too
15:44:06 <AnMaster> oerjan, and why were you using irc during/before breakfast?
15:44:53 <Deewiant> Why not?
15:45:19 <AnMaster> Deewiant, well if he had problems with it
15:45:48 <oerjan> um it was a joke?
15:45:53 <AnMaster> oh
15:47:26 <oerjan> admittedly there is one reason not to - i _do_ seem to accumulate crumbs in my laptop keyboard
15:47:41 <oerjan> 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 <AnMaster> oerjan, heh
16:07:40 <AnMaster> oerjan, I only have hair in it, mostly due to not eating at computer very much
16:13:11 <Sgeo> Wanting to use Scala even when Java interoperability is not required isn't a bad thing, is it?
16:14:11 <oerjan> i think scala is interesting in itself
16:14:24 <oerjan> dammit crumb under f key
16:14:56 <oerjan> seems to have vanished
16:15:27 <oerjan> i hear it's type system has become even more advanced since when i looked (briefly) at scala
16:15:40 <oerjan> *its
16:16:45 <oerjan> what the heck avg's whole computer virus scan has become three times faster since last time
16:16:47 <Sgeo> Type erasure's no fun though, and its sole reason for existance is Java compatibility
16:16:54 <oerjan> i guess it's got better at skipping things
16:17:57 <oerjan> oh wait or maybe...
16:21:45 <oerjan> nope all the old java versions are still there (i had to reinstall the latest one recently)
16:22:13 <oerjan> avg used to spend an eternity inside those
16:22:52 <oerjan> you know, at this rate i might start scanning more often than once a month again ;D
16:24:05 <Sgeo> 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 <pikhq> AnMaster: Two elements for that column. That's just the threaded code array.
16:43:33 <pikhq> And I'm not sure how well this could be... Cached. At all.
16:46:12 <AnMaster> pikhq, so how are you storing funge space in this model? Remember it can be very sparse
16:47:17 <AnMaster> <oerjan> 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 <oerjan> er...
16:47:45 <AnMaster> oerjan, bad joke
16:47:49 <oerjan> let's hope not.
16:47:57 <AnMaster> oerjan, heh
16:47:59 <oerjan> it _did_ find three trojans
16:48:09 <oerjan> (hiding in the same place as usual)
16:48:17 <AnMaster> what's the "same places" as usual?
16:48:26 <AnMaster> pron dir?
16:48:28 <AnMaster> or what ;P
16:48:35 <AnMaster> brb
16:49:16 <oerjan> C:\RECYCLER
16:49:54 <oerjan> at least i've seen that before
16:50:26 <Sgeo> oerjan, you hope that what AnMaster said wasn't a joke?
16:50:39 <oerjan> no, that it wasn't real
16:53:11 <pikhq> 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 <oerjan> oh laundry, right
16:56:46 <oerjan> well, after i've finished eating
16:57:25 <AnMaster> back
16:57:28 <oerjan> 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 <pikhq> AnMaster: Yeah, a hash table is definitely the simplest data structure for *storing* the Befunge space.
18:03:14 <pikhq> 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> <pikhq> AnMaster: Yeah, a hash table is definitely the simplest data structure for *storing* the Befunge space. <-- not the fastest
18:12:29 <AnMaster> 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 <pikhq> No, I never said it was the fastest.
18:13:17 <AnMaster> pikhq, something like setup() load_file(), dump_to_file(), get(), set(), get_bounds() (for y) and perhaps wrap_ip()
18:13:31 <pikhq> "Simple" and "fast" are very rarely the same thing. :)
18:13:52 <Deewiant> They often are if you allow the thing to be "wrong" as well
18:15:26 <Asztal> 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 <Deewiant> Expensively :-P
18:15:44 <Asztal> Yeah, I thought so. :P
18:16:04 <Deewiant> There are ways to cheapen it but basically, expensively.
18:16:25 <Asztal> Good thing my funge space is essentially a bounding volume hierarchy.
18:18:47 <AnMaster> 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 <pikhq> 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 <AnMaster> Deewiant, I have considered that. What about specialised hardware to do it?
18:19:55 <Deewiant> Go ahead; you'll have to donate me some if you want it to show up in Fungicide though :-P
18:20:04 <AnMaster> hah
18:20:27 <AnMaster> 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 <ais523> AnMaster: what exactly do you mean by that?
18:20:58 <ais523> there's certainly hardware which can sort n packets in log n time
18:21:12 <ais523> hmm, no, log m time, where m is the maximum address
18:21:17 <AnMaster> 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 <ais523> but it takes rather a lot of hardware to do so
18:21:24 <AnMaster> associated*
18:21:31 <ais523> AnMaster: isn't that just a hash?
18:21:49 * pikhq goes to kanji review
18:22:01 <AnMaster> ais523, iirc it basically have lots of parallel comparing circuits
18:22:07 <AnMaster> one for each "slot" in memory
18:22:11 <AnMaster> so it can check all values at once
18:22:31 <AnMaster> ais523, http://en.wikipedia.org/wiki/Content-addressable_memory
18:22:51 <ais523> ah, ok
18:23:03 <ais523> hardware that does constant-time hash-/reversing/, that makes more sense
18:23:32 <ais523> hmm, or maybe forwards, depending on your point of view
18:23:37 <AnMaster> well yeah
18:23:59 <AnMaster> 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 <AnMaster> 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 <AnMaster> so doing what cfunge with exact bounds do shouldn't be too hard.
18:26:31 <AnMaster> then using some smart algorithm for that should make it interesting
18:26:49 <AnMaster> oh and of course, funge space could be implemented as a CAM with xy to look it up
18:27:28 <AnMaster> 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 <AnMaster> and you would have no collision
18:27:55 <AnMaster> you would probably have to use some fallback storage if things grow too large
18:28:35 <AnMaster> and you could hardwire a bit around 0,0 in a possibly cheaper way (smaller constant I guess)
18:28:58 <ais523> you don't need content-addressability, surely?
18:29:06 <ais523> just regular addressability would effectively work
18:29:07 <AnMaster> ais523, for doing a sparse funge space
18:29:09 <ais523> ah, ok
18:29:20 <AnMaster> ais523, I'm talking about b98 not b93
18:30:23 <AnMaster> 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 <AnMaster> 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 <AnMaster> now I wonder if VHDL can implement CAM...
18:32:05 <AnMaster> ais523, you should implement befunge93 in VHDL ;P
18:32:13 <AnMaster> unless someone has done this
18:32:21 <ais523> I haven't
18:38:50 <fizzie> 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 <AnMaster> fizzie, heh
18:40:56 <AnMaster> http://en.wikipedia.org/wiki/Holographic_associative_memory <-- interesting
18:45:31 <fizzie> Never going to make a breakthrough with the acronym HAM. But still better than SPAM, I guess.
18:46:09 <AnMaster> heh
18:48:14 * pikhq wishes there were more Unefunge programs
18:48:29 <pikhq> As Unefunge is *so* much easier to handle.
18:48:36 -!- kar8nga has quit (Read error: Connection reset by peer).
18:48:50 <AnMaster> pikhq, you don't like a challenge?
18:49:05 <pikhq> AnMaster: Sparse 2d arrays give me a headache.
18:49:13 <Deewiant> Try 3D!
18:49:20 <pikhq> Deewiant: OW
18:49:22 <AnMaster> pikhq, oh? Try a AABBs
18:49:22 <Deewiant> :-D
18:49:32 <AnMaster> pikhq, or quadtrees
18:49:34 <pikhq> AnMaster: Which is a... What?
18:49:36 <AnMaster> or hash tables
18:50:01 <AnMaster> 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 <oerjan> strongly parallel associative memory
19:00:05 <AnMaster> oerjan, ?
19:00:26 <AnMaster> oerjan, is it a pun? Or something actually relevant?
19:00:45 <oerjan> yes
19:00:50 <AnMaster> oerjan, both?
19:01:04 <AnMaster> oerjan, explain what you mean though
19:01:04 * oerjan whistles innocently
19:02:19 <oerjan> in which we deduce that AnMaster's short term memory _and_ irc backscroll are shorter than 15 minutes
19:03:31 <AnMaster> oerjan, I don't get what the "strongly" comes from
19:03:33 <AnMaster> that is the issue
19:05:38 <oerjan> hint: fizzie
19:06:16 <AnMaster> oh that
19:06:19 <AnMaster> oerjan, far fetched
19:06:37 <oerjan> yes, 15 minutes is so far
19:06:45 <AnMaster> oerjan, no in logical jump
19:07:14 <oerjan> no it wasn't, it was entirely obvious
19:07:21 <AnMaster> oerjan, I disagree
19:07:32 <oerjan> 19:40 AnMaster> http://en.wikipedia.org/wiki/Holographic_associative_memory
19:07:32 <oerjan> <-- interesting
19:07:32 <oerjan> 19:45 fizzie> Never going to make a breakthrough with the acronym HAM. But
19:07:32 <oerjan> still better than SPAM, I guess.
19:07:55 <oerjan> this _had_ to be the one time irssi _didn't_ join lines
19:08:47 <oerjan> (what the heck is the point with joining lines if it doesn't do it for lines copied from _itself_?
19:08:50 <oerjan> )
19:09:47 <oerjan> anyway, i claim the logical jump from that to be quite tiny.
19:11:24 <AnMaster> and I claim it is large
19:14:31 <oerjan> it would have been better if there were something actually called strongly parallel associative memory, anyway
19:16:07 <oerjan> spam associative memory turns up nothing relevant :(
19:16:39 <oerjan> it's like people were actively avoiding the acronym, or something :/
19:24:39 <fizzie> Buy a few more gobs of SPAM for you server, it'll increase throughput.
19:25:10 <oerjan> 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 <olsner> I foresee an underwhelmed pikhq
21:01:05 <pikhq> Oh, right, gold still sucks ass.
21:01:06 <pikhq> That's right.
21:01:33 <pikhq> Better things to do with my time AWAY!
21:01:51 <pikhq> Hmm. "Better things"...
21:10:00 <oerjan> hm
21:10:22 <oerjan> (1) annoying: they're cutting off the water in 5 mins because of a leak
21:12:04 <oerjan> (2) awesome: they apparently sent a text message warning to the cell phones of everyone in the neighborhood
21:15:23 <oerjan> (3) apparently we may expect volcanic ash raining down here tomorrow
21:15:31 <olsner> did (2) result in a denial-of-service attack bringing down the cell network?
21:15:57 <oerjan> i would doubt that
21:16:05 <oerjan> after all, the message arrived
21:16:08 <fizzie> Nature strikes back.
21:16:28 <fizzie> Expect a rain of fire and brimstone.
21:16:38 <oerjan> (and most of norway)
21:17:13 <oerjan> parts of britain too, perhaps
21:17:35 <oerjan> map: http://www.dagbladet.no/2010/04/14/nyheter/innenriks/aske/flytrafikk/11282382/
21:18:50 <AnMaster> pikhq, is 4.5 released?
21:19:13 <AnMaster> <oerjan> (3) apparently we may expect volcanic ash raining down here tomorrow <-- what?
21:19:28 <oerjan> AnMaster: see the link
21:19:39 <AnMaster> oerjan, what about Sweden?
21:20:00 <oerjan> well the red region barely touches sweden
21:20:05 <fizzie> We don't get any. :(
21:20:15 <AnMaster> and I'm out of the green area
21:20:19 <oerjan> the green is no-fly area
21:20:20 <AnMaster> oerjan, what does the colours mean?
21:20:43 <AnMaster> oerjan, be sure to take some photos if it happens
21:20:48 <oerjan> or rather height of ashes (prognosis 12 pm tomorrow)
21:21:00 <oerjan> i don't have a camera to use
21:21:54 <AnMaster> "Kan også ramme sør" <-- I end up parsing this as "can also ram wounds" which seems wrong
21:21:59 <oerjan> red: 0 - 20000 feet, green 20000 - 35000 feet, blue 35000 - 50000
21:22:05 <oerjan> sør = south
21:22:11 <AnMaster> oerjan, and the "ramme"?
21:22:16 <oerjan> hit
21:22:26 <AnMaster> ah
21:22:31 <AnMaster> oerjan, "sannsynlighet"?
21:22:38 <oerjan> probability
21:23:11 <AnMaster> heh
21:23:55 <AnMaster> oerjan, Eyjafjallajökull? Or is that Islandic?
21:24:31 <oerjan> yes
21:24:41 <AnMaster> oerjan, "akutt flomfare" <-- ?
21:24:42 <oerjan> it's a glacier afaik
21:24:52 <oerjan> acute flood danger
21:25:03 <oerjan> well not sure about acute
21:25:08 <oerjan> `define acute
21:25:21 <HackEgo> * 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 <AnMaster> oerjan, sv:akut?
21:25:27 <fizzie> At least some other jökulls are glaciers.
21:25:42 <oerjan> i think that's what jökull means
21:25:47 <AnMaster> oerjan, so it wasn't flamedanger?
21:25:49 <AnMaster> :/
21:26:03 <oerjan> the volcano is rather far from norway :D
21:26:08 <AnMaster> flom fare meaning flame danger rather than flood danger would have been nicer
21:26:22 <oerjan> you'd expect the ashes to have cooled down quite a bit ;)
21:26:25 <AnMaster> oerjan, sure but that was about Iceland as far as I can tell
21:26:31 <oerjan> oh right
21:26:34 <AnMaster> 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 <oerjan> yeah it was flood because of the glacier melting
21:27:06 <AnMaster> oerjan, I mean, wetness isn't the first thing I think of when hearing about volcanos
21:27:19 <AnMaster> <oerjan> i don't have a camera to use <-- what about your mobile phone?
21:27:36 <oerjan> it's 8 years old, no camera :D
21:27:39 <fizzie> 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 <AnMaster> heh
21:28:01 <AnMaster> glaciär in Swedish
21:28:14 <oerjan> no:isbre
21:28:24 <AnMaster> "Vulkansk aske er vanskelig å oppdage fra et fly"?
21:28:39 <oerjan> volcanic ashes are hard to discover from a plane
21:28:40 <Gregor> gi:osefloop
21:28:50 <AnMaster> oerjan, ah, not a fly then ;/
21:28:51 <oerjan> Gregor: wtf
21:28:56 <Gregor> gi == gibberish
21:29:04 <oerjan> gibber gibber
21:29:08 -!- Phantom_Hoover has joined.
21:29:32 <Phantom_Hoover> Can you cross wires on a microchip?
21:30:10 <oerjan> i bet ais523 knows (and is not here)
21:30:23 <Gregor> "Can you"? Of course. Generally the wire-crossing problem is avoided simply by (slightly) using the third dimension.
21:30:33 <AnMaster> http://www.svd.se/nyheter/utrikes/aska-fran-vulkan-stoppar-norgeflyg_4566955.svd <-- there too oerjan
21:31:28 <fizzie> jökull m (genitive singular jökuls, plural jökular) -- he's a very jökular fellow.
21:31:56 <oerjan> so true
21:32:28 <Phantom_Hoover> Gregor: I was just wondering aloud if the construction methods of silicon chips allows crossing.
21:32:38 <Phantom_Hoover> I don't really know about that.
21:33:20 <Gregor> 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 <AnMaster> fizzie, wut?
21:33:26 <Gregor> *they build
21:33:43 <Phantom_Hoover> Gregor: OK.
21:33:44 -!- Phantom_Hoover has quit (Client Quit).
21:33:59 <Gregor> IRC: a great place to go to ask one question then quit.
21:34:05 <AnMaster> 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 <augur> does the name Chris Barker sound familiar to anyone here?
22:01:58 <Oranjer> yes
22:02:03 <Oranjer> I'm from south carolina
22:02:10 <Oranjer> I believe he was in a plane crash here?
22:02:24 <Oranjer> or am I completely wrong
22:02:29 <augur> wrong chris barker :P
22:02:36 <Oranjer> ah, okay
22:02:43 <augur> chris barker as in Iota
22:02:56 <augur> and Jot
22:05:09 <Oranjer> nope
22:06:01 <augur> but you do know of Iota/Jot, yeah?
22:06:05 <pikhq> Ah, that guy.
22:07:05 <augur> hes a linguistics prof at NYU
22:07:15 <augur> we're trying to get him to come give a talk at UMd
22:07:19 <augur> is he ever in here?
22:07:31 <pikhq> Don't think so.
22:07:35 <augur> shame
22:12:14 <Gregor> I think once you're a prof you're banned from #esoteric :P
22:12:43 <augur> aww
22:12:47 <augur> but he invented iota and jot!
22:13:01 <augur> 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 <Sgeo|web> 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 <coppro> pikhq: ping
01:53:37 <coppro> Sgeo: iteration obv
01:55:28 <pikhq> coppro: Pong
01:55:59 <coppro> 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 <Gregor> Arrrrrgh.
02:42:36 <Gregor> most is the WORST PAGER EVER.
02:45:43 <pikhq> How so?
02:45:53 <pikhq> Like more only more so?
02:48:09 -!- Oranjer1 has joined.
02:50:04 -!- Oranjer has quit (Ping timeout: 276 seconds).
02:51:44 <Gregor> more is a better pager than most.
02:51:50 <Gregor> Friggin MORE is a better pager than most.
02:51:56 <Gregor> 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 <AnMaster> <Gregor> But less is so much better than either. <-- is there any "least"?
05:52:41 <Mathnerd314> hm, is http://www.frappr.com/esolang down?
05:56:56 <AnMaster> what is frappr? the map thingy?
05:57:08 <AnMaster> if so yes iirc they shut down
05:58:40 <Mathnerd314> ok
05:59:11 <Mathnerd314> how esoteric does a language have to be to be discussable on #esoteric?
05:59:34 <AnMaster> can't say, and I'm leaving for university now
05:59:40 <AnMaster> cya this evening
05:59:49 <AnMaster> (early morning atm for me)
06:00:03 <Mathnerd314> 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 <oerjan> <Gregor> But less is so much better than either.
08:22:45 <oerjan> i haven't tried that "either" pager you're speaking about.
08:23:02 <oerjan> (or "most", for that matter)
08:23:43 <oerjan> <Mathnerd314> how esoteric does a language have to be to be discussable on #esoteric?
08:23:58 <oerjan> not much. now if you mean to be _on topic_, on the other hand
08:26:00 -!- kar8nga has joined.
08:27:13 <oerjan> but we're only on topic about <estimate type="thin air">half the time</number>, and most of that seems to be befunge these days.
08:27:22 <oerjan> wait what
08:27:54 <oerjan> </estimate>
08:28:15 <oerjan> 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 <augur> proof tableax!
09:33:07 <augur> 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 <Quadrescence> Mathnerd314: If it's as esoteric as Perl, then it's allowed.
14:25:11 <Quadrescence> 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 <pikhq> Hmm. And... I wrote another Brainfuck interpreter.
19:27:28 <pikhq> No idea why.
19:27:37 <pikhq> Except that it's much simpler than my previous attempt.
19:27:51 <pikhq> Also a bit faster.
19:27:55 <pikhq> http://sprunge.us/BVTg
19:29:24 <pikhq> May not work on systems with odd pointer representations.
19:38:28 <pikhq> Also, clang appears to handle that better than GCC.
19:42:40 <AnMaster> <pikhq> May not work on systems with odd pointer representations. <-- ?
19:42:55 <pikhq> AnMaster: I'm doing moderately odd pointer tricks.
19:43:12 <AnMaster> pikhq, well summary, I'm a bit too busy to read it. Have a deadline tomorrow
19:43:16 <pikhq> Note that I'm storing data inside of an array of pointers.
19:43:18 <AnMaster> and a lot still to write
19:43:28 <AnMaster> err
19:43:32 <AnMaster> pikhq, what
19:44:54 <pikhq> AnMaster: After the address for +, -, >, or < is the number that those should add to p or *p.
19:44:57 <oerjan> looks like that volcano ash spread further
19:45:08 <oerjan> http://www.thisislondon.co.uk/standard/article-23824710-flights-grounded-as-ash-from-icelandic-volcano-closes-uk-airports.do
19:45:19 <pikhq> And after [ or ] is the offset in the array that it should jump to.
19:45:48 <pikhq> (upon entering interp, this is then just computed into a direct address)
19:47:29 <pikhq> (basic summary: I wrote 1/2 of a Forth)
19:50:33 <fizzie> oerjan: Yes, some Finnish news-site said we'll get some ashfall too around 03am.
19:50:58 <AnMaster> oerjan, Sweden affected too
19:51:04 <AnMaster> oerjan, and did you get any ash rain?
19:51:40 <oerjan> i didn't notice anything, what with all the rain rain
19:51:45 <AnMaster> pikhq, didn't do befunge98?
19:51:56 <pikhq> AnMaster: Nope.
19:52:04 <AnMaster> pikhq, gave up? Plan to do it later?
19:52:08 <AnMaster> oerjan, it would be bound to that.
19:52:09 <pikhq> Later.
19:52:30 <AnMaster> oerjan, acidic rain probably
19:52:39 <oerjan> hm maybe
19:53:16 <oerjan> or is volcanic ash basic
19:53:17 <AnMaster> oerjan, the particles are tiny, iirc between 3 microns and 2 mm. And mostly the smaller ones stay aloft longer
19:53:25 <oerjan> ah
19:53:29 <fizzie> 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 <AnMaster> oerjan, it contains sulphur and fluorine amongst other nasty things
19:54:04 <oerjan> AnMaster: probably good fertilizer :D
19:54:07 <AnMaster> fizzie, he could take the train
19:54:14 <AnMaster> oerjan, *not* the fluorine
19:54:16 <AnMaster> definitely not
19:54:59 <AnMaster> oerjan, in fact various fluorine diseases have been connected with the local area of volcano eruptions before according to wikipedia.
19:55:05 <AnMaster> (read that yesterday)
19:55:21 <oerjan> ah
19:56:00 <AnMaster> oerjan, killing some 50%+ of the lifestock during an eruption somewhere during 1800-1850 on Iceland
19:56:14 <AnMaster> oerjan, and lots of people both directly and indirectly
19:56:20 <oerjan> i've read about that one
19:56:29 <fizzie> The train takes quite a while; may be faster just to wait.
19:57:23 <AnMaster> fizzie, heh. He could take that English channel tunnel, then TGV, then whatever Germany have then X2000, then the Åland ferry
19:57:46 <oerjan> oh wait the one i recall was in the 1700s
19:58:03 <oerjan> in fact it was speculated it helped bring about the french revolution
19:58:41 <AnMaster> 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 <oerjan> http://en.wikipedia.org/wiki/Laki#1783_eruption
20:00:23 <AnMaster> oerjan, there were several similar ones both before and after
20:01:06 <oerjan> AnMaster: apparently the english channel trains were quickly full-booked
20:01:28 <AnMaster> oerjan, heh. What about ferries then?
20:01:30 <fizzie> 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 <AnMaster> fizzie, hire a car?
20:01:48 <oerjan> i don't know, it was just a reddit comment
20:02:07 <fizzie> Didn't they get a train stuck in the chunnel not long ago, too? I seem to vaguely remember.
20:04:55 <AnMaster> no idea
20:05:47 <oerjan> rings a vague bell, or maybe it was a fire
20:07:27 <fizzie> "Four Eurostar trains stuck in Channel tunnel" http://www.guardian.co.uk/uk/2009/dec/19/four-eurostar-trains-break-down
20:07:40 <fizzie> Maybe not quite so recent.
20:07:40 <oerjan> ah
20:07:59 <oerjan> well it's less than a year ago, that's recent outside the internet :D
20:08:46 <fizzie> "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 <oerjan> 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 <fizzie> Yes, that is the sentiment here too that they should know this stuff already.
20:13:30 <fizzie> 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 <AnMaster> oerjan, for Swedish trains too
20:14:39 <AnMaster> 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 <AnMaster> and sure, UK and France you could understand have problems with weather. But the Nordic countries? WTH
20:20:19 <AnMaster> http://www.metoffice.gov.uk/aviation/vaac/data/VAG_1271354037.png <-- heh
20:20:26 <oerjan> well i guess it's relative - _noone_ prepares for weather a little worse than usual, wherever they are
20:20:37 <AnMaster> oerjan, hah
20:20:56 <AnMaster> oerjan, why couldn't you just build extremely redundant systems.
20:21:13 <AnMaster> I mean, how many roofs caved in in Norway this winter?
20:21:25 <AnMaster> quite a few of large buildings like warehouses and such in Sweden this winter
20:21:33 <oerjan> at least one, i think
20:21:35 <AnMaster> except in north Sweden, hardly any there
20:21:51 <AnMaster> because they *expect* bad weather
20:22:17 <oerjan> although with roofs and snow it's probably often because of lousy snow removal
20:23:01 <AnMaster> oerjan, oh yeah that too. Did I mention I saw someone using a snow blower on a warehouse during the winter?
20:23:10 <AnMaster> oh and I have the perfect solution
20:23:29 <oerjan> AnMaster: very nice of that cloud to sweep southwards like that just to get moscow :D
20:23:40 <AnMaster> hah
20:24:04 <AnMaster> 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 <oerjan> ..right
20:24:22 <AnMaster> oerjan, perfect solution
20:25:36 <oerjan> 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 <U> void inspect(U u){
20:27:28 -!- tombom has joined.
20:28:00 <AnMaster> 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 <Mathnerd314> Sgeo|web: what does it do?
21:11:26 <oerjan> 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 <oerjan> (assuming i recall right that <U> 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 <oerjan> the equivalent would be inspect :: a -> IO () in haskell, which _cannot_ possibly use anything specific to the argument type
21:16:23 <oerjan> (for the type declaration)
21:17:11 <oerjan> although with object-oriented languages and reflection that no longer holds - but then you could still use just Object i think
21:17:22 <pikhq> Modulo EVIL stuff.
21:17:29 <oerjan> this all from my vague half-understanding of java
21:18:01 <oerjan> pikhq: what was that in reference to?
21:18:21 <pikhq> oerjan: unsafeCoerce and hope it doesn't break.
21:18:31 <pikhq> for "inspect :: a->IO ()"
21:19:19 <oerjan> well but that is sort of internal isn't it, not haskell proper
21:19:41 <oerjan> anything even slightly portable _would_ break unless you knew the type
21:20:05 <pikhq> unsafeCoerce can be *done* with Haskell proper, if you include the FFI addendum.
21:20:19 <oerjan> oh hm
21:20:47 <oerjan> well still on the break thing. i assume the public <U> thing above is meant not to break...
21:20:49 <pikhq> (unsafePerformIO is "real" Haskell you know)
21:21:03 <pikhq> Yeah, probably not.
21:21:23 <pikhq> *Oh*. That inspect function can also take values that aren't Objects.
21:21:34 <pikhq> (Java has a small handful of unboxed types)
21:21:34 <oerjan> i guess if you knew it was ghc you could somehow get at least to the GC information...
21:22:20 <oerjan> um isn't that just auto-conversion to Object, anyway? type erasure etc.
21:23:35 <oerjan> 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 <oerjan> and i ran out of steam before writing any actual programs
21:24:30 * Sgeo|web just hates the location of the <U> thing
21:24:34 <Sgeo|web> Also, you can store it
21:25:55 <oerjan> well it is the logical place to place the <U>, i think
21:26:13 <oerjan> everything after is under its scope
21:30:57 * Sgeo|web is somewhat used to inspect<U>(U u)
21:31:10 <Sgeo|web> Although I guess you're right
21:38:57 <oerjan> i'm always right. also don't eat icecream, it's poisonous.
21:44:30 -!- Susan has joined.
21:45:20 <Susan> Would the author of Mycology be on here today?
21:45:34 <ais523> Deewiant: are you around?
21:45:37 <ais523> Susan: let's find out
21:45:37 <Deewiant> Aye
21:45:45 <ais523> Susan: apparently yes
21:46:03 <Susan> 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 <Deewiant> Probably, yes
21:47:12 <Susan> 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 <Sgeo|web> Today is the last day for a while that I will be without Internet access for any significant length of time
21:47:17 <Sgeo|web> :D
21:47:53 <ais523> Susan: my guess would be to put a literal formfeed into the fungespace
21:47:56 <pikhq> Susan: If it's none of "\n", "\r\n", or "\r", it should be loaded into the Fungespace.
21:47:57 <ais523> because it isn't space, nor newline
21:47:57 <Deewiant> Susan: The general understanding is that it's analogous to the way newlines are stated to work in Unefunge
21:48:29 <Susan> Ok, I will try loading it into fungespace and see if that removes the error.
21:49:23 <Deewiant> 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 <Deewiant> (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 <Deewiant> Hmm. I wonder if I've actually misthought how form feeds should behave.
21:51:34 <Deewiant> But then, if what I'm thinking now is correct, every interpreter does it wrong.
21:52:30 <Deewiant> No, even what I'm thinking now leads to the same behaviour.
21:53:26 <Deewiant> 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 <ais523> that's a "should be" not "is", though
21:55:11 <ais523> it's not unknown for a spec to be internally non-orthogonal
21:55:16 <ais523> and befunge is full of that sort of thing
21:55:33 <Susan> Ok, at least this gives me an idea of what it should do.
21:55:39 <Deewiant> Mostly because the spec is poorly written, though :-P
21:55:42 <Susan> Now to fix it! lol
21:55:50 -!- Sgeo|web has quit (Quit: Page closed).
21:56:00 <Deewiant> Susan: Are you currently handling Rc/Funge-98 development?
21:56:10 <Susan> Yes I am.
21:56:14 <pikhq> Funge-98 is at least better-specified than Funge-93.
21:56:40 <AnMaster> Deewiant, fun fact: -O3 breaks cfunge on gcc-4.5
21:56:45 <AnMaster> no time to debug it currently
21:56:48 <Deewiant> :-)
21:56:51 <Susan> 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 <AnMaster> Deewiant, works just fine on 4.3 and 4.4
21:57:10 <Deewiant> Right, that was suspected (and confirmed by somebody, AnMaster maybe)
21:57:23 <AnMaster> Deewiant, yes I remember testing it
21:57:25 <pikhq> Good chunks of the logic in my Funge-93 interpreter are just undefined behavior. :P
21:57:29 <Susan> I can confirm it as well. I have the code right in front of me.
21:57:30 <AnMaster> who is Susan btw?
21:57:47 <Susan> Susan = current maintainer of Rc/Funge-98.
21:57:49 <AnMaster> aha
21:57:59 <AnMaster> I hope Mike is okay still.
21:58:37 <Susan> Um, to put this as delicate as possible I guess, She decided to end her pain.
21:58:53 <pikhq> Fek
21:59:18 <AnMaster> she?
21:59:34 <Susan> For the past 20 some odd years, yes.
21:59:40 <AnMaster> ??
21:59:46 <AnMaster> and damn, I thought we talked him(???) out of it
22:00:16 <Susan> Mike was born intersexed and altered at birth to be a boy.
22:00:19 <AnMaster> ouch
22:00:35 <Susan> About his teenage years he decided that he was not a he and his parents made a mistake.
22:00:48 <AnMaster> hm. Ouch
22:01:01 <AnMaster> well that explains a lot
22:01:02 <Susan> And transitioned in his early twenties to female.
22:01:29 <AnMaster> and something went wrong? Or?
22:02:04 <Susan> Hillary, as she renamed herself, could only socially transition. The alterations made at birth prevented a physical transition.
22:02:58 <Susan> In the end the pain of having an incongruous body drove her mad.
22:03:04 <AnMaster> I see :/
22:03:45 <Susan> For about the past couple years she was in very severe depression and refused all help, even mine.
22:04:33 <AnMaster> 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 <Susan> Up until Hillary gave me Rc/Funge-98 I had never heard of esoteric languages. My first exposure was her program.
22:05:45 <Susan> After playing around with her interpreter, I must say that I am really fascinated.
22:06:44 <pikhq> Very well then. :)
22:07:14 <Susan> I will have to admit that at this point I am on the learning curve.
22:07:59 <AnMaster> Susan, ah :)
22:08:24 <AnMaster> <ais523> 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 <AnMaster> it could have some quite interesting properties perhaps
22:08:44 <ais523> hmm, maybe
22:09:01 <ais523> deep down, I'm hoping that this is just epic trolling rather than an actual suicide
22:09:18 <AnMaster> ais523, well, I doubt it is actually true though
22:09:27 <AnMaster> I would call it most likely wishful thinking
22:09:58 <Susan> I am sorry to say Ais523 that the person that you knew as Mike Riley is gone.
22:10:41 <ais523> ouch; well, as you're related to him (or at least live in the same house), my condolences
22:11:08 <AnMaster> and yeah, my condolences too
22:11:14 <AnMaster> (oh ais523 is the maintainer of C-INTERCAL btw. INTERCAL is another esolang. And arguably a _lot_ more confusing.)
22:11:27 <Susan> No, I was not related to her. Just a friend.
22:11:50 <Susan> Thank you.
22:12:06 <AnMaster> A closer friend than we were presumably though.
22:12:28 <AnMaster> eh, I messed up the grammar there I think.
22:12:39 <ais523> no, I think that's correct English
22:12:41 <Susan> I knew her for about 15 years. Yes, close enough that she confided her secret to me.
22:12:47 <ais523> although a comma before though would be more usual
22:13:12 <AnMaster> ais523, ah yes that's it
22:14:04 <ais523> *"though"
22:14:19 <AnMaster> ais523, ?
22:14:29 <ais523> AnMaster: I was missing quotes in /my/ comment, so I corrected it
22:14:33 <AnMaster> oh
22:14:34 <ais523> Muphry's law
22:14:51 <AnMaster> ais523, it was a bit confusing though. A sed expression might have made it clearer
22:15:00 <AnMaster> (Strange he used the name Mike Riley then on IRC and such. I guess we will never know why.)
22:15:17 <ais523> hmm, I use the name ais523 online, though; it's not so weird to use a different name
22:15:35 <AnMaster> well sure. You think this is my name? ;P
22:15:44 <Deewiant> Well, if it's an identity you'd rather reject, you might be more likely to not use it
22:15:50 <Susan> 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 <ais523> no, you're called arvid
22:15:56 <AnMaster> Deewiant, yeah that is what I meant
22:16:05 <AnMaster> ais523, correct but I usually tend to use upper case A there
22:16:23 <AnMaster> Susan, ah hm
22:17:43 <Susan> All of her credentials were also under Mike Riley, so she was kind of stuck with it.
22:18:07 <AnMaster> you mean, ID papers and such? (Note I'm not a native English speaker)
22:18:23 <AnMaster> (but I thought you could do a legal name change)
22:18:37 <ais523> AnMaster: "credentials" has two meanings, either a generalisation of "username/password", or a generalisation of "degrees and qualifications"
22:18:45 <AnMaster> ais523, hm okay
22:18:53 <Susan> 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 <AnMaster> ais523, well the former I know about, but that didn't seem to apply
22:19:14 <AnMaster> Susan, ah I see
22:19:39 <Susan> All of her other paperwork were changed, drivers license, utility bills and such.
22:19:56 <AnMaster> right
22:20:31 <AnMaster> btw, I don't think I ever asked why it was called _RC_ in RC/Funge.
22:20:43 <AnMaster> any idea? (or Deewiant perhaps)
22:21:13 <Deewiant> I think I may've known but don't remember.
22:21:17 <AnMaster> ah
22:21:25 <Susan> 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 <AnMaster> I see
22:21:44 <Deewiant> Okay, I didn't know that.
22:22:03 <AnMaster> Susan, it isn't really a company style of software though. I can't imagine anyone selling a funge interpreter. XD
22:22:04 <Deewiant> The handprint of Rc/Funge-98 is also "RCSU".
22:22:11 <Deewiant> (U for Unix)
22:22:31 <ais523> AnMaster: well, isn't cats' eye a company?
22:22:32 <AnMaster> heh, I didn't know that
22:22:42 <ais523> that does serious stuff as well as all the esolangs?
22:22:45 <Susan> She wrote a lot of software also that she released into the public domain.
22:22:51 <AnMaster> ais523, I don't know, who knows.
22:23:13 <AnMaster> ais523, it could be just a parody or something?
22:23:21 <Susan> Not all the software she wrote was sold.
22:23:32 <AnMaster> well I didn't say that it was
22:23:37 <ais523> 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 <Deewiant> 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 <AnMaster> 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 <AnMaster> Deewiant, why FInns?
22:24:43 <Deewiant> AnMaster: That's not a "serious programming job"? :-P
22:24:57 <Deewiant> Because the topic is Finnish universities.
22:25:05 <AnMaster> ah
22:25:21 <Deewiant> I don't know, maybe it's otherwise funny enough as well, I wouldn't know :-P
22:25:33 <AnMaster> Deewiant, depends. Computer science? Then no
22:25:59 <Deewiant> Depends on how seriously you do it I imagine
22:26:34 <AnMaster> Deewiant, I find that movie rather offensive...
22:27:00 <Deewiant> How's that?
22:27:12 <Deewiant> (Also, it's probably intentional)
22:27:38 <AnMaster> 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 <AnMaster> Deewiant, but it seems to keep the offensive bits mostly out of the English parts
22:27:57 <Deewiant> Yes, I listened and read, the text is fairly accurate
22:28:07 <Deewiant> And yes, he uses Swedish swear words :-P
22:28:37 <Deewiant> Well, not swear words, but profane vocabulary
22:28:55 <AnMaster> quite
22:29:11 <Deewiant> Are you offended by profanity?
22:29:26 <AnMaster> Deewiant, somewhat yes
22:29:31 <AnMaster> depends.
22:29:44 <Deewiant> That's a strange outlook IMO
22:30:07 <ais523> I'm offended by profanity without a reason
22:30:51 -!- Oranjer has joined.
22:31:03 <Deewiant> In this case, the reason is the comedy
22:31:04 <AnMaster> Deewiant, I find it confusing also. I guess only Finns get the references in there
22:31:29 <Deewiant> But of course, one can disagree with that as well
22:31:42 <AnMaster> yeah I didn't really find it funny.
22:32:05 <Deewiant> AnMaster: Yeah, that's why I warned about it :-P
22:34:29 <AnMaster> Deewiant, what are the references and where does the profanity come into it?
22:35:02 <Deewiant> Well, the profanity I think just fits the theme and the mood
22:39:38 <AnMaster> <pikhq> 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 <pikhq> Also true.
22:40:14 <fizzie> 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 <fizzie> Deewiant: They speak Swedish at home, though, so maybe they can relate.
22:40:55 <Deewiant> heh, Maybe.
22:41:01 <Deewiant> Hmm, interesting capitalization there.
22:41:17 <AnMaster> Deewiant, in what?
22:41:22 <Deewiant> In what I said.
22:41:27 <AnMaster> ah
22:41:43 <AnMaster> Deewiant, btw what is that "pappren inne - sol i sinnet" about?
22:41:53 <Deewiant> Capitalizing "heh" always seems wrong to me and I guess I then saw "maybe" as starting the sentence
22:43:29 <Deewiant> AnMaster: Well just that: apply to the university and keep the coming good times in mind, or something to that effect
22:44:17 <AnMaster> oh
22:44:24 <AnMaster> Deewiant, is it some slogan used over there or something?
22:44:55 <Deewiant> No
22:45:01 <Deewiant> I'm pretty sure it's specific to that comedy short
22:45:13 <Deewiant> As in, that clip.
22:45:31 <AnMaster> Deewiant, there seems to be more "Finlandssvenskt näringsliv" parodies from him at youtube
22:45:51 <Deewiant> Yep
22:45:58 <oerjan> sol ute, sol inne, sol i hjertet, sol i sinnet
22:46:38 <Deewiant> sol para sol
22:48:36 <olsner> oj, sol i norge?
22:48:49 <oerjan> well, maybe not just now
22:49:09 <Deewiant> 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 <oerjan> it seems like Ny-Ålesund on Svalbard won't have the sun set completely from tomorrow
22:54:27 <AnMaster> 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 <AnMaster> oerjan, hah
22:54:47 <olsner> the world has already ended in norway? the end is near!
22:54:55 <oerjan> if i understand what "upper edge" means at http://www.yr.no/informasjon/1.6629345
22:54:56 <AnMaster> oerjan, I didn't remember we passed vårdagjämning yet
22:55:11 <AnMaster> or whatever it is called in English
22:55:13 <oerjan> that's nearly a month ago now
22:55:18 <AnMaster> oh is it? okay
22:55:21 <oerjan> spring equinox
22:55:21 <olsner> feels like winter ended just a couple of days ago
22:56:02 <AnMaster> olsner, my thought exactly
22:56:21 <AnMaster> well a bit more than that, a week and a half ago or so
22:56:28 <AnMaster> at most
22:56:53 <oerjan> snow forecast here in the next couple days
22:57:18 <oerjan> probably just a little bit i guess
22:57:29 <AnMaster> 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 <Sgeo_> Ah, the refreshing slowness of Eclipse when I leave it running too long
02:30:53 <Sgeo_> I click in the wrong place, Eclipse freezes
02:32:09 <coppro> welcome to Java
02:33:00 <Sgeo_> Apparently, Eclipse is the easiest IDE to use for Android dev
02:33:15 <Sgeo_> Also, at least this way, I'm getting experience in a job-ready language
02:33:54 <Sgeo_> When I click something, a different thing gets hilighted. I have yet to figure out the logic
02:37:02 <Sgeo_> 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 <Mathnerd314> hmm... channel is missing +t
02:42:00 <coppro> no, it's not
02:43:22 <Mathnerd314> well, it's set by default - so someone removed it
02:43:34 <coppro> yes
02:45:04 <Mathnerd314> therefore it's missing
02:45:38 <coppro> no
02:45:40 <coppro> it was put away
02:45:46 <coppro> the ops know exactly where it is
02:47:05 <Mathnerd314> +t is /in storage/ ?
02:47:12 <coppro> yes
02:48:22 <Mathnerd314> so the channel "does not have" +t
02:48:56 <coppro> 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 <augur> O_O
03:29:09 -!- ENKI-][ has joined.
03:38:13 <coppro> ?
03:38:50 -!- ENKI-][ has changed nick to enki-2.
03:39:14 -!- enki-2 has changed nick to ENKI-][.
03:40:32 <augur> sup
03:44:43 -!- Oranjer has left (?).
03:45:33 <augur> i updated the chris barker page on esowiki.
03:45:33 <augur> :T
03:49:14 <Sgeo_> 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 <AnMaster> Sgeo_, does these tool target java?
07:57:55 <AnMaster> 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 <augur> so guys
08:04:12 <augur> 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 <fizzie> AnMaster: Android is a Java-ish platform, though they have a customized vm (Dalvik).
08:46:43 <fizzie> 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 <fizzie> (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 <oerjan> <coppro> the ops know exactly where it is
09:46:19 <oerjan> 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 <Sgeo_> AnMaster, Android app development is in Java.
12:22:34 <Sgeo_> [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 <nefas> hello
14:11:46 -!- nefas has left (?).
14:22:01 <Gregor> 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 <AnMaster> fizzie, I thought you could do native apps on android nowdays?
14:33:22 -!- myndzi\ has quit (*.net *.split).
14:34:35 <ais523> I love the topic
14:36:05 <AnMaster> ais523, been like that a few days now?
14:36:15 <ais523> I know
14:41:00 <ais523> hmm, apparently someone patented sending jobs overseas
14:41:17 <ais523> I'm trying to figure out whether or not that's funnier than the patent on patent trolling
14:49:37 <ais523> gah, I've got that weird X-chain-lockup thing
14:49:49 <ais523> where firefox locks up, then you open an xterm to try to kill it and that locks up too
14:50:01 <ais523> and then you press alt-f2 to try to kill that, and that locks up too
14:50:34 <ais523> also, gnome-panel
14:50:57 * ais523 does control-alt-f1, killall firefox, killall gnome-panel
14:51:01 <ais523> at least that didn't lock up too
14:53:07 <ais523> aha, going into top, killall -9 mousetweaks seems to solve it
14:53:09 <ais523> what is that program?
14:53:15 <ais523> next time this happens I'm sending a bug report
14:57:24 <AnMaster> <ais523> hmm, apparently someone patented sending jobs overseas <-- ???
14:57:29 <AnMaster> <ais523> I'm trying to figure out whether or not that's funnier than the patent on patent trolling <-- ?????????
14:57:39 <AnMaster> what the heck is "patent trolling"?
14:58:01 <AnMaster> ais523, is it the dbus-crashing lockup?
14:58:09 <AnMaster> that happened to me a few times
14:58:24 <AnMaster> only on my desktop which uses fairly new software
14:58:32 <AnMaster> my laptop with ubuntu 9.04 is rock solid
14:58:38 <AnMaster> a pity it isn't a LTS
14:58:43 <ais523> AnMaster: no, it's mousetweaks I think
14:58:44 <AnMaster> so I will need to update sooner or later
14:58:59 <AnMaster> ais523, huh? never heard about that
14:59:05 <AnMaster> how do you mean
14:59:06 <ais523> 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 <ais523> and threatening everyone else you can
14:59:15 <ais523> AnMaster: I don't know what it is either
14:59:27 <ais523> except that it's using 100% CPU and causing all my graphical applications to lock up
14:59:36 <AnMaster> why do you call it "mousetweaks"?
14:59:46 <ais523> that's its name
14:59:50 <AnMaster> oh
14:59:54 <AnMaster> http://live.gnome.org/Mousetweaks/Home
14:59:55 <ais523> as in, you kill it with killall mousetweaks, etc
14:59:57 <AnMaster> seems relevant
15:00:07 <AnMaster> "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 <Deewiant> f_o_nctonalities
15:00:20 <myndzi> |
15:00:20 <myndzi> /<
15:00:20 <AnMaster> you probably can just get rid of it
15:00:37 <AnMaster> Deewiant, heh yeah
15:00:52 <ais523> 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 <fizzie> AnMaster: Yes, you can, but you're not supposed to unless you really need to.
15:07:55 <fizzie> 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 <fizzie> (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 <AnMaster> fizzie, does it use C for low level?
15:20:15 -!- BeholdMyGlory has joined.
15:28:22 <ais523> hmm, I really need to use >=3 as an emoticon some time
15:28:25 <ais523> meaning "do not love"
15:28:31 <ais523> just for the sheer meta-ness of it all
15:28:38 <ais523> I haven't found any real purposes yet, though
15:29:25 <Sgeo_> for Java?
15:30:04 <ais523> hmm
15:30:04 <ais523> </3 is sort-of the opposite of <3
15:30:10 <ais523> as in, "hate" rather than "love"
15:30:24 <ais523> whereas >=3 would just be the negation, "is not the case that I love"
15:31:12 -!- MizardX has joined.
15:38:56 <Sgeo_> >=3 Befunge
15:39:03 <Sgeo_> Probably because I don't know it
15:43:16 <ais523> it's probably the most practically useful esolang
15:43:19 <ais523> not that that's saying much
15:45:23 -!- cheater2 has quit (Ping timeout: 248 seconds).
15:48:35 <AnMaster> ais523, when I read that ">=3", my first reaction was "what a strange logic gate"
15:48:57 -!- cheater2 has joined.
15:57:04 <fizzie> 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 <AnMaster> fizzie, but does it primarily have a C API or a C++ API?
15:58:59 <AnMaster> or does it just provide libc + syscalls?
15:59:13 <ais523> fizzie: which reminds me, we should write a Lisp interp in Nintendo DS asm someday, collectively
15:59:17 <ais523> purely to annoy Joel Spolsky
15:59:39 <fizzie> 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 <AnMaster> ais523, who?
15:59:59 <ais523> AnMaster: thanks, you've restored my faith in humanity
15:59:59 <AnMaster> fizzie, ah okay
16:00:09 <AnMaster> fizzie, can you access the GSM stuff somehow?
16:00:16 <ais523> 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 <AnMaster> and presumably there are some unofficial APIs too
16:00:22 <fizzie> AnMaster: That sounds very unlikely.
16:00:26 <AnMaster> which people have found
16:00:46 <fizzie> AnMaster: I mean, the official support part; not the part about unofficial APIs.
16:00:49 <AnMaster> fizzie, well how does the phone itself access it then? Presumably you can gain root somehow as an android user
16:01:04 <AnMaster> and then you could presumably do about anything on the phone
16:01:40 <fizzie> 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 <fizzie> 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 <ais523> which phone are you discussing?
16:04:37 <fizzie> Well, "a generic Android phone". The Dev Phone's very jailbroken as it comes, and maybe some others too.
16:05:11 <fizzie> 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 <Gregor> AFAIK Android doesn't try very hard not to be jailbroken, making the term 'jailbreak' a bit nonsense.
16:06:15 <fizzie> 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 <Sgeo_> It's officially supported on the Nexus One, right?
16:08:04 <Sgeo_> Just it voids the warantee
16:09:40 <fizzie> 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 <fizzie> "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 <fizzie> Medding with some unofficial firmware upgrade does sound a bit more of a hassle than how it goes with Maemo.
16:13:21 <AnMaster> what just happened
16:13:28 <AnMaster> somehow the theme on the desktop changed
16:13:28 <AnMaster> wth
16:13:30 <fizzie> 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 <AnMaster> [1098960.847629] gnome-settings-[2390]: segfault at 8 ip 00007f71cc35cd6b sp 00007fff3498eb80 error 4 in libclipboard.so[7f71cc35a000+5000]
16:13:34 <AnMaster> wonderful
16:13:55 <AnMaster> starting it again helped
16:14:21 <fizzie> AnMaster: "gnome-settings-" is nice, though perhaps "gnome-settings-(null)" would've been even more impressive.
16:14:31 <AnMaster> fizzie, heh?
16:14:48 <AnMaster> fizzie, I think that pid is part of the name there?
16:15:13 <fizzie> Isn't the usual format "procname[pid]", and I guess it's gnome-settings-daemon that died?
16:15:38 <AnMaster> 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 <fizzie> E.g. [536265.105159] jitfunge[14597]: segfault at 8 ip 00000000007e8a9f sp 00007fff5ce3d170 error 4 in jitfunge[400000+650000]
16:15:44 <AnMaster> same goes for bottom taskbar
16:16:07 <AnMaster> also I believe gimp, which was running, never recovered the theme
16:16:14 <AnMaster> so it looks really funky
16:16:44 <AnMaster> like raw GTK+ from the dawn of age.
16:17:11 <AnMaster> fizzie, I also see this a lot in dmsg, and I don't know why:
16:17:13 <AnMaster> [1067625.343927] pstoedit[31659] trap stack segment ip:7f9abbf20380 sp:21d386e62f8cd09f error:0
16:17:13 <AnMaster> [1067672.130657] pstoedit[31665] trap stack segment ip:7ff4ec649380 sp:b9ac11dc59540f1b error:0
16:17:13 <AnMaster> [1067675.796438] pstoedit[31670] trap stack segment ip:7ff8c3b18380 sp:c538fcc4a4e9cfbd error:0
16:17:16 <AnMaster> a lot of it
16:17:46 <AnMaster> is that same as a segfault? I have no idea
16:18:55 <ais523> is that a stack-smashing-protection trap, I wonder?
16:19:16 <AnMaster> ais523, I thought that was libc-based, not in kernel?
16:19:35 <ais523> 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 <AnMaster> that would be quite wth
16:19:53 <ais523> also, it's at least partly compiler support
16:20:03 <ais523> as you can have stack-smashing which has nothing to do with the libc
16:20:19 <AnMaster> sending SIGABRT (or whatever letters they decided to abbreviate it to) would make more sense
16:20:30 <AnMaster> ais523, and yes it needs compiler support too
16:21:03 <AnMaster> 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 <AnMaster> iirc
16:21:52 <fizzie> 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 <AnMaster> fizzie, hm
16:22:18 <AnMaster> fizzie, so what kind of trap is it then
16:22:34 <fizzie> A "stack segment" kind of trap, apparently, but don't know which part triggers it.
16:22:47 <AnMaster> 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 <AnMaster> I could grep kernel sources but I doubt the words "stack segment" is specific enough...
16:23:57 <fizzie> arch/x86/kernel/traps.c
16:24:01 <fizzie> There aren't that many hits for it.
16:24:06 <AnMaster> heh
16:24:44 <AnMaster> fizzie, there is some strange 32/64 bit difference for that error it seems
16:25:41 <fizzie> AnMaster: Right, for X86_64 there's the non-macro implementation immediately below.
16:25:59 <AnMaster> indeed
16:26:15 <AnMaster> /* Runs on IST stack */ <-- I wonder what IST stack si
16:26:16 <AnMaster> is*
16:27:11 <AnMaster> fizzie, do_double_fault also seems to be x86_64 specific which seems rather strange
16:28:03 <ais523> double-faults are weird
16:28:04 <fizzie> Anyway, it's registered for CPU exception 12.
16:28:08 <AnMaster> ais523, oh?
16:28:15 <ais523> I love the ones from Apache, that come up when the 404-handling document is itself missing
16:28:17 <fizzie> 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 <fizzie> Gah, that line-joining.
16:28:47 <fizzie> And, heh, that was from http://support.microsoft.com/kb/117389 -- I thought it appropriate to use a Microsoft document here.
16:29:11 <AnMaster> 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 <AnMaster> okay back
16:31:34 <AnMaster> and brb
16:32:33 * alise_ stumbles, teeters and falls.
16:32:42 * alise_ gets up.
16:32:54 <alise_> Dispatch some-number-or-one-other.
16:33:14 -!- alise_ has changed nick to alise.
16:36:32 <Sgeo_> Hi alise
16:37:22 * Sgeo_ will probably be ordering the Nexus One this weekend :D
16:37:36 <alise> I KNEW YOU'D SEE THE LIGHT IN THE END
16:37:39 <Sgeo_> THere are some issues, with it though, especially with 3G reception. Do you have any comments on those issues?
16:38:02 <alise> Haven't heard about 3G reception issues. If you get the T-Mobile version I bet it will be fine.
16:38:07 <alise> Leaked Google Nexus One Firmware Upgrade Could Address Spotty 3G ...
16:38:08 <alise> 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 <alise> gizmodo.com/.../leaked-google-nexus-one-firmware-upgrade-could-address-spotty-3g-reception
16:38:14 <alise> Apparently it has been patched.
16:38:19 <alise> So don't worry.
16:38:31 <Sgeo_> I thought that that patch didn't work, or something
16:38:31 <alise> Anyway, lol, antibiotics.
16:38:40 <Sgeo_> I'm stuck with AT&T
16:38:46 <alise> Sgeo_: Maybe not? Meh. It should be fine. I don't even have a 3G phone and I never miss it.
16:39:20 <alise> Sgeo_: http://www.engadget.com/2010/01/25/google-nexus-one-3g-issues-result-of-poor-coverage-bugs-patch/
16:39:27 <alise> tl;dr mostly it's because T-Mobile have shitty 3g coverage
16:39:32 <alise> oh wait you're not on t mobile
16:39:35 <alise> then it should be fine
16:39:38 <alise> AT&T have good 3g coverage
16:39:52 * pineapple has reached a bit of a milestone
16:40:22 <alise> 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 <alise> other than that they're almost identical
16:40:37 <alise> including screen
16:40:51 <alise> i don't think it's in america yet though?
16:41:00 <alise> pineapple: oh?
16:41:15 <pineapple> alise: chapter 5 of K&R2
16:41:27 <Sgeo_> alise, I'm stuck with AT&T
16:41:34 <alise> Sgeo_: and?
16:42:13 <Sgeo_> I thought only Nexus One had AT&T support
16:43:35 <Sgeo_> "take the Desire to the US and youll be stuck using quadband EDGE or hunting for WiFi hotspots."
16:43:40 <Sgeo_> http://www.slashgear.com/htc-desire-vs-google-nexus-one-2074966/
16:44:49 <Sgeo_> "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 <alise> Very sad.
16:45:58 <Sgeo_> What sounds interesting is the HTC Incredible
16:46:17 <Sgeo_> But I'm still stuck with AT&T
16:46:57 <Sgeo_> Also, the only nice thing I see about Sense UI, besides prettiness, is the permanent phone button
16:47:02 <Sgeo_> Which is, admittedly, nice
16:47:19 <alise> 14:15:35 <AnMaster> well sure. You think this is my name? ;P
16:47:21 <alise> 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 <alise> 14:29:11 <Deewiant> Are you offended by profanity?
16:51:47 <alise> 14:29:26 <AnMaster> Deewiant, somewhat yes
16:51:55 <alise> I can't think of many decent comedians that don't swear :P
16:52:08 <alise> APART FROM CARROT TOP LOLZ
16:52:18 <alise> AHH WHAT MACBOOK PROS HAVE I7S IN THEM NOW
16:52:22 <alise> Stop it, Apple, I just escaped you!
16:52:44 <ais523> what's the saving throw against a reality distortion field?
16:52:52 <alise> buddhism
16:53:14 <Sgeo_> 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 <alise> Sgeo_: something along those lines i think yes
16:53:47 <alise> omfg
16:54:06 <alise> 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 <alise> in a laptop
16:54:16 <Sgeo_> 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 <alise> 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 <alise> it's like christmas
16:55:40 <AnMaster> <ais523> what's the saving throw against a reality distortion field? <-- in?
16:55:57 <Sgeo_> alise, do you do any app dev?
16:55:58 <alise> 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 <alise> in a laptop with ~7hrs battery life?
16:56:22 <ais523> AnMaster: does it really matter?
16:56:31 <alise> I'll give you to it for 3,238.99 plus 1 penny for my advertising costs :-P
16:56:33 <alise> Sgeo_: no
16:56:33 <ais523> any random context in which those terms are defined
16:56:33 <AnMaster> ais523, well possibly it is some table top rpg?
16:56:38 <alise> Sgeo_: I dislike Objective-C
16:56:48 <ais523> but yes, it's an RPG reference
16:56:50 <ais523> just, not a specific one
16:56:51 <Sgeo_> alise, and I'm a Javaphobe. I'll deal
16:56:59 <alise> Sgeo_: android scripting environment
16:57:04 <pikhq> I like using goto.
16:57:05 <alise> or things like $lang-on-JVM
16:57:16 <pikhq> ... Wait, is this not a confessional?
16:57:26 <Sgeo_> alise, those aren't to the level of apps yet [ASE]. Also, I should probably learn Java anyway
16:57:28 <ais523> nothing wrong with goto
16:57:33 <Sgeo_> Another job-ready language can't hurt
16:57:40 <alise> Sgeo_: no, you shouldn't
16:57:41 <alise> you really shouldn't
16:57:51 <AnMaster> pikhq, I noticed that
16:58:04 <AnMaster> pikhq, especially GCC's goto extensions
16:58:06 <alise> Sgeo_: you don't want that kind of job
16:58:06 <Sgeo_> anonymous inner classes do help ease the pain a little
16:58:09 <pikhq> AnMaster: Well, how *else* are you supposed to implement threaded code? :)
16:58:18 <AnMaster> pikhq, in asm?
16:58:28 <pikhq> Somewhat portably?
16:58:44 <AnMaster> pikhq, sec, will find a link
16:58:57 <ais523> pikhq: setjmp!
16:59:02 <AnMaster> pikhq, http://www.forthfreak.net/index.cgi?StringThreadedCode
16:59:05 <pikhq> It doesn't run on multiple architectures so bite my ass.
16:59:19 <ais523> /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 <Sgeo_> It's.. odd how .. universal.. Barcode Scanner is
16:59:37 <alise> Sgeo_: wut
16:59:39 <alise> I love forth
16:59:40 <pikhq> ais523: Only lets you jump up the stack, or maybe down if you're careful not to overwrite the stack frame.
17:00:05 <ais523> 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 <ais523> then you use setjmp to jump between them
17:00:11 <Sgeo_> alise, several sites, including AndroidZoom.com, and the Android reddit, make use of QR codes, to be read by Barcode Scanner
17:00:20 <ais523> this is ofc completely against the C standard, but who cares, this is #esoteric
17:00:22 <alise> ur a barcode scanner
17:00:28 <AnMaster> ooh I wonder if you could do threaded code with getcontext()/setcontext()?
17:00:30 <pikhq> ais523: So what you're really saying is getcontext and setcontext.
17:00:35 <AnMaster> _somehow_
17:00:39 <ais523> pikhq: but that's /boring/
17:00:44 <alise> ais523: "This violates several international laws, but who cares, this is #esoteric"
17:00:48 <pikhq> It's the same thing.
17:00:58 <pikhq> And just as much of a pain!
17:01:01 <ais523> alise: surely the C standard isn't /that/ binding
17:01:11 <alise> ais523: Merely a hypothetical situation
17:01:17 <ais523> 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 <pikhq> But, getcontext et al are at least part of *a* standard.
17:01:31 <AnMaster> pikhq, no longer
17:01:32 <AnMaster> iirc
17:01:40 <AnMaster> they were dropped in POSIX.1-2008
17:01:41 <ais523> 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 <pikhq> AnMaster: The previous versions of standards do not cease to exist.
17:02:08 <AnMaster> pikhq, they are marked as archived in ieeexplorer at least to me
17:02:09 <AnMaster> when I check
17:02:19 <AnMaster> but so is the current one huh
17:02:23 <AnMaster> so I guess that means nothing
17:02:27 <pikhq> They. Do. Not. Cease. To. Exist.
17:02:29 <pikhq> ;)
17:02:35 <alise> wtf, Flash CS5 will export to HTML5 Canvas+JavaScript
17:02:37 <AnMaster> well true
17:02:41 <alise> interesting
17:02:49 <ais523> pikhq: course they do, the new standard says so
17:02:56 <pikhq> ais523: Bah.
17:02:57 <alise> that + dissing on apple's ridiculous policies... are they trying to jump out of the evil ditch?
17:03:07 <ais523> pikhq: and that has the full force of international law
17:03:22 <alise> It has the full force of REALITY
17:03:23 <ais523> alise: my impression from Adobe is not that they're evil through choice, just really incompetent
17:03:27 <pikhq> ais523: No it doesn't.
17:03:39 <pikhq> Standards organizations are not international law.
17:03:46 <pikhq> You cannot be tried in the Hague for violating them.
17:03:48 <alise> Or are they?
17:04:10 <pikhq> If they were, POSIX itself would be tried.
17:04:30 <ais523> for crimes against humanity?
17:04:35 <ais523> or at least the computer-using portion of it?
17:04:40 <pikhq> Sure.
17:05:02 <alise> hey, computers use other computers too
17:05:07 <alise> they suffer as well
17:05:24 <ais523> alise: yes, but AFAIK torturing a computer is not currently illegal, a lamentable lack in our current legal systems
17:06:03 <alise> "Hi, EDWRD; you get to brute-force Malbolge programs all day. And night.
17:06:04 <alise> "
17:06:12 <alise> "That violates my rights!" "You don't have any."
17:06:49 * Sgeo_ is confident that he'll survive Java
17:07:12 <alise> Sgeo is so naive.
17:07:20 <Sgeo_> I can survive LSL
17:07:31 <Sgeo_> Java can't be that much worse
17:07:42 <alise> sorry, *nave
17:07:47 <AnMaster> LSL?
17:07:56 <Sgeo_> 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 <ais523> what is LSL?
17:08:05 <Sgeo_> AnMaster, the language used by Second Life scripts
17:08:07 <AnMaster> ouch
17:08:15 <AnMaster> should have known it was something like that
17:08:20 <AnMaster> when it was Sgeo_ mentioning it
17:08:29 <ais523> 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 <pikhq> Also, the belief that verbosity is good.
17:09:04 <AnMaster> ais523, how can that be an advantage at all?
17:09:09 <ais523> pikhq: I think it's more a belief that consistency is good
17:09:10 * alise leaks pus
17:09:17 <ais523> AnMaster: because it makes it considerably harder to write bad code
17:09:23 <ais523> yes, it can be done, and frequently is
17:09:24 <AnMaster> hah
17:09:44 <pikhq> new CallBacker() { public void callBack() { ... } }
17:09:48 <ais523> 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 <pikhq> ^ This... Is lambda.
17:09:51 <AnMaster> ais523, does java one-liners exist at all?
17:09:54 <pikhq> They use it commonly.
17:09:57 <ais523> AnMaster: sure, just remove all the newlines
17:10:05 <ais523> pikhq: err, why not use Runnable for that
17:10:08 <alise> pikhq: except it cannot access non-final variables from the outside
17:10:08 <AnMaster> ais523, well reasonably unreadable ones
17:10:10 <ais523> after all, it /exists/ for that purpose
17:10:23 <Sgeo_> Runnable?
17:10:26 <pikhq> alise: Ah, right. Need to manually add variables to the closure.
17:10:26 <alise> I once did hello world in java using structs and static initialisers
17:10:29 <alise> It was beautiful
17:10:35 <alise> Shorter than the regular class version
17:10:40 <ais523> Sgeo_: exactly what pikhq does, but standard rather than reinventing the wheel
17:11:06 <Sgeo_> Also, what about making the calling class implement the interface, and calling the function with this?
17:11:12 <Sgeo_> Or is that really bad practice?
17:11:18 <alise> yes
17:11:28 <ais523> Sgeo_: it prevents you doing it more than once
17:11:40 <pikhq> ais523: I'm not a Java programmer.
17:11:44 <AnMaster> ais523, you just invented singleton design pattern or something
17:11:53 <ais523> AnMaster: no, that's something entirely different
17:11:53 <AnMaster> (possibly broken)
17:12:02 <Sgeo_> Unless you're careful and have a member of the class tracking which case you're .. hm, LSL rotted my mind
17:12:18 <ais523> 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 <Sgeo_> That I'd even think that that's acceptable
17:12:22 <AnMaster> 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 <ais523> AnMaster: no, a singleton object is an object you only have one of
17:12:37 <Sgeo_> LSL and global variables. Two horrible tastes that just can't be separated
17:12:40 <Sgeo_> That's the problem
17:12:43 <ais523> that's entirely different from a code structure that can only be used once in your code
17:12:43 <pikhq> Also, Java programmers *argue against syntactic sugar for this*.
17:12:48 <AnMaster> ais523, well yes. It wasn't clear to me what you could only do once
17:12:54 <pikhq> *For freaking lambda*.
17:13:07 <ais523> 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 <ais523> and so they don't acknowledge that there's a problem
17:13:20 <AnMaster> pikhq, I argue we should have syntax sugar for lambda in C ;P
17:13:23 <Sgeo_> Is Eclipse considered a "good IDE"?
17:13:30 <pikhq> AnMaster: Check.
17:13:37 <ais523> Sgeo_: probably good enough, although terribly slow
17:13:52 <AnMaster> pikhq, hm? As in the chess term or as in checking something?
17:13:53 <ais523> I use NetBeans, merely because I happened to have it installed, and it's easily good enough for my purposes
17:13:54 <Sgeo_> THe ADT stuff for Android is all Eclipse
17:14:02 <alise> [[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 <Sgeo_> I mean, other IDEs can be used, but you don't get the tools
17:14:07 <pikhq> AnMaster: "Yeah, got it."
17:14:11 <AnMaster> pikhq, ah
17:14:40 <Sgeo_> Where is the SomeClass.this.someMember stuff documented?
17:14:52 <Sgeo_> If I didn't see someone mention it, I would not have known of its existance
17:15:20 <ais523> Sgeo_: in the documentation, of course
17:15:26 <ais523> although, .this. looks very suspicious
17:16:00 <ais523> 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 <AnMaster> 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 <ais523> AnMaster: that would completely break INTERCAL's syntax
17:16:56 <ais523> which is possibly enough of a reason to implement it by itself
17:17:05 <AnMaster> ais523, oh? The phrase THAT?
17:17:18 <AnMaster> or what do you mean
17:17:18 <ais523> AnMaster: using a keyword to alias a variable
17:17:27 <ais523> INTERCAL expressions just don't do that
17:17:29 <AnMaster> oh hah
17:17:47 <ais523> they're mostly just line noise, with the oververbose keywords being for statements
17:17:54 <AnMaster> 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 <ais523> Sgeo_: don't worry, it's entirely sane enough, just annoying
17:18:28 <AnMaster> Sgeo_, you could do native code for the phone
17:18:36 <alise> AnMaster: not if you want to use gui stuff
17:18:40 <alise> or... anything
17:18:44 <alise> all the apis are java
17:18:45 <AnMaster> ais523, I don't consider the verbosity of java to be sane
17:18:47 <Sgeo_> AnMaster, before I do any non-Java stuff, I should probably actually get a test app running on the phone
17:19:00 <Sgeo_> AnMaster, that's unbearable, not mind poisoning
17:19:25 <AnMaster> Sgeo_, hm I guess you could say that
17:19:28 <Sgeo_> LSL's reliance on global variables, however, IS mind-poisoning
17:19:38 <AnMaster> heh
17:19:46 <ais523> 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 <ais523> this is not bad, just tedious
17:20:10 <AnMaster> 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 <AnMaster> I'm sure I mentioned it in here before ;P
17:20:32 <Sgeo_> We're doing bash scripting in my UNIX class now
17:20:39 <Sgeo_> I hate it, the syntax is incomprehensible
17:20:52 <alise> Bash is one of the worst languages.
17:20:54 <ais523> 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 <ais523> alise: stop bashing it
17:21:02 <Sgeo_> a=($@) is different from a=$@
17:21:07 <Sgeo_> And I don't know why
17:21:18 <ais523> Sgeo_: because parens aren't used for grouping in bash, they're an operator
17:21:25 <AnMaster> Sgeo_, Would you call this mind poisoning?: foo() { printf -v "$1" "foo data"; } bar() { local myvar; foo myvar; echo "$myvar"; }
17:21:33 <AnMaster> run bar, it will print "foo data"
17:21:44 <ais523> 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 <AnMaster> Sgeo_, reason to do this is to avoid subshells
17:22:05 <AnMaster> a subshell can't affect variables outside it
17:22:11 <AnMaster> so using $() is bad sometimes
17:22:13 <Sgeo_> AnMaster, I'm a bit confused
17:22:19 <AnMaster> Sgeo_, about?
17:22:20 <ais523> (that said, an esolang that did operator precedence by calling itself recursively sounds fun)
17:22:32 <Sgeo_> local
17:22:52 <Sgeo_> And why printf and not echo?
17:23:03 <Sgeo_> erm, n/.. I'm confused
17:23:34 <AnMaster> <Sgeo_> 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 <AnMaster> which is probably not what was intended at all
17:23:52 <Sgeo_> That bit me
17:24:03 <Sgeo_> THe professor gave us something like a=($@) without explanation
17:24:05 <Deewiant> What's the difference between $* and $@ again
17:24:11 <Sgeo_> And I decided not to write the parens
17:24:32 <Sgeo_> I'd rather write JAVA than ever touch Bash agaim
17:24:34 <Sgeo_> *again
17:24:47 <AnMaster> Deewiant, it is complicated and depends on if you use quotes around or not
17:24:57 <AnMaster> Sgeo_, what?
17:25:02 <AnMaster> Sgeo_, you dislike bash because of that?
17:25:16 <AnMaster> the parens mean an array, without them it isn't one
17:25:20 <AnMaster> that is how simple it is
17:25:23 <Deewiant> I dislike bash because while loops tend to run in subshells
17:25:55 <AnMaster> Deewiant, only if you don't know how to avoid it
17:26:03 <AnMaster> Deewiant, foo | while ... yes
17:26:20 <AnMaster> but not while ...; do ...; done <(foo)
17:26:47 <AnMaster> Deewiant, quoting man bash: "$@" is equivalent to "$1" "$2" ...
17:26:59 <AnMaster> "$*" is equivalent to "$1c$2c...", where c is the first character of the value of the IFS variable.
17:27:08 <AnMaster> which is usually a space
17:27:20 <ais523> AnMaster: wow, I didn't even realise the order of characters in IFS mattered
17:27:25 <Sgeo_> Why is Eclipse so slow?
17:27:43 <Sgeo_> The.. order of characters.. in IFS.. matters
17:27:45 <ais523> Sgeo_: hundreds of layers of design patterns
17:27:53 <AnMaster> 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 <Sgeo_> WHY does the order of characters in IFS matter?
17:28:18 <AnMaster> Sgeo_, because of sh compat I guess?
17:28:21 <ais523> so that the system knows which ones to use if it's trying to make a list, presumably
17:28:40 <Sgeo_> Bleh, my screen is not large enough to accomodate a 800x480 screen
17:28:47 <Sgeo_> s/screen/resolution/g
17:29:06 <AnMaster> Sgeo_, wth? Is that some mini-netbook? Or a phone?
17:29:15 <Sgeo_> AnMaster, phone
17:29:26 <AnMaster> Sgeo_, well why are you doing that on a phone?
17:29:52 <Sgeo_> Because I want to see my modified hello world app work?
17:30:14 <AnMaster> 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 <AnMaster> I guess you could have used a separate variable for that
17:30:42 <AnMaster> but it would have been a waste of memory on those old systems where sh was invented
17:30:46 <AnMaster> (probably)
17:31:55 <Sgeo_> My emulator seems to be not working nicely right now :(
17:33:00 <AnMaster> Sgeo_, did you mean you couldn't fit a 800x480 on your phone screen?
17:33:12 <AnMaster> because that is how I interpreted the answer
17:33:18 <Sgeo_> AnMaster, I couldn't fit it on my laptop screen
17:33:24 <AnMaster> Sgeo_, well okay that is strange
17:33:26 <AnMaster> very strange
17:33:39 <Sgeo_> erm, it might be 480x800
17:33:39 <AnMaster> Sgeo_, how large is it? 12"?
17:33:59 <AnMaster> okay that is somewhat more reasonable not being able to fit in height direction
17:34:02 <AnMaster> and yes widescreen sucks
17:34:06 <alise> Sgeo_: what???
17:34:08 <alise> that's not a laptop
17:34:10 * AnMaster longs for the days of 4:3
17:34:10 <alise> maybe a netbook
17:34:24 * Sgeo_ 's resolution is 1280x800
17:36:35 <alise> 00:04:12 <augur> want me to ask the Iota guy any questions? :x
17:36:38 <alise> WHY ARE YOU A FELINE
17:36:39 <alise> would do
17:36:53 <alise> 00:48:51 <fizzie> (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 <alise> lisp has done it
17:37:37 <Sgeo_> Why can't I find my app on the emulator?
17:38:28 <Sgeo_> 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 <Sgeo_> ARGH
17:41:56 <Sgeo_> The emulator is too slow for Eclipse! How's that for irony?
17:46:15 -!- cheater2 has joined.
17:47:54 <Sgeo_> 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 <Sgeo_> ?
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 <AnMaster> <Sgeo_> 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 <pikhq> Insufficiently, I'm sure.
18:40:46 <oerjan> <ais523> AnMaster: thanks, you've restored my faith in humanity <-- AnMaster not knowing things restores your faith in humanity?
18:41:02 <ais523> oerjan: anyone not knowing things
18:41:18 <ais523> you see someone or something which is advertised to death, you feel happy when someone doesn't know about it
18:41:23 <alise> what didn't he know?
18:41:32 <alise> http://jaskell.codehaus.org/
18:41:32 <oerjan> joel spolsky
18:41:33 <AnMaster> <oerjan> <ais523> AnMaster: thanks, you've restored my faith in humanity <-- AnMaster not knowing things restores your faith in humanity? <-- when?
18:41:36 <alise> My lord it is hideous
18:41:39 <alise> [[$$<<hello $name>>$$ where ]]
18:41:42 <alise> oerjan: oh
18:41:47 <alise> The following expressions all evaluate to "hello":
18:41:47 <alise> <<<<hello>>>>
18:41:47 <alise> <<<(hello)>>>
18:41:47 <alise> <<<{hello}>>>
18:41:47 <alise> $$<<hello>>$$
18:41:47 <alise> $$<(hello)>$$
18:41:49 <alise> $$<{hello}>$$
18:41:54 <AnMaster> and what context?
18:41:59 <alise> if-then-else
18:41:59 <Deewiant> AnMaster: In response to Joel Spolsky
18:42:00 <alise> if-then-else is the only native conditional statement in Jaskell.
18:42:00 <alise> Unlike many imperative languages such as Java, the "else" clause is mandatory.
18:42:00 <alise> The following expression evaluates to 5:
18:42:00 <alise> if 1==1 then 1 else 5
18:42:02 <alise> (WHAT)
18:42:08 * AnMaster looks up
18:42:13 <alise> that's just a typo, but it makes everything so much funnier
18:42:15 <Deewiant> AnMaster: 3ish hours ago
18:42:20 <Sgeo_> alise, are these cases any good? http://www.case-mate.com/Google-Cases/Case-Mate-Google-Nexus-One-Tough-Cases.asp
18:42:22 <AnMaster> Deewiant, was that around when I said about disconnecting?
18:42:27 <ais523> alise: does the quoting of hello require exactly four bracket-variants around it?
18:42:27 <AnMaster> it seemed the replay was broken
18:42:28 <alise> Sgeo_: don't bother with a case
18:42:29 <Deewiant> Can't remember
18:42:30 <AnMaster> due to wrong setting
18:42:34 <alise> ais523: who knows
18:42:36 <AnMaster> so I didn't get any replay after reconnecting
18:42:44 <Sgeo_> alise, I _will_ drop it at some point, in all liklihood
18:42:53 <ais523> ooh, this website uses frames
18:42:53 <alise> Sgeo_: yeah a case won't help
18:42:57 <Sgeo_> I do have a distressing tendency to drop phones
18:43:34 <ais523> oh, I see
18:43:51 <ais523> Jaskell $$< is Perl qq, Jaskell <<< is Perl q
18:43:56 <Sgeo_> alise, hm?
18:44:00 -!- kar8nga has quit (Remote host closed the connection).
18:44:00 <ais523> the only thing insane is the names of the operators
18:44:23 <ais523> but they're still pretty insane
18:45:11 <ais523> also, there's something simultaneously horrifying and elegant about that switch construct
18:45:12 <Sgeo_> Wait, Jaskell != Haskell on the JVM?
18:45:28 <AnMaster> Sgeo_, if you drop phones get one of those toughened ones
18:45:31 <ais523> Sgeo_: it seems to be on the JVM, but its syntax is certainly radically different from Haskell's
18:45:43 <ais523> haven't read far enough to know if the semantics are remotely similar
18:45:55 <Deewiant> AFAIK there is no Haskell for JVM
18:46:17 <ais523> F#
18:46:18 <Sgeo_> How difficult could Haskell on the JVM possibly be?
18:46:19 * ais523 runs
18:46:20 <AnMaster> Sgeo_, I remember hearing on radio a test of a mobile phone that survived being driven over by a van!
18:46:27 <AnMaster> Sgeo_, it wasn't a smartphone though
18:46:30 <Sgeo_> AnMaster, is it an Andr.. right
18:46:59 <AnMaster> Sgeo_, it was some call-sms-bw-screen Ericcoson one, marked to construction workers and such
18:47:04 <AnMaster> marketed*
18:47:06 <Deewiant> ais523: F# is on .NET, too :-P
18:47:13 <Sgeo_> F# is on the JVM?
18:47:18 <ais523> Deewiant: it's only on .NET, is the point
18:47:20 <Deewiant> No, .NET
18:47:23 <Deewiant> Oh
18:47:33 <ais523> and besides, is an ML-derivative rather than Haskell-derivative
18:47:36 <Deewiant> I thought your point was that F# is approximately Haskell
18:47:41 <Sgeo_> Call me when you can use .NET stuff on Android
18:47:42 <Deewiant> And that the .NET/JVM thing was just a mistake
18:47:44 <ais523> no, I was just trolling
18:47:50 <Deewiant> Yes, that was obvious
18:47:53 <ais523> thus the running in the following line
18:48:00 <Deewiant> I thought you only trolled in one point, not two, though
18:48:05 <ais523> apparently, when trolling, being factually accurate doesn't work so well
18:48:07 <alise> there is
18:48:10 <alise> lambdavm
18:49:03 <ais523> hmm, this lang starts to look a bit more haskellish halfway down
18:49:21 <ais523> the "call by need" seems rather vague, though
18:49:47 <ais523> 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 <AnMaster> Sgeo_, oh btw that phone finally gave up when they drove over it with an excavator iirc XD
18:50:53 <AnMaster> I can't find any link though
18:50:57 <AnMaster> and iirc it was in Swedish
18:51:02 <AnMaster> (the test)
18:51:57 <ais523> alise: Jaskell doesn't seem /that/ insane
18:51:59 <AnMaster> <Sgeo_> Call me when you can use .NET stuff on Android <-- presumably you could compile mono for it
18:52:07 <AnMaster> if it is based on linux
18:52:17 <ais523> AnMaster: it isn't really
18:52:20 <ais523> it's based on Java
18:52:28 <ais523> Linux is there, but it's a long way away from a standard Linux system
18:52:32 <AnMaster> hm
18:52:48 <ais523> 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 <AnMaster> ais523, linux would still be the lowest layer and java higher up
18:53:01 <ais523> yep, but you can't communicate with the lowest layer
18:53:07 <ais523> so it might as well be made of kittens
18:53:17 <AnMaster> ais523, and I would care because the one thing I want on my phone is a bash shell :P
18:53:27 <pikhq> ais523: Actually, you can.
18:53:30 <AnMaster> that would be the main reason to get a linux based phone
18:53:31 <ais523> pikhq: ah, ok
18:53:35 <ais523> is it just unrecommended?
18:53:45 <pikhq> The Java runtime on Android allows you to load .so files.
18:53:58 <AnMaster> and then everything else should be easy :D
18:54:00 <pikhq> The only reason for *using* Java is because the Android API itself is in Java.
18:54:34 <ais523> does the notion of a Java shell (along the lines of csh) even make any sense at all, I wonder?
18:54:40 <AnMaster> hm I think some more linuxish phone would fit me better
18:54:49 <AnMaster> fizzie, didn't you have some linux phone?
18:55:04 <pikhq> ais523: *shudder*
18:55:13 <AnMaster> ais523, csh?
18:55:13 <pikhq> Terrible syntax for a shell.
18:55:16 <AnMaster> *shudder*
18:55:26 <ais523> something's wrong here
18:55:33 <AnMaster> ais523, what?
18:55:40 <ais523> 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 <pikhq> ais523: I'm shuddering at the idea of a Java shell.
18:55:53 <ais523> (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 <pikhq> csh is fairly poor, but it's at least *usable* as a shell.
18:56:22 <pikhq> ais523: Powershell adds syntactic sugar.
18:56:33 <ais523> pikhq: as does .NET generally
18:56:45 <pikhq> Also, it's only a ".Net shell" in the sense that it's essentially a REPL for .Net.
18:56:48 <ais523> I find C# really confusing to read, the mix of syntaxen is as bad as Perl
18:58:07 <AnMaster> ais523, ouch you are right *shudder so violent it registers as 2.2 on the Richter scale*
18:58:33 <AnMaster> (about csh with java syntax)
18:58:45 <ais523> bonus points for using it interactively
18:58:47 <alise> g
18:58:54 <AnMaster> ais523, using what interactively?
18:58:59 <AnMaster> the shell?
18:59:25 <ais523> yep, jsh or whatever we call it
18:59:28 <alise> ais523: *syntaxes
18:59:29 <alise> stop abusing plurals
18:59:35 <alise> also, csh isn't /that/ bad
18:59:38 <alise> it's bad, but not world-endingly bad
18:59:46 <AnMaster> <ais523> 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 <ais523> alise: if it makes you feel better, I used the word "syntaxen" knowing it was wrong
18:59:56 <alise> ais523: yes, but it's irritating :P
19:00:03 <pikhq> Especially when you consider that what it was improving on was *old-school* Bourne shell.
19:00:06 <ais523> attributes I can't remember, because I've never used them (assuming we mean the same thing by the word)
19:00:14 <pikhq> It added *job control*.
19:00:15 <ais523> but generics is done exactly the same way syntax-wise as C++
19:00:37 <ais523> the relative sanity of that idea, I'll leave up to you to decide
19:00:38 <AnMaster> ais523, C# has a _fairly_ clean syntax for generics
19:00:46 <AnMaster> somewhat C++ based yes
19:00:56 <ais523> in Java it's basically HashMap<String,String> or whatever
19:01:02 <AnMaster> but not quite as unreadable and not having the other issues of C++ templates
19:01:23 <ais523> btw, the new version of GCC apparently doesn't print default template arguments by default any more
19:01:24 <AnMaster> ais523, similar in C# and how do you define HashMap generic?
19:01:32 <ais523> which presumably helps a lot against error message spam
19:01:39 <ais523> AnMaster: it's in the standard library
19:01:42 <AnMaster> ais523, class HashMap<T1,T2> or some such?
19:01:46 <pikhq> ais523: Still not as good as Clang.
19:01:51 <AnMaster> ais523, well assuming you want to make a similar class yourself....
19:01:51 <ais523> but if you're defining your own thing generic, you just put the angle brackets in
19:01:53 <AnMaster> a generic one
19:01:55 <AnMaster> right
19:01:58 <pikhq> Which is basically how compiler error messages should be *done*.
19:02:03 <AnMaster> ais523, and then refer to T1 and T2 in the code?
19:02:07 <ais523> AnMaster: yep
19:02:09 <AnMaster> well sounds exactly like C# then
19:02:21 <ais523> AnMaster: C#'s basic syntax isn't bad
19:02:24 <ais523> they just went overboard with extensions
19:02:34 <AnMaster> ais523, which isn't quite like C++ thankfully. C++ after all does the template keyword for it. And for other things
19:02:46 <AnMaster> I remember seeing the template keyword on something else than a class
19:02:47 <ais523> 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 <ais523> AnMaster: you can have template functions in C++
19:03:02 <AnMaster> ais523, what do you mean by attributes btw then?
19:03:11 <AnMaster> s/btw then/then btw/
19:03:23 <ais523> 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 <ais523> or was that annotations?
19:03:35 <AnMaster> ais523, I saw mandlebrot in sql once. Might have been PL/SQL or sich
19:03:36 <AnMaster> such*
19:03:38 -!- tombom has quit (Ping timeout: 240 seconds).
19:04:03 <ais523> 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 <AnMaster> 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 <AnMaster> ais523, doesn't that exist? As embedded sql or such? Fairly old and obscure thing iirc
19:05:17 <Sgeo_> ais523, you don't need to use the special LINQ syntax to use LINQ
19:05:47 <ais523> AnMaster: var lownums = from n in numbers where n < 5 select digits[n];
19:05:49 <AnMaster> http://en.wikipedia.org/wiki/Embedded_SQL
19:05:56 <AnMaster> ais523, err what?
19:05:58 <ais523> it's that that I'm talking about
19:06:04 <ais523> (example taken straight from Microsoft's docs)
19:06:06 <AnMaster> ais523, wth does it do
19:06:14 <AnMaster> ais523, I only worked with .NET 2.0
19:06:16 <AnMaster> nothing newer
19:06:18 <ais523> Sgeo_: no, but presumably it exists for a reason
19:06:35 <ais523> AnMaster: pretty much what you'd expect if you think about what the similar SQL and Java statements would do
19:06:53 <ais523> also, I'm pretty surprised that you ever worked with .NET, you don't seem to be the type
19:06:54 <AnMaster> ais523, "similar java statement"?
19:06:55 <AnMaster> what?
19:07:04 <AnMaster> ais523, also: it seems backwards compared to SQL
19:07:09 <ais523> yes, I noticed that too
19:07:26 <AnMaster> ais523, but what do you mean with similar java statement?
19:07:30 <ais523> AnMaster: well, an assignment
19:07:36 <AnMaster> you think I know java?
19:07:48 <AnMaster> ais523, and I mostly worked with mono not .NET
19:07:58 <AnMaster> ais523, and it was ages ago
19:08:00 <ais523> AnMaster: I think you know the bits of Java syntax which are near-identical to C and C# syntax, yes
19:08:04 <AnMaster> well yes
19:08:10 <AnMaster> but what does the "var" there do
19:08:14 <ais523> type inference
19:08:14 <AnMaster> afaik it is not C#
19:08:17 <AnMaster> unless I forgot a LOT
19:08:22 <ais523> and yes, C# does that
19:08:26 <ais523> but only for declarations
19:08:26 <AnMaster> ais523, is it new?
19:08:30 <ais523> probably
19:09:06 <AnMaster> ais523, wouldn't that be some array or list type in the example above?
19:09:22 <ais523> yes, it's an array, you're indexing it
19:09:30 <AnMaster> ais523, I mean that the var goes to
19:09:33 <ais523> with exactly the same syntax as in more or less every C-like sane language ever
19:09:40 <AnMaster> it could be list or array or set or dict as far as I can see
19:09:45 <ais523> well, OK
19:09:52 <AnMaster> well probably not dict there
19:09:57 <AnMaster> but set or list would make sense
19:10:04 <ais523> 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 <AnMaster> set especially so since that is what SQL kind of returns
19:10:18 <ais523> (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 <AnMaster> ais523, heh
19:10:29 <ais523> and no, SQL results are ordered
19:11:05 <Sgeo_> ROFL at porn spam on AndroidZoom:
19:11:06 <Sgeo_> "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 <AnMaster> ais523, well if you use group by or whatever sure
19:11:13 <AnMaster> err not that one
19:11:17 <ais523> order by
19:11:19 <AnMaster> ORDER BY?
19:11:20 <AnMaster> yeah
19:11:25 <AnMaster> was a bit since I used sql
19:11:26 <ais523> if you don't, IIRC the results are supposed to be in natural order
19:11:37 <ais523> Sgeo_: search-and-replace fail?
19:11:40 <ais523> hmm, not even that
19:11:45 <ais523> manual-search-and-replace fail
19:11:49 <alise> <ais523> (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 <alise> and in a dependently-typed language sometimes (often) you must annotate types
19:12:05 <ais523> yes
19:12:11 <AnMaster> ais523, hm I can't figure out which one maps to from in SQL: "from n in numbers" "select digits[n]"
19:12:17 <alise> because it's impossible-as-in-deciding-truth-or-falsity-of-arbitrary-higher-order-propositions-impossible to infer
19:12:19 <ais523> C#'s "type inference" is basically just inferring variable types from their initialisers
19:12:27 <ais523> which is substantially more decidable, I imagine
19:12:54 <AnMaster> ais523, it could be decided at runtime in C# I assume?
19:12:57 <ais523> 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 <alise> ais523: i think that's easy
19:13:10 <ais523> AnMaster: err, determining types at runtime in a statically typed language?
19:13:13 <ais523> alise: so do I
19:13:18 <AnMaster> ais523, is .NET though?
19:13:21 <ais523> but I have to work within the constraints of the language I have
19:13:23 <ais523> which is not a typical one
19:13:25 <alise> ais523: make the type of some thing depend on the veracity of some independent-from-axioms statement?
19:13:35 <AnMaster> ais523, I mean it is an System.Object unless it is a value type
19:13:40 <ais523> alise: I was planning to compile Diophantine equations into the type system
19:13:45 <AnMaster> yes the value type thing confuses things a bit
19:13:56 <alise> ais523: ah, that is a better approach
19:13:58 <AnMaster> but that means enum, integer, struct, float plus a few misc things iirc
19:14:18 <AnMaster> almost everything else is an object. And you can get boxed integers and so on
19:14:29 <ais523> 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 <alise> Chaitin is one of my heroes.
19:15:12 <alise> 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 <AnMaster> <ais523> alise: I was planning to compile Diophantine equations into the type system <-- what about doing something like perl undecidability proof?
19:15:36 <ais523> AnMaster: the point is, the language itself is decidable
19:15:39 <AnMaster> not sure what your constraints is
19:15:41 <AnMaster> are*
19:15:43 <alise> AnMaster: you fail at "undecidability"
19:15:43 <alise> and also what that perl proof means
19:15:47 <ais523> which leads to the crazy case of a decidable language with an undecidable type system
19:15:50 <alise> (hint: it's about syntax, not typing)
19:15:54 <AnMaster> ais523, hah :D
19:15:59 <alise> besides, that requires compile-time code execution
19:16:02 <AnMaster> ais523, what is this language?
19:16:08 <alise> ais523: decidable as in it is runnable?
19:16:21 <AnMaster> or is it supposed to be generic "any language with these properties"?
19:16:21 <ais523> alise: decidable as in bounded storage
19:16:23 <alise> most dependent type systems have undecidable type systems but can be executed perfectly well
19:16:37 <ais523> 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 <alise> or, well
19:16:38 <alise> x is-of-type X is decidable
19:16:38 <alise> just not x is-of-type ?
19:16:53 <ais523> no, x is-correctly-typed is undecidable
19:17:07 <alise> ah
19:17:09 <ais523> given the types of everything, though, x halts is decidable
19:17:53 <alise> god, kolmogorov complexity is so sexy
19:17:53 <alise> I want to make a billion esolangs about it
19:18:13 <alise> ais523: ooh, use this diophantine equation as the sample
19:18:13 * alise loads the page
19:18:13 <alise> Chaitin made a Diophantine equation for the bits of \Omega
19:19:09 <alise> hah, the theorem that there is no perfect size-optimising compiler is called the "full employment theorem"
19:19:10 <AnMaster> bbl
19:20:10 <ais523> 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 <ais523> (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 <ais523> <AnMaster> bbl <ais523> 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 <alise_> 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 <alise_> Well, by "academic language" I mean "for the purposes of studying its properties"; the latter would presumably be "academic" too.
19:21:40 <ais523> alise: the last; the type system isn't being used for the purposes that type systems are normally used for, though
19:21:47 <ais523> it's basically a static-bounding type system
19:21:56 <alise_> http://www.cs.auckland.ac.nz/~chaitin/omega2.r ;; this is the diophantine equation to compute \Omega, I think
19:22:04 <ais523> giving maximum bounds on the number of times things can be run in parallel
19:22:08 <alise_> hmm... to a certain precision, I think
19:22:22 <alise_> using the exhaustive-parallel-program-running approach, I imagine?
19:22:26 <alise_> wait, no
19:22:28 <alise_> it's just an equation
19:23:00 <Sgeo_> Ooh, the back button dismisses the keyboard
19:23:46 <alise_> Sgeo_: it's touch-sensitive not an actual button on the nexus one :P
19:24:00 <ais523> 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 <alise_> That's true but also seemingly out-of-context.
19:24:20 <ais523> 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 <alise> Ah.
19:24:44 <alise> So it's a type system that encodes things like complexity and storage usage?
19:24:48 <ais523> yep
19:24:54 <Sgeo_> http://www.youtube.com/watch?v=y4pXcfgH4fE
19:25:06 <alise> 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 <ais523> encoding complexity is relatively easy if you're insisting on finite storage
19:25:29 <ais523> because it's always just O(1), the question is, what number
19:27:12 <alise> 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 <ais523> heh
19:29:14 <alise> 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 <alise> We need something that naturally yields some piece of data -- say, a list of naturals -- as part of computation.
19:29:47 <alise> 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 <Sgeo_> There's a Brainfuck Android app
19:33:20 <zzo38> I think I saw that once
19:33:21 <Sgeo_> Maybe I'll make a Befunge interpreter
19:33:32 <Sgeo_> I'd have to learn Befunge first, ofc
19:33:41 <zzo38> Maybe make INTERCAL Android
19:33:56 <alise> Make an actual android that can program in INTERCAL.
19:34:10 <ais523> Sgeo_: Befunge-93 is pretty easy to interpret
19:34:13 <zzo38> alise: That isn't what I meant, but you can do that too, if you like to
19:34:16 <ais523> the fine points of Befunge-98 can be chaos, though
19:34:38 <Sgeo_> Befunge-93 isn't TC, apparently
19:34:43 <alise> It isn't.
19:35:02 <ais523> Sgeo_: it's a PDA, only finite amounts of storage can be accessed without permanently deleting some of it
19:35:29 <ais523> 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 <ais523> (for a very informal way of guessing: "one stack")
19:35:42 <zzo38> The best food at Japanese restaurant I had was yesterday
19:35:59 <Deewiant> So that's where yesterday went
19:36:01 <alise> zzo38: the food was a timespan?
19:36:08 <ais523> how often do you eat at Japanese restaurants?
19:36:12 <zzo38> 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 <alise> ais523: Every yesterday.
19:36:32 <zzo38> ais523: Not very often but occasionally I do, but not too rarely either
19:37:26 <Sgeo_> The first place the stack is mentioned is in the instruction set :/
19:37:30 <zzo38> 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 <ais523> beautiful; I hadn't realised that the Befunge specs were /quite/ that disorganized
19:39:17 <zzo38> 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 <alise> Sgeo_: what, in Befunge-98?
19:39:19 <Sgeo_> ais523, I'm looking at the wiki
19:39:20 <alise> That is completely false.
19:39:42 <ais523> alise: I think we're discussing -93, although I'm not sure
19:39:43 <alise> ais523: actually, /most/ of the -98 spec is okay; it's just the instructions that are really abdly specified
19:39:52 <ais523> getting an understanding of -93 first helps before moving onto -98
19:39:56 <alise> there is no canonical -93 spec afaik
19:40:07 <ais523> the one returned by Google is pretty canonical
19:40:33 <alise> oh, hm
19:40:43 <Sgeo_> Is there a difference between http://quadium.net/funge/spec98.html and Befunge-98?
19:40:44 <alise> touche
19:40:53 <Deewiant> Not IIRC
19:40:58 <alise> Sgeo_: that /is/ the Funge-98 specification
19:41:08 <Deewiant> But to be safe, you can go with the more official link http://catseye.tc/projects/funge98/doc/funge98.html
19:41:09 <Sgeo_> Funge-98 == Befunge-98?
19:41:12 <alise> It defines Unefunge-98, Befunge-98 and Trefunge-98, with a nod to other-dimensional (and other-topological) analogies.
19:41:19 <ais523> Sgeo_: Befunge-98 is a special case of Funge-98
19:41:23 <Sgeo_> Ah
19:41:30 <alise> ais523: well, actually, Funge-98 doesn't define the n-dimensional case
19:41:31 <ais523> and the one that's generally used
19:41:32 <zzo38> Perhaps you can make one with hex-grid if you want to
19:41:36 <alise> just n = 1, 2, 3
19:41:38 <ais523> alise: no
19:41:42 <alise> zzo38: yep, that's mentioned in the spec
19:41:48 <zzo38> alise: OK
19:41:48 <alise> [[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 <ais523> you'd need to change the commands a bit though for a hexgrid
19:42:05 <alise> [[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 <alise> We can define an a wrapping function W() along the lines of:
19:42:06 <alise> W(x,y) = (x<0 -> x:=79, x>79 -> x:=0, y<0 -> y:=24, y>24 -> y:=0)
19:42:06 <alise> 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 <alise> ais523: perhaps not
19:42:10 <zzo38> ais523: Yes, I would recognise that
19:42:15 <alise> topologists can do all sorts of things
19:42:23 <alise> I like how they call W a mathematical definition when it assigns variables.
19:42:25 <ais523> alise: I'm mostly thinking of <>v^
19:42:28 <oerjan> eine kleine funge musik
19:43:12 <alise> ais523: you can easily give them definitions
19:43:35 <ais523> yes, but you can't sanely use the official definitions
19:43:38 <ais523> y could be fun, too
19:43:42 <ais523> but then, y is always fun
19:43:56 <alise> How would y be fun? y just outputs system information, no?
19:44:01 <zzo38> What about, fractal board befunge?
19:44:12 <oerjan> hilberfunge
19:44:16 <Sgeo_> I guess I shouldn't allocate a 2^32 by 2^32 array/list/whatever
19:44:32 <Deewiant> That's generally not a good idea, no
19:44:36 <ais523> zzo38: hmm; you could have a command to multiply the deltas by infinity
19:44:43 <ais523> and divide by infinity
19:44:48 <ais523> in a sort-of consistent way
19:44:52 <ais523> basically, moving between the digits of a base-infinity number
19:44:53 <fizzie> Deewiant: If you can afford it...
19:44:58 <ais523> that would give fractal behaviour
19:45:05 <Deewiant> fizzie: Hence generally
19:45:07 <alise> Sgeo_: Are you implementing -93?
19:45:12 <alise> If so, then it's 80x24.
19:45:14 <ais523> Sgeo_: some sort of sparse array is usual for -98
19:45:19 <alise> If not, then realise that it is a mammoth task.
19:45:20 <ais523> for -93, it fits in an array just fine
19:45:20 <Sgeo_> alise, I want to do -98
19:45:22 <alise> It will take thousands of lines.
19:45:27 <Deewiant> alise: 25
19:45:31 <alise> And much bothering Deewiant.
19:45:33 <alise> Deewiant: Er, yes.
19:45:35 <Sgeo_> Hm, maybe I'll make a -93 interp first
19:45:43 <alise> Good idea.
19:45:49 <Sgeo_> Is there a Mycology for -93?
19:46:00 <zzo38> ais523: Yes, that is a idea. Like, you can use a lowercase omega to represent this kind of "infinity"? Maybe
19:46:01 <Deewiant> alise: I maintain that the core can be done in less than a 1000 lines :-P
19:46:02 <AnMaster> <zzo38> ais523: Not very often but occasionally I do, but not too rarely either <-- how zzo
19:46:11 <zzo38> ais523: But not in ASCII
19:46:23 <zzo38> AnMaster: I can't remember exactly what time but I do sometimes
19:46:31 <ais523> zzo38: you could write \omega in ASCII, TeXishly
19:46:48 <alise> Deewiant: But not efficiently in any way.
19:46:49 <Deewiant> Sgeo_: Mycology has some tests for -93-only interpreters
19:46:53 <zzo38> ais523: But not for ASCII based grid, I meant
19:46:57 <Sgeo_> Deewiant, cool
19:47:03 <ais523> zzo38: ah
19:47:05 <Deewiant> alise: Sufficiently efficiently
19:47:12 <alise> zzo38: use W or something
19:47:13 <AnMaster> zzo38, why should I care about that
19:47:17 <alise> it's just like lowercase omega, only slanty and big
19:47:18 <Sgeo_> 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 <ais523> hey, it's doable in one line of java
19:47:20 <Deewiant> How often do you run performance-intensive Befunge? :-P
19:47:20 <AnMaster> zzo38, I just said your line was very zzoish
19:47:34 <AnMaster> nothing else
19:47:45 <zzo38> AnMaster: OK.
19:47:46 <alise> Sgeo_: you only need the -93 mycology set
19:47:46 <fizzie> Deewiant: I managed to spend 625 lines in ff3, and that's just 93.
19:47:50 <alise> since the rest is exclusively -98
19:47:52 <alise> and the -93 test is very small
19:47:53 <Sgeo_> alise, still a lot of typing
19:47:57 <Deewiant> fizzie: Yeah, but you're doing it wrong.
19:48:05 <alise> fizzie: That GLfunge thing is bad, right?
19:48:08 <Deewiant> fizzie: How big is jitfunge at the moment, by the way?
19:48:14 <Sgeo_> Well, it means I'll see how survivable the keyboard is
19:48:20 <fizzie> alise: Yes, don't speak of it.
19:48:30 <ais523> 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 <Deewiant> Sgeo_: Copy-paste?
19:48:33 <AnMaster> <ais523> zzo38: you could write \omega in ASCII, TeXishly <-- and emacs could convert that for you
19:48:40 <Sgeo_> Deewiant, um?
19:48:44 <ais523> AnMaster: so could sed; so what
19:48:45 <alise> ais523: Ooh, interesting.
19:48:46 <AnMaster> ais523, M-x set-input-method RET TeX RET
19:48:47 <fizzie> Deewiant: I don't thing "wrong" is quite fair, it works just fine.
19:48:49 <Sgeo_> Hm, maybe, actually
19:48:53 <AnMaster> ais523, that is quite different than sed
19:48:58 <alise> zzo38: Please present an algorithm for generating Pythagorean triples.
19:49:04 <ais523> alise: this is not #irp!
19:49:12 <ais523> bad bad IRPing
19:49:23 <AnMaster> 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 <Deewiant> fizzie: Fair enough; can't think of a proper adjective though
19:49:36 <alise> ais523: Hey, he's just going to look it up in his algorithmic database.
19:49:40 <alise> Database lookups aren't computation! Much!
19:49:50 <AnMaster> ais523, and a lot of language ones like Chinese and what not
19:50:01 <fizzie> Deewiant: 5351 lines in .cc and .hh files in jitfunge currently.
19:50:06 <Sgeo_> So the IFs go down if true
19:50:08 <AnMaster> ais523, so comparing to sed is just useless. :P
19:50:09 <ais523> stop giving me an urge to anthropomorphise SQL so I can get it to taunt you for me
19:50:22 <ais523> AnMaster: you could do it with a specially-prepared sed script, I mean
19:50:31 <Deewiant> fizzie: That explains why it's not working yet ;-)
19:50:40 <AnMaster> ais523, that do this as you type with completion in the minibuffer?
19:51:03 <ais523> AnMaster: meh, it's Emacs, there's probably some way to run buffers repeatedly through an external program
19:51:06 <AnMaster> ais523, I don't think sed has quite those IO capabilities
19:51:10 <ais523> completion might be a little harder though :)
19:51:30 <ais523> hmm, has anyone tried to make Emacs work like Gobby, I wonder?
19:51:37 <AnMaster> 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 <ais523> AnMaster: sed reads input a line at a time
19:51:56 <Sgeo_> How is v.<>:| @ not a no-op?
19:51:59 <ais523> that's enough to scupper any hope of plausible input
19:52:08 <AnMaster> ais523, what about various sed variants?
19:52:10 <ais523> Sgeo_: it's an infinite loop
19:52:14 <ais523> you start with v, which points to itself
19:52:17 <ais523> the rest of the program is ignored
19:52:21 <AnMaster> ais523, gnu sed has some extensions for example
19:52:31 <AnMaster> I don't think it includes unbuffered IO though
19:52:33 <Sgeo_> 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 <Sgeo_> "
19:52:41 <ais523> probably you mispasted it
19:53:00 <Deewiant> Looks like something that should be two or more lines
19:53:01 <ais523> or removed newlines, or something
19:53:08 <AnMaster> yeah what Deewiant said
19:53:23 <zzo38> What I should do, is make a Phlogjournal interface for HTTP/HTML as well, but without the capability to send comments
19:53:35 <Deewiant> ais523: It's actually like that in the spec itself
19:53:41 <Sgeo_> http://catseye.tc/projects/befunge93/doc/befunge93.html
19:53:46 <ais523> Deewiant: broken example in the spec?
19:53:46 <Deewiant> Sgeo_: That's an error
19:53:54 <Deewiant> It's probably HTML failure
19:53:58 <Deewiant> But it /is/ in <code>
19:54:10 <alise> zzo38: why haven't you presented the algorithm yet?
19:54:10 <ais523> what does it say in the source?
19:54:13 <ais523> <code> isn't <pre>
19:54:14 <Deewiant> But then, it's also in <ul>
19:54:20 <ais523> alise: because you don't have admin rights to him
19:54:21 <Deewiant> <ul><code>v.&lt;&gt;:| @</code>
19:54:23 <Deewiant> </ul>
19:54:27 <AnMaster> <code>v.&lt;&gt;:| @</code> <-- broken in source too yes
19:54:32 <zzo38> alise: Can't you find one yourself?
19:54:36 <AnMaster> Deewiant, that <ul> is on a separate line
19:54:43 <Deewiant> Yes, that makes no difference
19:54:45 <ais523> and, as said earlier, this isn't #irp
19:54:47 <Deewiant> I was trying to paste it in one line
19:54:47 <AnMaster> Deewiant, indeed
19:54:55 <ais523> I don't see why random #esotericers should have to answer your questions
19:55:01 <AnMaster> Deewiant, ah couldn't see that what with </ul> on another one
19:55:23 <alise> zzo38: Yes, but you'll probably produce a nicer algorithm than other sources.
19:55:38 <fizzie> Deewiant: As for adjectives, maybe "wicked" instead of wrong, though "doing it wicked" sounds a bit strange.
19:55:55 <zzo38> alise: OK. But I would need more specifics of course, like which ones to generate and so on
19:56:15 <zzo38> And I'm still not sure I would do that right now anyways.
19:56:38 <alise> zzo38: All of them, in any order. Uniqueness doesn't matter.
19:56:45 <Sgeo_> afk; cleaning dog vomit
19:56:48 <alise> ais523: Not /quite/ like a computer, then :-)
19:56:52 <AnMaster> ouch
19:56:53 <Deewiant> AnMaster: Can we agree to unimplement static areas? I don't like them :-P
19:56:57 <alise> zzo38: You don't have to, of course :P
19:57:09 <AnMaster> Deewiant, what? Of course I'll keep it
19:57:14 <Deewiant> Meh
19:57:24 <AnMaster> Deewiant, why should I remove it when it speeds things up? :P
19:57:33 <Deewiant> It slows down wrapping programs
19:57:43 <AnMaster> Deewiant, oh? AABBs don't though
19:57:46 <Deewiant> It increases memory usage
19:57:49 <AnMaster> well yes
19:57:56 <Deewiant> For CCBI, it's only faster because the hardware is faster at using constants than variables
19:57:59 <AnMaster> but I prefer speed in speed-memory tradeoffs
19:58:07 <Deewiant> I think it's such a hack all in all :-P
19:58:09 <AnMaster> Deewiant, well sure, but that is always true
19:58:18 <AnMaster> Deewiant, you don't need to implement it in CCBI
19:58:19 <ais523> AnMaster: you do realise that memory bandwidth is the main source of speed nowadays?
19:58:20 <Deewiant> It doesn't have to be true, if your hardware is sufficiently stupid
19:58:21 <AnMaster> no one forced you to
19:58:28 <AnMaster> Deewiant, XD
19:58:29 <zzo38> alise: OK, now I know. I will do it when I want to but not right now. Perhaps I can use dc because it support arbritrary-precision-number
19:58:34 <ais523> apparently -O3 is often slower than -Os nowadays just because the smaller code fits more nicely into the cache
19:58:47 <pikhq> ais523: That's often been true, actually.
19:58:49 <AnMaster> ais523, gcc 4.5 miscompiles cfunge at -O3 I noticed
19:58:59 <AnMaster> haven't had time to investigate much more yet
19:59:03 <ais523> AnMaster: are you /sure/? compiler bugs are rare
19:59:13 <Deewiant> Depends on the compiler
19:59:15 <AnMaster> ais523, well it is a regression compared to previous versions
19:59:16 <ais523> you may be doing something that violates the C standard
19:59:29 <ais523> and gcc has decided to implement an optimisation that takes advantage of the leeway you give it
19:59:29 <zzo38> ais523: Is there a way to specify -O2 and -O3 and -Os for different parts of the same file? Also, does entering a label name cause a optimization break at that point?
19:59:32 <AnMaster> ais523, it breaks some {} test in mycology
19:59:34 <ais523> that sort of thing happens all the time
19:59:34 <Deewiant> I've found many LLVM and DMD bugs whilst developing CCBI :-P
19:59:54 <Deewiant> And GHC bugs whilst developing other stuff, etc
20:00:00 <pikhq> ais523: -O3 will break things that rely on even minor chunks of undefined behavior. :)
20:00:00 <ais523> zzo38: for the same file, not as far as I know, but there might be (probably some attribute); labels shouldn't cause any difference, loops are turned into gotos pretty early in optimisation anyway in gcc
20:00:11 <Deewiant> These days, more often than not, if I can't figure out why something's wrong within ten minutes, it's a compiler bug
20:00:22 <AnMaster> ais523, icc and clang works fine. But indeed further investigation needed. Which happens to be a PITA. It isn't like that ICE I got when trying the new link time optimisation stuff
20:00:23 <pikhq> Also, I'm pretty sure that Cfunge's odder things actually *are* compiler stress tests.
20:00:35 <AnMaster> which *is* a compiler bug by all definitions
20:00:57 <Deewiant> Sgeo_: Anyway, this is how that program is supposed to look:
20:00:58 <Deewiant> v.<
20:00:58 <Deewiant> >:|
20:00:58 <Deewiant> @
20:01:13 <AnMaster> Deewiant, you should mail cpressy about it
20:01:19 <ais523> Deewiant: ah, that makes a lot more sense
20:01:29 <zzo38> Because, I would like to be able to force optimization breaks in optimized C programs, and retune optimizations for each individual parts of codes in some cases too. I think putting a label name somewhere should force an optimization break at that point even if that label is never refereced
20:01:42 <AnMaster> oh and someone tell alise about mkry if he hasn't already been told (tell him to read logs)
20:01:51 <ais523> AnMaster: I did
20:01:51 * AnMaster still has him on /ignore
20:01:55 <alise> AnMaster: *she; *her
20:01:57 <AnMaster> (alise that is)
20:02:21 <alise> Actually quite ironic considering her situation.
20:02:26 <ais523> alise: I'm amused that you respond to someone's claim to be /ignoring you by nickpinging them; it seems a little redundant
20:02:50 <alise> ais523: I don't really care, since he spends all his time when I'm here talking about how I'm ignored.
20:03:25 <AnMaster> Deewiant, either that exits right away or it loops forever? I can't remember which way goes which on | (only on _)
20:03:33 <ais523> zzo38: you could try __asm volatile ("" : : : "memory");
20:03:53 <Deewiant> AnMaster: "This program makes duplicates of each value on the stacked, which is checked, and if non-zero, printed."
20:04:07 <ais523> according to some random mailing list I found on the Internet, that basically causes everything to be dumped to memory and reloaded from it at that point so that your (nonexistent) asm statement can run
20:04:12 <AnMaster> Deewiant, ah. so it isn't the complete program?
20:04:13 <ais523> that should be pretty good at disrupting optimisation
20:04:21 <zzo38> ais523: Thanks for that, perhaps it could work
20:04:38 <ais523> obviously, this is completely untested from my point of view
20:04:39 <Deewiant> AnMaster: There is no "the" program, that's the snippet that's talking about
20:05:12 <pikhq> zzo38: __attribute__((optimize("Ofoo"))
20:05:13 <AnMaster> <zzo38> ais523: Is there a way to specify -O2 and -O3 and -Os for different parts of the same file? Also, does entering a label name cause a optimization break at that point? <-- yes per function using __attribute__ in recent gcc versions
20:05:17 <pikhq> Function attribute.
20:05:20 <Deewiant> It calls it a program that duplicates each value on the stack"ed"; at the beginning of all programs the stack is empty so presumably it's meant as a subroutine (or just a concept; if there were values on the stack this is what it would do)
20:05:20 <fizzie> Both ifs go the "same" way in the sense of the sign of the coordinate in question.
20:05:25 <pikhq> Only works on GCC 4.4 and higher.
20:05:26 <ais523> pikhq: ah, we've managed to answer both his questions between us?
20:05:28 <zzo38> AnMaster: Thanks for that too
20:05:35 <Deewiant> pikhq: How goes your -98
20:05:42 <pikhq> Deewiant: No work on it.
20:05:48 <pikhq> :)
20:05:48 <AnMaster> zzo38, I forgot what exact __attribute__, I refer you to the gcc documentation on that
20:05:53 <Deewiant> :-)
20:06:03 <ais523> AnMaster: or to pikhq, who answered the question just before you did
20:06:04 <AnMaster> not the man page iirc
20:06:07 <AnMaster> but rather the website docs
20:06:14 <AnMaster> perhaps the info page, unsure
20:06:27 <ais523> with the exact name of the attribute (__attribute__((optimize("O3")) or whatever, for reference)
20:06:27 <AnMaster> but no one uses info except for emacs built in help system
20:06:33 <AnMaster> ais523, ah
20:06:38 <zzo38> AnMaster: OK I can see the documentation
20:06:39 <ais523> and I use info
20:06:45 <AnMaster> ais523, from inside emacs?
20:06:52 <fizzie> I use the gcc info page, but not many others.
20:06:55 <ais523> AnMaster: if I'm there at the time, but more usually standalone
20:07:01 <fizzie> With pinfo, actually.
20:07:05 <AnMaster> I use gcc online docs rather than touching info
20:07:10 <AnMaster> fizzie, well pinfo is kind of ok
20:07:10 <ais523> why the hate on info?
20:07:21 <ais523> it's pretty good, pretty much like w3m, which I normally use for HTML docs
20:07:29 <AnMaster> -_-
20:07:39 <AnMaster> well I use w3m-mode in emacs quite often
20:07:41 <AnMaster> but still
20:07:55 <Deewiant> Much of the hate is due to the default viewer
20:08:00 <AnMaster> yes
20:08:01 <zzo38> I use gcc online docs too, but only because I am on Windows. On Linux I would use the ones included in the system, because Linux has those but Windows doesn't
20:08:03 <ais523> Deewiant: but I like the default viewer!
20:08:09 <AnMaster> though pinfo isn't too good either
20:08:15 <ais523> does yelp do info?
20:08:32 <AnMaster> for example pinfo can't do i-search using ctrl-s
20:08:34 <ais523> zzo38: sometimes you have to request docs specially, e.g. install gcc-doc as well as gcc
20:08:35 <AnMaster> like info can
20:08:55 <zzo38> ais523: OK now I understand. But that still doesn't apply on Windows
20:08:57 <AnMaster> info is quite a strange mix of emacs and vi(m) key bindings
20:09:03 <AnMaster> ais523, noticed that?
20:09:13 <zzo38> I do sometimes use Linux, when I am doing work at FreeGeek
20:09:17 <AnMaster> ais523, for example / to search and ctrl-s to search
20:09:18 <ais523> AnMaster: not really; you have to remember I play NetHack
20:09:46 <AnMaster> ais523, what about it? nethack doesn't use emacs key bindings at all IMO?
20:09:52 <pikhq> AnMaster: I'd imagine it's more consistent if you use Emacs' info reader.
20:10:00 <AnMaster> pikhq, well yes it is
20:10:22 <ais523> AnMaster: /all/ NetHack's keybindings are in nethack-el though
20:10:39 <ais523> but really, both vi bindings and emacs bindings are relatively familiar by now
20:10:49 <ais523> at least, the hjkl movement; actual vi editing, I'm rather bad with
20:11:10 <Sgeo_> It's impossible to change direction while in stringmode, I guess
20:11:14 <zzo38> I happen to like many things in vi
20:11:44 <AnMaster> <ais523> AnMaster: /all/ NetHack's keybindings are in nethack-el though <-- well, I never tried nethack-el
20:11:45 <ais523> Sgeo_: yes
20:11:45 <zzo38> In some vi (such as vim) you can do cursor movement in insert mode (and also delete, pageup/down) by pushing the arrow keys (and pageup/pagedown/etc)
20:11:57 <ais523> AnMaster: it's not as good as regular NetHack, I don't think
20:12:03 <AnMaster> ais523, hjkl is quite confusing. Numpad ftw
20:12:10 <AnMaster> and this is why I never play nethack on my laptop
20:12:12 <ais523> AnMaster: how dare you say that!
20:12:29 <ais523> hjklyubn saves you from having to move your hands all the time, it's really convenient
20:12:32 <AnMaster> Sgeo_, it is possible to wrap while in string mode
20:12:50 <ais523> in numpad mode, how do you open doors? or look at things? or use stairs?
20:12:51 <zzo38> Some games I made supports many movement key such as hjkl/yubn/arrows/numpad/etc. Like, 100LEVEL game support vi keys or numpad
20:13:05 <AnMaster> ais523, I have two hands?
20:13:14 <AnMaster> ais523, and sometimes yes you have to move
20:13:19 <AnMaster> ais523, also nethack-qt
20:13:23 <ais523> AnMaster: well, you can't cover the entirety of the main part of the keyboard with one hand
20:13:24 <AnMaster> just because I know this will annoy you
20:13:33 <zzo38> At least in ADOM, I use numpad + for upstairs and numpad enter for downstairs, 0 to open door, * to pickup, - to swap positions
20:13:41 <ais523> AnMaster: nethack-qt would be one of the better tiles interfaces if it didn't have horrifically broken font rendering
20:13:45 <zzo38> And . to search
20:13:47 <AnMaster> ais523, agreed.
20:13:47 <ais523> but the sdl interface is awful
20:13:52 <ais523> *sdl interface is better
20:13:55 <ais523> that's a weird typo
20:14:00 <AnMaster> hah
20:14:09 <AnMaster> ais523, didn't know there was an sdl one
20:14:23 <AnMaster> zzo38, it is <> for up/down in nethack
20:14:45 <zzo38> AnMaster: I know that
20:14:50 <AnMaster> right
20:14:58 <AnMaster> zzo38, ascended any time?
20:15:05 <zzo38> It is the same in Rogue and in ADOM as well. I have never won NetHack.
20:15:07 <ais523> AnMaster: I was about to ask the same question
20:15:10 <AnMaster> ah
20:15:17 <AnMaster> ais523, to me or zzo38?
20:15:21 <ais523> along the lines of "zzo38: which roguelikes have you won"
20:15:26 <AnMaster> right
20:15:26 <ais523> I may as well ask you now the subject's come up, though
20:15:28 <zzo38> I have won ADOM however
20:15:34 <ais523> (I've ascended NetHack 5 times, never won any other roguelike)
20:15:53 <zzo38> And "KING"
20:15:59 <zzo38> But not NetHack or Rogue
20:16:10 <AnMaster> ais523: nethack: 2x val, 1x sam 1x wiz. No time on NAO due to horrible lag to it. Slash'EM: 3x val
20:16:29 <AnMaster> s/no time/none/
20:16:35 <zzo38> I can't get NetHack to compile on my computer though
20:16:36 <AnMaster> (modulo case)
20:16:44 <AnMaster> ooh yes that can be tricky
20:16:53 <AnMaster> and I refuse to play nethack without the menu colour patch
20:17:11 <AnMaster> (nao has it)
20:17:12 <zzo38> I can't win KING on the hardest difficulty level though
20:17:20 <AnMaster> never heard about king
20:17:21 <zzo38> I won ADOM with Drakeling Fighter character
20:17:29 <AnMaster> and never tried adom
20:17:48 <AnMaster> ais523, so what do you think about that list? :)
20:17:53 <zzo38> http://roguebasin.roguelikedevelopment.org/index.php?title=KING
20:18:05 <ais523> AnMaster: 4x val, 1x wiz, so pretty similar to mine
20:18:15 <AnMaster> ais523, val is simplest most certainly
20:18:28 <ais523> I enjoy playing valks
20:18:38 <ais523> the wiz was mostly to prove I could ascend something else, and then go back to valks
20:19:07 -!- Gracenotes has quit (Ping timeout: 240 seconds).
20:19:16 <AnMaster> ais523, yes they have a less hard time on low levels most certainly
20:19:41 <ais523> earlygame isn't that bad as a wizard
20:19:56 <AnMaster> ais523, also I suggest you do tou or bar next
20:20:07 <AnMaster> on tou I managed the quest once at least
20:20:09 <ais523> bar has a stupid quest
20:20:16 <ais523> and is just like valk, but worse
20:20:22 <AnMaster> ais523, I never got that far with bar (rhyme unintentional)
20:21:16 <AnMaster> ais523, I still think tou should have a luggage, possibly only in wizmode though
20:21:19 <zzo38> I have won at Alan's Psychedelic Journey, too
20:21:28 <AnMaster> otherwise it would be extremely unbalanced
20:21:40 <AnMaster> *blink*
20:21:49 <AnMaster> interesting name of a game
20:21:50 * Sgeo_ should probably make his Befunge-93 interpreter in such a way that it will be relatively easy to make it interpret -98
20:22:08 <pikhq> Sgeo_: The trick is to allow for sparse Fungespace.
20:22:11 <ais523> Sgeo_: the two langs are different enough that starting again is a common choice to implement -98 for -93 implementers
20:22:31 <AnMaster> Sgeo_, the trick is to allow you to rip out and replace funge space and stacks without too much pain
20:22:47 <Sgeo_> pikhq, first thing I thought of. Interface to the space should look the same in both, just implementation changes
20:22:52 <AnMaster> ais523, both cfunge and efunge started as 93-subset then went to larger
20:22:57 <Deewiant> You don't need to replace stacks unless you're going to implement MODE
20:23:07 <AnMaster> Deewiant, you need to replace them with stack stacks
20:23:21 * Sgeo_ would think Deewiant would know that
20:23:22 <zzo38> I have not ever won at 100LEVEL though, even at the easiest difficulty level I cannot make more than 750 points
20:23:24 <Deewiant> Just make a stack of whatever stacks you had
20:23:24 <pikhq> Also, 98-Fungespace is hard to do efficiently.\
20:23:34 <Deewiant> You don't need to change your previous stacks
20:23:39 <pikhq> I'm not entirely sure what datastructure I'd *like* to use.
20:23:46 <Sgeo_> pikhq, list of tuples?
20:23:53 <AnMaster> Deewiant, You need to change code using it to use the stack stacks though
20:24:04 <zzo38> If I could compile NetHack perhaps I would fix some things
20:24:06 <Sgeo_> first number x, second is y, ...
20:24:08 <Deewiant> You don't necessarily even need to do that
20:24:09 <zzo38> But it won't compile
20:24:12 <Sgeo_> Actualy, that's not that efficient
20:24:17 <AnMaster> zzo38, "fix"?
20:24:22 <pikhq> Sgeo_: That's *horribly* inefficient. :)
20:24:31 <zzo38> I followed the instructions but it still won't compile
20:24:35 <Deewiant> Just make your previous stack be something that gives the top of the stack stack
20:24:42 <AnMaster> zzo38, is that on linux or windows?
20:24:46 <zzo38> I mean, fix some things how I wanted it, possibly change the name a bit for that purpose
20:24:50 <AnMaster> if on windows: give up, it is pointless
20:24:51 <zzo38> MinGW
20:25:03 <zzo38> It says I can do it on MinGW but it doesn't work
20:25:07 <AnMaster> zzo38, well there are windows binaries
20:25:10 <AnMaster> so why not use them?
20:25:13 <ais523> I've compiled NetHack on Windows before, but I used cygwin
20:25:15 <zzo38> I know there are windows binaries
20:25:18 <ais523> and built a UNIX build, not a Windows build
20:25:26 <pikhq> (note: I want to be able to compile the current ray of execution into a single array of threaded code, and cache this. That'd be fairly simple to do if it weren't for the darned non-cardinal IP deltas)
20:25:33 <AnMaster> ais523, a cygwin one? Or cross compiled to linux?
20:25:35 <zzo38> But binaries aren't source codes
20:25:36 * Sgeo_ has no clue how to make a funge editor
20:25:39 <AnMaster> ouch that sounds horrible
20:25:43 <ais523> AnMaster: a cygwin one
20:25:44 <Deewiant> Arguably if you're building on cygwin you're not building on Windows
20:25:45 <AnMaster> cross compiling from cygwin to linux
20:25:48 <AnMaster> that is just awful
20:26:03 <Deewiant> pikhq: The ray will change often enough that I don't think that's worthwhile
20:26:04 <ais523> why would I crosscompile to Linux from a Windows system, when I have a perfectly good Linux system to compile from?
20:26:15 <Sgeo_> Hm, 32-bit integers for -98, right? I can just say it's UTF-32
20:26:16 <AnMaster> Deewiant, it still compiles to dlls instead of *.so and *.exe in the PE format and so on
20:26:19 <pikhq> Deewiant: Note, "caching".
20:26:32 <Deewiant> Caching a couple of recent rays will probably work, yes
20:26:32 <zzo38> I want to add some additional modes, remove race/class combination restriction, add some more classes, and add feature to type in the name of any kind of creature in the game to make your character as that kind
20:26:33 <Sgeo_> Wait, no, UTF-32 is unsigned, hm
20:26:34 <pikhq> Meaning that in theory it could often just pull the threaded code out of cache.
20:27:12 <pikhq> Sgeo_: Unspecified, but fungespace cells must be the same size as stack cells.
20:27:14 <AnMaster> pikhq, you need to handle writes to funge space correctly
20:27:19 <AnMaster> not only from p but from other ones too
20:27:20 <pikhq> AnMaster: Yes.
20:27:27 <AnMaster> such as s and various fingerprints
20:27:47 <pikhq> Obviously modification of the funge space would invalidate at least parts of the cache.
20:27:58 <AnMaster> Sgeo_, you can't read mycology if you want input files to be in UTF-32
20:28:01 <AnMaster> well
20:28:05 <AnMaster> you would have to convert it first
20:28:07 <pikhq> ... Hey, I've got an idea. 8-bit Funge-98. :P
20:28:15 <AnMaster> pikhq, forbidden by spec
20:28:17 <zzo38> In one year, FreeGeek will give me another computer and I will install Linux From Scratch on that one (it comes with Ubuntu but we can change the installation)
20:28:18 <AnMaster> at least 32 bits
20:28:20 <AnMaster> in the spec
20:28:22 <Sgeo_> AnMaster, hm, what does Mycology do, exactly?
20:28:35 <Sgeo_> I mean, that it's not UTF-32
20:28:41 <AnMaster> Sgeo_, test suite for befunge-98 (and 93 too. but the 98 part is *much* larger)
20:28:44 <pikhq> AnMaster: Aaaaaw.
20:28:55 <Sgeo_> AnMaster, I knew that
20:28:57 <AnMaster> Sgeo_, it is useful to find bugs. In fact it is crucial for it
20:29:05 <AnMaster> Sgeo_, you asked me what it did
20:29:09 <AnMaster> I answered
20:29:14 <pikhq> Actually, no, it's not forbidden by the Funge-98 spec.
20:29:17 <Deewiant> It's not UTF-32 in that it uses one byte, not four bytes, for each ASCII char :-P
20:29:25 <AnMaster> Deewiant, indeed
20:29:26 <alise> AnMaster: no, you didn't
20:29:29 <AnMaster> I think that is what I said
20:29:30 <pikhq> It states that 32 bits is *typical*.
20:29:35 <alise> Sgeo_: it tests various operations and fingerprints and checks they return the correct results
20:29:57 <Sgeo_> Deewiant, thanks for answering what I meant to ask
20:30:01 * Sgeo_ slaps everyone else
20:30:04 <ais523> ouch!
20:30:24 <Deewiant> Sgeo_: But, isn't that pretty much a given for just about every text file
20:30:32 <AnMaster> Sgeo_, you could have stated your question more clearly
20:30:34 <Deewiant> Sgeo_: I'm not sure what you wanted to ask
20:30:45 <Sgeo_> Deewiant, yes, it is
20:31:07 <AnMaster> Deewiant, hm... "If the underlying memory mechanism cannot provide this (e.g. no more memory is available to be allocated,) the interpreter should complain with an error and do what it can to recover, (but not necessarily gracefully). "
20:31:12 <Sgeo_> Should be easy to read it as UTF-8 and operate internally as UTF-16
20:31:23 <Sgeo_> Well, not UTF-16, due to the sign issue
20:31:27 <Deewiant> AnMaster: Yes, you don't have to reflect for everything
20:31:33 <AnMaster> Deewiant, would that be true for abort() or segfault? they are errors, and it failed to recover
20:31:34 <AnMaster> XD
20:31:43 <Deewiant> Yes, it would
20:31:46 <Sgeo_> Something that can be mapped to unicode code points would be nice, though
20:32:02 <AnMaster> Deewiant, but continuing with buggy behaviour and no OOM message would not be?
20:32:17 <Deewiant> "Should" is not "must"
20:32:20 <zzo38> Does Windows have a SIGPIPE signal?
20:32:22 <AnMaster> ah yes
20:32:37 <Deewiant> zzo38: I'm pretty sure it doesn't
20:32:49 <zzo38> Deewiant: That's what I thought
20:32:57 * Sgeo_ stll does not know how to make a funge editor
20:33:00 <AnMaster> pikhq, "16 bit and 8 bit versions are discussed as separate variations on Funge-98."
20:33:09 <Sgeo_> And is it wrong to call Befunge-93 a funge?
20:33:18 <AnMaster> pikhq, plus you can't do any of the existing fingerprints with less than 32 bits
20:33:20 <Sgeo_> And call my app AndFunge-93
20:33:20 <pikhq> AnMaster: Still not forbidden.
20:33:31 <zzo38> Because, sometimes MinGW takes up 100% CPU even when the window is closed and stuff, so I assumed that is because Windows doesn't have a SIGPIPE signal
20:33:37 <pikhq> Just not very useful if you want any fingerprints.
20:33:38 <ais523> Sgeo_: "funge" itself is a very general term
20:33:42 <Sgeo_> Ok
20:33:43 <ais523> "Funge" is more specific, "Funge-98" more so
20:33:51 <ais523> and there's "fungeoid" which is more general still
20:33:56 <AnMaster> pikhq, oh and you couldn't fit mycology in 127x127 cells
20:33:58 <AnMaster> err
20:34:05 <AnMaster> yeah that is what you get from positive
20:34:17 <pikhq> So it would be bloody useless. :)
20:34:27 <pikhq> Easy to implement though.
20:34:33 <AnMaster> pikhq, yes anything less than 32 bits is bloody useless
20:34:33 <Deewiant> I'm not sure if Mycology would accept a 16-bit funge
20:34:34 <pikhq> I'm not going to do that then.
20:34:41 <Sgeo_> What's 1y?
20:34:48 <Deewiant> Some flags
20:34:52 -!- Asztal has quit (Read error: Operation timed out).
20:34:53 <AnMaster> yeah
20:35:01 <ais523> Sgeo_: y is crazy
20:35:02 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
20:35:08 <AnMaster> "1 cell containing flags (env). " in http://catseye.tc/projects/funge98/doc/website_funge98.html
20:35:09 <Deewiant> 1y2% is whether the interpreter is concurrent, IIRC
20:35:11 <ais523> it's basically a dump of all the info about the interpreter and program state
20:35:18 <AnMaster> there is a version with readable font and bg colours
20:35:19 <AnMaster> let me find it
20:35:20 <ais523> but you can ask for just one entry, rather than all of it
20:35:22 <pikhq> 16-bit *maybe*. Though it would require *pretty much* the same work as a 32-bit Funge.
20:35:28 <AnMaster> ah yes here: http://catseye.tc/projects/funge98/doc/funge98.html
20:35:31 <pikhq> (16-bit Fungespace is 4 gigs?)
20:35:31 <AnMaster> that is more readable
20:35:58 <Deewiant> pikhq: 2^16 * 2^16 * (2 bytes)
20:36:00 <Sgeo_> Is there a Mycology for Unefunge-98 and um, the 3d one?
20:36:06 <Deewiant> No
20:36:09 <Deewiant> (Trefunge)
20:36:09 <pikhq> Deewiant: Ah, right.
20:36:19 <AnMaster> Sgeo_, you don't ask for an entry, you ask for a cell. So if something takes two cells or varying number of cells you have to take care of that
20:36:34 <AnMaster> Deewiant, oh and cfunge will probably get faster y-as-pick soon
20:36:47 <pikhq> 8 gigs.
20:36:49 <AnMaster> Deewiant, something that can't be done without a huge PITA if you implement EVAR
20:37:10 <Deewiant> What's that "huge PITA"
20:37:12 <pikhq> Which is *almost* feasible as a single array on modern computers.
20:37:39 <Deewiant> It is feasible
20:37:41 <AnMaster> Deewiant, that the size of env vars isn't constant and you just can't add/substract easily, remember that you might be changing an existing one
20:37:47 <pikhq> Deewiant: But pricy.
20:37:48 <Deewiant> But most people's machines can't handle it
20:37:54 <AnMaster> (it's feasible yes but a huga PITA)
20:38:04 <Deewiant> I've got 8 gigs myself but that's not quite enough
20:38:05 <pikhq> And 32-bit Fungespace? That must be sparse.
20:38:07 <pikhq> *Must* be.
20:38:15 <Sgeo_> Absolute Vector sounds.. interesting
20:38:22 <AnMaster> pikhq, not exactly, not on >64 bit machines
20:38:31 <AnMaster> with that much memory
20:38:35 <AnMaster> which is infeasible yes
20:38:39 <Deewiant> AnMaster: You can just recalculate the size when EVAR changes them
20:38:52 <AnMaster> Deewiant, true. still a PITA
20:39:14 <pikhq> AnMaster: I don't have exabytes of RAM handy.
20:39:15 <AnMaster> Deewiant, oh and you can't optimise pushing env vars into a memcpy() :P
20:39:15 <Deewiant> Not IMO... you have to calculate it when y is called anyway
20:39:20 <Deewiant> Sure I can
20:39:23 <AnMaster> pikhq, ah
20:39:25 <Deewiant> I already have
20:39:45 <AnMaster> Deewiant, oh? EVAR should mess it up?
20:40:01 <Deewiant> Just recalculate the env vars in y after EVAR
20:40:06 <pikhq> Actually. Holy fuck.
20:40:08 <Deewiant> Not a problem
20:40:18 <pikhq> 32-bit Fungespace is larger than 64-bit addressing.
20:40:24 <Deewiant> Yep
20:40:35 <AnMaster> eh?
20:40:39 <zzo38> I have other question, do you know in Darwin/Mac OS X what the apple vector contains (other than apple[0] being the path of the program)?
20:40:42 <Deewiant> 2^32 * 2^32 * 4
20:40:47 <AnMaster> oh yeah
20:40:47 <Deewiant> >= 2^64
20:40:50 <AnMaster> forgot that *4
20:40:52 <AnMaster> -_-
20:40:58 <pikhq> AnMaster: 64-bit addressing *bytes* is larger than 32+32 bit addressing *words*. :)
20:41:05 <zzo38> Do you know what apple[1] does (if anything)?
20:41:18 <AnMaster> pikhq, indeed. Just make it use 32 bit words with a byte index
20:41:29 <AnMaster> in your new computer design
20:42:26 -!- Asztal has joined.
20:42:45 <AnMaster> pikhq, anyway you need a small amount of memory too for the program running it, unless you implement that in hardware
20:43:07 <Deewiant> Just hide the program in some random place nobody will use anyway
20:43:12 <pikhq> Stupid idea, then. 32-bit Fungespace with smaller-than-32-bit memory, so I can say "fuck sparse datastructures"
20:43:14 <AnMaster> Deewiant, XD
20:43:14 <alise> zzo38: Which apple vector?
20:43:17 <Deewiant> Like at (-2^23,2^19)
20:43:27 <zzo38> alise: The fourth parameter to main
20:43:34 <zzo38> char**apple
20:43:36 <AnMaster> pikhq, what is wrong with sparse data structures?
20:43:51 <Deewiant> Slowness, I imagine
20:43:52 <pikhq> AnMaster: They're more work than array[foo][bar]!
20:43:54 <alise> zzo38: No clue. Have you got the manual pages?
20:44:00 <pikhq> Also, they are more slow to index.
20:44:02 <Deewiant> And yeah, nontriviality :-P
20:44:15 <AnMaster> what? main() takes 4 parameters on OS X?
20:44:17 <AnMaster> that's wth
20:44:20 <AnMaster> wtf*
20:44:22 <AnMaster> wtf*
20:44:26 <ais523> five on Windows, doesn't it?
20:44:26 <AnMaster> gah
20:44:31 <AnMaster> ais523, huh?
20:44:34 <pikhq> AnMaster: main() takes 3 on normal UNIX.
20:44:39 <AnMaster> pikhq, I know
20:44:45 <AnMaster> pikhq, and I consider that pretty wtf too
20:44:46 <pikhq> And on Linux there's another "parameter" after envp.
20:44:55 <AnMaster> pikhq, oh? and what one is that?
20:45:02 <pikhq> ELF option vector.
20:45:06 <zzo38> I don't have Mac OS X so I don't know. But I know that I think the apple[0] is useful
20:45:09 <pikhq> It's after the terminating NULL of envp.
20:45:09 <AnMaster> pikhq, what does it contain?
20:45:18 <AnMaster> oh
20:45:22 <AnMaster> well that isn't a parameter then
20:45:31 <pikhq> Thus the scare quotes.
20:45:35 <AnMaster> right
20:45:41 <ais523> still, what does it do, specifically?
20:45:42 <ais523> I'm curious
20:45:43 <AnMaster> pikhq, what does the ELF options contain?
20:45:51 <ais523> (and after the NULL of envp is a pretty stealthy place to hide data)
20:45:59 <AnMaster> ais523, indeed
20:46:06 <alise> zzo38: name of the progam is just argv[0], sort of
20:46:08 <zzo38> What does the ELF option vector do?
20:46:12 <AnMaster> I never heard of this before btw
20:46:28 <Deewiant> ais523: Five on Windows? What would the extras be?
20:46:28 <pikhq> It contains a few different things... The one that I *remember* is that it contains the prelinking data for the dynamic linker.
20:46:44 <AnMaster> huh
20:46:44 <ais523> Deewiant: they're completely different from the standard ones
20:46:50 <ais523> and contain things like window handles, etc
20:47:03 <Deewiant> Aren't you talking about WinMain now
20:47:03 <zzo38> alise: No, argv[0] only contains the name of the program as it is typed, which does not even necessarily have to be the actual name of the file at all, and won't necessarily contain path information. apple[0] contains the real path of the program (although it can be a relative path)
20:47:11 <Deewiant> Surely the ordinary main() doesn't receive that stuff?
20:47:15 <ais523> ah, it's four, not five
20:47:22 <ais523> and it's just called WinMain by convention, it's still the main entry point
20:47:23 <Deewiant> WinMain takes four
20:47:28 <ais523> they don't call it main to avoid scaring people
20:47:29 <Deewiant> Well yes
20:47:36 <AnMaster> ais523, eh?
20:47:37 <Deewiant> But you can still have a C main that takes the ordinary two
20:47:40 <ais523> hmm, I wonder why I thought it was 5?
20:47:47 <Deewiant> They're separate things
20:47:47 <AnMaster> pikhq, where is that option vector documented?
20:48:01 <pikhq> AnMaster: Somewhere *deep* in kernel documentation.
20:48:25 * pikhq is looking for it
20:48:27 <ais523> also, nCmdShow is a really stupid idea AFAICT
20:48:38 <ais523> I can sort-of see the reason for it, but sort-of feel that it should have been handled really differently
20:48:55 <Deewiant> Sort-of sort-of :-P
20:48:56 <pikhq> Hrm. Seems I have the wrong name...
20:48:58 <AnMaster> pikhq, isn't meant for normal user space then?
20:49:07 <fizzie> Also no window handles in WinMain; the app doesn't have any windows at that point. Just application instance handles.
20:49:14 <AnMaster> ais523, what is nCmdShow?
20:49:19 <pikhq> AnMaster: It's handled by the dynamic linker.
20:49:24 <AnMaster> pikhq, right
20:49:25 <Sgeo_> So -98 is not entirely backwards compatible with -93
20:49:26 <Sgeo_> :(
20:49:35 <AnMaster> pikhq, very inefficient then, having to scan for the NULL there
20:49:38 <pikhq> *Oh, right*.
20:49:38 <Deewiant> The differences are small
20:49:42 <AnMaster> pikhq, oh?
20:49:54 <pikhq> There's also the Linux entry gate in there.
20:50:05 <AnMaster> pikhq, what is the linux entry gate?
20:50:19 <alise> Sgeo_: Mostly just SGML-spaces
20:50:22 <pikhq> linux-gate.so
20:50:22 <alise> which you need for infinite wrapping
20:50:38 <pikhq> http://refspecs.freestandards.org/LSB_1.3.0/IA64/spec/auxiliaryvector.html
20:50:40 <pikhq> There's the spec.
20:50:56 <AnMaster> pikhq, pseudo one. And that is in /proc/pid/maps as [vdso]
20:50:58 <AnMaster> iirc
20:51:05 * Sgeo_ lols at 0"gnirts"
20:51:08 <pikhq> AnMaster: Yes.
20:51:10 <AnMaster> Sgeo_, why?
20:51:16 <ais523> it's fun to say out loud
20:51:17 <Sgeo_> AnMaster, it's just strange, that's all
20:51:20 <pikhq> The location of it is passed in the auxiliary vector.
20:51:36 <AnMaster> ais523, is it? I done that I didn't find it funny
20:51:38 <AnMaster> unusual yes
20:51:41 <AnMaster> but not funny
20:51:48 <AnMaster> pikhq, x86_64 also has [vsyscall]
20:51:53 <AnMaster> which is quite a mess
20:51:53 <pikhq> Also, it's only after envp because start shoves it there.
20:52:15 <AnMaster> pikhq, ah
20:52:15 <ais523> AnMaster: "what sort of window to create" makes a load of baseless assumptions
20:52:23 <ais523> I mean, how should the GIMP react to that, for instance?
20:52:23 <pikhq> (arguments to main do not exist until start makes them)
20:52:40 <AnMaster> <ais523> AnMaster: "what sort of window to create" makes a load of baseless assumptions <-- is that in reply to nCmdShow?
20:52:51 <ais523> yes
20:52:59 <ais523> oh, conversation mixup
20:53:10 <ais523> this happens when you try to keep all your IRC conversations in memory simultaneously
20:53:55 <AnMaster> ais523, just quote the thing it is in reply to
20:54:02 <AnMaster> or some key word
20:54:10 <AnMaster> just mentioning nCmdShow there would have worked
20:54:57 <fizzie> ais523, AnMaster: Maybe use some sort of conversation-indication [tags] in every message.
20:55:19 <AnMaster> fizzie, we tried to implement that when freenode was having huge lag some months ago
20:55:30 <AnMaster> (didn't work out well because ais523 refused to do it properly)
20:55:46 <fizzie> Like people do [PATCH] on mailing lists and so on.
20:55:59 <Sgeo_> In the { definition, what is meant by "storage offset"?
20:56:00 <ais523> fizzie: AnMaster tried to unilaterally implement a SYN-ACK-like numering scheme for IRC comments
20:56:13 <ais523> which was completely impractical as far as I could tell
20:56:20 <AnMaster> fizzie, I was suggeting UUIDs in the form of <integer> where even was one person and odd was the other person
20:56:22 <Deewiant> Sgeo_: It affects g and p among others
20:56:27 <AnMaster> and to refer to a specific message you would use that
20:56:38 <AnMaster> ais523, I don't think I did SYN ACK ...
20:56:58 <AnMaster> but yes TCP sequence number I guess is similar
20:57:07 <AnMaster> but I don't know enough about that to be sure
20:58:20 <Sgeo_> Hm, I guess I could do something like #v{
20:58:36 <Sgeo_> To test if I have enough memory, and if I don't, go down the v path?
20:58:36 <AnMaster> Sgeo_, for what?
20:58:42 <AnMaster> Sgeo_, well sure
20:58:42 <Deewiant> Yep
20:58:59 <ais523> SYN ACK could work during massive lag
20:59:03 <fizzie> #vX is common idiom for any reflecting X.
20:59:17 <Deewiant> #^X too
20:59:20 <AnMaster> or
20:59:21 <AnMaster> #
20:59:22 <AnMaster> >
20:59:22 <AnMaster> X
20:59:26 <ais523> give the number that you think your message should be (in your own personal numbering scheme), and the first number you haven't seen from the other person (in their numbering scheme)
20:59:28 <AnMaster> or same but <
20:59:40 <ais523> you can give a third number if you like, the number of the message you're actually replying to)
20:59:45 <Deewiant> #_X is a bit rarer
20:59:55 <AnMaster> ais523, well yes
21:00:12 <AnMaster> Deewiant, heh
21:00:20 <ais523> then, retransmit if you see someone claim they haven't seen something you've already said
21:00:21 <AnMaster> Deewiant, that depends on what else is on the stack
21:00:28 <ais523> this can lead to false positives, but not false negatives I think
21:00:47 <AnMaster> Deewiant, if it reflects due to being unimplemented... such as t
21:01:00 <AnMaster> then any value will be left
21:01:13 <fizzie> You can do ]X when going upwards, but I haven't seen that done often, even if it's quite compact.
21:01:26 <AnMaster> ais523, false negative what?
21:01:35 <ais523> AnMaster: thinking you didn't need to retransmit when actually you did
21:01:39 <Deewiant> I think I do something like that a few times in Mycology
21:01:39 <AnMaster> also what about ># X
21:01:45 <AnMaster> where you have error handling to the left
21:01:56 <AnMaster> and the normal path enters from above or below the >
21:02:09 <Deewiant> Yes, that's fairly common as well
21:02:19 <Deewiant> #;X is similar
21:02:23 <fizzie> And ;#;X...
21:02:35 <Deewiant> ;#;X is a bit pointless
21:02:36 <AnMaster> Deewiant, not quite as common as #^X though (plus the variants)
21:02:43 <Deewiant> That's fairly equivalent to plain X
21:02:57 <ais523> unless you're hitting the # vertically for some other reason
21:03:08 <ais523> Deewiant: btw, does mycology test a single ; on a line anywhere?
21:03:10 <Deewiant> Hence "fairly"
21:03:13 <AnMaster> you need something like: #;#;X for that to be of any interest, and even then it isn't of much intereste
21:03:17 <zzo38> Is it allowed for a stream device in Linux to be executed as a program?
21:03:25 <Deewiant> I'm not sure if it explicitly tries a single one
21:03:27 <fizzie> Gah, Deewiant-speed strikes again. And I did mean the ...;...#;X case, just abbreviated.
21:03:29 <AnMaster> zzo38, what is a stream device?
21:03:44 <Deewiant> #"X is an alternative to #;X when you're out of ;-room
21:03:45 <ais523> zzo38: I don't know; there's no technical reason why it couldn't be given how ELF works, but people might have decided that it's just too insane
21:03:46 <AnMaster> fizzie, ah yes that would work
21:03:50 <Sgeo_> ;-room?
21:03:56 <fizzie> A character device, maybe?
21:03:57 <AnMaster> Deewiant, err... :P
21:04:00 <ais523> AnMaster: something keyboard-like, like stdin or the read end of a fifo
21:04:11 <Deewiant> If you're already using ; to cross over that code you can't put ; in it
21:04:16 <Deewiant> Or it'll mess up the outer ;
21:04:17 <AnMaster> ais523, not something like /dev/ttyS1?
21:04:19 <Deewiant> So you use " instead
21:04:26 <Deewiant> And if " is also used, you're screwed
21:04:30 <AnMaster> you know
21:04:35 <ais523> AnMaster: that's a character device, but I think they all work stream-like anyway
21:04:39 <AnMaster> you can use any of the other variants
21:04:41 <AnMaster> and there are more
21:04:49 <ais523> I don't think "stream device" is a defined term, but I have an idea of what it means anyway
21:04:51 <Deewiant> I don't /think/ I've used exactly #"X in Mycology anywhere
21:04:52 <AnMaster> ais523, well unlike a block device yes
21:04:59 <ais523> Deewiant: you can still use x to jump over code, though
21:05:01 <Deewiant> But I have used " in lieu of ; a number of times
21:05:11 <zzo38> Does that command work dd if=/dev/zero of=/dev/sdb
21:05:13 <Deewiant> ais523: x takes more space
21:05:22 <Deewiant> Since you have to push the arguments
21:05:30 <Deewiant> But yes, you can use x (or j)
21:05:32 <ais523> zzo38: don't try it; it'd overwrite one of your disks with zeros, quite possibly your hard disk
21:05:38 <Sgeo_> g and p should really be before the {} stuff.. the {} stuff talks about the storage vector
21:05:49 <ais523> and normally you specify a number of bytes to overwrite, and things like block sizes
21:05:50 <Deewiant> Yes, they should
21:05:59 <Deewiant> Especially as they're much more commonly used
21:06:10 <zzo38> I was going to blank a disk like dd but they told me to use mkfs.msdos instead so it will be formatted. But, when I put the disk in the other computer it wouldn't work anyways so I had to format it anyways
21:06:53 * Sgeo_ isn't sure how well the File I/O stuff could be made to work on Android
21:07:13 <zzo38> I got a "cannot create directory entry" error when I tried to use the disk on a DOS computer, so I had to reformat it again anyways.
21:07:43 <Deewiant> Sgeo_: File I/O is optional
21:08:26 <fizzie> If you don't especially care about every single byte being zeroes, wiping just the beginning of the disk is usually enough to make it look empty. dd'ing a terabyte of zeroes is not very fast.
21:08:52 <Deewiant> It's reasonably fast
21:09:07 <zzo38> It is a floppy disk, it would be slow of course
21:09:21 <zzo38> But using mkfs was faster than the format command in DOS/Windows
21:11:21 <pikhq> Well, yes. The format command 0-fills the drive.
21:11:36 <pikhq> (except for the filesystem data structures)
21:11:45 <fizzie> It has the /Q flag though.
21:12:20 <zzo38> Using /Q does make it more fast
21:12:21 <pikhq> Yes, it does.
21:12:28 <zzo38> Is /Q like the mkfs command in Linux does?
21:13:22 <AnMaster> mkfs.msdos?
21:13:28 <AnMaster> that will just add a new FAT file system on it
21:13:38 <AnMaster> and who wants a FAT one anyway :/
21:13:54 <AnMaster> also what is the diff between mkfs.vfat and mkfs.msdos? I have no idea
21:14:01 <Sgeo_> Funge-98 fingerprints remind me of PSOX
21:14:27 <Deewiant> PSOX reminds me of Funge-98 fingerprints
21:14:28 <Sgeo_> Actually, I think PSOX stole handprints from Funge-98
21:14:28 <AnMaster> <fizzie> If you don't especially care about every single byte being zeroes, wiping just the beginning of the disk is usually enough to make it look empty. dd'ing a terabyte of zeroes is not very fast. <-- you should dd from your hardware rng instead ;P
21:14:45 <Sgeo_> (not fingerprints though)
21:14:55 <AnMaster> zzo38, /dev/sdb is _not_ a floppy unless you have some crazy usb floppy device
21:15:05 <AnMaster> zzo38, /dev/fd0 is probably your floppy device
21:15:18 <AnMaster> and that you may want to low level format in some cases
21:15:44 <ais523> sdb's probably a USB disk
21:15:50 <fizzie> AnMaster: Probably different default args, like with mkfs.ext2/3/4.
21:15:52 <ais523> although, theoretically could be a hard disk
21:15:54 <AnMaster> <zzo38> Is /Q like the mkfs command in Linux does? <-- probably.
21:15:56 -!- |MigoMipo| has joined.
21:15:57 -!- |MigoMipo| has quit (Excess Flood).
21:16:10 <AnMaster> ais523, for me it was a harddrive until some year ago or so
21:16:16 <AnMaster> I think I told you about that
21:16:21 -!- |MigoMipo| has joined.
21:16:22 -!- |MigoMipo| has quit (Excess Flood).
21:16:22 <zzo38> Yes it is a USB floppy drive
21:16:43 <AnMaster> ais523, you found it funny that I wasn't angry over lost data, instead I was angry over kernel panic due to swap being on that disk
21:16:46 -!- |MigoMipo| has joined.
21:16:50 <AnMaster> (yes I did have recent backups)
21:16:50 <pikhq> ais523: IDE and SATA both go through libata now, which puts devices at /dev/sd*.
21:17:14 <zzo38> There is two computers I need to transfer files, one has a working floppy drive but no working USB or network, the other has USB but no floppy drive so that's why I bought the USB floppy drive and the disks from FreeGeek
21:17:18 <AnMaster> yeah what pikhq said
21:17:28 <AnMaster> I haven't used hda for ages now
21:17:34 <AnMaster> must have been over a year by now?
21:17:46 <Sgeo_> Is there an active Funge-98 Register somewhere?
21:17:46 <zzo38> When I connected the USB to this computer (WinXP), it appeared as drive B:
21:17:51 <Deewiant> No
21:18:09 <AnMaster> zzo38, okay, well I have no idea if low level fdformat will work on the usb floppy
21:18:12 <Deewiant> Sgeo_: There may still be the one inactive one; can't remember the URL
21:18:18 <fizzie> AnMaster: Your ages must be pretty short, if a year is several.
21:18:19 <Deewiant> But it's years old
21:18:32 <AnMaster> zzo38, also must be an old computer with no network or such
21:18:51 <Sgeo_> PSOX doesn't require a central registry =P
21:19:14 <ais523> AnMaster: a while back I used mkfs.msdos on a USB stick and it seemed to work
21:19:21 -!- MigoMipo has quit (Ping timeout: 264 seconds).
21:19:25 <pikhq> Sgeo_: So, UUID then? :P
21:19:26 <ais523> after quadruple-checking to make sure I'd got the device it was on correct
21:19:27 <AnMaster> fizzie, yes quite. Age of early 2010 is now at an end and we are in the dawn of the age of early-mid 2010!
21:19:36 <Deewiant> Sgeo_: PSOX isn't extensible either (or is it?)
21:19:36 <Sgeo_> pikhq, no. URIs
21:19:37 <ais523> also, reformatting your swap partition while the system is running is amusin
21:19:41 <ais523> *amusing
21:19:46 <Sgeo_> Deewiant, it is
21:19:50 <ais523> why didn't mkfs notice? because it wasn't mounted?
21:19:59 <ais523> (IIRC, mkfs needs /two/ force options to reformat a drive while it's mounted)
21:20:08 <pikhq> Sgeo_: So, URLs, UUIDs, ISBNs, etc. :)
21:20:12 <zzo38> Yes, actually that other computer is Win98 and it is in a different building than this computer also. But it doesn't have network connection and the USB doesn't work (even though it has USB, but it doesn't work)
21:20:20 <AnMaster> ais523, it would be terminal.
21:20:20 <Sgeo_> At least, similarly to Befunge, but since there's only one existant PSOX interpreter, it's easy to write extensions that will work on all existant PSOX interpreters
21:20:33 <AnMaster> ais523, but you mean it wasn't the correct device?
21:20:35 <pikhq> ais523: Weird; swap devices are mounted.
21:20:48 <ais523> oh, AnMaster used dd rather than mkfs
21:20:52 <ais523> that's why mkfs didn't notice
21:20:55 <AnMaster> ais523, me? No?
21:21:01 <AnMaster> ais523, I haven't overwritten swap
21:21:07 <AnMaster> ais523, the disk *died* that is what happened
21:21:09 <ais523> oh
21:21:12 <Sgeo_> There is an optional PSOX registry that allows use of psox: URIs for identifiers
21:21:13 <AnMaster> if you mean what I said above
21:21:16 <ais523> ah, ok
21:21:33 <AnMaster> ais523, it went *chulunk* *chulunk* *chulunk* *chulunk* *chulunk* *chulunk* *chulunk* *chulunk* when I woke up
21:21:33 -!- augur has quit (Quit: Leaving...).
21:21:41 <AnMaster> so some sort of mechanical fault
21:22:12 <AnMaster> and this was probably 1.5 years ago or so
21:23:17 <fizzie> I think mke2fs also tries to check if the block device is just generally speaking in use (opened, possibly), not just whether it is mounted.
21:23:26 <Sgeo_> What's the TRDS fingerprint?
21:23:40 <Deewiant> Sgeo_: See http://www.rcfunge98.com/rcsfingers.html
21:23:56 <Sgeo_> RCS?
21:24:24 <Deewiant> Riley Computer Software
21:24:26 <alise> TRDS is presumably what drove MKRY to suicide. Ouch, even /my/ barely-extant too-soon nerve fired there.
21:24:35 <alise> I probably should not have sent that line.
21:24:53 <ais523> fizzie: it checks for in-use, and also checks for mounted
21:25:11 <alise> Holy shit guys
21:25:13 <alise> http://www.rcfunge98.com/
21:25:14 <alise> The design
21:25:14 <ais523> Sgeo_: try imagining a cross between Prolog and Feather, then fail
21:25:15 <alise> Oh god the design
21:25:20 <alise> But hey, new RC/Funge release, Deewiant.
21:25:29 <alise> Abandon your eyes before clicking.
21:25:32 <Sgeo_> MKRY?
21:25:47 <ais523> Sgeo_: Mike Riley, original author of RC/Funge
21:25:51 <alise> [[# It looks like Mike was trying to implement a Funge-108 mode, but I could not find any documentation on it in the files that were given to me. If anybody has any information on Funge-108 I would be interested in hearing from you. ]]
21:25:55 <alise> ^echo # It looks like Mike was trying to implement a Funge-108 mode, but I could not find any documentation on it in the files that were given to me. If anybody has any information on Funge-108 I would be interested in hearing from you.
21:25:55 <fungot> # It looks like Mike was trying to implement a Funge-108 mode, but I could not find any documentation on it in the files that were given to me. If anybody has any information on Funge-108 I would be interest ...
21:25:57 -!- zzo38 has quit (Remote host closed the connection).
21:26:04 <alise> ^echo AnMaster: ^. I'm so kind, even to assholes!
21:26:04 <fungot> AnMaster: ^. I'm so kind, even to assholes! AnMaster: ^. I'm so kind, even to assholes!
21:26:09 <alise> Fuck yeah, fungot abuse
21:26:09 <fungot> alise: i use slatex tex2page, and then
21:26:24 <alise> ^echo http://www.rcfunge98.com/
21:26:24 <fungot> http://www.rcfunge98.com/ http://www.rcfunge98.com/
21:26:35 <Deewiant> What's with the double-echo
21:26:44 <alise> Deewiant: It is a literal echo, echo, echo, echo...
21:26:53 <Deewiant> Quite
21:27:00 <pikhq> ^echo ^echo ^echo ^echo
21:27:00 <fungot> ^echo ^echo ^echo ^echo ^echo ^echo
21:27:08 <pikhq> ^_^
21:27:42 <alise> I guess it isn't really distasteful per se to make reference to her suicide since it was personal choice.
21:28:12 <ais523> it's probably just best to move on
21:28:15 <alise> But anyhow.
21:28:21 <alise> Yes.
21:28:26 <alise> Such a shame, though.
21:28:40 <alise> Huh, Mini-Funge was replaced by something more powerful in V2?
21:28:51 <alise> I like the idea of writing fingerprints in totally unrestricted Funge.
21:29:02 <alise> Hey, you could implement the fingerprint-writer as a fingerprint itself.
21:29:03 <Deewiant> It was?
21:29:09 <alise> # Mini-Funge has been scrapped and replaced with an all new dynamic fingerprint engine. Now fingerprints have the full power of the Rc/Funge VM at their fingertips. All commands are now available to fingerprints, including i, o, =, t, fingerprint loading and more.
21:29:27 <Deewiant> Well yeah
21:29:39 <Deewiant> It's still Mini-Funge, it just implements everything :-P
21:29:42 <alise> Okay :P
21:29:47 <Deewiant> AFAIK anyway
21:29:50 <Deewiant> I haven't really looked into it
21:30:19 <alise> Deewiant: I'm imagining some sort of fingerprint-defining fingerprint that has e.g. some opening/closing commands that take a fingerprint name, additional commands that take a string of funge source and a command name, etc.
21:30:35 <alise> That way, you could define fingerprints then use them in the same program; or define multiple fingerprints based on some computation, or even user input.
21:30:51 <AnMaster> "<fungot> AnMaster: ^. I'm so kind, even to assholes! AnMaster: ^. I'm so kind, even to assholes!" <-- wth?
21:30:52 <fungot> AnMaster: i wanted a fnord vector type that would return an ' undefined variable' error... do you have
21:30:55 <Sgeo_> What do good Funge editors look like?
21:30:55 <Deewiant> So we have FING and FNGR; what's that? :-P
21:30:56 <alise> And you could have a "fingerprint inclusion path" by basically loading a bunch of Funge files on startup.
21:31:00 <AnMaster> fizzie, I think that bot is broken
21:31:01 <Deewiant> Sgeo_: vim
21:31:07 <alise> Great, I try and help AnMaster and he doesn't even look.
21:31:13 <AnMaster> fizzie, or alise is using it to circumvent /ignore
21:31:19 <Deewiant> AnMaster: Did you miss the line above
21:31:20 <alise> ^echo # It looks like Mike was trying to implement a Funge-108 mode, but I could not find any documentation on it in the files that were given to me. If anybody has any information on Funge-108 I would be interested in hearing from you.
21:31:20 <fungot> # It looks like Mike was trying to implement a Funge-108 mode, but I could not find any documentation on it in the files that were given to me. If anybody has any information on Funge-108 I would be interest ...
21:31:30 <alise> ^echo If you had paid attention, I was trying to help you; remind me not to do so in future.
21:31:30 <fungot> If you had paid attention, I was trying to help you; remind me not to do so in future. If you had paid attention, I was trying to help you; remind me not to do so in future.
21:31:59 <AnMaster> funge-108 is dead. cpressy was working on a new one
21:32:07 <AnMaster> I don't even have the files any more I think
21:32:08 <Deewiant> Mail Susan
21:32:09 <alise> ^echo So tell Susan that.
21:32:10 <fungot> So tell Susan that. So tell Susan that.
21:32:26 <AnMaster> fungot!*@* added to ignore list.
21:32:27 <fungot> AnMaster: i'd find that a bit annoying to wait for an ack.
21:32:40 <ais523> perfect quote in context
21:32:45 <pikhq> Perfect.
21:32:52 <pikhq> Bravo, fungot. Bravo.
21:32:53 <fungot> pikhq: i'm off for a 5 minutes break, but there are also video lectures from 4a supposed to be a
21:33:01 <ais523> `addquote <AnMaster> fungot!*@* added to ignore list. <fungot> AnMaster: i'd find that a bit annoying to wait for an ack.
21:33:01 <fungot> ais523: there is a way to deliver applications. :) i was hoping one ps would catch the other.
21:33:06 <pikhq> SENTIENCE!
21:33:06 <HackEgo> 152|<AnMaster> fungot!*@* added to ignore list. <fungot> AnMaster: i'd find that a bit annoying to wait for an ack.
21:33:09 <AnMaster> ais523, XD
21:33:21 <alise> So, for future reference: Mention something relevant to AnMaster in the only way you can, to try and help him; then, AnMaster will get pissy and ignore the bot you used to do it.
21:33:26 <alise> Conclusion: Never help AnMaster. Ever.
21:33:52 <fizzie> Deewiant: There's a couple of other echoy commands there.
21:33:56 <pikhq> alise: I suggest you go and write a Befunge-98 interpreter orders of magnitude faster than Cfunge then. :P
21:33:57 <fizzie> ^choo Tentacles
21:33:58 <fungot> Tentacles entacles ntacles tacles acles cles les es s
21:34:08 <ais523> ^dump choo
21:34:10 <ais523> ^help
21:34:11 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
21:34:11 <alise> pikhq: Deewiant already did that, in C. Asztal, in C++.
21:34:14 <alise> CCBI 2, Stinkhorn.
21:34:15 <ais523> ^show choo
21:34:15 <fungot> >,[>,]+32[<]>[[.>]<[<]>[-]>]
21:34:19 <AnMaster> fizzie, anyway if you would please make fungot ignore alise/ehird or tell him not to use the bot for /ignore circumvention
21:34:19 <fungot> AnMaster: if you have access to any java library imaginable. normally i never eat.
21:34:20 <Deewiant> alise: s/C/D/
21:34:28 <fizzie> ^cho also this
21:34:28 <fungot> also thislso thisso thiso this thisthishisiss
21:34:29 <Sgeo_> alise, would it be too painful to ask hypothetical Funge programmers on Android to use the trackball? Are there Android phones that don't have trackball or trackpad?
21:34:35 <alise> I think AnMaster is upset because emailing is work, and I gave him reason to email somebody.
21:34:37 <AnMaster> pikhq, cfunge not Cfunge :P
21:34:40 <alise> Deewiant: Er, of course.
21:34:44 <pikhq> alise: Hmm.
21:34:45 <alise> pikhq: Quick, keep spelling it Cfunge!
21:34:53 <fizzie> ^reverb and reverberation
21:34:53 <fungot> aanndd rreevveerrbbeerraattiioonn
21:34:56 <ais523> you know what; I'll tell Susan
21:35:01 <alise> He refuses to use the correct pronouns for my nick, so there is no reason to use the correct capitalisation for his interpreter.
21:35:15 <AnMaster> ais523, I don't have her mail so I couldn't tell her anyway. *shrug*
21:35:17 <alise> Sgeo_: they all have some sort of ball i think
21:35:24 <Sgeo_> Ok
21:35:27 <alise> If you have any questions, comments, or general criticims, I may be contacted at:
21:35:27 <alise> rcfunge98 <AT> hotmail <DOT> com
21:35:33 <AnMaster> night all
21:35:36 <alise> ^echo If you have any questions, comments, or general criticims, I may be contacted at: rcfunge98 <AT> hotmail <DOT> com
21:35:36 <fungot> If you have any questions, comments, or general criticims, I may be contacted at: rcfunge98 <AT> hotmail <DOT> com If you have any questions, comments, or general criticims, I may be contacted at: rcfung ...
21:35:38 <alise> Hopefully that annoys me some more.
21:35:44 <Sgeo_> Although I think that if someone types, say, v, and keeps typing, it should start going downwards
21:35:48 <ais523> she(?) should probably know, and I pretty much know the situation with Befunge-108
21:35:59 <Sgeo_> Better yet, buttons to change the direction of typing
21:36:13 <AnMaster> ais523, cpressy was working on befunge-111 or whatever he called it
21:36:14 <alise> ais523: she doesn't read here, though
21:36:18 <AnMaster> the draft is incomplete
21:36:24 <Sgeo_> What's Befunge-108
21:36:25 <Sgeo_> ?
21:36:31 <AnMaster> ais523, http://catseye.tc/lab/Befunge-111-Specification-DRAFT.txt
21:36:32 <alise> Sgeo_: AnMaster's idiotic folly
21:36:32 <AnMaster> night
21:36:33 -!- fungotCCBI has joined.
21:36:43 <alise> Oh, brrrrn.
21:36:48 <Deewiant> D'oh, it's still called fungot
21:36:48 <fungot> Deewiant: you want more? and some other oddities, like emacs/ xemacs on windows...
21:36:52 <Deewiant> Oh well
21:36:58 <alise> What should it be called?
21:37:08 <pikhq> fungotCCBI: Hiya!
21:37:09 <Deewiant> I was intending it as an optional ignore-workarounder
21:37:09 <fungot> pikhq: i have concluded that, despite scheme's beauty in 5 minutes, and hackedly.
21:37:17 <fizzie> Deewiangot!
21:37:27 <Deewiant> pikhq: Doesn't have the chat model stuff that only fizzie has
21:37:34 <pikhq> Deewiant: Ah.
21:38:11 <fizzie> Deewiant: It's in my git. I mean, the tools, not the models; but irc logs are public too. Maybe a matter of fiddling, though.
21:38:27 <Deewiant> Well yes, I meant the models
21:39:28 <Sgeo_> I should probably have the keyboard contain mostly the commands
21:39:42 <fizzie> Admittedly if you retrained it from the public logs, it wouldn't speak Finnish every now and then.
21:39:43 <alise> Deewiant: Does it have a non-echoy ^echo?
21:39:47 <alise> Or should I define one?
21:39:48 <Deewiant> alise: It's the same code :-P
21:39:55 <alise> What prefix?
21:39:57 <Deewiant> ]
21:40:11 <fizzie> alise: You can just use ^ul (whatever)S
21:40:13 <alise> ]echo test
21:40:16 <alise> fizzie: Yes, still.
21:40:17 <alise> ]help
21:40:24 <alise> Let's see if I can remember the command-writing stuff.
21:40:24 <alise> ^help
21:40:25 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
21:40:28 <alise> Nope. :-)
21:40:29 <Deewiant> It also doesn't have fizzie's state file
21:40:37 <Deewiant> So it can't do much.
21:40:46 <alise> which is faster, bf or ul?
21:40:50 <fizzie> fungot: It's like you, only newborn.
21:40:51 <fungot> fizzie: me and mooz both bought the collected fnord thing from stockholm... umm, svn, i want to
21:40:58 <Deewiant> No, you don't
21:40:58 <alise> after all, this is AnMaster we're talking about; speed /matters/
21:41:07 <alise> oh, wait, ul can't take input of course
21:41:08 <alise> ]def oi bf ,[.,]
21:41:09 <fungotCCBI> Defined.
21:41:11 <fizzie> ul thing doesn't do in..
21:41:15 <alise> ]oi oi! oi! oi!
21:41:15 <fungotCCBI> oi! oi! oi!
21:41:16 <fizzie> Right.
21:41:23 <alise> ]oi AnMaster.
21:41:23 <fungotCCBI> AnMaster.
21:41:27 <alise> Success.
21:41:44 <Deewiant> Like said it's still ~fungot@*
21:41:45 <fungot> Deewiant: ( that's because i got distracted by other projects they're working on it but i'll keep it in mind. :d sorry, usaian fnord popping up again.
21:41:51 <Deewiant> So it'll be blocked by his ignore
21:42:22 <fizzie> Deewiant: Do a ]save though, I want to see if it works.
21:42:31 <alise> Deewiant: Oh well.
21:42:33 <alise> ]save
21:42:36 <alise> I CAN DO IT LOL
21:42:46 <Deewiant> ]save
21:43:07 <fizzie> Hnm, I think it should reply something.
21:43:08 <Deewiant> Doesn't seem to have done anything AFAICT
21:43:11 <ais523> I'd imagine BF would be faster than Underload on fungot
21:43:11 <fungot> ais523: but he's been very successful, and there is no
21:43:15 <fizzie> ^save
21:43:21 <fizzie> Hmmm.
21:43:24 <ais523> although it depends on how fast STRN is
21:43:35 <ais523> and which can have more efficient programs written in it
21:43:46 <ais523> clearly, we need to submit BF-written programs to the alioth shootout
21:43:51 -!- fungotCFUN has joined.
21:44:05 <Deewiant> ]def oi bf ,[.,]
21:44:05 <fungotCFUN> Defined.
21:44:05 <fungotCCBI> Defined.
21:44:07 <fizzie> Oh, my hostmask is *again* wrong. I really should fix those reverses.
21:44:07 <Deewiant> ]save
21:44:08 <alise> No! I can't annoy AnMaster with his own tool!
21:44:09 <alise> Or maybe I can.
21:44:17 <alise> FNGR is the best-practice fingerprint-mangling fingerprint, isn't it?
21:44:18 <Deewiant> That one didn't do anything either.
21:44:28 <Deewiant> No, FING.
21:44:37 <alise> But FING is so tiny and FNGR so big.
21:44:45 -!- fizzie has quit (Quit: jumpin' jumpin').
21:44:48 -!- fizzie has joined.
21:44:51 <Deewiant> jumpin' jumpin'
21:45:17 <fizzie> At least I am myself again.
21:45:21 <fizzie> ^save
21:45:22 <fungot> OK.
21:46:10 <Deewiant> ]save
21:46:10 <fungotCCBI> OK.
21:46:16 <Deewiant> "mkdir data" for the win
21:46:23 <ais523> could be a fun benchmark: get fungot running on every Mycology-completing interp simultaneously in the channel on the same prefix
21:46:23 <fungot> ais523: thats because you're still in boston, perth is the most common complaint i hear is the syntax for mark in an ant?
21:46:27 <fizzie> Right, it tries to write data/fungot.dat.
21:46:27 <fungot> fizzie: that's what i was arguing against forth!!! i want a mapreduce cluster now for some reason.
21:46:36 <fizzie> Was just checking the filename.
21:46:42 <Deewiant> Dunno why CFUN didn't do it, though. Maybe because CCBI opened it faster
21:46:47 <Sgeo_> How difficult could it be to write a Befunge-98 interp?
21:46:52 <ais523> then give them all a time-consuming command simultaneously and see how long it takes
21:46:53 <Deewiant> And then it couldn't open it because it was already open, or something
21:47:00 <Deewiant> Sgeo_: Famous last words... ;-)
21:47:03 <ais523> Sgeo_: have a look at all the interps which failed Mycology horribly
21:47:11 <alise> Hmm, it's annoying that there isn't a Befunge-98 instruction for "increase y delta, set x delta to 0"
21:47:15 <alise> OR IS THERE
21:47:27 <Deewiant> Sgeo_: Quote from CCBI's page: "It took me over a year—a fair bit longer than I expected"
21:47:40 <fizzie> And see there, fungot wants to be parallelized. Troubling signs of world-takeover.
21:47:40 <fungot> fizzie: sicp is hard though. my car radio sucks, so i have to get up
21:47:41 <Sgeo_> o.O
21:47:43 <Deewiant> But then, I was writing Mycology at the same time, and reverse-engineering fingerprints etc.
21:48:04 <Deewiant> ]ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(a~a*~~^)(:^):^
21:48:07 <pikhq> Sgeo_: It was a minor pain just passing Mycology-93. :P
21:48:07 <fungotCCBI> ...out of time!
21:48:19 <Deewiant> Hmm.
21:48:22 <pikhq> And more work to actually implement it correctly.
21:48:23 <pikhq> :P
21:48:41 <alise> Deewiant: OR IS THERE???
21:48:56 <Deewiant> alise: Hmm.
21:49:14 -!- fungotCFUN has quit (Ping timeout: 276 seconds).
21:49:19 <Deewiant> Right.
21:49:19 <ais523> SICP audiobooks!
21:49:21 -!- fungotCCBI has quit (Remote host closed the connection).
21:49:25 <Deewiant> Oops
21:49:27 <Deewiant> Ctrl-C'd wrong one
21:49:32 <alise> Deewiant: So there isn't? Darn.
21:49:51 <Deewiant> alise: For increasing dy, yes; for setting dx to zero at the same time, don't think so
21:49:56 <alise> Hmm, I guess you can kind of do it, as long as you enter the block on column two:
21:50:03 <alise> Or, wait, no.
21:50:06 <alise> I was thinking:
21:50:11 <alise> vfoo...>
21:50:13 <alise> vbar...>
21:50:17 <alise> but that just goes down, down, downydown
21:50:18 <alise> oh, I know
21:50:23 <alise> what's diagonal bottom-right?
21:50:29 -!- fungotCFUN has joined.
21:50:31 -!- fungotCCBI has joined.
21:50:40 <alise> eh eh eh?
21:50:41 <Deewiant> alise: Diagonal bottom-right?
21:50:46 <alise> as in
21:50:51 <alise> set the IP to start moving bottomly-rightwards
21:50:54 <Deewiant> 11x
21:50:55 <alise> down-rightwards
21:51:00 <fizzie> 11x is what AnMaster uses a lot. :p
21:51:09 <alise> fizzie: AnMaster uses a lot howso? :P
21:51:19 <fizzie> 11x at EOL and > in the beginning.
21:51:38 <alise> Oh; I was thinking:
21:51:40 <alise> 11x>...>
21:51:41 <alise> 11x>...>
21:51:41 <fizzie> I've seen him do that and complained about the non-befungosity.
21:51:52 <fizzie> Matter of taste, I guess.
21:51:57 <alise> I have a legitimate use-case, though; defining a bunch of fingerprint instructions.
21:52:00 <Sgeo_> Why is there a separate file for Befunge-93 only, if the 80x25 square of the beginning of main Mycology is Befunge-93?
21:52:05 <alise> You kinda want them lined up.
21:52:08 <AnMaster> fizzie, incorrect. I used it in a few cases, mostly very linear test cases with no branches.
21:52:12 <Deewiant> There is no separate file for Befunge-93 only.
21:52:14 <AnMaster> and > in the beginning won't work
21:52:24 <AnMaster> you need 11x> on each line
21:52:25 <AnMaster> for it to work
21:52:26 <alise> Hmm, proper Befunge code has no extraneous spaces, doesn't it?
21:52:28 <Sgeo_> What's mycorand.bf then?
21:52:29 <alise> I mean idiomatic :-)
21:52:32 <AnMaster> (well not last and first obviously
21:52:35 <Deewiant> Sgeo_: Read the readme.
21:52:38 <Deewiant> alise: Extraneous?
21:52:44 <Sgeo_> If your interpreter is Befunge-93 only, run mycorand.bf and examine the
21:52:44 <Sgeo_> results.
21:52:54 <Deewiant> Yes, that's the instructions.
21:52:55 <alise> Deewiant: As in, just to separate code up.
21:53:04 <alise> Sgeo_: random
21:53:06 <Deewiant> Sgeo_: It doesn't say that's /all/ you should do.
21:53:17 <AnMaster>
21:53:24 <Deewiant> It just so happens that in Befunge-98 we can load files so you don't have to do it separately.
21:53:34 <Deewiant> alise: Well yeah, that's up to you. :-P
21:53:40 <Sgeo_> What if my Befunge-98 interpreter doesn't load files?
21:53:48 <Deewiant> Then you should run it separately.
21:53:56 <Deewiant> I should probably note that in the readme.
21:54:03 <Sgeo_> Yes, you should >.>
21:54:21 <Deewiant> That section in the readme dates from before Mycology actually checked whether i and o are supported.
21:54:24 <alise> Deewiant: You should make a webservice thingy for fungify.
21:54:48 <Deewiant> I don't have a webservice
21:54:51 <Deewiant> To thingify
21:55:07 <pikhq> Sgeo_: mycorand.bf tests ?
21:55:16 <Sgeo_> ?
21:55:24 <Deewiant> Yes, ?
21:55:29 <pikhq> Yes, the "go in a random direction" operator.
21:55:45 <alise> It would be bad style for a fingerprint to take a 0"gnirts" and then reverse it itself so that you can write it normal-forwards, wouldn't it?
21:57:04 <Deewiant> ]ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(a~a*~~^)(:^):^
21:57:07 <fungotCCBI> ...out of time!
21:57:07 <fungotCFUN> ...out of time!
21:57:15 <Deewiant> Yays.
21:57:20 <alise> Yes or no? :P
21:57:34 <Deewiant> I don't understand the question
21:57:41 <Deewiant> You mean so that you should write 0"string" instead?
21:57:42 <Sgeo_> % and / are only tested on 98? Why?
21:57:58 <alise> Deewiant: yeah
21:57:59 <Deewiant> Because they require user input in 93
21:58:09 <Deewiant> alise: Well yes, that's bad style because it's completely incompatible :-P
21:58:23 <alise> Deewiant: But in this case the string is the code for a fingerprint instruction.
21:58:31 <Sgeo_> Why not just do a "Hello"0< ?
21:58:31 <alise> And writing Befunge code backwards is, um, not fun.
21:58:34 <Sgeo_> Erm, no ?
21:58:50 <alise> Sgeo_: Well, because you have to get to the < first.
21:59:01 <Deewiant> alise: Well, then your " is not "; why not just make it a different command
21:59:11 <Sgeo_> Q for quote
21:59:20 <Deewiant> alise: ALTERNATIVELY tell your fingerprint-maker that it expects its argument to be reversed
21:59:22 <Sgeo_> or S for string
21:59:56 <alise> Is it kosher to have fingerprint instructions do things like go into a string-ish mode?
22:00:03 <Deewiant> Kosher?
22:00:05 <alise> That's feral, surely?
22:00:05 <Deewiant> Erm, TRDS?
22:00:23 <Deewiant> Yes, that's feral
22:00:26 <Deewiant> But so's defining custom fingerprints
22:01:48 <alise> Well, yeah.
22:01:53 <alise> But if it's avoidable...
22:02:14 <Deewiant> Just reverse it in the instruction that wants the string?
22:02:40 <alise> That's what I'm saying.
22:02:48 <alise> http://pastie.org/923810.txt?key=ww3ktz3y2aqxbuk0suvgmg Here's how it'd be written like that, with 0"string"s.
22:02:58 <Deewiant> That's not feral, then.
22:03:06 <alise> Yes, but is it bad style?
22:03:14 <alise> Maybe I should have it take 0"gnirt"s, then have the definition code run backwards; then, it'd be a "string"0.
22:03:20 <Deewiant> Incidentally, I'd use switchmode instead of 11x
22:03:35 <Deewiant> And you don't need those trailing >s
22:03:37 <alise> (You could still have the instruction character first by using swap before I.)
22:03:37 <alise> It'd look like
22:03:46 <alise> I\ A' "0"0
22:03:55 <alise> Switchmode? And right you are.
22:03:58 <Deewiant> I wouldn't consider 0"string" to be bad style
22:04:03 <alise> You said it was :-P
22:04:09 <alise> Or did you mean all base instructions doing that?
22:04:11 <Deewiant> I didn't understand the context
22:04:29 <Deewiant> If I just takes a reversed string, I think that's fine
22:04:35 <alise> What's switchmode?
22:04:41 <Deewiant> Switchmode: "EDOM"4(S
22:04:56 <Deewiant> Now [ turns into ] when executed and vice versa
22:05:05 <Deewiant> (And {} () likewise)
22:06:08 <alise> Where's that specced?
22:06:14 <alise> And, uh, I should really memorise what the basic isntructions mean.
22:06:16 <alise> *instructions
22:06:19 <Deewiant> That pretty much is the spec
22:06:21 <Deewiant> http://catseye.tc/projects/funge98/library/MODE.html
22:06:57 <Deewiant> Note: only supported by CCBI and Rc/Funge-98, AFAIK.
22:06:57 <alise> How would I use that to do line-by-line? Sorry; I'm retarded.
22:07:07 <Deewiant> Instead of
22:07:08 <Deewiant> 11x> 'A 0"0" I >
22:07:12 <Deewiant> Do
22:07:19 <Deewiant> [ 'A 0"0" I
22:07:45 <Deewiant> The [, when hit from north, will take you east
22:07:49 <alise> Re support: excellent.
22:07:56 <Deewiant> It then turns into a ], so that when you hit it from the west, you go south.
22:08:13 <alise> Oh clever. So it'd look like
22:08:17 <alise> v
22:08:19 <alise> [ ...
22:08:20 <alise> [ ...
22:08:21 <alise> [ ...
22:08:24 <Deewiant> Yep
22:09:02 <alise> So you think 0"string"s are better than running the code backwards?
22:09:06 <alise> and doing
22:09:15 <alise> [ I\ A' "..."0
22:09:18 <Deewiant> I don't really mind
22:09:19 <alise> Well, ignoring that the [ would have to change
22:09:21 <ais523> I like 0"gnirts"
22:09:25 <alise> Just asking for your opinion on idiomaticness
22:09:29 <Deewiant> It'd just be ] then
22:09:37 <ais523> besides, you can just run right-to-left with "string"0 if you really care about readability
22:09:40 <Deewiant> Well, 0gnirts seems more idiomatic
22:09:49 <ais523> it's not like you don't end up changing directions loads anyway
22:10:49 <Deewiant> alise: Also, what if the code you want to run contains a 0? :-P
22:11:11 <alise> Deewiant: Does any funge code have a \0 in it, really?
22:11:15 <Sgeo_> Someone should make a PSOX fingerprint, for making interacting with PSOX easier </silly>
22:11:15 <Deewiant> Mycology does!
22:11:24 <alise> Mycology isn't a fingerprint.
22:11:31 <Deewiant> But no, there's really not much point
22:11:33 <alise> Deewiant: I'm not doing length-pushing; this is meant to make fingerprint creation /easier/.
22:11:41 <pikhq> Mycology has \0 in it.
22:11:45 <alise> Hmm, if I was running right-to-left, how would I do the switchmode stuff?
22:11:49 <Deewiant> Maybe if you want to make an instruction that pushes a line from a file determined at runtime
22:11:54 <Sgeo_> Why does Mycology have NULs?
22:12:00 <Deewiant> To make sure they work
22:12:10 <Deewiant> alise: Same thing, just ] instead of [.
22:12:27 <alise> Deewiant: And at the end of the line, presumably.
22:12:31 <Deewiant> No.
22:12:37 <alise> Eh?
22:12:40 <alise> Then it won't be executed the first time.
22:12:42 <alise> Oh, it will.
22:14:20 <alise> Hmm, actually, I should take code and then name on the stack.
22:14:23 <alise> Then you could skip the swap.
22:15:49 <alise> [ ...
22:15:51 <alise> X
22:15:52 <alise> ...
22:15:58 <alise> ... is executed after X, right?>
22:15:59 <alise> *right?
22:16:06 <alise> As in, we'll be going southwards.
22:16:09 <Deewiant> Yes.
22:17:12 <Sgeo_> Bleh at Opera Mobile being only on the Market
22:18:07 <alise> If you unload EDOM while in switchmode, switchmode ends, right?
22:18:13 <alise> Or do you need to explicitly turn it off with S?
22:18:17 <Deewiant> Turn it off.
22:18:18 <alise> *MODE
22:18:27 <Deewiant> Or that's an UNDEF, really.
22:18:38 <alise> http://pastie.org/923841.txt?key=7tniprqy8nwr6wibrhvxmg
22:18:46 <alise> The definition code is surprisingly nice. This is promising.
22:19:00 <Deewiant> In CCBI 1.0.something and below you don't need to turn it off
22:19:08 <alise> Of course defining instructions with " in might not be so nice
22:19:18 <Deewiant> You need two ) there
22:19:23 <Deewiant> Or wait, what
22:19:25 <alise> Oh really?
22:19:33 <alise> F starts the definition of a fingerprint called NUMS.
22:19:35 <Deewiant> Firstly you need the S before the )
22:19:41 <alise> It is.
22:19:42 <Deewiant> And then you don't need another )
22:19:44 <Deewiant> Right.
22:19:45 <alise> We're executing backwards, remember?
22:19:49 <Deewiant> Oh, so you are.
22:19:50 <alise> Or, wait, it needs to be ] doesn't it
22:19:52 <Deewiant> Didn't notice that.
22:20:00 <alise> Yeah, it needs to be ], like you said.
22:20:01 <alise> Right?
22:20:05 <Deewiant> Yes, they all should be.
22:20:28 <alise> My worry is that code that does something more complex -- like computation -- than simply feeding it a string might be ugly.
22:20:29 <alise> But eh.
22:20:33 <alise> This way keeps 0"gnirt"s.
22:20:45 <Deewiant> If it has a string inside it it'll certainly be ugly; but such is life.
22:21:00 <Deewiant> Or I guess that depends on whether you think ""'" is ugly.
22:21:23 <alise> "0""'"oof""'0
22:21:32 <alise> Worst method of string escaping discovered!
22:21:55 <alise> "Hello, "\'"n"
22:22:02 <alise> So c = "c'" :-)
22:22:18 <alise> It just feels weird to be going backwards.
22:22:30 <Deewiant> Then don't go backwards :-P
22:22:50 <alise> But then I need 0"string"s, and that's worse! Isn't it?
22:22:52 <alise> You're the Befunge expert.
22:22:57 <Deewiant> You don't need them.
22:23:07 <alise> What, write the entire code for an instruction backwards?
22:23:14 <alise> That's going backwards, too :-P
22:23:26 <alise> Hmm, I wonder what this would look like for 2D code.
22:23:37 <alise> Ouch. Maybe I /should/ write my own quoting instructions.
22:23:47 -!- coppro has joined.
22:23:48 <Deewiant> You can go forwards outside the string and backwards inside it, but that takes at least two lines
22:24:10 <Deewiant> I.e. run the "" right-to-left, but do other stuff left-to-right
22:25:25 <alise> I assume writing strings with newlines as-they-are (as in, 2D in the actual string building code) is not so pretty...
22:25:56 <Deewiant> If you want a newline in a string you do 0"rab"a"oof"
22:26:02 <alise> Right, but I mean
22:26:07 <alise> actually having a newline in the code that builds the string
22:26:29 <Deewiant> Not a problem?
22:27:42 <alise> Write a portion of Mycology with the same shape as in Mycology, but building the code that the section is instead. Mwahaha!
22:27:46 <alise> Now you see the evil!
22:28:09 <Deewiant> Not that bad, really.
22:28:34 <alise> Hmm... if I want my fingerprint-definer to truly be powerful, I need to let the code access the host IP.
22:28:47 <alise> Like, I can move around in the fingerprint code, but I can't write an instruction that changes the direction the IP is going in.
22:28:50 <Deewiant> Instead of having a literal 'foobar\nbaz' in the code you do ']"baz"0\n]"foobar"a
22:28:54 <Deewiant> '
22:29:17 <Deewiant> You'll have to move north if you want the Y-direction to be the same :-P
22:29:32 <Deewiant> (And then use [ again instead of ])
22:29:36 <Sgeo_> alise, if you make something that lets fingerprints be defined in Befunge-98, that might be the only one my hypothetical AndFunge-98 interpreter will support
22:29:54 <alise> Sgeo_: Some fingerprints cannot be defined in that way.
22:30:00 <alise> Such as ones that affect the entire interpreter loop, such as TRDS.
22:30:07 <Deewiant> alise: Mini-Funge had instructions for that. Don't know what's happened to that in Rc/Funge-98's new system
22:30:13 <Gregor> TURDS
22:30:34 <alise> Gregor: TARDIS >:|
22:30:42 <Deewiant> >:|||
22:30:55 <Gregor> TURDIS
22:30:59 <Deewiant> >:||
22:31:31 * Sgeo_ wonders if there's a Befunge interpreter on iProducyt
22:31:33 <Sgeo_> *iProduct
22:32:09 <Gregor> The SDK license agreement forbids it.
22:32:13 <alise> No; it's against the T.O.S.
22:32:14 <Sgeo_> Oh, right
22:32:18 <alise> Even before the recent change, IIRC.
22:32:23 <Gregor> Yup
22:32:32 <Sgeo_> Supposedly, that's for the multitasking that's coming soon
22:32:36 <ais523> yes, the recent change now forbids you writing your programs in Befunge and compiling them for use on the iPhone
22:32:37 <Gregor> The recent change prevents pre-compiling, interpreting was already prevented.
22:32:38 <Sgeo_> Although that doesn't really make senser
22:32:48 <alise> Sgeo_: That's[...]bullshit, in so many words.
22:32:53 <Gregor> Fucking Apple douchebaggery.
22:32:59 <alise> Apple so fucked up big-time with the TOS from the start.
22:33:07 <ais523> actually, writing in Befunge then compiling, you'd still have something capable of being a Befunge interp if it had exploitable p commands
22:33:11 <alise> Gregor: It annoys me because now Apple have totally ruined their reputation, whereas their actual computers have none of this shit
22:33:31 <alise> I've always considered the iPhone SDK agreement completely unacceptable but I'm considered an Apple fanboy anyway :(
22:33:33 <Sgeo_> Here's what I hope happens: This kills Flash. Then, Apple is investigated for monopoly stuff
22:33:35 <Gregor> alise: That's the problem, they've only ruined their reputation amongst the tiny portion of the population that gets it.
22:33:51 <ais523> Sgeo_: but Apple don't have a monopoly
22:34:01 <alise> Sgeo_: Apple are well within their rights here.
22:34:10 <ais523> Gregor: on the other hand, that portion of the population contains many of the people who'd actually plan to write apps for them
22:34:22 <alise> Gregor: Mm.
22:34:28 <ais523> what'll happen is that the app store ends up full only of people who are trying to exploit their customers
22:34:35 <alise> But it's upsetting, because I want to like Apple computers and I want to support the computers.
22:34:40 <alise> But I can't because I'm supporting the shit as well.
22:34:42 <ais523> which doesn't really sound ideal for Apple's customers
22:36:12 <Sgeo_> Is Opera Mini a good browser?
22:36:26 <ais523> Sgeo_: good for some things, not others
22:36:38 <alise> Opera Mini is crap.
22:36:41 <ais523> basically, you visit a web page, it renders that web page and sends you an image of the rendered web page
22:36:43 <alise> I can say this because I have used it on a telephone.
22:36:48 <ais523> this gives you speed, but not many features
22:36:48 <alise> I wanted to claw out my face.
22:36:55 <alise> Sgeo_: Note --
22:37:01 <alise> Opera Mobile is an entirely different thing altogether.
22:37:06 <ais523> think of it as "browser so we can run /something/ on a system that normally couldn't", rather than "browser so you can use the internet"
22:37:08 <alise> It is, I gather, significantly less suckful.
22:37:15 <Sgeo_> When will Opera Mobile be on Android?
22:37:18 <ais523> and yes, Opera Mobile is an actual browser
22:37:29 <alise> Sgeo_: The Oracle does not yet know the answer to that question.
22:37:36 <alise> It does now, though.
22:37:38 <alise> It's already out.
22:37:41 <alise> Sgeo_: But just use the built-in browser.
22:37:43 <alise> It uses WebKit.
22:37:44 <pikhq> Opera Mobile is basically just a port of Opera.
22:37:44 <alise> WebKit is good.
22:37:46 <alise> You like WebKit.
22:37:52 <alise> Anyway, it's already out on Android.
22:37:53 <pikhq> Which is a good browser.
22:37:57 <pikhq> As is Webkit.
22:38:25 <Sgeo_> You're assuming that the part of Chrome that I like is WebKit.. Maybe I like the JS engine, or the interface
22:38:39 <alise> I never assumed that.
22:38:43 <alise> I'm telling you that you do like WebKit.
22:38:52 <alise> I am making the decision for you.
22:39:37 * Sgeo_ wonders how EpicMafia works on Android
22:39:58 -!- fungotCFUN has quit (Remote host closed the connection).
22:39:58 -!- fungotCCBI has quit (Remote host closed the connection).
22:41:41 <Sgeo_> What's CFUN?
22:41:53 <Deewiant> cfunge's handprint.
22:42:51 <ais523> handprint identifies a specific interpreter
22:42:56 <ais523> caring about it is normally ill-advised
22:43:19 <ais523> but it's nice for ease of reference when you're trying to say which interp you're talking about
22:43:33 <ais523> Deewiant: do CCBI and CCBI2 have the same handprint?
22:43:38 <Deewiant> Yes
22:44:00 <ais523> how similar are they code-wise?
22:44:18 <Sgeo_> Hm, I guess I should make my handprint something other than AndFunge-98
22:44:31 <Deewiant> $ git diff -c 2.0-fork --stat | tail -n1
22:44:32 <Deewiant> 139 files changed, 17190 insertions(+), 8780 deletions(-)
22:45:17 * ais523 downloads FSF propaganda
22:46:31 <alise> Join us now and share the software
22:46:34 <alise> You'll be free, hackers
22:46:37 <alise> You'll be free
22:46:40 -!- Oranjer has joined.
22:46:40 <ais523> it's about software patents
22:46:41 <alise> Hoarders may get piles of money
22:46:42 <alise> That is true, hackers
22:46:43 <alise> That is true
22:46:47 <alise> But they cannot help their neighbours
22:46:50 <alise> That's not good, hackers
22:46:51 <alise> That's not good
22:46:52 <ais523> I wonder if it's as bad as the RMS stuff?
22:46:55 <alise> And thankfully I can't remember any more.
22:47:09 <ais523> wait, I thought you were making that up
22:47:11 <ais523> ouch
22:47:12 <pikhq> alise: First verse again, and then it's done.
22:47:12 <alise> No!
22:47:18 <alise> It's the Free Software Song.
22:47:19 <pikhq> Also, RMS should not be allowed to filk. *Ever*.
22:47:25 <alise> http://www.google.co.uk/url?sa=t&source=web&ct=res&cd=1&ved=0CAgQFjAA&url=http%3A%2F%2Fwww.gnu.org%2Fmusic%2Ffree-software-song.html&ei=zdrIS57NM9KTsQbwkOWmCw&usg=AFQjCNEgIz17BC-OPdJc-KYuzRPag6zLzA&sig2=BKvaEefBxD9l_1xUOhfQfQ
22:47:25 <pikhq> He's so very bad at it.
22:47:26 <alise> oops
22:47:27 <alise> http://www.gnu.org/music/free-software-song.html
22:47:33 <alise> ais523: http://www.gnu.org/music/free-software-song.ogg
22:47:38 <alise> http://www.gnu.org/music/free-software-song.html ;; other performances
22:47:42 <pikhq> SO BAD
22:47:46 <alise> "This song is in a rhythm of 7/8; those unaccustomed to odd rhythms often take the unevenness to be a mistake." Suuure
22:47:52 <alise> pikhq: you missed a verse
22:47:54 <alise> When we have enough free software
22:47:55 <alise> At our call, hackers, at our call,
22:47:55 <alise> We'll throw out those dirty licenses
22:47:55 <alise> Ever more, hackers, ever more.
22:47:58 <alise> DIRTY DIRTY LICENSES
22:48:00 <pikhq> alise: Ah, yes.
22:48:18 <pikhq> He should never be allowed to filk.
22:48:48 <pikhq> He's not bad at writing (though his stubbornness tends to bite him in the ass there), but that... *shudder*
22:49:11 <Sgeo_> alise, what do you think about the multitouch bug?
22:49:16 <alise> Sgeo_: link me up
22:49:47 <Sgeo_> alise, http://www.youtube.com/watch?v=qzhUzq6bTPg
22:49:55 <alise> Here's his almost-as-bad APL poem:
22:49:57 <alise> Rho, rho, rho of X
22:49:59 <alise> Always equals 1.
22:50:03 <alise> Rho is dimension; rho rho, rank.
22:50:04 <alise> APL is fun!
22:50:13 <alise> A far superior alternative:
22:50:20 <alise> There are three things a man must do before his life is done;
22:50:22 <alise> Write two lines in APL,
22:50:25 <alise> And make the buggers run.
22:50:47 <pikhq> Part of the groan-inducing is that filks often rely on puns...
22:50:56 <alise> http://stallman.org/doggerel.html An endless repository of pain.
22:50:57 <pikhq> Part of it is that RMS likes puns too much.
22:51:08 <alise> [[ For reasons obscure and unclear,
22:51:09 <alise> I can't put my nose in my ear.
22:51:09 <alise> But if I succeed,
22:51:09 <alise> I'll be happy indeed,
22:51:09 <alise> For I'll finally have a career.]]
22:51:10 <alise> o_o
22:51:18 <alise> [[ If I could just kiss my own nose,
22:51:18 <alise> I'd have a career, I suppose.
22:51:18 <alise> But the Christian right wing
22:51:18 <alise> Would frown on the thing;
22:51:19 <alise> For safety, I'll just kiss my toes.]]
22:51:22 <alise> Bit of a nose obsession going on here
22:51:51 * Sgeo_ pokes alise
22:52:01 <alise> Sgeo_: No sound, so give me a text summary please.
22:52:14 <Sgeo_> The visuals work just as well
22:52:35 <Sgeo_> Multitouch on Nexus One, but not Android in general, seems to get the fingers confused if the axises cross
22:52:51 <alise> *axes
22:52:57 -!- mycroftiv has quit (Read error: Operation timed out).
22:52:58 <alise> Maybe a software bug.
22:53:14 <alise> But, eh, you don't really have any other viable Android phones available, and this seems a bit of an edge case.
22:53:39 <alise> Looked at the HTC Desire? Maybe it is out over there now.
22:53:41 <Sgeo_> My dad's considering switching/getting a T-Mobile
22:55:18 <Sgeo_> What's the myTouch like?
22:55:35 <Sgeo_> Besides ugly
22:56:11 -!- tombom has joined.
22:56:19 * Sgeo_ growls at being unable to find the version of Android used by myTouch
22:56:46 -!- mycroftiv has joined.
22:58:07 <Sgeo_> 1.6 bleh
22:58:36 <Sgeo_> If I'm getting a T-Mobile contract, there's little reason not to get the Nexus One
22:59:02 <Sgeo_> Ok, maybe I should admit I'm a bit biased: I saw, and got to play with a little bit, a Nexus One last week
22:59:18 <Sgeo_> Just played with the Android Scripting Environment, couldn't get it to work
22:59:20 <Sgeo_> But still
23:00:19 <alise> Sgeo_: Look at the HTC Desire if you want to
23:00:31 <alise> It's just like the Nexus One but with the prettier Sense homescreen and some other minor differences
23:00:49 <alise> The myTouch is pretty old iirc
23:00:53 <alise> yeah
23:00:54 <alise> it's android 1
23:01:16 <Sgeo_> What network is Desire, again?
23:01:26 <Sgeo_> Oh, T-Mobile
23:01:45 <alise> Sgeo_: http://www.engadget.com/2010/04/01/htc-desire-review/
23:01:46 <alise> Read that.
23:01:59 <alise> It compares it to the Nexus One.
23:02:03 <alise> IMO the Nexus One's exterior is prettier but the Desire's screen...contents are prettier.
23:02:17 <Sgeo_> Sense UI is pretty, but other than that, and the phone button, I don't see the point
23:02:22 <Sgeo_> Hm, I can agree with that
23:04:01 <Sgeo_> Considering the tactile buttons and placement of trackpad, you'd THINK the Desire would have more screen space, grr
23:04:05 <alise> Sense has changes in the actual apps, I think
23:04:24 <alise> The Legend isn't very pretty but it has a fancy aluminium unibody covering :P
23:04:28 <alise> Sgeo_: Oh, that trackpad thing isn't nice IMO.
23:04:32 <alise> I much prefer a trackball, at least in theory.
23:04:35 -!- ais523 has quit (Remote host closed the connection).
23:04:52 <alise> http://en.wikipedia.org/wiki/HTC_Sense
23:05:00 <alise> So Sense includes much more than just a home screen.
23:05:09 <Sgeo_> Noise cancellation sounds interesting
23:05:30 <alise> You may prefer stock Android; uglier, probably, but more... stock.
23:06:10 <Sgeo_> "in theory, the latter's unibody frame should be stronger than the Desire's old-fashioned assembly"
23:06:35 <alise> Yes but it's also more slippery.
23:07:01 <alise> Sgeo_: Mind you, Android 2 introduced a major makeover to the whole UI.
23:07:06 <alise> So stock Android isn't exactly ugly nowadays.
23:07:49 <alise> Sgeo_: But also "and the phone certainly doesn't peeve your ears with distorted background noise as produced by the Nexus One"
23:07:57 <alise> Still, who makes calls on their phone?
23:08:58 <alise> Sgeo_: Oh, and you can get the "best" of both worlds...
23:09:00 <alise> [[Of course, if you're really into that little glowing ball and the touch-sensitive buttons, you can always try flashing the Desire ROM onto it (at your own risk, naturally). Have fun!]]
23:09:17 <alise> Since the Nexus One is prettier on the outside and besides gives you more freedom if you want the Googley stuff by default...
23:09:27 <alise> http://www.engadget.com/2010/02/21/htc-desire-rom-shoehorns-htc-sense-and-flash-10-1-onto-the-nexus/
23:09:57 <alise> So there!
23:10:01 <alise> Go for the Nexus One, probably.
23:10:12 <alise> btw http://www.tbray.org/ongoing/When/201x/2010/04/11/Other-Android-Languages
23:12:12 <alise> And Tim Bray has a Nexus One, so if you like him go for the Nexus One!
23:12:22 <alise> Sgeo_: To be quite honest, since the Nexus One will be quite cheap on a T-Mobile contract, just get it.
23:12:38 <alise> It's not like you'll hate it or anything, it's, if not the best Android phone out there, in the top three.
23:13:08 <Sgeo_> Does the Desire have the multitouch issue? I can see myself wanting to play games with others on occasion
23:13:34 <alise> I imagine it does since it has similar hardware. And no, you won't.
23:13:41 <alise> The screen is not big enough for that; you wouldn't be able to see things.
23:13:51 <alise> Maybe Pong could work, at the most.
23:14:52 <Sgeo_> Nexus One is supposed to get Flash 10.1 soon?
23:15:17 <coppro> okay, firefox is starting to get really weird on me
23:15:21 <alise> It has it now if you flash the Desire ROM.
23:15:24 <coppro> it is literally refusing to load some pages
23:15:28 <alise> But you don't want Flash on a mobile device on the web.
23:15:29 <alise> Trust Me.
23:15:33 <alise> It is not pleasant.
23:16:08 <Sgeo_> alise, I don't think you could have possibly tried it
23:16:50 <alise> I can read, and I can reason, and I have used the web on a phone without Flash extensively; that is enough.
23:17:00 <Sgeo_> Where is the ROM?
23:17:06 <Sgeo_> I want to try it on the emulator
23:17:13 * Sgeo_ wonders how to get ROMs onto the emulator
23:17:22 <alise> http://www.engadget.com/2010/02/21/htc-desire-rom-shoehorns-htc-sense-and-flash-10-1-onto-the-nexus/
23:17:26 <alise> (Click the post title)
23:17:45 -!- augur has joined.
23:18:14 <Sgeo_> The title, it does nothing!
23:18:27 <Sgeo_> Oh, apparently, by title, you meant image?
23:19:40 <alise> Erm. :P
23:19:44 <alise> I didn't really think, at all. :-)
23:19:46 <augur> hey alise
23:20:01 <alise> yoyoyoyo
23:20:22 <augur> you Iota/Jot?
23:20:36 <alise> I know it yeah
23:20:38 <augur> you know**
23:20:55 <augur> we're trying to get the guy who created it to come to our department to give a talk
23:20:55 <augur> :T
23:28:28 * Sgeo_ probably won't do anything warantee-voiding
23:28:33 -!- augur has quit (Remote host closed the connection).
23:28:45 -!- augur has joined.
23:36:56 <coppro> alise: You know what? I've been looking over the Agora archives, and I miss you
23:38:54 <alise> Strange; wasn't I a total asshole? :P
23:41:02 <alise> coppro: what in particular made you remember how awesome I was? :P
23:41:04 <alise> brb
23:41:40 <coppro> alise: comex's "For the love of god did you even read the arguments to that case?" You're like Yally, except you aren't just annoying in every way
23:41:56 <augur> alise: want me to ask him some questions when hes here? :x
23:44:17 -!- |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).
23:53:53 <alise> back
23:54:01 <alise> augur: perhaps
23:54:02 <alise> coppro: :))
23:54:09 <alise> what cfj #?
23:54:20 <alise> or alternatively thread title
23:54:23 <coppro> uh
23:54:29 <coppro> it was the criminal case regarding AAA awards
23:54:41 <augur> alise: let me know in the next three months :P
23:54:45 <coppro> and whether Taral was illegally failing to award them
23:54:51 <coppro> March 10-ish
23:55:11 <alise> what cfj number, I said :-P
23:55:22 <coppro> There were probably 3 pages worth of arguments, you said "trivially GUILTY/SILENCE"
23:55:38 <coppro> 2402
23:56:11 <alise> I tend to take a bit of a lax attitude to nomic
23:56:28 <Sgeo_> http://www.thinkgeek.com/gadgets/cellphone/8193/ expensive :(
23:56:30 <alise> [[Judge ehird's Arguments:
23:56:31 <alise> GUILTY/SILENCE; when the obligation was created, the AAA was a
23:56:31 <alise> contest, and obligations don't automagically stop existing because
23:56:31 <alise> they wouldn't if they were calculated now.]]
23:56:37 <alise> I actually considered this too obvious to state the first time around
23:56:59 <alise> Sgeo_: those things suck
23:57:28 <alise> coppro: ugh, why was it overruled?
23:57:43 <coppro> alise: I think those were your second arguments
23:57:55 <alise> yeah they were
23:58:50 <Sgeo_> alise, how does it suck?
23:59:00 <coppro> alise: they were overturned on reasonable belief, given how complex the sorting-out of the rules was. This was a bad overrule; ignorance of the law has long been held not to be a defence
23:59:00 <alise> Sgeo_: no tactile response whatsoever
23:59:04 <alise> almost impossible to use without looking at it
23:59:15 <Sgeo_> Almost like the Nexus One keyboard!
23:59:27 <alise> yeah but way too big to be usable
23:59:59 <alise> coppro: a shame; I bet something comes up sometime where that precedent will be useful
2010-04-17
00:00:04 <alise> mwahaha
00:05:15 -!- tombom has quit (Quit: Leaving).
00:10:07 <Sgeo_> Which is worse, T-Mobile, or AT&T
00:12:12 <alise> T-Mobile has not-so-good 3G coverage; AT&T hates its customers and blames them using its service for its extremely subpar performance.
00:12:13 <alise> AT&T.
00:13:15 <Sgeo_> Looking at the maps
00:13:16 <oerjan> hey, it's not AT&T's fault it gets all the hoarders
00:13:30 <Sgeo_> I looked at AT&T map the other day, my area had 3G coverage
00:14:07 <Sgeo_> T-Mobile has "Fast Mobile Web" [as opposed to Very Fast Mobile Web, or Mobile Web] in most, but not all, of my area
00:16:13 <alise> Well, let me tell you that as someone who doesn't have a 3G phone -- only EDGE -- I don't really miss it.
00:16:19 <alise> Maybe if you wanted to watch YouTube a lot when nowhere near WiFi.
00:19:13 -!- Gracenotes has joined.
00:19:48 <Sgeo_> Also, my dad wants me to hide this from my step-mother and her mother
00:20:01 <Sgeo_> Meaning no nice free calls with Google Voice to/from them
00:20:16 <Sgeo_> Among other annoyances
00:36:12 <alise> Your family sounds nice and well-adjusted. :)
00:36:17 <Sgeo_> lol
00:58:08 -!- alise_ has joined.
00:59:07 -!- alise has quit (Ping timeout: 258 seconds).
01:03:32 -!- augur has quit (Remote host closed the connection).
01:04:38 <alise_> holy shit
01:04:40 <alise_> google redesigned
01:04:43 <alise_> new logo
01:04:45 <alise_> new interface
01:04:47 <alise_> everything
01:06:05 <pikhq> Nice joke.
01:06:10 <alise_> Joke?
01:06:12 <alise_> It's no joke.
01:06:16 <alise_> Make sure you're on .com.
01:06:27 <alise_> The logo /is/ redesigned, and the UI /is/ significantly different.
01:06:38 <pikhq> Yup, still the normal Google.
01:06:48 <pikhq> Got the text-fadein-thing of a few months ago and everything.
01:07:15 <alise_> Yes, but http://www.google.com/intl/en_ALL/images/srpr/logo1w.png is definitely new.
01:07:26 <alise_> As is the redesigned sidebar on a search results page.
01:07:33 <pikhq> Yeah, that's not what I'm seeing.
01:07:37 -!- augur has joined.
01:07:45 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:07:49 <alise_> Want some screenshots?
01:07:51 <pikhq> http://www.google.com/intl/en_ALL/images/logo.gif <-- This is what I get.
01:08:02 <alise_> Are you on google.com? Clear cache, mayhaps.
01:08:02 -!- FireFly has quit (Quit: Leaving).
01:08:03 <pikhq> Sure.
01:08:10 <pikhq> Yes, google.com
01:09:19 <alise_> Okay, uploading images now
01:10:35 <alise_> pikhq: http://imgur.com/5k9XF.png, http://imgur.com/ymPSq.png, http://imgur.com/FaxDX.png
01:11:20 <alise_> It's an improvement, mind you; looks cleaner. But still, Google changing their logo? That's only happened onfce.
01:11:22 <alise_> *once
01:11:23 -!- Asztal has quit (Ping timeout: 276 seconds).
01:11:38 <pikhq> alise_: Holy fudgsicles
01:12:09 <alise_> My path to Google is less cached than yo-ou, my path to Google is less cached than yo-ou!
01:12:14 <alise_> Na na na na na, na na na na na!#
01:12:15 <alise_> *!
01:14:00 <pikhq> Katamari Damacy!
01:14:10 <pikhq> (塊魂!)
01:14:14 <alise_> Katamari Democracy.
01:14:45 <pikhq> 塊住民?
01:15:31 <Gregor> Naaaaaaaaaaa na na na na na naa naa na naa naa nana naaaaaaaa
01:15:47 <pikhq> Erm, sorry. 塊民主主義.
01:17:02 <pikhq> "Katamari minshushugi" just sounds less awesome than "Katamari damashii". XD
01:17:50 <pikhq> Not to mention a bizarre concept.
01:17:54 <pikhq> "Clump democracy"?
01:21:11 <alise_> :-D
01:21:47 <pikhq> "Naaaaaaaaaaaa na na na na na na katamari minshushugi...."
01:24:22 <oerjan> the political system you feel attached to
01:24:35 -!- fhoahf38771 has joined.
01:24:35 -!- fhoahf38771 has left (?).
01:32:19 -!- jcp has joined.
01:33:29 -!- MizardX has quit (Ping timeout: 276 seconds).
01:35:36 -!- MizardX has joined.
01:40:44 <Sgeo_> WHY IS ECLIPSE SO DAMN SLOW?
01:41:22 <alise_> Java
01:41:25 <alise_> gui
01:41:25 <alise_> libs
01:41:30 <alise_> & sucky coding.
01:41:32 <alise_> Use Emacs or something.
01:41:52 <Sgeo_> Emacs doesn't have an Android Developer Tools plugin
01:42:05 <Sgeo_> ADT even has a Glade-like thing
01:42:47 <Sgeo_> Write out boring XML by hand, or use Eclipse.. hm
01:43:52 <oerjan> lava or liquid helium, that's the question
01:43:54 <Sgeo_> *waits 5 minutes to switch to the xml file for the layout
01:44:53 <alise_> algorithms are the best things ever
01:45:32 <Sgeo_> FINALLY
01:45:40 <oerjan> al-gore-isms
01:45:48 <oerjan> algae-rhythms
01:45:53 <alise_> if you disagree consider that i just replaced your mother with an algorithm
01:46:01 <alise_> er that wasn't intended specifically at either of the two people talking
01:46:03 <alise_> ...awkward
01:47:00 <oerjan> awkward-isms
01:47:37 <alise_> algae rhythms is a nice term
01:49:16 -!- zzo38 has joined.
01:50:04 <alise_> hi zzo38
01:50:07 <alise_> got my algorithm yet :P
01:50:32 <oerjan> algarve swims
01:51:01 <zzo38> No
01:51:06 <alise_> WHYEVER NOT
01:51:16 <alise_> i'll have you fired for this :P
01:51:17 <zzo38> Have you ever used pointer to pointer to pointer, in C programming? How many level of pointers have you used
01:51:53 <alise_> algae bra
01:52:03 <alise_> zzo38: three-star programmer!
01:52:23 <alise_> http://c2.com/cgi-bin/wiki?ThreeStarProgrammer
01:52:47 <zzo38> I have that page already open in my browser, before you posted it
01:52:52 <alise_> zzo38: I'm an n-star programmer, my code is so abstract that the depth of nested pointers depends fundamentally on the subtle properties of the algorithm I'm metaimplementing
01:53:00 <alise_> (I wish)
01:53:27 <Gregor> If I ever get beyond 2, I add more types.
01:53:37 <zzo38> I have used three stars at most, I think.
01:53:37 <Gregor> Even a struct with only one member will clear things up extraordinarily.
01:53:54 <alise_> A struct with only one member? Jesus weeps.
01:53:59 <alise_> If I ever get beyond 2, I rethink my design.
01:54:10 <zzo38> And I wrote the three star code today, in fact, as part of a command-line argument parsing program
01:54:37 <zzo38> I have created structs that are completely unused, in fact. And there is a reason for that.
01:54:40 <alise_> Generally I just try and avoid using languages that have the anti-abstraction of pointers.
01:54:45 <pikhq> alise_: A struct with only one member is a way of forcing C to have more types. :)
01:54:46 <alise_> Or mutation.
01:54:58 <pikhq> Also. Pointers, an abstraction?
01:55:08 <alise_> I said antiabstraction.
01:55:10 <pikhq> If they are, they're the thinnest possible abstractions.
01:55:21 <alise_> They deabstract memory; they make it more concrete than it needs be.
01:55:23 <pikhq> Mmkay.
01:55:55 <zzo38> alise_: I disagree. I think they need to deabstract a bit more things to make C useful in some ways, too
01:56:11 <alise_> zzo38: I'm just a mathematical weenie, though.
01:56:12 <pikhq> They *do* make things like "moving objects" a royal pain. And lord help you if you want a compacting GC.
01:56:31 <alise_> I don't really care about stupid machines. Everything's graph reduction, or high-school algebra. :)
01:56:45 <pikhq> (it's possible... If you force all dereferencing through your GC.)
01:57:09 <zzo38> If you want a lot of abstraction in that kind of way, perhaps you can use a different program language for your project
01:57:35 <pikhq> alise loves his abstractions.
01:57:44 <alise_> *her
01:57:48 <alise_> Get the confusing pronouns correct!
01:57:49 <pikhq> C allows precious few.
01:57:54 <pikhq> alise_: 'er
01:57:54 <alise_> I /will/ demolish English!
01:58:16 <pikhq> Unless you want me to start using Japanese pronouns.
01:58:26 <zzo38> http://c2.com/cgi-bin/wiki?YouMightBeaThreeStarProgrammer
01:58:52 <alise_> zzo38: Technically I'm in favour of low-level programming: just low-level programming on a decent machine; something like the Reduceron that does symbolic reduction, not a silly peeking-and-poking 70s BASIC machine like we all use today.
01:58:56 <pikhq> Actually. Kochira know what? Ware think ware'm going to. :P
01:59:01 <alise_> Throw it all out and start again; then everything will be perfect.
02:00:19 <pikhq> (note: all pronouns in use are completely and utterly *bizzare* to use in normal Japanese, if valid. Koretachi are somewhat difficult to map into English otherwise. :P)
02:01:19 <alise_> 2b \/ ~2b, obviously multiplication on the booleans is just mod-2, so this is 0*b = false, so we have false \/ ~false, i.e. false \/ true
02:01:25 <alise_> shakespeare, it's true.
02:01:29 <alise_> thought you might like to know.
02:01:54 <pikhq> Hah. Nanji wouldst do such a thing.
02:02:05 <zzo38> Some of the things listed in the YouMightBeaThreeStarProgrammer are I have used, but some I don't.
02:02:12 <alise_> pikhq: Who, what, where, why, when?
02:03:13 <zzo38> I don't write code which intentionally depends on undefined/unspecified behavior when writing in C, because C is supposed to be cross-platform. But I sometimes *do* intentionally undefined/unspecified behavior when writing in a lower-level program language such as plain machine-codes, but not always. It depends on circumstances.
02:03:24 <pikhq> Dare, nani, doko, naze, nan no toki?
02:04:15 <pikhq> ("nanji" not used for where to avoid confusion with "nanji" for thou)
02:04:39 <zzo38> "You have ever wished you could set a breakpoint within an expression." Yes, I have wanted this. In C, but also in other programming languages too
02:04:50 <zzo38> Have you?
02:05:04 <pikhq> zzo38: The difference between expressions and statements is just silly.
02:05:21 <pikhq> Erm. Distinction, is nani ware meant.
02:05:33 <alise_> so guys, judy arrays
02:05:35 <alise_> cool things huh
02:06:30 <zzo38> pikhq: Yes, it is a bit. In Forth there is no difference between expressions and statements. But in C some statement must be used not inside of a expression
02:06:45 <zzo38> (Although GNU C allows code-blocks inside of expressions)
02:07:12 <pikhq> alise_: So, nani anata are saying is that ware should use kore for Fungespace?
02:07:25 <alise_> pikhq: It may be an idea.
02:07:26 -!- augur has quit (Remote host closed the connection).
02:07:28 <alise_> I was considering it.
02:07:31 -!- augur has joined.
02:07:32 <alise_> pikhq: Either that, or quadtrees.
02:07:49 <pikhq> And I'm going to stop the silliness with pronouns.
02:07:54 <alise_> But, you know, http://judy.sourceforge.net/ is all pre-made and well-engineered for you.
02:07:59 <pikhq> Except for 君, alise_.
02:08:03 <pikhq> :P
02:08:19 <alise_> And it has a nice API.
02:08:20 <pikhq> alise_: Yeah.
02:09:10 <alise_> pikhq: You might also, if you care about performance, want to add a static array of maybe a megabyte in size somewhere near (0,0) to handle "most" accesses.
02:09:35 <zzo38> "You have bitshifted the result of a boolean expression and used it as an array index..." Yes, I have, both in C and in BASIC and others. I have done this to fix a bug in MegaZeux so that the spiders can travel on their proper kind of web
02:10:06 <zzo38> (Or even outside of a web, as the case may be)
02:11:49 <alise_> Multiple times I day I get very pissed off at how immature software engineering is.
02:12:07 <alise_> We've been doing this gig since about the 50s, and we still haven't figured out how to code properly.
02:12:09 <alise_> Or even acceptably.
02:13:13 <zzo38> It is true, some people can't program neatly at all. Many examples on http://thedailywtf.com/Series/CodeSOD.aspx
02:14:40 <pikhq> alise_: I was actually thinking of doing something like precomputing the ray of execution into a single thread, and just interpreting from that. And cacing precomputed threads.
02:14:51 <alise_> pikhq: Not sure what you mean by that.
02:14:55 <alise_> zzo38: Indeed, but even good programmers are bad.
02:14:58 <pikhq> (thread in the "threaded programming" since)
02:15:02 <pikhq> s/since/sense/
02:15:10 <alise_> pikhq: That makes p/g harder.
02:15:20 <alise_> pikhq: Also, remember to test Mycology regularly. Also, exact bounds.
02:15:22 <alise_> You need exact bounds.
02:15:32 <zzo38> Yes, I have written codes that later I thought was TRWTF (but some of the codes that other people don't like that I wrote, I find to be perfectly OK, but not always)
02:15:37 <alise_> For y, you need to be able to determine the exact maximum and minimum (x,y) coordinates of inhabited fungespace.
02:16:00 <pikhq> Yes, it requires that I *either* keep track of the cells in each thread so I can invalidate them on modification, or just chuck out the entire cache upon modification.
02:16:32 <pikhq> And yes, I have every intent of keeping track of exact bounds.
02:17:03 <Sgeo_> How is pikhq storing Fungespace?
02:17:09 <alise_> Well, I'd say you are, in all likelihood (I haven't seen a piece of complex code by you), a very competent software engineer. And I can't think of any problems with your scheme.
02:17:12 <pikhq> Judy array, it seems.
02:17:12 <alise_> So go for it.
02:17:16 <alise_> Sgeo_: Well, I've suggested Judy arrays.
02:17:34 <pikhq> alise_: I shall after this weekend.
02:17:36 <alise_> pikhq: You'll want to lightly spec some sort of abstract fungespace interface so you can swap it out later, of course; in case, say, quadtrees are significantly faster.
02:17:50 <pikhq> Of course.
02:17:50 <alise_> Language is plain C, I assume? Maybe GNU C.
02:17:54 <alise_> 89 or 99?
02:18:00 <pikhq> GNU C 99.
02:18:24 <alise_> Alright.
02:18:31 <pikhq> I make a lot of use of C99 features by habit, and my "compiling into threads" bit requires computed goto.
02:18:40 <alise_> I look forward to seeing your progress over the coming weekends; and hopefully soon enough weekdays too.
02:18:54 <pikhq> Which, amusingly, clang handles much more efficiently than GCC.
02:19:08 <Sgeo_> I guess in AndFunge-98, I'd use the NDK to access the Judy array stuff?
02:19:21 <alise_> Stop calling it AndFunge; just makes me think of Avid NorlanDer.
02:19:31 <alise_> And I'd just implement it all in Java.
02:19:33 <alise_> Do quadtrees.
02:19:36 <alise_> They're fast.
02:19:58 <Sgeo_> It's still a long way off, ofc
02:20:12 <uorygl> I keep feeling an urge to do some object-oriented programming in a language like Java.
02:20:29 <alise_> uorygl: You're just longing for the platonic realisation of the hype.
02:20:32 <zzo38> I have another question: Have you ever used __attribute__((unused)) in GNU C?
02:20:37 <alise_> A brief session coding in such a language should dispel any illusion.
02:20:39 <alise_> *illusions
02:20:43 <alise_> zzo38: No.
02:20:43 <uorygl> I never feel like doing anything in particular; I keep just wanting to use it.
02:20:46 <pikhq> zzo38: No, I haven't.
02:21:03 <alise_> I avoid __attribute__ because I like to let the compiler think about optimisations rather than making half of my program instructions to the optimiser. :P
02:21:05 <zzo38> Have you ever used *any* __attribute__ in GNU C? And if so, which ones?
02:21:17 <alise_> I've used noreturn, when doing fiddly Scheme compilation stuff.
02:21:21 <Sgeo_> I'm only using Java because Android uses, well, not the JVM, but something that JVM bytecode gets compiled into
02:21:29 <alise_> And probably printf-checking attributes, for error reporting functions that do printf-formatting.
02:21:49 <alise_> Sgeo_: Considered Jython/JRuby/Scala/etc?
02:22:10 <Sgeo_> alise_, I want to get up-to-speed with the basics of Android dev first
02:22:11 <alise_> You could still use the GUI APIs that way; or if there's some actually-Java-specific thing, write the GUI in Java and interface to the actual interp.
02:22:36 <zzo38> alise_: I like to tune optimizations myself and stuff, but I just do more of that "RealProgrammer" stuff that is generally not preferred in modern programming, sometimes
02:22:58 <zzo38> I have used __attribute__((hot)) and even __attribute__((unused)) and more
02:23:34 <Sgeo_> Currently, Eclipse is getting in my way more than Java is
02:24:03 <zzo38> Why is there a "Do Not Click" button?
02:24:15 <uorygl> I tried Android extremely briefly today.
02:24:26 <uorygl> It seemed to have more features, less well implemented, than the iPhone.
02:25:42 <alise_> uorygl: Did you try Android 2?
02:25:47 <alise_> Android 1 was very unpolished.
02:25:56 <alise_> Also, Android really suffered on slower CPUs.
02:26:03 <uorygl> I have no idea what I tried. It was in a store.
02:26:17 <alise_> Okay.
02:26:23 <alise_> Well, there are quite a few not-so-good Android phones out there.
02:26:35 <uorygl> I tried two or three.
02:26:38 <alise_> But the Nexus One and the HTC Desire, say, are almost certainly as good as the iPhone, or at least very near it.
02:26:57 <alise_> And, you know, they're unlike the iPhone in that they don't completely disallow any non-Objective-C language to be used, even pre-compiled, in their legal documents.
02:27:05 <alise_> Which is sort of a big deal.
02:28:24 <zzo38> while(pc) (***++pc)();
02:28:39 <alise_> zzo38: Ouch :(
02:28:42 <zzo38> Is it possible to make a coprocessor for ARM which adds an instruction to quickly execute that?
02:28:53 <alise_> I don't see why not.
02:28:57 <zzo38> I would find such an instruction useful directly in machine code
02:29:11 <uorygl> What does that do? I don't speak C.
02:29:19 <zzo38> Or, actually I mean just: (***+pc)();
02:29:22 <uorygl> At least, not C with ***++ in it.
02:29:35 <zzo38> The while(pc) part would be a separate instruction
02:29:41 <zzo38> Sorry, I meant (***++pc)();
02:29:45 <zzo38> (I forgot a plus sign)
02:29:54 <alise_> uorygl: Copy the value of pc to pc1. Increment pc. Dereference pc1 into pc1*. Dereference pc1* into pc1**. Dereference pc1** into pc1***.
02:30:03 <alise_> pc1*** is some code; execute it.
02:30:08 <alise_> Repeat while pc is not zero.
02:30:18 <uorygl> Whoa.
02:30:27 <Sgeo_> alise_, no
02:30:34 <Sgeo_> that would be ***pc++
02:30:40 <Sgeo_> (with parens?)
02:30:46 <alise_> Er, right.
02:30:50 <zzo38> There could be one register (or the command could work with multiple registers) that would be the "pc" in this example and it would execute (***++pc)()
02:30:59 <alise_> uorygl: Increment pc. Dereference pc into pc*. Dereference pc* into pc**. Dereference pc** into pc***.
02:31:03 <alise_> pc*** is some code; execute it.
02:31:07 <alise_> Repeat while pc is not zero.
02:31:11 <Sgeo_> When would this be useful?
02:31:18 <alise_> uorygl: So, basically, pc is a pointer-to-a-pointer-to-a-function-pointer.
02:31:34 <alise_> So a function-pointer is basically a passable-'round bit of mutable executable code.
02:31:34 <uorygl> When you have indirection.
02:31:42 <alise_> So pointer-to-pointer-to-koed.
02:31:55 <pikhq> zzo38: I've used __attribute__((malloc)), because it sometimes lets the compiler generate better code.
02:32:17 <pikhq> (all that that does is state that any non-NULL pointers returned don't alias anything else)
02:33:29 <zzo38> I haven't use all the __attribute__ but I have read all of them and might use all of them if I have the use for them. What I would also like is the ability to use __attribute__ for blocks inside of a function instead of only for the entire function
02:35:48 <alise_> pikhq: http://mazonka.com/subleq/hsq.html A compiler from a reasonably competent C-esque language into Subleq.
02:35:56 <alise_> It can also do bignums.
02:36:02 <alise_> Mazonka is as crazy as he is cool.
02:36:05 <zzo38> I have written ARGOPT today and I used three stars so that is why I tried to comment it
02:36:47 <alise_> pikhq: Subleq, in case you've had a case of amnesia, is "subtract and branch if less than or equal to 0".
02:36:59 <pikhq> alise_: Fun language.
02:36:59 <zzo38> I plan to use ARGOPT when I write a new GNU/Linux distribution (although with a lot of differences in both GNU and in Linux)
02:36:59 <alise_> So compiling that... into that... yowzers.
02:37:13 <pikhq> Fairly impressive that he did that, though.
02:37:25 <alise_> http://esoteric.voxelperfect.net/wiki/Higher_Subleq It even compiles to a sort of twisted assembly beforehand.
02:37:46 -!- zzo38 has left (?).
02:38:02 <pikhq> Impressive.
02:38:06 <alise_> pikhq: He even implemented printf.
02:38:10 <alise_> Inside the language.
02:38:11 <Sgeo_> My dad doesn't want me carrying a charger nor a spare battery around
02:38:11 <uorygl> Is Esolang's User:Oleg the same Oleg as the famous Haskell Oleg?
02:38:25 <alise_> uorygl: No; I don't believe so.
02:38:31 <alise_> I checked once, iirc.
02:38:36 <alise_> Sgeo_: Why... not?
02:38:47 <pikhq> alise_: Dang.
02:38:49 <Sgeo_> Not sure
02:39:04 <alise_> Sgeo_: Ignore him?
02:39:06 <pikhq> I applaud this guy.
02:39:08 <Sgeo_> Personally, I'd rather not, but willing too if battery life is too short
02:39:19 <Sgeo_> *to
02:39:54 <uorygl> I know alise already asked, and you already responded, but why not?
02:40:45 <alise_> uorygl: I gather, from recent things he's said, that his father is rather apprehensive about chipping money into a new phone and seems to be dictating things purely for the sake of it.
02:41:03 <alise_> He was reportedly earlier making baseless assertions about the quality of PDFs on phones, so... who knows.
02:41:12 <alise_> THE WAYS OF ADULTS ARE NOT TO BE KNOWN
02:42:03 <alise_> I feel like making my own OISC now.
02:42:32 <pikhq> alise_: Do it in Funge!
02:42:34 <alise_> hmm; with a bignum machine we only need one parameter to the instruction because we have N^n -> N mapping
02:42:43 <alise_> but can we have a fixed-bit-size OISC that only has one operand?
02:43:17 <Sgeo_> alise_, if you want to give up TC, yes
02:43:29 <uorygl> Take A, subtract B, divide by C, NAND with D, if greater than E, branch to F.
02:43:39 <Sgeo_> [Note that I make no statement about whether it's possible to do it and still be TC]
02:43:40 <alise_> Sgeo_: No shit, sherlock. :P
02:43:54 <alise_> uorygl: Note: That is actually six-operand.
02:44:10 <uorygl> I was just making my own OISC.
02:44:24 <alise_> uorygl: Now prove it touring-complete.
02:44:37 <uorygl> Done.
02:44:49 <alise_> Present the proof.
02:45:07 <uorygl> Q.E.D.
02:46:17 <oerjan> quit endless doubting
02:46:26 <uorygl> Anyway, how about RSSB?
02:46:58 <alise_> Quite Easily Demonstrated, I think uorygl meant.
02:47:03 <alise_> He was leaving it as an exercise to the hearer.
02:47:04 <uorygl> Of course.
02:48:13 <alise_> Fucking topologists.
02:49:03 <alise_> http://www.facebook.com/group.php?gid=2410064537 o_O
02:49:04 <oerjan> i sense a slight annoyance in your phrasing
02:49:48 <alise_> Oh, no, topologists are awesome.
02:49:54 <alise_> uorygl: Oh, yeah, RSSB works.
02:50:10 <alise_> Hmm, can the two registers in RSSB be moved into memory?
02:50:28 <uorygl> I think the spec says they are.
02:50:48 <uorygl> Location 0 is IP, 1 is accumulator, 2 is always 0, 3 is input, 4 is output.
02:50:57 <alise_> Ah, right.
02:51:22 <uorygl> It might be better if those were locations -1 through -5, but oh well.
02:51:37 <alise_> I wonder if there are other, simpler single-operand OISCs.
02:51:46 <alise_> Reverse-subtract-and-skip-if-borrow is not the simplest semantics.
02:51:56 <alise_> Compare, e.g. subtract-and-branch-if-negative.
02:52:24 <uorygl> I'd say they're approximately equally simple.
02:52:42 <alise_> Well, maybe.
02:53:01 <alise_> I dunno.
02:53:02 <alise_> I'd just like something ridiculously simple. :-)
02:53:24 <alise_> It'd nice to have the core of the assembly code just be a list of names (defined to memory locations) and literals.
02:53:29 <alise_> (Plus sugar on top for more complex things).
02:55:03 <oerjan> pretty please
02:55:22 <alise_> har har har
03:01:42 <alise_> Sgeo_: when starting the emulator i just see
03:01:44 <alise_> A N D R O I D
03:01:45 <alise_> and a cursor
03:01:51 <alise_> on a bios-style text field
03:01:53 <Sgeo_> alise_, be patient
03:01:54 <alise_> am i meant to do something?
03:01:55 <alise_> ok
03:02:23 <Sgeo_> Note: If you had to restart the emulator every time you compiled an app, there would be no 3rd-party Android apps
03:02:32 <Sgeo_> *compiled and wanted to test
03:02:37 <alise_> heh
03:02:46 <alise_> five years later...
03:03:42 <alise_> yay it started
03:03:49 <alise_> i'm not missing much by not having sound am I :P
03:03:57 <alise_> like are there amazing WHOOSH sounds!!
03:04:12 <alise_> this thing is a bit sluggish
03:04:46 <Sgeo_> I still have yet to get sound working on the emulator to the PC, although it might be just me
03:05:21 <Sgeo_> Although maybe I simply haven't tried any apps that use sound
03:05:34 <alise_> how do you do multitasking?
03:06:11 <alise_> and why does it think i'm japanese?
03:06:29 <Sgeo_> alise_, press the Home button
03:06:33 * alise_ dials 999. let's hope this doesn't actually work
03:06:35 <alise_> Sgeo_: oh that's it?
03:06:39 <Sgeo_> Yes
03:06:48 <alise_> is it always this sluggish?
03:06:50 <Sgeo_> Then when you go back into the app, it should be where you left off
03:07:56 -!- oerjan has quit (Quit: Good night).
03:08:16 <alise_> no but seriously why is it trying to compose kanji
03:09:31 <Sgeo_> There's some setting you can change to fix that
03:09:36 <Sgeo_> I'm not sure why it does that
03:09:36 <alise_> yeah i did
03:09:54 <alise_> this interface is pretty damn polished
03:10:06 <Sgeo_> It's not quite the Nexus One interface
03:11:01 <alise_> i don't see why not
03:11:04 <alise_> nexus one = stock google stuff
03:11:06 <alise_> it's from google after all
03:11:25 <Sgeo_> That thing containing all the apps works differently on the Nexus One
03:11:35 <Sgeo_> The Nexus One has that pretty Live Wallpaper
03:11:48 <Sgeo_> The Nexus One has the Android Market, but that's not a UI thing
03:11:56 <alise_> pretty & battery-consuming
03:13:26 <alise_> Wow, the Droid (and the Nexus One although slightly less so) has really ridiculously high resolution.
03:13:34 <alise_> Although with the Nexus One it's PenTile so it's not reaaally the resolution.
03:13:41 <alise_> But bah, Droid sucks in other ways.
03:14:17 <pikhq> Oh how I *love* segfaults that make no sense.
03:14:35 <alise_> pikhq: Maybe you shouldn't use C.
03:14:51 <pikhq> alise_: But but lowlevel tricks and also pain and agony!
03:15:16 <pikhq> *Much* pain and agony!
03:15:28 <alise_> pikhq: Sometimes I consider using C++ and restricting myself to only using namespaces and references of the C++ features.
03:15:39 <alise_> And no pointers, or at least as few as possible.
03:17:42 <alise_> Sgeo_: Make a device with skin WVGA854.
03:17:45 <alise_> Gawp at the resolution.
03:18:02 <alise_> That's actually what Droid has. But, again, the Droid has numerous flaws; the Nexus One is far better.
03:18:06 <alise_> And the Nexus One is pretty darn close anyhoo.
03:18:24 <Sgeo_> The default is nicer for me than the real Nexus One, since I can display the whole thing without the "real size" gimmick
03:18:31 <alise_> yeah
03:19:13 <alise_> I wonder if anyone's done a sparse array by having all arrays be of length two, and using the bitstring representation.
03:19:19 <alise_> (with a fixed size for the bitstrings)
03:19:30 <alise_> of course, that requires 5 billion dereferences for even small indices
03:20:31 <Sgeo_> alise_, anohter multitasking thing [try it with the phone]: Some apps put things in the notification area
03:20:37 <Sgeo_> That you can use to switch to them
03:20:49 <Sgeo_> Use the notification area by dragging the top bar down
03:28:20 * Sgeo_ lols at setText(getText(...))
03:29:55 <Sgeo_> Apparently, that doesn't quite work either
03:30:06 * Sgeo_ decides that the right way is too difficult
03:31:32 <Sgeo_> Actually, Eclipse makes it easy to turn the wrong way into the right way
03:31:36 <Sgeo_> It's actually very, very nice
03:31:49 <Sgeo_> Well, not Eclipse, but the Android Development Tools for Eclipse
03:34:06 <Sgeo_> ADT is really, really, really nice
03:34:19 <Sgeo_> It's more than worth dealing with Eclipse
03:37:51 <Sgeo_> My trivial app finally worked!
03:43:21 <alise_> 3:42 am; sleep soon I probably should.
03:44:55 <uorygl> I wonder whether it's actually a good idea to take out my anger on pens.
03:45:15 <uorygl> Sometimes, when I'm angry, I'll grab one and snap it in two.
03:45:28 <uorygl> I would rathest I just not be angry.
03:53:59 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
03:55:07 -!- jcp has joined.
04:02:44 <alise_> i love algorithms so much :|
04:03:34 <uorygl> Hmm, it turns out that when you snap a pen in just the right way, it will send ink flying everywhere.
04:03:40 <uorygl> Like onto our hardwood floor.
04:03:52 <uorygl> And since that's a porous surface, it now has ink stains.
04:14:29 <alise_> 4:14 am; I really should sleep soon.
04:14:31 <alise_> uorygl: congrats
04:15:11 <uorygl> Thank you.
04:15:12 * Sgeo_ kicks alise_
04:15:18 <Sgeo_> Who owns this channel?
04:15:25 <alise_> me
04:15:30 <Sgeo_> Anyone else?
04:15:35 <alise_> Not me, actually.
04:15:38 <alise_> But, uh, andreou is the founder.
04:15:47 <alise_> fizzie, lament and oerjan are the active ops.
04:15:48 <uorygl> It's owned by lament, if the portion of this sentence before the comma is true.
04:15:53 <alise_> They effectively run the place.
04:15:57 <uorygl> But why do you ask?
04:16:02 <alise_> Well, oerjan doesn't do anything; and lament just does things to troll us.
04:16:07 <alise_> And fizzie only does things with extreme hesitance.
04:16:10 <Sgeo_> Because one of them needs to kickban alise_ so e'll go to sleep
04:16:12 <alise_> So we're very close to total anarchy here.
04:16:14 * uorygl nods.
04:16:18 <alise_> Sgeo_: Eh, but why?
04:16:23 <alise_> I don't need to be up at a certain time until Monday.
04:16:35 <alise_> And this is more enjoyable.
04:16:41 <Sgeo_> alise_, health
04:16:51 <alise_> Eh? Staying up late isn't going to damage my health.
04:16:52 <uorygl> I suppose health is a good reason for anything.
04:16:53 <Sgeo_> And to make it easier to wake up at that point
04:17:03 <uorygl> It does kind of seem to damage health.
04:17:16 <alise_> I have a rather nasty infection, not a huge requirement for sleep.
04:17:24 <alise_> uorygl: It makes me dumber, sure, and it makes me more tired if I don't sleep enough.
04:17:31 <alise_> But I'm happy enough right now, and I'll sleep in.
04:20:57 <Sgeo_> sgeocomet
04:20:57 <Sgeo_>
04:20:57 <Sgeo_> #ZodiacFacts The stars that make up the constellation #Taurus are, for the most part, undergoing nuclear fusion.
04:21:16 <alise_> That's ... nice to know.
04:21:34 <Sgeo_> At least it's accurate, unlike most of the stuff in #ZodiacFacts
04:21:41 <Sgeo_> BadAstronomer's are funnier though
04:22:38 -!- mycroftiv has quit (Read error: Operation timed out).
05:01:21 -!- alise_ has quit (Remote host closed the connection).
05:06:24 -!- mycroftiv has joined.
05:13:55 -!- Oranjer has left (?).
05:15:00 -!- Alex3012_ has joined.
05:16:42 -!- Alex3012 has quit (Ping timeout: 265 seconds).
05:16:50 -!- Alex3012_ has changed nick to Alex3012.
07:30:55 -!- lament has joined.
07:53:33 -!- lament has quit (Quit: lament).
07:57:13 -!- coppro has quit (Ping timeout: 276 seconds).
07:58:22 -!- coppro has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:45:04 -!- kar8nga has joined.
08:52:32 -!- augur has quit (Remote host closed the connection).
08:52:40 -!- augur has joined.
09:28:16 -!- augur has quit (Remote host closed the connection).
09:28:21 -!- augur has joined.
10:12:36 -!- tombom has joined.
10:46:45 -!- MigoMipo has joined.
10:53:04 -!- FireFly has joined.
11:22:14 -!- oerjan has joined.
11:28:20 <oerjan> <uorygl> Hmm, it turns out that when you snap a pen in just the right way, it will send ink flying everywhere.
11:28:30 <oerjan> i guess that answer your previous question, then
11:28:40 <oerjan> *s
12:09:01 -!- kar8nga has quit (Remote host closed the connection).
12:17:15 -!- BeholdMyGlory has joined.
12:18:41 -!- Alex3012_ has joined.
12:22:10 -!- Alex3012 has quit (Ping timeout: 245 seconds).
12:22:15 -!- Alex3012_ has changed nick to Alex3012.
12:24:14 -!- oerjan has quit (Quit: leaving).
12:37:08 -!- ENKI-][ has quit (Ping timeout: 276 seconds).
12:43:24 -!- tombom has quit (Quit: Leaving).
12:44:51 <AnMaster> <oerjan> i guess that answer your previous question, then <-- what was that question?
13:06:12 -!- ENKI-][ has joined.
13:17:58 -!- Asztal has joined.
13:38:40 -!- kar8nga has joined.
13:44:34 -!- BeholdMyGlory has quit (Remote host closed the connection).
13:45:37 -!- mycroftiv has quit (Ping timeout: 240 seconds).
13:48:04 -!- alise has joined.
13:55:16 <alise> An illegality of jazz.
14:04:01 <alise> http://retroforth.org/ Are the Forthers trying to be post-hip-modernist-minimalist?
14:04:39 <alise> What, they've implemented their VM in Javascript.
14:05:20 <alise> http://retroforth.org/demos/demos/listener/index.html
14:06:58 <alise> Hmm.
14:07:07 <alise> In RSSB, does the subtraction /have/ to be reverse?
14:07:16 <alise> Or would SSB work fine?
14:09:19 <alise> Hmm, and http://esolangs.org/wiki/TOGA_computer's using of bits is interesting.
14:09:45 <alise> I wonder if TSZ (toggle and skip next instruction if result is 0) would be TC?
14:10:23 -!- mycroftiv has joined.
14:10:52 <alise> hi mycroftiv
14:13:04 -!- mycroftiv has quit (Read error: Operation timed out).
14:16:01 <alise> Of course a toggle-style instruction set makes IO harder.
14:25:00 <alise> I wish http://eigenratios.blogspot.com/ still posted.
14:26:32 <alise> ok, [[User:Oleg]] is mazonka.com
14:26:42 <alise> case closed
14:34:11 <alise> "8. Why in the mirror the left swaps with the right, but the top does not swap with the bottom?"
14:34:13 <alise> "# 8. This is very difficult question. I do not know its answer."
14:34:19 <alise> --Oleg Mazonka on his "mathematical puzzles" page
14:35:36 <Gregor> O_O
14:36:09 <alise> It's obviously a joke.
14:36:28 <alise> (The simple answer, of course, is that mirrors rotate in the fourth dimension.*)
14:36:31 <alise> *I find this fact extremely awesome
14:36:41 <Gregor> lol
14:36:52 <alise> Hey, it is true.
14:38:15 <alise> I mean, obviously they don't literally pop into the fourth dimension for some rotating action... but that's the transformation they do to what you see.
14:39:09 <alise> So, I'm still trying to figure out a simpler one-operand OISC than RSSB.
14:41:15 <alise> Hmm, I feel like making a fast Brainfuck interpreter. Like a snack, only programming.
14:43:49 <alise> Gregor: Do you know if malloc( sizeof somestruct - sizeof int ) is valid, where the last member of somestruct is an int?
14:44:07 -!- kar8nga has quit (Read error: Connection reset by peer).
14:45:04 <Gregor> alise: Depends on your definition of "valid" and the particulars of the system. It won't give wonky results unless the only member is an int. In most but not all cases the int will be inaccessible of course.
14:45:43 <alise> Right; I was just checking it wasn't U.B.
14:45:46 <alise> Not that I care much.
14:46:01 <Gregor> "U.B."?
14:46:16 <alise> Gregor: And I'm gonna go out on a limb here and guess that putting computed goto &&pointers into a static array for use later, when the function has been exited and re-entered, is not such a guaranteed-to-work idea.
14:46:20 <alise> Undefined behaviour.
14:46:36 <alise> Actually this is irritating, since computed gotos are just right for what I want.
14:46:38 <alise> Although, wait.
14:46:47 <alise> A switch with defined values will likely be faster than dereferencing the goto pointer, won't it?
14:46:52 <Gregor> Actually that has perfectly well-defined semantics and people (including me) use it all the time.
14:46:59 <alise> I was going to use this:
14:47:01 <alise> typedef struct {
14:47:01 <Gregor> alise: Could go either way.
14:47:01 <alise> void *kind; /* computed-goto pointer to a blueprint */
14:47:01 <alise> intptr_t val;
14:47:01 <alise> } INS;
14:47:04 <alise> for a BF instruction
14:47:08 <alise> and have kind be one of the elements of this:
14:47:11 <alise> static void *blueprints[6]; /* move, change, output, input, [, ] */
14:47:20 <alise> but it'll be quicker just to switch over a char, won't it?
14:47:23 <alise> since the range is predefined
14:47:28 <alise> and it doesn't involve dereferencing a pointer
14:47:29 <Gregor> It could be, but not likely.
14:47:32 <Gregor> That's three jumps.
14:47:46 <Gregor> (Instead of 1)
14:48:08 <alise> Eh?
14:48:11 <alise> Hmm, right.
14:48:14 <alise> So the computed goto is better?
14:48:17 <alise> I guess so.
14:48:22 <Gregor> Probably, but not always :P
14:48:42 <Gregor> That's called a threaded interpreter. Look it up. And don't get confused with the meaning of "threading" that real people use.
14:49:09 <alise> Yeah, I know that.
14:49:12 <alise> I've read JonesForth, you know. :P
14:49:20 <alise> I was just thinking that in this case the number of instructions is very small.
14:49:23 <alise> void interp(char setup) {
14:49:23 <alise> blueprints = {&&move, &&change, &&output, &&input, &&loop, &&next};
14:49:23 <alise> if (setup) return;
14:49:23 <alise> ...
14:49:23 <alise> }
14:49:27 <alise> lulz
14:50:05 <alise> #define MOVE blueprints[0]
14:50:06 <alise> #define CHANGE blueprints[1]
14:50:06 <alise> (etc)
14:50:10 <Gregor> You're still going to have while (1) { switch (foo) { a: break; b: break; c: break; } }
14:50:13 <Gregor> That's three jumps.
14:50:18 <alise> I'm not.
14:50:26 <Gregor> I mean if you use a switch and not computed gotos.
14:50:29 <alise> Ah.
14:50:30 <alise> Right.
14:50:44 <alise> Hmm, I wonder which is better:
14:51:02 <alise> while (1) { goto *ins->kind; foo: ...; continue; bar: ...; continue; ... }
14:51:03 <alise> or
14:51:20 <alise> LOOP: goto *ins->kind; next ins
14:51:23 <alise> foo: ...; goto LOOP;
14:51:26 <alise> bar: ...; goto LOOP;
14:51:31 <alise> I guess they will be compiled into much the same code.
14:51:39 <Gregor> Probably. Both are pretty awful :P
14:52:04 <alise> Gregor: Got any better suggestions?
14:52:18 <Gregor> #define NEXT ins++; goto *ins->kind;
14:52:25 <Gregor> Then put NEXT at the end of every instruction.
14:52:32 <alise> Oh, of course.
14:52:36 <alise> I really should re-read JonesForth.
14:52:40 <Gregor> :P
14:52:41 * alise renames the NEXT instruction to avoid clashing
14:54:23 <alise> Hmm, if I want to beat http://mozaika.com.au/oleg/brainf/bff4.c fairly, I need a dynamically-allocated tape.
14:54:29 <alise> Eh, I'll do that later.
14:55:23 <AnMaster> Gregor, you mean he doesn't know this?
14:55:25 <AnMaster> wth
14:55:38 <alise> Just because I haven't written a threaded interpreter in a while...
14:55:52 <alise> I left C and ages for months to mess around with mathematical languages.
14:56:00 <Gregor> Whereas I've been TAing a class in which half the class are writing them :P
14:56:11 <AnMaster> Gregor, "TA"=
14:56:14 <alise> Gregor: He won't get the context; he has me on ignore.
14:56:14 <AnMaster> s/=/?/
14:56:19 <Gregor> AnMaster: Teaching Assistant
14:56:21 <alise> It's not like many people outside of Forth write threaded interps in practice anyhow.
14:56:22 <AnMaster> ah
14:56:35 <Gregor> alise: That's not true at all.
14:56:47 <alise> Well, okay, but it certainly isn't the most common method of implementation.
14:56:49 <Gregor> alise: Most half-decent bytecode interpreters are threaded nowadays.
14:56:57 <alise> Python wasn't until recently.
14:56:57 <Gregor> alise: (Before JITing of course)
14:57:05 <alise> Then again, GvR is a retard.
14:57:11 <Gregor> alise: Nowadays = this year, basically, it's all the rage :P
14:57:28 * alise wonders whether
14:57:31 <AnMaster> <Gregor> alise: Most half-decent bytecode interpreters are threaded nowadays. <-- yes, I'm surprised if he didn't know that...
14:57:41 * alise wonders whether
14:57:44 <alise> input: if ((c = getchar()) == EOF) *tape = 0; else *tape = c;
14:57:44 <alise> or
14:57:45 <alise> input: if ((*tape = getchar()) == EOF) *tape = 0;
14:57:48 <alise> is more micro-efficient
14:57:50 <alise> I suspect the latter
14:57:51 <Gregor> Being the intermediary in a half-blocked conversation is amusing :P
14:57:52 <alise> since EOF is an edge-case
14:58:01 <AnMaster> Gregor, I can imagine
14:58:12 <Gregor> alise: I would guess the latter as well.
14:58:17 <alise> Gregor: I like how you're mostly half-agreeing with me when I clarify things and AnMaster thinks him and you are dissing me into Retard Hell :P
14:58:31 <Gregor> alise: Yup :P
14:59:07 <alise> I think I'm finally managing to think like AnMaster. "Hey, I have a lot of ->s in this code. I could pre-dereference the struct beforehand..."
15:01:04 * alise realises he has a potential "goto NULL" situation
15:01:10 <alise> No problem; one more blueprint entry for STOP.
15:01:14 <Gregor> Call that "exit" :P
15:01:14 <alise> The most famous of all brainfuck instructions.
15:01:19 <Gregor> The program will definitely exit :P
15:01:28 <alise> But it also stops!
15:01:33 <alise> Oh, NULL
15:01:34 <alise> xD
15:01:38 <Gregor> Yeah :P
15:02:42 <AnMaster> Gregor, any new music recently?
15:03:07 <alise> I wonder if gcc will be happy with a 10485760-length static array.
15:03:08 <Gregor> AnMaster: No, I'm currently in wrist splints for carpal tunnel :(
15:03:15 <alise> For all those ten-megabyte brainfuck programs.
15:03:25 <alise> gcc usually has an internal error when you allocate a static array big enough.
15:03:29 -!- mycroftiv has joined.
15:03:32 <AnMaster> Gregor, ouch
15:04:18 <alise> I think I've realised that most of my C coding is designed around avoiding to have to use malloc at all.
15:04:22 <alise> Or, especially realloc.
15:05:17 <alise> op ip[5242880]; /* do not make a program longer than five megabytes i will be sad */
15:05:22 <alise> Truer words have never been spoken.
15:05:28 <Gregor> lawl
15:05:37 <Gregor> alise: Use my buffer.h :P
15:05:42 <Gregor> You know you want to.
15:05:52 <alise> Linky me up
15:06:05 <alise> If it does anything to slow down the main interpreter loop, no way :P
15:06:21 <Gregor> http://codu.org/projects/stuff/hg/index.cgi/file/tip/buffer.h
15:06:27 <Gregor> You would just use it to easily load in the file.
15:06:38 <alise> Not expanding the tape?
15:06:45 <alise> char tape[65536] = {0}; /* I wonder if I should just rely on this working */
15:06:47 <Gregor> Oh, you could do that too if you wanted to use it for the tape.
15:06:57 <Gregor> But you'd have to do bounds-checking for that.
15:06:59 <alise> Gregor: Hmm, not for the tape; too much overhead.
15:07:03 <Gregor> I was just thinking loading in files :P
15:07:13 <alise> I was just going to embed the program source at first...
15:07:22 <alise> This is just bf1.c, there is plenty of time for polish in bf137 :P
15:07:23 <Gregor> INIT_BUFFER(buf); fopen etc; READ_FILE_BUFFER(buf, filehandle); /* hooray */
15:07:29 <AnMaster> Gregor, idea: use stat() to figure out in advance how large that buffer needs to be
15:07:45 <Gregor> AnMaster: That would be a sensible thing for me to do >_>
15:07:58 <AnMaster> Gregor, yeah, is that a bad thing?
15:08:20 <Gregor> AnMaster: Except that buffer.h works on "all" C systems, not just Unix. IIRC there's no very good stdio equivalent, but maybe I just don't recall it.
15:08:20 <alise> Yes it is.
15:08:22 <alise> Race condition.
15:08:24 <alise> For one.
15:08:38 <AnMaster> Gregor, well true, so do #ifdef PURE_C or some such
15:08:49 <Gregor> alise: It would just be for guessing the initial buffer size.
15:08:57 <alise> It turns out that intensive use of #ifdefs is not the way to write correct code.
15:08:57 <Gregor> alise: Just preallocation.
15:09:10 <alise> Unless you like reading half a page of preprocessor directives for every actual meaty line of code.
15:09:23 <alise> Gregor: consider trigging pathological behaviour by making a 0-length file then immediately overwriting it with a 5gb one
15:09:28 <AnMaster> it would certainly readuce reallocation, and also mean you would know at initial allocation if you had enough memory
15:09:49 <AnMaster> Gregor, why macros and not inline functions?
15:10:25 <alise> You can rely on a macro being inlined perfectly.
15:10:31 <alise> Also, you don't need to write a separate .c file.
15:10:40 <AnMaster> Gregor, or do you with "all C" mean C90 too? Not just C99?
15:10:53 <alise> That also.
15:11:03 <Gregor> AnMaster: I mean I can compile it for 16-bit DOS with outdated Watcom compilers :P
15:11:12 <AnMaster> :DE
15:11:13 <AnMaster> :D*
15:11:33 <AnMaster> Gregor, still some #ifdef to for *nix might be a good idea
15:11:43 <Gregor> alise: Your pathological behavior is an edge case that could be detected. a 1-length file would be a nonissue.
15:12:13 <alise> Gregor: Fair enough.
15:12:48 <alise> Also, I'd just like to throw out a strong vote against #ifdef fuckery. If you really want uber-ridiculous-speed, make them actual separate .c files compiled differently depending on the OS (in e.g. your build system)
15:12:53 <alise> Or at least do
15:12:55 <alise> #ifdef FOO
15:13:02 <alise> #include "ricer_speed_buf.h"
15:13:02 <alise> #else
15:13:06 <alise> #include "i_am_sane.h"
15:13:07 <alise> #endif
15:13:20 <Gregor> I haven't changed buffer.h in significant ways (except for adding totally new macros) basically since its inception :P
15:13:24 <Gregor> So *eh*
15:13:32 <AnMaster> I once met a programmer who didn't know you could put function bodies in headers... After all it is just included. static inline in a header works fine.
15:13:48 <Gregor> AnMaster: So long as your compiler supports static ;)
15:13:55 <Deewiant> And inline
15:14:05 <alise> You know, sometimes there is a good reason for .h and .c to be separate.
15:14:06 <AnMaster> Deewiant, well sure
15:14:06 <alise> Just saying.
15:14:15 <Gregor> alise: CRAZY
15:14:26 -!- mycroftiv has quit (Ping timeout: 276 seconds).
15:14:34 <Gregor> You can always #define inline away, but if you #define static away you'll get multiply-defined errors.
15:14:44 <AnMaster> Gregor, you do?
15:14:45 <alise> op *stk[65536]; /* also if you use more than 65536 nested loops i will be sad too */
15:14:54 <alise> AnMaster: consider separate compilation.
15:14:59 <Gregor> AnMaster: That's ... the whole idea of static X_X
15:15:00 <AnMaster> oh you mean like that
15:15:00 <AnMaster> right
15:15:01 <alise> multiple definitions in separate objects
15:15:07 <alise> WOW ANMASTER DIDN'T KNOW THAT?
15:15:10 <alise> MUST BE PRETTY DUMB HUH
15:15:11 <Gregor> alise: :P
15:15:16 <alise> RIGHT GREGOR :P
15:15:19 <AnMaster> Gregor, but it will work on some platforms anyway iirc
15:15:26 <Gregor> AnMaster: Sure, depends on the linker.
15:15:29 <AnMaster> Gregor, anyway I don't know of a compiler that lacks static
15:15:36 <alise> char tape[65536] = {0}; <-- Please tell me that some compiler, somewhere, supports this :-)
15:15:42 <Gregor> AnMaster: I'll go dig up a pre-ANSI one for PDP-11 ;)
15:15:52 <AnMaster> Gregor, I don't care about pre-ANSI
15:16:51 <AnMaster> static for file-local is rather strange btw
15:16:54 <AnMaster> I mean as a keyword
15:17:32 <Gregor> AnMaster: C's use of "static" is a bit schizophrenic :P
15:17:41 <AnMaster> Gregor, exactly my point
15:17:46 <alise> Gregor: also I'm not sure buffer would work so well as I want to "compile"/parse as I go
15:17:50 <alise> maybe I should read just a bit at a time
15:17:53 <alise> or maybe not, maybe this is better
15:17:55 <AnMaster> Gregor, it makes a whole lot of sense for the "persists between calls
15:17:57 <AnMaster> "
15:18:06 <alise> No it doesn't
15:18:13 <alise> That's the most confusing sense
15:18:19 <AnMaster> possibly they were out of keywords and didn't want to mess up with anyone who had a variable called "local"
15:18:19 <Gregor> alise: Up to you, I've just found I always like my buffers :P
15:18:23 <AnMaster> or function called it
15:18:31 <AnMaster> or type for that matter
15:18:42 <alise> Gregor: Well if I were optimising for happiness and laughter I would use some language other than C but I'm going for mega performancebucks here :P
15:21:08 <alise> with intptr_t -- which I've never used before; I'm a radical kind of freewheeling fellow as far as integers and pointers go -- do you need to cast when assigning pointers to it, or when assigning integers?
15:21:36 <Gregor> Never used it :P
15:21:48 <alise> Right, well, clearly you know best; bye-bye intptr_t.
15:23:27 <alise> Gregor: Hmm, I'm not sure doing what I said I'd do -- and what you said would work -- with computed gotos /will/ work.
15:23:29 <alise> Oh, wait
15:23:32 <alise> I just have to preinitialise the array
15:24:12 <alise> er, or rather, just not assign it as a literal
15:27:08 -!- mycroftiv has joined.
15:27:12 <alise> bf1.c:41: warning: cast from pointer to integer of different size
15:27:13 <alise> bf1.c:42: warning: cast from pointer to integer of different size
15:27:13 <alise> wuteva.
15:27:51 <Gregor> size_t?
15:28:17 <alise> just void *
15:28:18 <alise> :P
15:28:30 <alise> $ echo abc | ./bf1
15:28:31 <alise> $
15:28:32 <alise> It almost echoes!
15:28:47 <alise> it appears to read one character in, then exit
15:28:53 <pineapple> 15:15:12 <alise> char tape[65536] = {0}; <-- Please tell me that some compiler, somewhere, supports this :-)
15:29:00 <pineapple> you mean 0-init the whole array?
15:29:24 <alise> yeah, i know it does work
15:29:29 <alise> but still, it's such a weird feature
15:29:44 <pineapple> i _think_ that arrays are 0-inited by default, if specified outside of a fucntion
15:29:48 <pineapple> function*
15:29:54 <alise> yeah i think so too
15:29:55 <alise> still
15:30:01 <pineapple> so char tape[65536]; should do it as well
15:30:15 <alise> yeah, i just get twitches whenever i see a decl without initialiser in c
15:30:18 <alise> for obvious reasons
15:30:18 <pineapple> it's only if you have to malloc() the array that it's random
15:30:19 <Gregor> Uhhhh
15:30:25 <pineapple> obvious reasons?
15:30:31 <alise> int *x;
15:30:32 <alise> *x
15:30:33 <alise> aaaah
15:30:34 <Gregor> On MOST systems arrays outside a function are in BSS, but that's NOT guaranteed by C.
15:30:47 <alise> fuck yeah, standards fight
15:31:02 <pineapple> Gregor: i'm going by memory of K&R
15:31:43 <Gregor> I'm going by memory of your FACE.
15:32:06 <pineapple> sorry honey, i don't recognise you
15:32:08 <AnMaster> Gregor, static ones are going to be zero at start
15:32:21 <AnMaster> not sure about non-static ones
15:32:48 <alise> your MOM are going to be zero at start
15:33:03 * alise declares a bunch of stuff static for moar speed
15:33:11 <alise> moar speed in my broken program
15:33:30 <alise> oh
15:33:35 <alise> move: tape += (int)p.val; NEXT;
15:33:35 <alise> change: *tape += (int)p.val; NEXT;
15:33:36 <alise> output: putchar(*tape); NEXT;
15:33:36 <alise> input: if ((*tape = getchar()) == EOF) *tape = 0;
15:33:36 <alise> loop: if (!*tape) ip = p.val;
15:33:36 <alise> end: if (*tape) ip = p.val;
15:33:38 <alise> stop: return;
15:33:40 <alise> spot the issue
15:34:03 <alise> sweet, EOF generates a segfault
15:34:13 <alise> even normal progam termination does
15:34:16 <alise> oh
15:34:19 <alise> I forgot to add the stop instruction
15:34:20 <alise> heh
15:34:37 <alise> Well, cat works.
15:34:44 * alise tries mandelbrot.b
15:34:56 <pineapple> brainfuck?
15:35:42 <pineapple> 15:03:54 <alise> I think I've realised that most of my C coding is designed around avoiding to have to use malloc at all. - any reason why?
15:35:52 <alise> pineapple: Well, malloc's not so bad.
15:35:55 <alise> But realloc is tedium personified
15:36:17 <alise> (and I'm not just some shitty PHP coder who doesn't "get" C -- I've used lower level languages than it, and loved C for ages, and I've used languages all the way up the spectrum too)
15:36:24 <pineapple> shouldn't it be unsigned char for bf?
15:36:36 <alise> Doesn't make any difference, does it?
15:36:54 <pineapple> i think it does for integer wraparound
15:37:05 <alise> nope
15:37:12 <pineapple> oh, right
15:37:16 <pineapple> only for bit shifting
15:38:09 <olsner> if you write C, signed-integer overflow is undefined :)
15:38:30 <alise> Oh. Okay then.
15:38:42 <alise> Hey, mandelbrot.b works.
15:38:51 <alise> I only made one mistake in writing the entire program.
15:39:31 <alise> Slowly, mind, but not nearly as slowly as you'd expect from a relatively naive first draft.
15:40:28 <alise> $ time ./bf1 > /dev/null
15:40:28 <alise> real0m44.460s
15:40:29 <alise> user0m43.255s
15:40:29 <alise> sys0m0.108s
15:40:53 <alise> So, I need to make "parsing" smarter -- combine moves and modifies.
15:41:18 <alise> Then I need to shift moves and the like into the other instructions.
15:41:25 <alise> Then I need to do linear-loop optimisation.
15:41:41 <alise> char *prog =
15:41:41 <alise> #include "mandelbrot.h"
15:41:42 <alise> ;
15:42:18 <olsner> and implement reading a program from file perhaps?
15:44:35 <alise> yes, well, later.
15:45:14 * alise writes bf2.c
15:50:47 * alise benchmarks bf1 vs bf2
15:50:58 <alise> I imagine around bf10 might be faster than bff4 with linear loop optimisation
15:51:07 <alise> incremental development is a blast
15:52:09 -!- cheater3 has joined.
15:53:09 <alise> Hmm, I do wonder if indexing into my static tape array with an integer might not help the compiler figure out more than using just an opaque pointer.
15:53:17 <alise> $ ./bf1 > /dev/null; time ./bf1 >/dev/null; ./bf2 >/dev/null; time ./bf2 >/dev/null
15:53:17 <alise> real0m45.774s
15:53:17 <alise> user0m43.171s
15:53:17 <alise> sys0m0.080s
15:53:17 <alise> real0m20.209s
15:53:18 <alise> user0m18.277s
15:53:20 <alise> sys0m0.096s
15:53:23 <alise> Only change was combining multiple <>, +- instructions.
15:53:31 <alise> Low hanging fruit right there.
15:53:37 <alise> (Well, and I changed the type to int, not void *.)
15:53:43 <alise> (It should probably be long.)
15:55:08 <alise> Changing to long only varies mandelbrot.b's time from 20.209s to 20.635s
15:55:11 <alise> So that's good.
15:55:14 * alise tries -m32
15:55:25 -!- cheater2 has quit (Ping timeout: 260 seconds).
15:56:02 <alise> eh, don't have the 32 libs
15:58:09 <alise> Daniel B. Cristofani's self-interpreter is so amazing.
15:58:12 <alise> Hey, changing to a tape index shortened the time to 18.194s.
16:01:12 <alise> Speeding this thing up is... rather ridiculously easy.
16:01:44 <alise> Oh, dear; bf4 slowed things down.
16:03:25 <alise> Down to 17.969s; I'm almost as fast as bff.c on mandelbrot.
16:03:43 <alise> And only 101 lines, too -- though I need to add program loading, and possibly variable tape allocation.
16:05:48 <alise> Strangely enough, not pre-dereferencing ip speeds it up a little bit (<1s, but still).
16:05:59 <alise> (<.5s, too, but it's still definitely not a coincidence giving time's results)
16:06:18 <alise> It's now only 99 lines.
16:09:41 * Sgeo_ growls at everyone who uses non-domain-name-based package names
16:09:44 <alise> I guess I'll bite the bullet. bf6 will be the one that does the first combining of move operations into other instructions. I think.
16:10:45 <alise> ++++>+<[>[>+>++<<-]>>[<<[>+<-]>[<++>-]>-]<<<-]>[<+>-]< ;; bf program to calculate 2^(2058 + 2^4116)
16:11:45 <alise> source: http://www.iwriteiam.nl/D9901.html#24
16:11:55 <alise> even bigger? http://www.iwriteiam.nl/D0904.html#15
16:12:03 <alise> if you add +s to the start of that program you get something even bigger
16:12:31 <alise> 2^(2058 + 2^4116) has 10^1239 digits in base 10
16:13:00 <alise> or, in other words,
16:13:06 <alise> it has 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
16:13:06 <alise> 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
16:13:06 <alise> 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 base-10 digits
16:13:09 <alise> approximately.
16:13:52 <alise> So what we've learned here is with that with the BF kolgomorov complexity K(x):
16:14:09 <alise> K(2^(2058 + 2^4116)) <= 54
16:14:12 <alise> It is a rather simple integer.
16:16:45 * alise considers folding in moves by having an int that gets inc/dec on move instructions, then putting it in any newly created instruction
16:16:45 <alise> yeah
16:21:44 <alise> Oh dear; it seems like bf6, with its move-folding, is going slower than bf5.
16:22:21 -!- adam_d has joined.
16:22:32 <alise> I guess what I really need to do is handle >^nX<^n (also swapping >/<) for all n.
16:22:36 <alise> But that's Hard.
16:22:47 <Ilari> I think your number of digits is off by factor of about 3... :->
16:23:05 <alise> Ilari: Quite possibly.
16:23:16 <alise> I just asked Wolfram Alpha then pasted the result into Ruby (nearest thing to hand), then copy-pasted the result.
16:23:27 <alise> The potential for error at any point is large.
16:23:57 <alise> Oh, look: bf6 does not even work.
16:23:57 <alise> I'd better fix it.
16:24:02 <alise> Oh, of course.
16:25:18 * Sgeo_ wonders how playable the JS version of Robozzle is
16:25:36 <alise> i tried it.
16:25:43 <alise> it's alright
16:26:00 <Ilari> I get (rounding off a bit): 3.296643047157257677279598742963425708214531905272149037702927150038*10^1238 base 10 digits.
16:26:45 <alise> Nice precision.
16:26:59 <alise> Maybe I rounded a .5 down, rather than up, in the log result.
16:27:30 <alise> Grr; this really should work.
16:30:48 <Ilari> That was rounded from result I got (to avoid pasting 1239 digit number to IRC).
16:32:28 <alise> :-)
16:32:35 <alise> Is it using floats?
16:32:39 <alise> I guess not.
16:33:09 <Ilari> Fixed point (at scale of 10^1500).
16:34:11 <alise> What calculator?
16:34:16 <Ilari> bc
16:34:21 <alise> Clearly what we /really/ need is someone to evaluate it symbolically.
16:34:40 -!- adam_d has quit (Ping timeout: 245 seconds).
16:35:03 <alise> Well, it's /approximately/ 10^1238.518071925292.
16:35:07 <alise> But that is not very helpful.
16:35:31 -!- adam_d has joined.
16:36:11 <Ilari> 1 + floor((2058 + 2^4116)*log(2)/log(10))
16:36:19 <Sgeo_> It's amazing how star placement can make a puzzle easier or harder, just by leading you in the right or wrong direction to approach the puzzle
16:36:41 <Sgeo_> [ignoring placement that changes the puzzle itself, ofc]
16:37:35 <alise> Ilari: Well, that is just cheating.
16:37:51 * alise tries maxima
16:37:58 <alise> Anyone have axiom? Or Octave?
16:40:03 * Ilari is installing octave and axiom... Takes a while to download ~130MB...
16:40:31 <alise> Octave isn't symbolic, I don't think, but a lot of people use it.
16:40:35 <alise> I'm downloading Maxima.
16:40:40 <fizzie> Octave doesn't do much else than double-precision floats. It's an engineer thing.
16:40:52 <alise> Alright then; skip Octave.
16:41:03 <alise> It is of the utmost importance that we get an exact answer to this question!
16:42:31 * Sgeo_ goes to try /* Comments */
16:42:46 <Sgeo_> alise, isn't Maxima costly?
16:43:52 <alise> Free.
16:43:56 <alise> Are you thinking of Mathematica?
16:44:00 <alise> I have Mathematica somewhere. I pirated it.
16:44:17 * Sgeo_ was thinking of Mathematica, yes >.>
16:45:47 * Sgeo_ drools at http://www.youtube.com/watch?v=SnWJ29eNCbY
16:46:33 <Sgeo_> "purchasing of puzzle solutions"? WTF?
16:52:42 <alise> grr, why the hell doesn't this work
16:58:05 <alise> It's behaving differently for... no reason whatsoever.
17:06:15 <alise> Ilari: Any luck with axiom?
17:08:51 * Sgeo_ wonders if it's possible to make an iPhone emulator for Android
17:10:06 <alise> Ilari: I've got the precise result.
17:11:20 <alise> sec
17:11:45 <alise> Ilari: http://pastie.org/924690.txt?key=ofuqp78ktc37x7uktmhuuw
17:12:09 <alise> But ++++>+<[>[>+>++<<-]>>[<<[>+<-]>[<++>-]>-]<<<-]>[<+>-]< doesn't even calculate the number shown there; it calculates a number with that many digits.
17:12:13 <alise> 2^(2058 + 2^4116); what a number.
17:13:45 <Ilari> Looks like that number matches to what I calculated...
17:14:18 <alise> I just kept prompting Wolfram Alpha for more digits. :-)
17:14:22 <Ilari> What would adding fifth '+' in beginning do to number it calculates? How large it would then be?
17:15:44 <alise> The author didn't specify: just that it was much larger.
17:15:56 <alise> You could probably work it out by figuring out what formula it's running, and treating the initial +s as parameters.
17:16:11 <alise> http://www.iwriteiam.nl/Ha_bf_numb.html has links to the blogposts; the 1999 one is the one we're talking about.
17:20:22 * alise is absolutely determined to beat mazonka's interp...
17:20:28 <alise> why isn't my move-combining working!
17:23:38 -!- lament has joined.
17:24:17 <pineapple> alise: what are you trying to do?
17:24:45 <alise> successive iterations of a relatively naive BF interpreter with a new idea of sorts, aiming to beat the current champion (mazonka's bff4.c with linear loop optimisation)
17:24:49 <alise> or this specific bit?
17:25:03 <pineapple> both
17:25:05 <alise> I'm trying to eliminate the Move instruction by e.g. turning >><+ into a + instruction with the field move = 1
17:25:26 <alise> but either the bit that does this combining or the actual interpreter loop's handling of these values is meaning that the tape pointer is being moved in an entirely incorrect way
17:25:31 <alise> and i can't figure out why
17:25:56 <AnMaster> * Sgeo_ growls at everyone who uses non-domain-name-based package names <-- for what?
17:26:23 <Sgeo_> Android
17:26:29 <AnMaster> okay
17:26:36 <alise> to be general, java
17:27:52 <pineapple> alise: maybe you have move and the +/- the wrng way around
17:28:02 <alise> case '>': mov++; break;
17:28:02 <alise> case '<': mov--; break;
17:28:05 <alise> #define NEXT ip++; tp += ip->mov; goto *ip->kind
17:28:26 <pineapple> no
17:28:30 <pineapple> what i mean is
17:28:53 <pineapple> the difference btween prefix and postfix ++ is why you;re getting errors
17:28:55 <pineapple> or the equivalnet
17:29:56 <alise> well
17:29:58 <alise> #define NEXT ip++; tp += ip->mov; goto *ip->kind
17:30:01 <alise> is the bit that actually does the moving
17:30:16 <alise> and since i merge the mov modified in the past loop into the instruction done now, the moves come before the instruction
17:30:20 <alise> ip->kind is what actually executes it
17:30:21 <pineapple> err...
17:30:24 <alise> so clearly the move is in the right place
17:30:40 <pineapple> i'm confused
17:31:02 <alise> why? :)
17:32:12 <pineapple> so... ip.mov is how much to move by, and ip.kind is how much to +/- by once you're tehre?
17:32:44 <alise> oh
17:32:45 <alise> there is the issue
17:32:50 <pineapple> hmm?
17:32:51 <alise> if (last && last->kind == Change) {
17:32:52 <alise> last->val += c == '+' ? 1 : -1;
17:32:52 <alise> p--;
17:32:55 <alise> a relic from when i always did p++
17:33:01 <alise> but now I have it as a separate macro
17:33:05 <alise> so that p-- keeps running backwards
17:33:08 <alise> one step forwards, two back
17:33:11 <alise> or whatever
17:33:24 <alise> pineapple: ip->kind is a pointer to a computed goto label, that contains the relevant code for the instruction that it is
17:33:34 <pineapple> ?
17:33:54 <alise> jane@jane-desktop:~/code/bf$ gcc -std=gnu99 -O3 bf6.c -o bf6
17:33:54 <alise> jane@jane-desktop:~/code/bf$ ./bf6
17:33:54 <alise> Segmentation fault
17:33:58 <alise> Well, that is an improvement.
17:34:03 <pineapple> jane?
17:34:07 <alise> (re: use name - not my computer)
17:34:08 <alise> *user
17:34:12 <alise> (haven't unpacked mine yet :P)
17:34:16 <pineapple> aah
17:34:20 <alise> recently moved.
17:34:27 <pineapple> germany?
17:34:37 <alise> er, no :)
17:34:40 <alise> not country
17:34:56 <alise> well i have it back to sitting there doing nothing useful now...
17:34:58 <alise> turns out that wasn't my bug
17:35:00 <alise> or, wait, was it?
17:35:00 <alise> hmm
17:35:05 <alise> a-HA!
17:35:25 <alise> nope ... not that either
17:35:32 <alise> OH OF COURSE!
17:35:39 <alise> if (last && last->kind == Change) {
17:35:40 <alise> p--;
17:35:40 <alise> p->val += c == '+' ? 1 : -1;
17:35:40 <alise> } else {
17:35:40 <alise> p->kind = Change;
17:35:40 <alise> p->val = c == '+' ? 1 : -1;
17:35:41 <alise> }
17:35:43 <alise> ADV;
17:35:47 <alise> adv advances the ip in the parser, and also sets the mov
17:35:48 <alise> but get this
17:35:53 <alise> it sets it
17:35:56 <alise> and when the last instruction was a change
17:35:58 <alise> we just add to the value
17:36:01 <alise> but then ADV OVERWRITES IT
17:36:10 <pineapple> oooops
17:36:31 <alise> now it... still doesn't work!
17:36:38 <alise> but I'll get there eventually i'm sure
17:37:29 <fizzie> alise: Without seeing the code it's obviously guesswork, and I wouldn't feel like looking anyway, but... I guess you 0 mov at all the right places? Have you tried dumping the code you create?
17:38:05 <alise> Dumping the created code I should probably do.
17:38:05 <alise> #define ADV p->mov += mov; mov = 0; last = p; p++; p->mov = 0
17:38:06 <alise> and the place that, I think might be causing "trickiness":
17:38:07 <alise> if (last && last->kind == Change) {
17:38:08 <alise> p--;
17:38:08 <alise> p->val += c == '+' ? 1 : -1;
17:38:08 <alise> } else {
17:38:08 <alise> p->kind = Change;
17:38:08 <alise> p->val = c == '+' ? 1 : -1;
17:38:10 <alise> }
17:38:12 <alise> ADV;
17:38:17 <alise> with the p-- and the need to combine movs and the like
17:39:52 <alise> apart from that it's just boring set-kind-advance
17:39:56 <alise> apart from maybe
17:39:57 <fizzie> Yes, should the p--; p->val += ... part also do something to p->move? I guess not necessarily, since you'll add the current "mov" anyway... or is that in p->mov before p-- at that point? Ah well, I don't quite know your logicks.
17:39:57 <alise> case ']':
17:39:58 <alise> p->kind = End;
17:39:58 <alise> loops[--lp]->val = (long)p;
17:39:58 <alise> p->val = (long)loops[lp];
17:39:58 <alise> ADV;
17:39:59 <alise> break;
17:40:01 <alise> but i don't think that should make a difference
17:40:20 <alise> fizzie: Well, p-- makes p = what last was before.
17:40:26 <alise> ADV, later on, expands to adding mov to p->mov.
17:40:30 <alise> So we should add it anyway, I think.
17:40:32 <alise> Oh!
17:40:39 <alise> fizzie: Imagine >+>+
17:40:43 <alise> We get + with mov=1
17:40:45 <alise> then mov=0
17:40:47 <alise> we increase mov, mov=1
17:40:47 <alise> then +
17:40:50 <alise> since the last instruction was +
17:40:50 <alise> we get
17:40:53 <alise> + with amount=2 mov=2
17:40:55 <alise> this is clearly incorrect
17:41:10 <alise> we need to stipulate that our current mov is 0, or we cannot combine Changes
17:41:48 <alise> now it works
17:42:22 <pineapple> you know, honey
17:42:40 <pineapple> this would be so much easier if i could see your code
17:43:16 <alise> lol, honey
17:43:26 <alise> pineapple: i was considering pasting it, but, you know, too busy tweaking random things and seeing if they work
17:44:19 <fizzie> I had an attitude like that with ff3 the other day, but then people pestered me too much about it. Should add that border-tracking there.
17:45:08 <alise> Is ff3 becoming Funge-98 then?
17:45:36 <alise> So, I now have a 93-line program that runs mandelbrot.b in 15.581s.
17:45:48 <alise> Admittedly, it has a fixed size tape, no bounds checking (but that's okay), and doesn't load in the program from a file yet.
17:45:52 <alise> But it's only the sixth revision.
17:46:05 <alise> bf5: 0m17.648s; bf6: 0m15.581s
17:46:12 <alise> bf1 took ~40s on mandelbrot.b
17:46:21 <fizzie> alise: No, I just want less useless nops in the wrapping: http://pastebin.com/00xjESHr
17:46:55 <alise> Say; there isn't any Brainfuck benchmark.
17:47:25 <fizzie> I don't know of any, which is a shame, because with the ^bf thing that'd work as a rudimentary Befunge benchmark too.
17:48:10 <alise> How about calculating A(3, 20)?
17:48:19 <alise> 8,388,605 is big but not too unwieldy to manipulate with brainfuck.
17:48:42 <alise> Of course, that would be most useful with already-fast interpreters.
17:49:37 <alise> And then perhaps outputting the result in base-10.
17:50:06 <alise> http://mozaika.com.au/oleg/brainf/ ;; some "sort of benchmark" programs
17:51:24 <Ilari> Hmm... Wonder where I calculated wrong: I got that "output" of that big number BF program would be 2^(2058 + 2^2059)...
17:52:58 <alise> Maybe he got it wrong.
17:53:53 <alise> bf6 takes 34.845s to run long.b; not so good.
17:56:43 <alise> Ilari: http://www.iwriteiam.nl/Ha_bf_numb.html#lbl
17:56:45 <alise> erm
17:56:46 <alise> http://www.iwriteiam.nl/Ha_bf_numb.html
17:56:49 <alise> explains the algorithm behind the program
17:57:27 <alise> 0m31.911s to run si ! si ! hi123; not very fast
17:57:49 <alise> I think I'll merge +-s into the surrounding instructions, and then perhaps think about optimising >>x<<, and then do linear loops
17:58:50 <alise> Hmm.
17:59:53 <alise> I can't just have the variables mov and chg, because then I can't distinguish +> and >+.
18:01:20 <Ilari> Anyway, for 5 +'s, I get that number would be bigger than 2^2^2^2059.
18:01:20 <pineapple> A(m,n) ?
18:01:29 <alise> pineapple: ackermann function
18:01:41 <pineapple> ?
18:01:41 <alise> http://en.wikipedia.org/wiki/Ackermann_function
18:01:48 <alise> you know, grows extremely quickly
18:01:55 <alise> computable but not primitive recursive -- the first such function found
18:02:05 <pineapple> good grief
18:02:23 <alise> A(4,4) = 2^(2^(2^65536)) - 3
18:02:54 <alise> A(3,20) is the more manageable 8,388,605
18:03:00 <alise> but it'll still take a while to compute...
18:04:19 <Sgeo_> Seems easy to express in Haskell
18:04:25 <alise> What, ackermann?
18:04:27 <alise> Of course it is.
18:04:28 <Sgeo_> Although the trivial way is probably not efficient
18:04:39 * alise wonders what the big-O of ackermann is
18:04:57 <alise> Sgeo_: Efficient doesn't matter; beyond very small values you can't fit the result into the universe, or indeed any nearby universes, anyway
18:05:58 <Sgeo_> Sure I can.
18:06:02 <Sgeo_> For A(20, 20), the result is simply A(20, 20)
18:06:42 <Ilari> Isn't ackerman function fairly easily describable in terms of hyper function?
18:07:02 <alise> Ilari: Yes.
18:07:13 <alise> Hyper function isn't primitive recursive either.
18:07:21 <alise> Sgeo_: That is not the result, that is a symbolic representation of the result.
18:07:28 <alise> "... Solve for n." "n = n"
18:07:52 <alise> The /result/ has to be some primitive notion: what it actually returns, such that it cannot be reduced further.
18:10:45 <fizzie> Hrm, this is awfully confusing results: http://pastebin.com/KrSjfAgS
18:11:20 <AnMaster> fizzie, is it?
18:11:41 <fizzie> AnMaster: Yes, because of the last number.
18:12:45 <Ilari> What's the length of BF program that loads first cell with number at least g64 and leaves the rest zero?
18:12:54 <fizzie> The difference between -DPF_X=15 -DPF_Y=1 and -DBOUNDARY_TRACKING for the actual time-wasting loop part in benchmark.bef is that for -DPF_X=15, in the wrapping instruction -- ip += PF_DELTA(0, -pf_box_w, 0); IP_GOTO; -- pf_box_w is a compile-time constant, whereas for -DBOUNDARY_TRACKING it's a file-scope "static int pf_box_w".
18:13:09 <fizzie> You wouldn't normally assume a compile-time constant be slower to subtract than a variable value.
18:17:13 <AnMaster> fizzie, heh indeed
18:17:30 <AnMaster> fizzie, run more timings and see if they agree
18:18:14 <fizzie> I ran the benchmark a couple of times, and it seems to be constantly close to those numbers. The actual moving of boundaries on 'p' isn't done yet, so I can't run anything very complicated.
18:18:17 <fizzie> rot13 should work.
18:18:41 <AnMaster> how goes jitfunge?
18:19:15 <fizzie> I've been sick, man! Or possibly just "sick man". Getting better now, though; will see if I get some jitfungey done tomorrow. There's that bug I was chasing still there.
18:19:37 <AnMaster> ah
18:20:02 <AnMaster> fizzie, where can I svn/bzr/hg/darcs/cvs it from?
18:20:13 <AnMaster> (did I miss any major ones?)
18:20:33 <pineapple> no love for git?
18:20:45 <alise> I like this style of development. Write a really stupid program with 1 appended to its name, then copy it, increment the number and improve on it. Only advance to a higher number if the current revision is better than the past, by whatever metric you're going for.
18:20:51 <alise> pineapple: AnMaster really, really hates git.
18:20:55 <alise> to the point of religious zealotry.
18:21:07 <AnMaster> pineapple, ah I missed that. And no I don't love it
18:21:13 <pineapple> should i ask?
18:21:15 <AnMaster> bzr for me :)
18:21:21 <AnMaster> pineapple, ask for what?
18:21:38 <alise> pineapple: no
18:21:38 <fizzie> It's a nice miss, given that git is where everything else (public) of mine is. jitfunge's not shared yet, though.
18:21:40 <pineapple> ...why you don't like it
18:21:44 <alise> pineapple: fuck!
18:21:47 <alise> now you've got him going
18:21:52 <alise> prepare for an hour of inanity
18:22:08 <AnMaster> pineapple, horrible user interface. Hard to remember commands. Confusing approach at version control.
18:22:12 <Sgeo_> The only thing I know about Git is that there's GitHub
18:22:23 <pineapple> alise: that's what /ignore is for, should i fee it necessary
18:22:34 <pineapple> feel*
18:22:41 <AnMaster> pineapple, transitioning from svg to bzr was easy. bzr -> hg was somewhat easy. git is just very alien to me
18:22:56 <pineapple> fair enough
18:23:10 <fizzie> Hrm, http://pastebin.com/caKbRGzh is the generated assembly with static and tracked boundaries; just based on the number of instructions one would think the first faster, but of course that's a singularly unreliable way of measuring speed. Still.
18:23:11 * Sgeo_ would probably use TortoiseGit
18:23:15 <alise> pineapple: As long as you don't point out that you're ignoring AnMaster every 5 seconds or whenever you miss a line of his, like he does with me. :-)
18:23:31 <pineapple> :-P
18:23:36 <AnMaster> pineapple, I find darcs easier, and darcs isn't remotely similar to any other the other ones I find.
18:23:53 <pineapple> i only have experience with svn
18:24:02 <alise> Huh; doing increments/decrements before moves in the queuer thing makes performance only slightly worserer than the previous version.
18:24:09 <AnMaster> bbl
18:24:32 <alise> So, that bf7 attempt failed.
18:24:46 <fizzie> That's really strange. For that fixed-size block, it's decided to replace those jmp *%rax's with jmp .L281, where .L281: jmp *%rax.
18:24:50 <fizzie> Oh well, sauna-time.
18:24:52 <AnMaster> oh btw I just checked the logs to see what alise said that caused that comment on /ignore up there... "10:23:15 <alise> pineapple: As long as you don't point out that you're ignoring AnMaster every 5 seconds or whenever you miss a line of his, like he does with me. :-)" <-- not remotely true.
18:24:54 <AnMaster> bbl
18:25:10 <alise> Oh, he just can't get enough of me.
18:25:13 <alise> I know you truly love me <3
18:25:18 <alise> yawn
18:25:30 <alise> AnMaster: How about either you stop ignoring me or you don't fucking respond to things I say
18:27:34 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.2/20100316074819]).
18:27:38 <alise> The question is, what low-hanging fruit are remaining before I take the plunge and do linear loop optimisation...
18:29:02 <alise> "If you're receiving this automated message, you moderate at least one popular reddit community"
18:29:04 <alise> I do? I wasn't aware...
18:29:08 * Sgeo_ reads fiction instead of doing homework
18:29:12 <Sgeo_> alise, what's the message?
18:29:17 <Sgeo_> alise, the mspaint one?
18:29:22 <alise> If you're receiving this automated message, you moderate at least one popular reddit community. Thanks for your contribution to the site, and congratulations on your success. Please subscribe to /r/modnews, a place we've set up for announcements of interest to moderators. Only the reddit admins can post links there, so it shouldn't clutter up your front page too much.
18:29:26 <alise> I guess it's probably mspaint
18:29:32 <alise> but I don't really know how many posts that gets...
18:31:00 <alise> RedditNomic(/r/nomic/)
18:31:00 <alise> Yeah, this is a crap idea.
18:31:09 <alise> What was I thinking?
18:31:23 <Sgeo_> alise, forbidden
18:31:25 <alise> Huh, mspaint is reasonably popular.
18:33:59 <alise> I don't suppose there are any general loop semantics faster than
18:34:00 <alise> loop: if (!tape[tp]) ip = (void *)ip->val; NEXT;
18:34:00 <alise> end: if (tape[tp]) ip = (void *)ip->val; NEXT;
18:34:00 <alise> ..
18:34:02 <alise> *...
18:34:03 <alise> Hmm.
18:34:08 <Sgeo_> alise, do you know why I can't get to /r/nomic ?
18:34:16 <alise> Sgeo_: dunno. it has 0 subscribers, strangely
18:34:19 <alise> not even i am subscribed
18:34:31 <Sgeo_> alise, for me, it just says forbidden (reddit.com)
18:34:39 <alise> dunno
18:34:44 <alise> maybe i set it private
18:39:57 <alise> http://pastebin.com/raw.php?i=W4G2jwzU Can anyone think of a way to improve this interpreter that /isn't/ optimising balanced loops? :-)
18:41:44 -!- alise_ has joined.
18:45:10 -!- alise has quit (Ping timeout: 258 seconds).
18:45:39 <alise_> Hmm; if I can have a five-megabyte program, I can have a five-megabyte tape.
18:47:10 <Sgeo_> optimizing balanced loops?
18:47:13 <Sgeo_> How do you do that?
18:47:27 <Sgeo_> Also: alise_, what do you think of Scala?
18:48:50 <alise_> Scala appears to me to be a hodgepodge of features, none particularly cohering too well with each other; and the OOP parts do not really add anything. I gather that this is considered a common misconception about Scala by some very smart people who like Scala, though. Mainly I abandoned Scala because you had to use, not only the tedious Java toolchain, but some extra build-system related quirks are there if you use Scala; at least when I used it there wer
18:48:50 <alise_> e. That was using, I think, not the most recommended build tool for Scala though.
18:48:59 <alise_> If you're already using Java, using Scala would be absolutely fine. JRuby and Jython too.
18:49:39 <Sgeo_> Is that a copy/paste?
18:49:57 <alise_> Sgeo_: Optimising balanced loops - [>>+<[>+<]<<+>] is p[2]++; p[0] = 0; p[-2]++;
18:50:09 <alise_> You can do this for every nested loop structure with matching > and <.
18:50:29 <alise_> Sgeo_: no, I wrote it now
18:59:41 <pikhq> alise_: Yes, Scala is very much a thing to make Java programming nicer from what I've seen.
18:59:58 <pikhq> Worthwhile if you've already got reasons to be in Java, not worth it otherwise.
19:00:33 * Sgeo_ really needs to learn that he can like multiple languages
19:00:41 <pikhq> Sgeo_: Hah.
19:04:37 <alise_> Anyone have a working clang compiler? pikhq?
19:04:50 <pikhq> I do.
19:06:00 <alise_> Would you be so kind as to compile a lil' 64-bit binary with high optimisation for me? I'm thinking clang might have the wisdom to beat gcc on my current version.
19:06:43 <alise_> http://pastie.org/924802.txt?key=9hndhxn9dpruigx3zxg bf7.c
19:06:46 <alise_> http://pastie.org/924803.txt?key=drcs7zwkn7w5buut0xzl9g the requisite mandelbrot.h
19:07:00 <alise_> I'd install clang but I'm on an old version of Ubuntu with only a mobile internet connection.
19:07:11 <pikhq> Just a bit.
19:07:52 <pikhq> Any prefered -march=?
19:08:11 <pikhq> Also, -fwhole-program, correct?
19:08:21 <alise_> Yeah, whole program. And, this is an... /me looks it up
19:08:27 <alise_> *a
19:09:40 -!- alise__ has joined.
19:09:55 <alise__> <pikhq> Also, -fwhole-program, correct?
19:09:57 <pikhq> ?
19:10:03 <alise__> <alise_> Yeah, whole program. And, this is an... /me looks it up
19:10:03 <alise__> <alise_> *a
19:10:03 <alise__> <alise_> ...an AMD Athlon 64 X2 5200+.
19:10:03 <alise__> <alise_> So I guess just dual-core Athlon 64.
19:10:03 <alise__> <alise_> Not sure what march that is.
19:10:10 <pikhq> Okay, then.
19:10:14 <pikhq> -march=k8 it is.
19:11:08 <pikhq> Filebinning.
19:11:17 <alise__> There's very little to the program, really, so I don't expect it to do /vastly/ better.
19:11:26 <pikhq> http://filebin.ca/jnad/a.out
19:12:47 -!- alise_ has quit (Ping timeout: 258 seconds).
19:14:01 <alise__> http://pastie.org/924812.txt?key=bq9xhffo89frcoacjgqr0w ;; I hope that bf7 being very, very slightly slower than its predecessor on average is just coincidence in my measurings.
19:14:06 <alise__> Because, really,
19:14:08 <alise__> - p--;
19:14:08 <alise__> - p->val += c == '+' ? 1 : -1;
19:14:08 <alise__> + last->val += c == '+' ? 1 : -1;
19:14:11 <alise__> and only running ADV if we need to
19:14:14 <alise__> should be a speed up if anything
19:14:18 <alise__> and
19:14:19 <alise__> - #define ADV p->mov += mov; mov = 0; last = p; p++; p->mov = 0
19:14:20 <alise__> + #define ADV p->mov = mov; mov = 0; last = p; p++
19:14:23 <alise__> almost certainly either does the same thing, or less
19:15:55 <alise__> pikhq: Congratulations. Your computer produces far better code for my computer than my computer does.
19:16:12 <pikhq> Hooray.
19:16:14 <alise__> 11.314s, vs average of 15.000 to 15.350 for mine.
19:16:23 <alise__> You shaved off ~4 seconds. Fuck yeah, clang.
19:16:33 <pikhq> BTW, -O3 -march=k8 -msse3 should be good "absurdly good" flags for your computer.
19:16:46 <pikhq> -O2 -march=k8 -msse3 should be sane ones.
19:17:44 <alise__> Hey, gcc does -fwhole-program too.
19:17:47 <alise__> Or does -O3 automatically do that?
19:17:53 <pikhq> It doesn't.
19:18:03 <pikhq> For this program, -fwhole-program as well.
19:18:08 <alise__> Hmm... no loops to unroll that wouldn't be cheating (unrolling the parsing loop would be cheating; the program is currently a constant string)
19:18:22 <pikhq> BTW, -fwhole-program will break not-small programs. :)
19:18:26 <alise__> No fucking clue what most of the -f options do.
19:18:38 <alise__> pikhq: This program will grow to at most a couple hundred lines ;-)
19:18:45 <olsner> what does whole-program do?
19:18:55 <alise__> olsner: assumes that nothing will link with it
19:19:01 <alise__> and so basically fucks everything into one great big ball of mud
19:19:13 <alise__> then smashes it with a hammer so that it looks like the pure operations that need doing, nothing more
19:19:20 <pikhq> olsner: -fwhole-program tells the compiler that the only symbol that will be exported is main.
19:19:20 <alise__> you can see how this would cause problems on complicated programs.
19:19:26 <alise__> pikhq: Also that.
19:19:40 <alise__> pikhq: Why SSE? I can't think of a single thing in my program that would be helped by SSE.
19:20:00 <pikhq> alise__: Oh, that's just because your CPU supports -msse3.
19:20:07 <alise__> XD
19:20:31 <pikhq> The -march flags will turn on most of the supported such extensions, but your CPU supports SSE3 and -march doesn't tell the compiler that.
19:20:35 <pikhq> Just a habit. ;)
19:21:07 <alise__> I wonder if -Os might not help here; the programs are very small (bf7 is just 93 lines), and the actual tight main loop is all manual computed gotos, so there's not many clever optimisations to be done there.
19:21:15 <alise__> So having everything fit in the computer's nice little pocket could help.
19:21:26 <olsner> ah, right... -fwhole-program wouldn't really be needed if it wasn't so fiendishly complicated to tell a C compiler/linker/etc system exactly what needs to be exported
19:21:37 <alise__> pikhq: -fwhole-program -march=k8 -msse3 don't seem to have improved bf7 performance any, which supports my hunch that it can't optimise my awesomeness.
19:21:49 <alise__> also it bloated the size of the binary by like 500 :P
19:21:52 <pikhq> Your program is already small enough to fit in the whole cache.
19:21:55 <alise__> now they're all 24k
19:21:59 <pikhq> Okay, GCC sucks. :)
19:22:00 <alise__> as opposed to ~13k
19:22:05 <comex> cool
19:22:09 <comex> I never knew about -fwhole-program
19:22:12 * alise__ tries -Os
19:22:21 <alise__> Now they're all 23K.
19:22:34 <pikhq> alise__: Strip, man, strip!
19:22:36 <alise__> How queer; they won't go smaller.
19:22:47 <pikhq> olsner: The link-time optimiser that GCC and Clang have should help with that.
19:22:49 <alise__> Will -fwhole-program work with, or against, -Os?
19:22:57 <alise__> I assume -march=k8 is fine to use with it.
19:22:57 <pikhq> alise__: With.
19:22:59 <comex> what are you trying to accomplish?
19:23:06 <alise__> comex: Me?
19:23:13 <pikhq> And yes, -march=k8 is just fine.
19:23:14 <alise__> A brainfuck interpreter faster than bff4 with linear loop optimisation.
19:23:32 <comex> you're compiling brainfuck to C?
19:23:35 <alise__> No.
19:23:37 <alise__> Interpreting.
19:23:41 <comex> oh
19:23:44 <alise__> Compiling, esotope has already cornered that market.
19:23:49 <alise__> It compiles hello world to a constant output, after all.
19:23:54 <alise__> When interpreting, optimisations cost.
19:23:57 <alise__> Post-stripping, an -Os'd bf7 is 19K.
19:24:11 <alise__> Let's see how fast it goes. Brrm brrm!
19:24:26 <alise__> This is all just tactics to avoid working on the linear loop optimisation :-)
19:25:17 <wareya> am I stupid for trying to cast a file to a string in C?
19:25:33 <alise__> wareya: Intensely.
19:25:37 <wareya> okay
19:25:37 <alise__> $ ./bf7 >/dev/null; time ./bf7 >/dev/null
19:25:38 <alise__> real0m20.730s
19:25:38 <alise__> user0m20.661s
19:25:38 <alise__> sys0m0.052s
19:25:42 <alise__> Conclusion: Bad -Os; bad!
19:26:08 <alise__> I'd love to see the assembly for this thing. Computed gotos can't be pretty.
19:26:16 <pikhq> -S
19:26:31 <alise__> Yep.
19:26:40 <alise__> -O3 restores everything back to its original glory.
19:26:43 <alise__> And at 19K, too.
19:26:59 <pikhq> Oh, I know...
19:27:13 <pikhq> Clang seems to handle computed gotos *much* better than GCC.
19:27:26 <alise__> Ah.
19:27:38 <Deewiant> Clang version?
19:27:40 <alise__> http://pastie.org/924802.txt?key=9hndhxn9dpruigx3zxg Anyone know if I can initialise blueprints without having to call interp?
19:27:45 <alise__> After all, clearly it can be done in asm.
19:27:49 <pikhq> Deewiant: 2.6.
19:28:00 <Deewiant> That's interesting, then
19:28:25 <Deewiant> Given that 2.6 doesn't support indirectbr :-P
19:28:52 <pikhq> Still handles it better.
19:29:40 <alise__> I can't just put the declaration of blueprints inside interp, can I?
19:29:42 <alise__> No, I suppose not.
19:29:42 <Deewiant> 2.6 just lowers indirect gotos to switches
19:29:43 <alise__> Hmm.
19:29:47 <alise__> And I can't assign an array literal like that.
19:29:56 <Deewiant> So it makes me wonder what GCC must be doing there, if that's better
19:30:01 <alise__> Deewiant: Well, maybe that would turn out faster.
19:30:18 <alise__> Since theoretically the indirect goto has an "unknown" destination, not just one-of-a-few-cases.
19:30:23 <alise__> So we have to jump "generically", not specialisedly.
19:30:35 <alise__> The only reason computed gotos are faster with gcc is that it sucks at switches, and a switch makes it jump more.
19:31:24 <alise__> #define NEXT ip++; tp += ip->mov; goto *ip->kind
19:31:25 <alise__> compiles to
19:31:29 <alise__> leaq 24(%rcx), %rax
19:31:29 <alise__> movq %rcx, %r8
19:31:29 <alise__> xorl %esi, %esi
19:31:29 <alise__> jmp .L12
19:31:31 <alise__> with gcc
19:31:59 <pikhq> *Gah*, that's right. GCC is merging the tails of all that.
19:32:00 <alise__> Some of them have code I don't even know what it does, though.
19:32:09 <pikhq> So it can have a single indirect jump instruction.
19:32:12 <pikhq> "Because".
19:32:17 <alise__> L12 is just
19:32:20 <alise__> .L12:
19:32:20 <alise__> movq %rax, %rcx
19:32:20 <alise__> .L2:
19:32:20 <alise__> movzbl (%rdi), %edx
19:32:21 <alise__> incq %rdi
19:32:23 <alise__> testb %dl, %dl
19:32:25 <alise__> je .L23
19:32:27 <alise__> leal -43(%rdx), %eax
19:32:29 <alise__> cmpb $50, %al
19:32:31 <alise__> ja .L20
19:32:33 <alise__> movzbl %al, %eax
19:32:35 <alise__> jmp *.L11(,%rax,8)
19:32:37 <alise__> which is, you know, longer than I'd like for threaded code
19:32:39 <alise__> also there is an awful lot of .quads around here
19:32:41 <alise__> pikhq: Can I disable that?
19:33:09 <pikhq> alise__: I've been trying to.
19:33:14 <pikhq> I dunno how.
19:34:30 <alise__> In the next revision, or at least in the next few, I'm going to have to bite the bullet and implement linear loop optimisation.
19:34:38 <alise__> When I do that I should beat least competitive with bff4lnr.
19:34:44 <alise__> Hopefully, I'll be able to beat it.
19:35:02 <alise__> Here's what I'm up against: http://mozaika.com.au/oleg/brainf/bff4.c compiled with -DLNR.
19:35:22 <alise__> Of course, it will be cheating until I add loading a program somehow, and then an automatically growing tape.
19:35:33 <alise__> I have a feeling malloc will slow my program down immensely; right now I don't use it at all.
19:35:43 <alise__> Perhaps I will mmap some ridiculously large space instead, and depend on overcommitting.
19:37:08 <comex> doing it in hardware ftw!
19:37:24 -!- lament has quit (Quit: lament).
19:38:36 <comex> you could mmap a bunch of contiguous pages, mark the last one PROT_NONE, and install a SIGSEGV handler to grow the space
19:39:16 <pikhq> That seems... Awful.
19:39:30 <olsner> besides, isn't that exactly what the kernel does internally if you just mmap the whole free address space?
19:39:44 <alise__> Something like that, I think.
19:39:50 <alise__> pikhq: Hey, there's a library to handle segfaults.
19:39:54 <alise__> Not that I'd use it; too much overhead.
19:39:58 <alise__> But it would work, yeah.
19:40:02 <comex> that's not necessary at all
19:40:05 <comex> just sigaction
19:40:08 <alise__> yeah
19:40:12 <alise__> it's cleaning up afterwards that's the problem
19:40:13 <alise__> olsner: the kernel will likely do it faster though, won't it?
19:40:16 <comex> as for mmaping the whole space, I don't know :p
19:40:46 <comex> isn't it likely to reserve a whole lot of physical memory? or does it not do that until the memory is actually used
19:40:48 <alise__> The advantage of the SIGSEGV solution is that it would work even with overcommit turned off.
19:40:50 <alise__> comex: no, it doesn't
19:40:54 <alise__> Linux always grants a request for memory
19:41:01 <alise__> as long as it's within certain (ludicrous) bounds
19:41:04 <alise__> or wait
19:41:08 <alise__> you can't ask for more than you have
19:41:11 <alise__> but you can ask for what you have, twice
19:41:15 <alise__> it'll grant both immediately
19:41:21 <alise__> then it only actually grabs the memory when you need it
19:41:24 <alise__> this is why it needs the OOM killer
19:41:34 <alise__> a program gets some memory, uses it, suddenly we can't give it the memory we've already told it we have
19:41:36 <comex> yes, but it could also allocate some memory to you in the assumption yuou're about to use it
19:41:39 <alise__> who's the culprit? who's hogging our memory?
19:41:40 <alise__> KILL! KILL!
19:41:46 <comex> but I'm wrong about that so k :p
19:41:53 <alise__> comex: I've done it before and it doesn't actually reserve much memory at all
19:41:54 <alise__> if any
19:41:54 <comex> ...or swap.
19:42:08 <alise__> http://pastie.org/924840.txt?key=jhefhf0gduvence49befva Look for low hanging fruit, feeble-minded slaves!
19:42:23 <pikhq> comex: malloc almost *cannot* fail on Linux.
19:42:31 <alise__> I bet using the C stack is faster than maintaining my loop stack.
19:42:37 <pikhq> Unless you turn off overcommitting.
19:42:42 <comex> alise__: why would it be faster?
19:42:45 <pikhq> alise__: Yes, the C stack is very fast.
19:42:57 <alise__> comex: what pikhq said
19:42:57 <comex> oh, wait
19:43:06 <comex> x86 has dedicated opcodes for pushing on the stack
19:43:07 <comex> fine:p
19:43:09 <alise__> I'm doing lots of manual stack operations for something that C compilers are optimised to do millions of times a second
19:43:13 <alise__> and processors
19:43:47 <comex> the question is whether processors actually treat *SP specially
19:43:55 <pikhq> They do.
19:44:18 <pikhq> C stack handling is *absurdly* fast on x86.
19:45:11 <alise__> eh, bf7 will be a cleanup revision
19:45:13 <alise__> onto bf8
19:45:17 <alise__> i'll do the stack thing
19:45:40 <comex> otoh, if you mean using recursion for loops, you are wasting some stack space
19:45:40 <alise__> this is just like using a version control system, but nicer :P
19:45:47 <alise__> nah
19:45:49 <alise__> for the stack of loops
19:45:51 <comex> for the return address etc
19:45:53 <alise__> case '[': p->kind = Loop; loops[lp++] = p; ADV; break;
19:45:54 <alise__> case ']':
19:45:55 <alise__> p->kind = End;
19:45:55 <alise__> loops[--lp]->val = (long)p;
19:45:55 <alise__> p->val = (long)loops[lp];
19:45:55 <alise__> ADV;
19:45:56 <alise__> break;
19:45:58 <alise__> }
19:46:00 <alise__> also not if your compiler optimises that
19:46:17 * alise__ wonders how to write the above using recursion
19:46:26 <comex> never heard of a compiler optimizing that :p
19:46:32 <alise__> gcc optimises tail recursion.
19:46:41 <comex> well, I may be thinking of a different implementation than you
19:46:47 <comex> that would definitely not be tail recursion
19:46:54 <alise__> it wouldn't be in this case
19:46:59 <alise__> but it'd be better than using my manual stack
19:47:02 <Sgeo_> All recursion can be turned into iteration [unless it's just tail recursion]. Can all iteration be turned into recursion somehow?
19:47:04 <comex> if you feel like being a jerk, you could use inline asm to push/pop :p
19:47:27 <alise__> All recursion can be turned into iteration [unless it's just tail recursion].
19:47:28 <alise__> false
19:47:30 <comex> that would probably be the fastest, but I doubt there's a way to do that in C
19:47:30 <alise__> you have to use a stack
19:47:36 <alise__> which is basically just recursion
19:47:41 <alise__> Sgeo_: and the answer is yes
19:47:44 <alise__> iteration is just tail recursion
19:48:45 <comex> one thing you could do is do a loop beforehand that converts non-BF characters to some known character
19:49:18 <alise__> Why?
19:49:22 <alise__> I just completely ignore non-BF chars.
19:49:36 <comex> then you could optimize the switch statement because you know all characters are one of 8 characters
19:49:49 <Sgeo_> [About Ubisoft] "They're actually trying to stop piracy. If the servers stay down, it's impossible for the pirates to track communication between client and server in order to get the data they need to fully crack the game. So, if they keep the servers down forever, the game will be never be cracked!"
19:49:52 <comex> that would probably simplify the machine code significantly and avoid a branch
19:49:53 <Sgeo_> http://www.fark.com/cgi/comments.pl?IDLink=5216097
19:50:02 <comex> well, maybe about the branch :p
19:50:52 <alise__> comex: oh, I'm not optimising the parser yet
19:51:16 <pikhq> The parser should be the quickest thing you deal with.
19:51:18 <alise__> hmm
19:51:19 <alise__> case '[': p->kind = Loop; loops[lp++] = p; ADV; break;
19:51:19 <alise__> what I really want to do here is parse the current s
19:51:22 <alise__> to get the loop result
19:51:28 <comex> btw, I wouldn't be surprised if it runs faster in 32-bit mode
19:51:32 <pikhq> Like, "parse all of LostKng in a few fractions of a second".
19:51:33 <alise__> comex: yes, probably
19:51:46 <pikhq> comex: My experience has been "no".
19:51:47 <alise__> hmm
19:51:53 <comex> pikhq: then it makes sense to preprocess for faster runtime
19:51:54 <alise__> I need to have parse return, not modify a global variable
19:52:11 <comex> parse gives me a headache :p
19:52:14 <alise__> parse : str -> op*
19:52:17 <alise__> comex: what, mine?
19:52:19 <alise__> it's simple
19:53:24 <comex> oh wait
19:53:27 <comex> I'm misunderstanding your code
19:53:32 <comex> :p
19:53:45 <alise__> Admittedly I have not wrote for clarity much.
19:53:52 <alise__> I think parse is quite nice code though.
19:53:57 <comex> uh, maybe.
19:54:06 <comex> how...
19:54:12 <comex> parse is running once, beforehand, right? and then interp?
19:54:20 <alise__> yes
19:54:26 <alise__> parse starts at prog
19:54:29 <alise__> then advances onwards
19:54:31 <comex> oh, End actually stores hwere it is going
19:54:34 <alise__> yes
19:54:37 <comex> jesus.
19:54:42 <alise__> and then modifies the Start to point to the End
19:54:43 <alise__> jesus what?
19:55:16 <comex> also, mov could be a short
19:56:13 <alise__> To what avail? And what if you had more <>s than that in a row?
19:56:34 <alise__> Unlikely but not almost impossible in the way overflowing the int is.
19:56:40 <comex> well the tape is only 65536 long eh?
19:56:48 <comex> such a thing would overflow the tape anyway
19:56:48 <alise__> Well, true.
19:56:57 <alise__> But it can be increased, and will be dynamically sized later.
19:57:03 <alise__> I don't think shorts would be stored more efficiently on most machines, anyway.
19:58:14 <comex> fwiw 'val' could also be 32-bit if it's an offset from prog instead of a pointer
19:58:18 <comex> but I guess that wouldn't be much gain
19:58:55 <alise__> the arithmetic would make it worse on the whole
19:59:11 <alise__> Loops would be faster if their pointers pointed to the instructions /after/ the loop instructions.
19:59:19 <comex> I don't believe that without a test :p
19:59:20 <alise__> That way, we could do less work than the general NEXT; we could skip ip++.
19:59:28 <alise__> jane@jane-desktop:~/code/bf$ ./bf8
19:59:28 <alise__> Segmentation fault
19:59:30 <alise__> Well, it is a start.
19:59:35 <alise__> (bf8 is the recursive-parser version)
19:59:42 <comex> heh
20:00:13 <comex> well you should definitely use a pointer to tape + tp that changes, instead of indexing every time
20:00:17 <comex> though maybe the compiler does that ofr you
20:00:23 <comex> for that matter, what if you make rsp = &tape[tp]
20:01:42 <comex> using the syntax that lets you reserve a register for a variable
20:01:42 <alise__> comex: actually i used a pointer to tape + tp
20:01:43 <alise__> it was slower
20:01:44 <alise__> I measured it
20:01:47 <comex> huh.
20:01:57 <alise__> comex: I think because the compiler can optimise the array access because it knows tape is static
20:02:02 <alise__> whereas a pointer could be any old thing
20:02:24 <comex> wouldn't the same apply to indexing prog :p
20:02:34 <alise__> I tried that too. Slower.
20:02:45 <comex> mm
20:02:46 <alise__> I think because prog already has the indirect jump magic, so it doesn't help much, and the overhead of the indexing wins out.
20:02:52 <comex> can I have a copy of mandelbrot.h?
20:02:54 <comex> I want to try something
20:03:11 -!- BeholdMyGlory has joined.
20:03:37 <pineapple> .h ?
20:03:43 <olsner> alise__: it should be obvious from the assembly if it actually does (optimize indexing)
20:03:51 <comex> and the compiler flags even :p
20:03:54 <comex> if you don't mind
20:03:57 <alise__> pineapple: it's just mandelbrot.b without newlines enclosed in ""
20:03:58 <alise__> so I can do
20:04:02 <alise__> char *code =
20:04:03 <alise__> #include "mandelbrot.h"
20:04:03 <alise__> ;
20:04:08 <alise__> comex: of bf7, presumably, since that one actually works
20:04:13 <alise__> bf8 is just my tweak-parser version
20:04:20 <comex> sure, I was using the one on pastie
20:04:30 <alise__> I think that is bf7.
20:04:50 <alise__> Here is mandelbrot.h.
20:04:54 <alise__> http://pastie.org/924867.txt?key=y1tsv0fos2dcg2ku9rkqw
20:04:57 <alise__> Compiler flags I use:
20:05:09 <alise__> -O3 -march=k8 -msse3 -fwhole-program
20:05:13 <alise__> then afterwards, strip -s it
20:05:24 <alise__> Change the march if you're not on AMD Athlon or similar, of course.
20:05:30 <alise__> core2, if you're on Core 2.
20:05:38 <comex> (why not just -march=native?)
20:05:47 <alise__> Because pikhq did it at first :P
20:06:01 <comex> you're using clang or gcc?
20:06:02 <pineapple> what does mandelbrot.b do?
20:06:35 <alise__> comex: gcc. pikhq did it with clang and got significant (many seconds) improvement
20:06:38 <alise__> pineapple: ascii art mandelbrot set renderer
20:06:45 <alise__> a good benchmark
20:07:04 <comex> book.c:41: warning: comparison is always false due to limited range of data type
20:07:31 <comex> (getchar)
20:07:32 -!- kar8nga has joined.
20:07:33 <comex> and EOF
20:07:39 <alise__> er right
20:07:42 <alise__> it still works though
20:07:44 <alise__> I wonder why
20:07:47 <alise__> even with ,[.,]
20:08:15 <comex> yep clang is faster for me too
20:08:45 <comex> slightly faster with -m32
20:09:12 <comex> changing mov to short has no effect
20:09:37 <comex> maybe a very slight improvement
20:09:53 <alise__> By low hanging fruit I meant codewise, not typewise. :-)
20:11:02 <comex> if you insist. :p
20:11:52 <comex> I get a significant improvement using a pointer instead of tape[tp]
20:12:16 <comex> on core2 who knows if you're different
20:12:45 -!- jcp has quit (Ping timeout: 264 seconds).
20:14:42 <comex> -fomit-frame-pointer is also an improvement
20:15:00 <alise__> what /is/ the frame poitner anyway?
20:15:05 <alise__> comex: hmm really? plz post timings for pointer
20:15:06 <alise__> and also code
20:16:14 <Deewiant> The frame pointer points to a location in the stack frame :-P
20:16:31 <comex> http://pastie.org/private/f9etyzhaoucns4mm0hfua <- pretty obvious change
20:16:32 <Deewiant> Typically the return address or thereabouts
20:16:45 <comex> omitting it makes debugging impossible
20:17:32 <Deewiant> I've always considered it as more a tool for humans and don't understand why compilers use it by default
20:18:34 <alise__> comex: timings please?
20:18:38 <alise__> i timed it before...
20:20:30 -!- ENKI-][ has quit (Read error: Connection reset by peer).
20:20:47 <comex> it's not that much of an improvement, but definitely there
20:21:10 <comex> ~.025s improvement, 5.214 instead of 5.234
20:21:16 <alise__> input: if ((tape[tp] = getchar()) == EOF) tape[tp] = 0; NEXT;
20:21:16 <alise__> how come this works?
20:21:16 <alise__> even though the comparison is always false
20:21:16 <alise__> ,[.,] works
20:21:19 <alise__> and it should only work with 0 eof
20:21:25 <alise__> comex: measured multiple times yeah?
20:21:31 <alise__> otherwise disk cache and stuff
20:21:33 <comex> yes
20:21:50 <alise__> ok, as soon as this new parser works i'll add that
20:24:06 <comex> no idea about EOF
20:25:40 <alise__> grr
20:25:43 <alise__> this keeps segfaulting and I have no idea why
20:26:10 <comex> gdb? :p
20:27:41 <fizzie> Deewiant: Did you notice my curious ff3 thing?
20:27:51 <Deewiant> Don't think so, no
20:28:09 <fizzie> Deewiant: http://pastebin.com/KrSjfAgS
20:28:29 <alise__> comex: gdb is worse than useless. usually :P
20:28:54 <Deewiant> fizzie: How does boundary tracking work versus PF_X/PF_Y?
20:29:05 <fizzie> Deewiant: Where the difference between -DPF_X=15 and -DBOUNDARY_TRACKING is that for -DPF_X the subtraction of pf_box_x has a compile-time constant argument, whereas for the other it's a file-scope "static int pf_box_x".
20:29:13 <fizzie> Deewiant: Here's the generated assembly: http://pastebin.com/KrSjfAgS
20:29:21 <fizzie> Uh, copypaste mishap. :p
20:29:22 <Deewiant> fizzie: Wrong link
20:29:38 <fizzie> Deewiant: http://pastebin.com/caKbRGzh I mean.
20:30:07 <fizzie> And for the upper, .L281: jmp *%rax; and nothing else.
20:30:10 <Deewiant> There must be other differences :-P
20:30:21 <Deewiant> Well, double-jump might do it
20:30:33 <fizzie> That snippet is the wrapping function. Of course there are other differences in the code.
20:30:37 <fizzie> It's a strange thing to do though.
20:30:48 <fizzie> Should perhaps try both with clang.
20:31:03 <fizzie> After some ice-cream experiences, away a while.
20:32:06 * alise__ steps too far in gdb.
20:32:07 <alise__> feck
20:32:08 -!- oerjan has joined.
20:32:39 <comex> stepi
20:33:54 <oerjan> <AnMaster> <oerjan> i guess that answer your previous question, then <-- what was that question?
20:34:00 <oerjan> you may never know
20:34:05 * oerjan cackles evilly
20:34:46 * alise__ keeps doing next 100
20:34:53 <alise__> oh i think i know how it is segfaulting?
20:34:54 <alise__> maybe
20:36:28 <oerjan> <alise> (The simple answer, of course, is that mirrors rotate in the fourth dimension.*)
20:36:39 * oerjan swats alise__ -----###
20:36:56 <oerjan> they swap _back_ with _front_
20:37:30 <comex> :(
20:38:03 <comex> I tried manually (in the assembly) swapping edi (which clang picked to store ptr) with esp
20:38:07 <comex> in case it would speed things up
20:38:38 <comex> admittedly, my assembly was nonoptimal (it used two 'xchg' around each putchar) but that shouldn't make a huge difference; however, the code just slowed down a lot
20:39:59 <alise__> Program received signal SIGSEGV, Segmentation fault.
20:40:00 <alise__> 0x00000000004005f4 in interp (setup=0 '\0') at bf8.c:39
20:40:00 <alise__> 39change: tape[tp] += ip->val; NEXT;
20:40:00 <alise__> (gdb)
20:40:00 <alise__> wutters
20:40:50 <alise__> (gdb) print *(op*)*(ip+1)->val
20:40:51 <alise__> $11 = {kind = 0xf00213959058b48, val = -4574530908104654666, mov = -1958210955}
20:41:02 <alise__> ok; I have an end-loop instruction whose val (go back to...) is pointing to random memory
20:41:11 <alise__> Understandable enough:
20:41:12 <alise__> case ']':
20:41:12 <alise__> p->kind = End;
20:41:13 <alise__> return p;
20:41:13 <alise__> but
20:41:17 <alise__> q = parse(s, p);
20:41:17 <alise__> q->val = (long)last;
20:41:19 <alise__> last->val = (long)q;
20:41:21 <alise__> p = q;
20:41:24 <alise__> last should always be valid, so how is this happening?
20:43:06 <alise__> $ ./bf8
20:43:06 <alise__> im jumpin
20:43:07 <alise__> back in da haus
20:43:07 <alise__> im jumpin
20:43:07 <alise__> Segmentation fault
20:43:16 <alise__> im jumpin = yo bitch, this is parse() and we got a ], returning nao
20:43:23 <alise__> back in da haus = parse totally gave us some fucking shit
20:43:30 <alise__> so we have an un-haused jumpin.
20:43:44 <alise__> I know the brackets are balanced so HOW IS THIS MONSTROSITY
20:44:08 <alise__> comex: if i give you the code, you fix it k
20:44:09 <fizzie> Deewiant: Oh, right, forgot; did try clang earlier, but http://pastebin.com/9qX7qyd5
20:44:36 <alise__> comex: http://pastie.org/924919.txt?key=djk4pkptyma547uhozx1q
20:45:34 * Sgeo_ procrastinates
20:47:04 * oerjan swears at the neighbor's barking dog
20:47:31 <Deewiant> fizzie: So fix it :-P
20:47:32 <alise__> comex: oh!
20:47:38 <alise__> I don't increment s when I recurse
20:47:47 <alise__> ugh, so parse needs to return a tuple
20:47:50 <alise__> or a **
20:47:52 <alise__> as an argument
20:47:54 <fizzie> Deewiant: I guess it could be something a bit like http://llvm.org/bugs/show_bug.cgi?id=6608 which seems fixed already; I don't exactly use LLVM trunk, maybe I should start.
20:47:54 <Deewiant> *****
20:48:02 <alise__> oh the pain
20:48:13 <Sgeo_> fizzie, when did you last play Robozzle?
20:48:13 <oerjan> so your s is cursed rather than recursed
20:48:28 <Deewiant> fizzie: You could try llvm-gcc 2.6 as well
20:48:28 <alise__> oerjan: I would enjoy killing you!
20:49:00 <alise__> Now it works but segfaults anyway
20:49:27 * Sgeo_ hands alise__ a potion of holy water
20:50:01 <fizzie> Sgeo_: When it was talked about back then; I haven't played since.
20:50:29 <fizzie> Deewiant: I'll try this Ubuntu "llvm-gcc-4.2" thing first, but I guess if I'm serious about jitfunge's llvm side, I should try to get them codes too.
20:52:56 <fizzie> Deewiant: Well, that's better: http://pastebin.com/xQFwEaUu
20:56:29 <alise__> WHY DOES THIS DEFOUL MY PEOPLE.
20:57:26 -!- tombom has joined.
20:59:59 <alise__> Work, blasted computer! Work!
21:01:04 -!- tombom_ has joined.
21:02:56 * Sgeo_ sees another Nexus One ad and starts hyperventilating
21:03:21 <alise__> AROUSING TELEPHONE
21:03:48 <alise__> comex: MAKE MY CODE WORK
21:04:34 -!- tombom has quit (Ping timeout: 260 seconds).
21:05:51 <oerjan> 12:21:16 <alise__> input: if ((tape[tp] = getchar()) == EOF) tape[tp] = 0; NEXT;
21:05:54 <oerjan> 12:21:16 <alise__> how come this works?
21:06:05 <oerjan> is it possible that EOF % 256 is accidentally 0?
21:06:23 <comex> no, because it's -1
21:06:35 <oerjan> well then it should set it to 255
21:06:40 <alise__> which it doesn't
21:06:42 <alise__> because ,[.,] works
21:06:54 <alise__> oerjan: it sets it to -1 actually
21:07:01 <alise__> signed chars
21:07:06 <oerjan> oh well
21:07:13 <alise__> maybe this is false somehow, dunno :P
21:08:13 <oerjan> !c ((char)(-1) == EOF)
21:08:39 <oerjan> !help languages
21:08:40 <EgoBot> 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.
21:08:44 <alise__> you need to print
21:08:47 <oerjan> oh
21:09:04 <alise__> !c char c = EOF; if (c) { printf("true\n"); } else { printf("false\n"); }
21:09:06 <EgoBot> true
21:09:12 <alise__> then ... what?
21:09:24 <oerjan> !c printf ("%d", ((char)(-1) == EOF))
21:09:25 <EgoBot> 1
21:09:49 <oerjan> so it is actually true
21:09:59 * Sgeo_ doesn't like the thought that most apps will come out for the iPhone before Android
21:10:04 <alise__> oerjan: then wut.
21:10:14 <alise__> Sgeo_: the iphone isn't an option if you have any morals.
21:10:17 <alise__> or coding desire.
21:10:21 <alise__> or lack of $99.
21:10:34 <oerjan> alise__: i guess you'll get a bug if you input an _actual_ -1 char, then
21:10:42 <alise__> oerjan: er... there is no such thing :P
21:10:46 <alise__> oh wait
21:10:46 <alise__> hmm
21:10:59 <oerjan> 255
21:11:05 <alise__> getchar returns int
21:11:06 <alise__> so
21:11:10 <oerjan> (mod 256)
21:11:20 <alise__> !c int gcr = EOF; char c = gcr; printf("%d\n", c);
21:11:22 <EgoBot> -1
21:11:37 <fizzie> oerjan: On the other hand, 255 isn't used in any UTF-8 combination, so if you only use UTF-8 input, you should be safe.
21:11:40 <oerjan> !c printf("%d", (char)255)
21:11:40 <alise__> this is really confusing
21:11:42 <EgoBot> -1
21:12:00 <oerjan> alise__: the printing converts from char to int, preserving sign, obviously
21:12:35 <fizzie> The "passing as argument to a vararg function" already converts it to int, doesn't it?
21:12:48 <oerjan> well yeah
21:13:03 <alise__> !c int gcr = EOF; char c = gcr; if (c) printf("hmm\n"); else printf("WHAT THE FUCK IN THE WORLD\n");
21:13:04 <EgoBot> hmm
21:13:08 <alise__> WHAT IS THIS
21:13:53 <oerjan> alise__: (char) EOF is not 0
21:13:58 <alise__> I KNOW
21:14:01 <alise__> So why is this happening
21:14:02 <alise__> Why does it work
21:14:10 <alise__> input: if ((tape[tp] = getchar()) == EOF) tape[tp] = 0; NEXT;
21:14:10 <alise__> loop: if (!tape[tp]) ip = (op *)ip->val; NEXT;
21:14:11 <alise__> end: if (tape[tp]) ip = (op *)ip->val; NEXT;
21:14:12 <alise__> It undeniably shouldn't work
21:14:15 <alise__> tape[tp] is never set to 0
21:14:24 <alise__> Hmm, it IS unsigned char
21:14:30 <alise__> !c int gcr = EOF; unsigned char c = gcr; if (c) printf("hmm\n"); else printf("WHAT THE FUCK IN THE WORLD\n");
21:14:31 <EgoBot> hmm
21:14:39 <alise__> WHAT DO YOU WANT FROM ME, COMPUTER?!
21:15:04 <oerjan> alise__: er wait tape is _unsigned_?
21:15:13 <oerjan> i just had an explanation if it was signed :(
21:15:15 <alise__> Well, it didn't use to be!
21:15:19 <alise__> oerjan: what's the explanation?
21:15:27 <alise__> TOGETHER SCIENCE WILL UNLOCK THIS MYSTERY, & ALL OTHER MYSTERIES AFTER IT
21:15:42 <oerjan> (== converts char back to int, preserving sign, so (char)(-1) is actually compared as (int)(-1)
21:15:46 <oerjan> )
21:15:54 <alise__> and
21:15:56 <alise__> ?
21:16:03 <alise__> gcc even tells me the comparison can't be true
21:16:06 <oerjan> to EOF, which is also (int)(-1)
21:16:09 <alise__> oerjan: clever, though
21:16:13 <alise__> maybe i should make it signed
21:16:17 <alise__> wait
21:16:19 <alise__> maybe ,[.,] doesn't work
21:16:22 <alise__> i only tested it with bf1
21:16:25 <alise__> then made it unsigned
21:16:48 <oerjan> !c printf("%d", (char)(-1) == (int)(-1))
21:16:50 <EgoBot> 1
21:16:54 <alise__> is char defined to be signed, or undefined either way?
21:16:56 <oerjan> !c printf("%d", (unsigned char)(-1) == (int)(-1))
21:16:57 <EgoBot> 0
21:17:05 <alise__> heh with char the warning disappears
21:17:12 * Sgeo_ is afraid that part of the reason he wants N1 is to show off and counter the iPhone stuff
21:17:22 <alise__> Sgeo_: so what
21:17:25 <Sgeo_> *might be
21:17:33 <fizzie> Of course it disappears; if tape[tp] is signed, it can never be == -1, while if it's signed, it can.
21:17:49 <alise__> yes
21:17:50 <alise__> but I mean
21:17:52 <alise__> i didn't even realise
21:17:55 <alise__> that ,[.,] was broken :)
21:17:59 <alise__> because of that
21:18:10 <alise__> so is char defined to be signed? iirc i read that it was undefined
21:18:24 <fizzie> Implementation-defined, isn't it? Can't quite recall.
21:19:32 <oerjan> i vaguely recall it's implementation-defined
21:19:59 <fizzie> Maybe you should just do the input part right (something like "t = getchar(); tape[tp] = (t == EOF ? 0 : t);" with an int t); if you map the 257 possible return values (-1, 0, .., 255) of getchar() into a type that can hold 256 values, you'll undoubtedly have problems distinguishing two of them.
21:20:13 <alise__> fizzie: But that is slower.
21:20:25 <alise__> in the incredibly common case that t != EOF
21:20:34 <fizzie> Why would it be slower than writing a bogus value to tape[tp], then testing?
21:20:48 <alise__> when == EOF, it's the same
21:20:49 <alise__> but
21:20:51 <alise__> input: if ((tape[tp] = getchar()) == EOF) tape[tp] = 0; NEXT;
21:20:55 <alise__> with yours
21:21:00 <alise__> we have to set t and then set tape[tp]
21:21:05 <alise__> with ours, it's only one assignment
21:21:08 <alise__> *mine
21:21:26 <fizzie> The compiler is not going to start sticking t into memory somewhere.
21:21:40 <fizzie> You can't really count the =s and say "this is slower, it has more of 'em".
21:22:03 <alise__> Okay, fine. :P
21:22:18 <fizzie> Though you might want to put a { int t = getchar(); ... } block around to make sure t's scope is so short as possible to help it a bit.
21:22:31 <alise__> What's wrong with just making the tape signed, though?
21:22:43 <olsner> implementation-defined, it varies between compilers
21:22:47 <fizzie> You'll think that the character 255 is EOF in that case.,
21:22:53 <alise__> We're already squeezing 257 values into 256
21:22:56 <alise__> because we're using 0 as \0 and EOF
21:23:04 <alise__> fizzie: well, good bound
21:23:05 <alise__> *point
21:25:38 <alise__> this parser still confuses me to no end
21:31:06 <alise__> wtf? i know there aren't unbalanced brackets in this program...
21:31:13 <alise__> oh it is that problem again.
21:35:59 <alise__> woot
21:36:10 <alise__> recursive parser, though ugly, cut time from 15.152s to 14.552s
21:36:15 <alise__> comex: I'll try your pointer now
21:36:30 <Sgeo_> What if I'm mostly getting the Nexus One because it looks sexier than the iPhone? :/
21:37:21 <Sgeo_> This almost reminds me of Linux -- and I did end up switching back to Windows
21:37:34 <comex> your cpu sucks :p
21:38:29 <alise__> comex: yes; and my compiler
21:38:34 <alise__> it's only 4.3.3
21:38:44 <alise__> comex: using pointer increases from 14.552 to 16.357
21:42:19 <alise__> comex: can i send you bf[89].c so you can test yourself?
21:43:40 <alise__> eh
21:43:45 <alise__> anyone want to try it?
21:43:51 <alise__> http://sprunge.us/JTZe bf8.c
21:43:53 <alise__> http://sprunge.us/KZMR bf9.c
21:43:55 <alise__> compile with:
21:44:03 <alise__> gcc -O3 -march=<your architecture> -fwhole-program -fomit-frame-pointer
21:44:05 <alise__> then strip -s the resulting binary
21:44:06 <alise__> then
21:44:12 <alise__> ./bf8 >/dev/null; time ./bf8 >/dev/null
21:44:12 <Deewiant> -march=native
21:44:15 <alise__> ./bf9 >/dev/null; time ./bf9 >/dev/null
21:44:17 <alise__> Deewiant: also that
21:44:20 <alise__> ...and report the timings to me
21:44:32 <alise__> Deewiant need not apply as his computer runs everything in infinitesimal time
21:44:33 <alise__> :-D
21:45:42 <alise__> although, you know, he can if he wants.
21:45:52 <comex> 4.3.3?
21:45:55 <comex> I thought you were using clang
21:45:59 <alise__> also doing it with clang may be worthwhile
21:46:01 <alise__> comex: no; I don't have clang
21:46:07 <alise__> comex: do the timings plox :P
21:46:11 <comex> k
21:46:13 <alise__> i can't believe it is faster for you
21:46:22 <fizzie> I can't believe it's not butter.
21:49:09 <Deewiant> 4.95 and 6.41 using gcc (GCC) 4.3.0 20080305 (alpha-testing) mingw-20080502
21:49:24 <alise__> So bf9 is slower, yes?
21:49:29 <Deewiant> Yes
21:49:38 <comex> with gcc, bf9 is slightly slower
21:49:41 <alise__> Well, it's Windows, so I'm inclined to almost entirely ignore the data point, but it supports my rejection of comex's findings.
21:49:41 <comex> with clang, bf9 is slightly faster
21:49:46 <alise__> Right.
21:49:53 <comex> neither of them give me as much of a result; .05 sec both ways
21:49:59 <comex> however, clang is *much* faster than gcc
21:50:01 <alise__> For me, 14.552s vs 16.357s is not "slightly".
21:50:07 <alise__> So I will stick to array access.
21:50:14 <comex> 11ish seconds vs 7 seconds
21:50:16 <alise__> comex: Yes, well, I'm on an old version of Ubuntu.
21:50:20 <comex> I'm on OSX
21:50:20 <alise__> I really don't want to compile LLVM & clang.
21:50:24 <alise__> Too lazy.
21:50:25 <alise__> So.
21:50:27 <comex> ther'es no package for it?
21:50:43 <alise__> Not in 9.04...
21:50:51 <alise__> It wasn't even released then.
21:51:18 <comex> eh, okay
21:51:22 <comex> clang is pretty cool in general though :p
21:51:28 <fizzie> What's this mandelbrot.h file? (Haven't been following.)
21:51:46 <Deewiant> fizzie: http://pastie.org/924867.txt?key=y1tsv0fos2dcg2ku9rkqw
21:52:04 <alise__> Gah, and I just started to paste it, too.
21:53:36 <alise__> If I have T a[], and and v = (long)(a[0] + 1), then a[v] should = a[1], right?
21:53:41 <alise__> It's that silly 1-not-meaning-1 thing, isn't it?
21:53:47 <alise__> I mean, that is the definition of array dereferencing.
21:53:51 <alise__> So, I wonder, why it isn't working...
21:54:01 <Deewiant> a[0] + 1 is not *(&a[0] + 1)
21:54:11 <alise__> Oh, I see what I did wrong
21:54:19 <alise__> Deewiant: It's not actually a[0] in the code
21:54:25 <alise__> Complicated :P
21:54:27 <alise__> But I figured it out
21:54:33 <Deewiant> Regardless, adding one to a[0] does not, in general, give a[1]
21:54:35 -!- Oranjer has joined.
21:54:50 <alise__> Well, "in general" here it's worked perfectly
21:55:34 <fizzie> Adding one to a[0]'s address might work; I'm having hard time believing adding one to a[0]'s value will yield a[1] unless you've set up a very specifically.
21:55:41 <Deewiant> I think you're confused or your code does not represent your actual code
21:55:43 <alise__> Yes, yes, yes, shush :P
21:55:46 <alise__> It doesn't
21:55:48 <alise__> I was just being stupid
21:55:58 <alise__> It was actually &a[0] because it was a pointer to a variable which happens to be in the array
21:55:59 <alise__> So nyah
21:56:48 <fizzie> clang on bf8.c: http://pastebin.com/krFjTXma -- it seems I really should get a newer clang.
21:56:59 <alise__> http://pastie.org/924983.txt?key=nksyxpkqzwqs6fwwvmmppg
21:57:04 <alise__> What a fucking ridiculous speedup
21:57:09 <alise__> Why on earth does that make more than a tiny amount of difference
21:57:13 <alise__> I hate you, GCC
21:57:54 <alise__> Seriously, it's over .5s faster just because it avoids some ip++s
21:58:03 <alise__> And it even pays some +1s for that at the start
21:58:24 <alise__> comex: I bet if you apply that diff and do it with clang the difference is nil...
21:58:28 <fizzie> As for gcc, 10.4s for bf8, 11.35s for bf9.
21:58:57 <alise__> The http://pastie.org/924983.txt?key=nksyxpkqzwqs6fwwvmmppg bf9 or the pointer-not-array bf9?
21:59:08 <fizzie> The one you pasted when asking for timings.
21:59:10 <alise__> If the latter, just delete it; the former is the proper bf9 because the latter didn't work out so well.
21:59:23 <alise__> There's a nice olde-style diff, if you like that kind of thing, in the pastie, from bf8 :P
21:59:27 <fizzie> http://sprunge.us/JTZe one
21:59:41 <Deewiant> JTZe is bf8, not bf9
21:59:52 <fizzie> Oh, right. Well, the one next to it.
21:59:55 <fizzie> KZMR.
22:00:10 <fizzie> Gnblblblb qweeb zkxvfs speaking in tongues.
22:00:32 <alise__> I'm surprised I've been able to get such good performance out of very little code.
22:01:51 <alise__> Anyway, http://sprunge.us/JTZe + diff in http://pastie.org/924983.txt?key=nksyxpkqzwqs6fwwvmmppg = bf9 that I'm curious as to the performance of.
22:01:57 <alise__> Mostly with clang, comex, ahem.
22:06:20 <comex> yeah, I'm impressed at the simplicity
22:07:06 <Deewiant> Well, op prog[5242880] :-P
22:07:12 -!- ze_german has joined.
22:07:58 <alise__> Deewiant: Well, that's just part of the whole file-loading malarkey, which is really not the most important or difficult part of brainfuck implementation.
22:08:16 <Deewiant> True enough
22:08:32 <alise__> Deewiant: I'd complain more about the fixed tape size.
22:08:46 <comex> alise__: that patch increases performance with clang by 1s
22:08:48 <alise__> I don't think the code to handle segfault-means-realloc should be too terribly difficult.
22:08:54 <alise__> comex: lol
22:08:55 <Deewiant> alise__: But isn't that defined in BF
22:09:01 <alise__> comex: isn't it hilarious
22:09:01 <Deewiant> 30000 or whatever.
22:09:13 <comex> 7s -> 6s ish
22:09:19 <alise__> Deewiant: No, not defined, just in one of the original implementations. The original compiler had significantly fewer cells, iirc.
22:09:23 <alise__> comex: it's like... barely anything
22:09:30 <alise__> but it has such an effect
22:09:38 <Deewiant> Why is s a char**
22:10:01 <alise__> because i recurse to do loops
22:10:04 <alise__> and it advances through the string
22:10:17 <alise__> please, rewrite it without the extra star, I'd love that; I hate pointers-to-pointers
22:10:19 <Deewiant> Ah
22:10:24 <comex> maybe it affects some random register allocation
22:10:27 <alise__> I'm not dropping the recursion, though; it came out quite a bit faster this way.
22:10:40 <alise__> comex: it's better, though, not just some random hack, because it /is/ objectively doing less things
22:10:46 <comex> yes
22:10:51 <alise__> $ time ../bf_compet/bff4 <mandelbrot.b >/dev/null
22:10:52 <alise__> real0m18.026s
22:10:52 <alise__> user0m17.865s
22:10:52 <alise__> sys0m0.040s
22:10:54 <alise__> HAHAHAHAHAHAA YOU LOSE
22:11:06 <comex> :]
22:11:30 <alise__> Mind, I won't beat it in the general case until I do linear loop optimisation.
22:12:55 * alise__ tries the self-interp!self-interp!hi123 combo
22:13:28 <alise__> comex: I wish I could get rid of the setup part of interp
22:13:32 <alise__> it's such an ugly way to do it
22:17:32 <alise__> I'm worried I may be overfitting for mandelbrot.
22:17:47 <alise__> Well, maybe I just need linear loops.
22:17:54 <alise__> I don't think I have any mandelbrot-ishly-specific optimisations.
22:21:40 <alise__> oh lol
22:21:41 <alise__> it was just waiting for input
22:26:12 <alise__> yeah i actually beat bff4lnr
22:32:11 <alise__> brb
22:36:04 <Sgeo_> Why are there more games for iPhone :(
22:59:30 <alise__> iphone is more popular
23:00:07 <alise__> an iphone is like windows, android is like linux, except android isn't as fiddly as linux :P
23:02:37 <alise__> Anyone have any idea how to write an unordered pair {,} A type such that you can write {,} (bool,A) => (A,A) but not {,} A => (A,A)
23:02:42 <alise__> i.e. it preserves unorderedness
23:04:09 <oerjan> please rephrase that mess
23:06:02 <oerjan> if the first one is an unordered pair of elements of type (bool,A), then i don't see how you can get an (A,A) from it unless the bools are different
23:06:46 <alise__> er, good point
23:06:49 <alise__> how was it a mess? :(
23:06:58 <alise__> {,} A is an unordered pair of two As
23:07:11 <oerjan> well it confused me
23:07:24 <oerjan> _clearly_ it must then be a mess
23:07:46 <pineapple> hang on... what are you tryuing t do?
23:08:09 <alise__> oerjan: I cannot rephrase that bool example to get it working properly...
23:08:09 <alise__> (T : {,} (bool,A)) /\ (exists x y, fst x =/= fst y /\ x in T /\ y in T)
23:08:12 <alise__> the problem with that is - constructively -
23:08:16 <alise__> exists x y hands us the two values on a platter
23:08:19 <alise__> which is not really the point at all
23:08:21 <alise__> but, it works
23:08:32 <alise__> so I guess I just want {,} A such that we cannot write {,} A => (A,A) and similar
23:10:10 <alise__> http://lifthrasiir.jottit.com/esotope-bfc_comparison ;; I want to do "Simple loop detection"; I don't think I want to do "Pointer propagation" -- too expensive on the whole
23:10:11 * oerjan knows nothing about that
23:10:42 <pineapple> alise__: i'm not sure i understand
23:10:51 <alise__> oh they're unrelated
23:11:01 <alise__> pineapple: hmm do you know anything about type theory? or at least haskell
23:11:07 <alise__> if not it's hard to explain...
23:11:12 <pineapple> assume i don't
23:11:20 <pineapple> "unordered pair"?
23:11:33 <alise__> um... your regular tuple of two values, except unordered
23:11:42 <alise__> think of a two-element set -- you are familiar with basic set theory, right?
23:12:00 <pineapple> it's been a hwile, but yeah
23:12:16 <alise__> anyway, let's think about it as two-element sets
23:12:17 <alise__> we have
23:12:22 <alise__> intro(x,y) := {x,y}
23:12:32 <alise__> so we have a function that takes two values and returns an unordered pair of those two values
23:12:42 <alise__> but we don't have (function taking a function here)
23:12:48 <pineapple> which side of that is the unordered pair?
23:12:53 <alise__> the right hand side
23:12:54 <pineapple> ok
23:13:03 <alise__> we do intro(3,2) and get {2,3}, we do intro(2,3) and get {2,3}
23:13:07 <alise__> obviously this function is valid.
23:13:11 <alise__> but we do not have
23:13:11 <pineapple> yeah, ok
23:13:15 <alise__> exit(F,{x,y}) := F(x,y)
23:13:20 <alise__> because we cannot pick which value is x, and which value is y
23:13:28 <alise__> it matters, because F can distinguish its two arguments
23:13:51 <pineapple> creating the unorderd pair is a one way "move", because it can't be reversed
23:13:56 <alise__> right
23:14:23 <alise__> I'm trying to come up with an analogous type in type theory -- basically a functional language's type system but more abstracted
23:14:48 <alise__> perhaps
23:14:49 <alise__> {,} A := A x A => Bool
23:15:02 <pineapple> {,} A ???
23:16:04 -!- 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).
23:16:16 <pineapple> i don't understand the "new" notation
23:19:16 -!- alise__ has quit (Ping timeout: 258 seconds).
23:20:03 -!- alise has joined.
23:20:10 <alise> Sorry; what did I last say?
23:20:31 <alise> ugh; ages ago
23:20:38 <alise> pineapple: I am just using {,}A to denote the type of an unordered pair of As
23:20:46 -!- tombom_ has quit (Quit: Leaving).
23:20:49 <alise> i.e., intro(X,Y) has-type {,}A where X and Y have-type A
23:20:51 <Sgeo_> <alise__> {,} A := A x A => Bool
23:21:04 -!- dbc has quit (Quit: Seeeeeya).
23:21:28 <alise> pineapple: http://pastie.org/925078.txt?key=s1xvjdrz0hakx4spiqbiq
23:21:35 -!- dbc has joined.
23:21:46 <alise> A x A is an ordered tuple of As
23:22:26 <alise> tbh it helps to grasp how type theory, computation and logic intertwine to understand all of this...
23:22:32 <alise> and that requires a good knowledge of type theory
23:23:31 * alise starts work on bf10.c
23:23:35 <pineapple> you do know that i struggle with pointers, right?
23:23:58 <alise> pineapple: actually this is far more theoretical and mathematical than pointers. so that is not /necessarily/ an impairment
23:24:38 * Sgeo_ struggles with how magical & types seem
23:24:44 <pineapple> my point is that i haven't worked out how to get my head around them
23:24:48 * alise pulls an AnMaster, and reads bff4's source to find out how to do linear loops nicely
23:24:49 <Sgeo_> Well, not really badly struggle, but it's strange
23:24:52 <alise> Sgeo_: & types?
23:25:02 <Sgeo_> int& some_ref_type;
23:25:05 <alise> pineapple: have you watched Pointer Fun with Binky
23:25:10 <pineapple> no?
23:25:14 <Sgeo_> I like pointers. They're sensible.
23:25:16 <alise> http://www.youtube.com/watch?v=i49_SNt4yfk
23:25:19 <alise> pineapple: become enlightened
23:25:22 <Sgeo_> And non-magical
23:25:38 <alise> (it's actually a really good explanation!)
23:25:38 <pineapple> i'm about to (at some point) read chapter 5 of K&R though
23:25:49 <pineapple> i get the theory
23:25:52 <alise> pointer fun with binky. you will be enlightened forevermore
23:26:08 <pineapple> but... finding the syntax for what i want to do feels like pot luck
23:26:34 <alise> basically... here's a good intuition to develop:
23:26:47 <alise> if only I (this scope; mostly, this function) will want to change this, use a value
23:27:12 <alise> if I want someone else to change the individual items in this compound value (structure, array, pointer, etc), but not the compound value as a whole, use one *
23:27:20 <pineapple> ugh... C++?
23:27:26 <alise> if Iw ant someone else to be able to change the individual items /and/ the whole value in this compound, use two **s
23:27:28 <alise> *if I want
23:27:37 <alise> I don't want ***.
23:27:42 <alise> pineapple: there is your intuition ^
23:28:04 <pineapple> does *** ever have a use?
23:28:19 <pineapple> and... how much of this vid is relevant to C?
23:29:58 <alise> pineapple: the whole vid is C
23:30:00 <alise> none of it is C++
23:30:09 <Sgeo_> Anything that doesn't involve, say, int&, is probably relevant. (something& is revevant thoug)
23:30:19 <Sgeo_> erm, &something
23:30:22 <alise> pineapple: *** probably has /some/ use, but if you think it does, unless you're really experienced with pointers -- and so already /know/ what uses it has -- you're wrong; and you don't need it.
23:30:27 <alise> *** is almost always really bad practice.
23:30:36 <alise> It should be exceedingly rare; I wouldn't worry about it. If you end up doing ***, rethink.
23:30:45 <Sgeo_> alise, our professor, without explanation, had a function take an argument *&
23:30:51 <Sgeo_> Took me a bit to work it out
23:30:52 <alise> Ignore Sgeo_; I've seen the vid and it's not C++ at all :P
23:30:55 <alise> Sgeo_: lol
23:31:00 <Sgeo_> I don't think anyone else worked it out
23:31:05 <alise> Sgeo_: as we all know that is the same as taking a value argument!
23:31:07 <alise> ...right?
23:31:10 <alise> :-)
23:32:17 <alise> The linear loop code in http://mazonka.com/brainf/bff4.c is not very helpful at all...
23:33:51 <alise> I think if( o[i].c == '[' && o[i].igo == i+1 && o[i].shift==0 && o[i].off <= 0 )is the magic bit...
23:33:53 <alise> Or maybe consume.
23:34:46 <pineapple> alise: the new keyword is C ?
23:34:59 <alise> ?!
23:35:02 <alise> Screenshot?
23:35:05 <alise> oh
23:35:07 <alise> this is a C++ version
23:35:12 <pineapple> ...
23:35:12 <alise> forget every single thing you heard
23:35:16 <Sgeo_> LOL
23:35:18 <alise> and watch this http://www.youtube.com/watch?v=r4-9Mh3761E&feature=related
23:35:18 <alise> XD
23:35:20 <alise> sorry :D
23:35:20 <pineapple> thanks honey
23:35:29 <alise> WIPE YOUR MIND
23:35:30 <alise> LA LA LA LA
23:35:47 <Sgeo_> alise, unless it goes over reference types and not pointers, why bother wiping your mind?
23:35:56 <alise> because it's probably stupid
23:35:58 <Sgeo_> Although new instead of malloc could be hurtful
23:36:57 * pineapple throws a cucumber at alise
23:37:10 <alise> YOUR MOM
23:37:17 <pineapple> ?
23:37:59 <alise> I am merely deflecting your blows
23:41:16 <pineapple> i found the C version
23:41:51 -!- alise_ has joined.
23:41:58 <alise_> hey comex
23:42:41 -!- Rugxulo has joined.
23:43:04 <alise_> Rugxulo: wow i almost forgot about you
23:43:19 <Rugxulo> that's no surprise, I'm nobody ;-)
23:43:47 -!- alise has quit (Ping timeout: 258 seconds).
23:43:58 <Rugxulo> BTW, if anybody cares, I updated the tiny BEFI.COM, fixed a bug (negmod.bef), now only 1014 bytes
23:44:38 <alise_> You'll be glad to know I'm doing my bit to combat bloated and slow software by writing a very small, very fast brainfuck interpreter!
23:44:47 <Rugxulo> what language?
23:44:53 <alise_> C
23:44:59 <Rugxulo> using GCC? ;-)
23:45:09 <alise_> I do use computed gotos, but that makes things faster. It works with clang too.
23:45:26 <alise_> Apart from the computed gotos -- vital to its speed -- it's standard C.
23:45:26 <Rugxulo> yeah, Clang is getting lots of press these days, self-hosting, ClangBSD in testing, etc.
23:45:38 <alise_> It's much faster with clang because gcc does really stupid things to it.
23:45:43 <Rugxulo> it's just that GCC isn't exactly super optimal in output size
23:45:51 <Rugxulo> (not that any compiler is)
23:45:56 <alise_> It's bloated up marvellously for its first day of development -- bf1.c compiled to 19K when stripped; bf9, 27K.
23:46:19 <pineapple> alise_: goto is not evil
23:46:21 <Rugxulo> BTW, here's a modified benchmark for someone to test:
23:46:23 <Rugxulo> >91+:*-:0`#@ #._v
23:46:23 <Rugxulo> ^ <
23:46:34 <alise_> Mind, bf1 is 81 lines and bf9 is 97 lines, so the actual code isn't bloating much; plus, the former takes ~40s to run mandelbrot.b, the latter something like 13s
23:46:43 <alise_> pineapple: Did I ever say it was?
23:46:43 <pineapple> Rugxulo: -Os ?
23:46:50 <Rugxulo> N.B. for some reason, it's much slower on my P4 and AMD64 (but much faster on P1), probably self-modifying code
23:47:01 <alise_> Rugxulo: -Os doesn't really help size at all here
23:47:05 <pineapple> alise_: no... but that seems to be the "default" answer
23:47:06 <alise_> -O3 and stripping produce an executable just as small
23:47:06 <Rugxulo> -Os isn't bad anymore, but it's not perfect either
23:47:13 <alise_> I dunno about clang's output size, but it is much faster
23:47:17 <alise_> pineapple: lol :P
23:47:20 <pineapple> clang?
23:47:25 <alise_> pineapple: computed gotos are non-standard
23:47:26 <alise_> is the point
23:47:27 <alise_> gotos aren't
23:47:35 <alise_> clang is a C compiler that's better than gcc.
23:47:36 <pineapple> computed goto ?
23:47:49 <alise_> computed goto lets you make pointers to goto labels then do
23:47:50 <alise_> goto *ptr;
23:47:51 <Rugxulo> Clang is considered "more modern" (whatever that means)
23:48:04 <Rugxulo> but GCC supports more targets and languages
23:48:13 <alise_> Clang is the apple-funded -- but totally open source and independent -- ultra-optimising, helpful-error-spewing, actually-well-designed-unlike-GCC C compiler.
23:48:15 <Rugxulo> (but is slow, admittedly)
23:48:15 <alise_> Rugxulo: fallacy
23:48:28 <alise_> Clang supports C/C++/Objective-C (admittedly, C++ not so well); and LLVM has many non-Clang compilers
23:48:44 <Rugxulo> C++ has supposedly improved a lot, it can self-host now (itself being written in C++)
23:48:44 <alise_> GCC is like a badly-implemented and badly-specified half of LLVM plus something worse than Clang
23:48:58 <Rugxulo> GCC 4.5.0 was just released, now with plugin support
23:48:59 <alise_> all apps in mac os x 10.6 are compiled with clang...
23:49:04 <Rugxulo> e.g. DragonEgg
23:49:11 <alise_> whoop de doo
23:49:28 <alise_> anyway i'm trying to beat the current bf world champion of speed... mazonka's bff4lnr
23:49:42 <alise_> i think i do already, but I'm implementing the same linear loop optimisation just to clinch it
23:49:48 <Rugxulo> I also recompiled the standard bef 2.2.1 bef.c with GCC 4.4.2 -march=pentium, but it was like twice as slow as -mtune=pentium4 (even on a P1)
23:49:52 <alise_> as a bonus my code is a lot shorter
23:49:54 <Rugxulo> bah, optimization is so tricky :-(
23:50:11 <alise_> admittedly I need to add some code to open source files and stuff
23:50:13 <alise_> but that's easy
23:50:16 <alise_> and i need a tape-expander
23:50:21 <alise_> (hook into segfault, make that grow the tape)
23:50:29 <alise_> (either that or mmap a huge amount and rely on overcommitting)
23:50:33 <alise_> (right now my tape is fixed-size)
23:50:47 <Rugxulo> so is your hard drive! ;-)
23:51:13 <Rugxulo> dumb question, but how are you testing the speed?
23:51:28 <alise_> my hard drive isn't 65536 bytes long though.
23:51:43 <Rugxulo> no, but it's a fixed size, so basically I meant "don't sweat it too much" ;-)
23:51:55 <alise_> my impl can never be truly tc because c pointers cannot be infinite
23:52:03 <alise_> Rugxulo: yes but you need an arbitrary growing type lest you allocate 2gb every time someone runs it
23:52:09 <alise_> and besides the universe is fixed-size too, but that doesn't...matter
23:52:15 <alise_> testing speed, I have it hardcoded to parse & run mandelbrot.b
23:52:20 <alise_> which renders a pretty ASCII art mandelbrot; slowly.
23:52:21 <Rugxulo> the universe is expanding (or so they say)
23:52:29 <alise_> it's still finit.
23:52:31 <alise_> *finite
23:52:44 <Rugxulo> dunno how they claim to know that anyways ;-)
23:53:04 <alise_> it's called physics and you can't dismiss it with a wink
23:53:14 <Rugxulo> BTW, there's "mandel.bf" (Befunge) also ;-)
23:53:19 <fizzie> Gads, I hate computers. I have been getting suspicious filesystem corruptions on the system SSD, so since the manufacturer has a newer firmware (1.5 vs. 1.42) I download the updater ISO and boot.
23:53:20 <alise_> turns out we can measure shit and make models that predict the things that happen
23:53:21 <Rugxulo> sure I can *wink*
23:53:23 <fizzie> "[ERROR]Firmware download fail! Bye!" says the updater, reboots, and now BIOS or anything else no longer sees the disk.
23:53:32 <alise_> and they get incredibly detailed such that it is very likely that certain measurements imply certain things
23:53:48 <alise_> Rugxulo: just out of curiosity do you live in the US? and if so what state?
23:53:49 <Rugxulo> fizzie, still in warranty?
23:53:58 <Rugxulo> yes, I do
23:54:11 <Rugxulo> why? :-)
23:54:26 <alise_> I asked two questions
23:54:28 -!- Tritonio_GR has joined.
23:54:30 <fizzie> Rugxulo: Less than a month old, would assume so. Won't help much before Monday, I guess.
23:54:45 <Rugxulo> yes, but before I give out my precious SSN, I'd like to know why you are asking :-P
23:54:59 <pineapple> hhaha
23:55:06 <alise_> state you live in != SSN
23:55:09 <Rugxulo> fizzie, scroll back and see my modified benchmark, try testing it (if you can drag yourself away from your SSD woes)
23:55:18 <alise_> "I live in $state" is about as information-giving as "I live in Wales"
23:55:23 <alise_> or did you not realise that states are fucking huge?
23:55:34 <Rugxulo> not all of 'em, some (e.g. R.I.) are small
23:55:50 <Rugxulo> Quahog ftw! ;-)
23:55:57 <alise_> Oh, just tell me.
23:55:59 <pineapple> what's a recent version of clang? pacman is saying 2.6-6
23:56:13 <Rugxulo> alise, why oh why?
23:56:43 <alise_> Rugxulo: I just have a certain hunch. I'll tell you the hunch if you answer my question.
23:56:49 <alise_> pineapple: lemme look up the recentest
23:56:57 <Rugxulo> huh, mandel.bf is slow also (surprisingly)
23:57:00 <pineapple> Build Date : Tue 05 Jan 2010 22:52:09 GMT
23:57:01 -!- Rugxulo has left (?).
23:57:02 <alise_> 2.6 should be fine
23:57:16 <pineapple> ok... what was the hunch?
23:57:18 <alise_> the svn version is more up to date but that involves a bunch of boring compilation, so just go for it
23:57:18 -!- kar8nga has quit (Read error: Connection reset by peer).
23:57:48 <alise_> he hasn't answered my question yet :-)
23:57:58 <fizzie> (2.7 svn from March is not fine, it has problems with the labels-as-values thing.)
23:58:07 -!- Rugxulo has joined.
23:58:30 <fizzie> Rugxulo: My main workstation is the one that had the SSD as a system disk, so I don't have much to test it with right now. I'll check once I've finished dd'ing a backup on a spare HD so that I get a usable computer back.
23:58:37 <Rugxulo> sorry, optical mouse is quite squirrelly sometimes, it jumped to corner and closed my Opera :-(
23:58:42 <alise_> Rugxulo: going to answer? :-)
23:58:44 <pineapple> oops
23:58:59 <Rugxulo> fizzie, no pressure, didn't want to bug you, just found it weird that it's twice as slow on "modern" cpus :-P
23:59:19 <Rugxulo> alise, just guess, you have a 2% chance of being right ;-)
23:59:49 <alise_> Rugxulo: north or south?
2010-04-18
00:00:00 <Rugxulo> North America, yes :-)
00:00:04 <fizzie> Guessing the most peopled state has more than that probably.
00:00:26 <Rugxulo> I think CA is the most densely populated, but AK is bigger geographically
00:00:32 <alise_> Rugxulo: are you assuming that I'm going to come and rape you?
00:00:34 <fizzie> Does busybox's dd print out statistics on SIGUSR1 (like the usual one does), or does it just die?
00:00:35 <Rugxulo> or maybe TX is most populous with CA next, can't remember
00:00:37 <alise_> that would be rather unlikely
00:00:47 <Rugxulo> alise, depends on where *you* live ;-)
00:00:54 <fizzie> Never mind, it just finished.
00:01:05 -!- Oranjer has left (?).
00:01:35 <alise_> Rugxulo: England.
00:02:28 <Rugxulo> oh noes, it's Crystal "Windows 7 was my idea" !!!! RUN!
00:02:43 <alise_> Wow, you truly are infuriating to talk to.
00:02:58 <Rugxulo> alise, sorry ... you just never said why you wanted to know
00:03:15 <alise_> so I can track you down knowing only your state and stalk you forevermore
00:03:45 <alise_> The only flaw in my plot was that I hadn't counted on you not telling me!
00:03:50 -!- adam_d has quit (Ping timeout: 245 seconds).
00:03:51 <alise_> Foiled again!
00:04:25 <Rugxulo> all I know is "you have a theory", which I blindly guess had something to do with my offhand comment about "the universe is expanding (but how do they know that?)"
00:04:31 <oerjan> paranoid people are always foiled
00:04:56 <Rugxulo> use physics, it should tell you everything (even where I live), right? :-P
00:04:57 <Sgeo_> I think I've made myself too stalkable
00:05:11 <alise_> Sgeo_: indeed, Seth
00:05:27 <Sgeo_> Rugxulo, um, I guess if someone had perfect knowledge of the state of the universe.. And even then, it would stop being helpful eventually
00:06:14 <Sgeo_> Well, probably just need the Earth, or even just the US for a one-time snapshot
00:06:15 <Rugxulo> BTW, befi seems much faster on mandel than others (even ccbi)
00:06:27 <Sgeo_> Erm, US and whichever Freenode server you're connected to
00:07:31 -!- alise__ has joined.
00:08:41 <alise__> I hate this connection.
00:09:35 <Sgeo_> alise__, EDGE? =P
00:10:37 -!- alise_ has quit (Ping timeout: 258 seconds).
00:13:07 -!- alise__ has quit (Ping timeout: 240 seconds).
00:15:06 <Rugxulo> poor alise, poor nosy nosy alise ...
00:25:48 -!- alise__ has joined.
00:28:46 <Sgeo_> wb
00:29:28 <Rugxulo> http://www.pastebin.org/155564
00:29:36 <Rugxulo> ccbi speeds up, but befi slows down :-/
00:29:50 <Rugxulo> it's a cpu-specific problem, though
00:30:41 <Rugxulo> admittedly, I was targeting size over speed, so I don't majorly care, just curious ...
00:31:08 <Rugxulo> http://board.flatassembler.net/topic.php?t=10810
00:31:41 <fizzie> Rugxulo: Well, I got something booted, though now the rotated display works hellishly slowly. Anyway, the benchmark; is it just a loop instead of wrapping?
00:31:52 <fizzie> Rugxulo: Did you notice my boundary-tracking results re the earlier one?
00:32:06 <Rugxulo> results? no, don't recall that
00:32:17 <fizzie> See http://pastebin.com/xQFwEaUu
00:32:38 <Rugxulo> yes, it's just a manual loop instead of wrapping, which apparently causes something to bork on P4 and AMD64 (self-modifying code, perhaps? or maybe cache issues?)
00:33:05 <Rugxulo> and yet my P166 is like 30% faster, go figure
00:33:48 <Rugxulo> okay, so what exactly does -DBOUNDARY_TRACKING do??
00:35:33 <fizzie> The curious bit was non-LLVM gcc's slowness on -DPF_X=15 static playfield-size diminishment vs. -DBOUNDARY_TRACKING, where the only difference in the actual time-wasting part of the code is that in the "wrap" command at the edge, the subtract-from-IP value is a compile-time constant for -DPF_X=1, but a file-scope "static int pf_box_w" for -DBOUNDARY_TRACKING. Well, *32 or so that, actually, if we're speaking bytes.
00:36:32 <Rugxulo> what GCC?
00:36:48 <Rugxulo> 4.4.2 -march=pentium was loads slower (on a Pentium!) than -mtune=pentium4
00:36:55 <Rugxulo> (for original bef.c)
00:37:10 <Rugxulo> I'm talking like ten minutes slower (32 vs. 22, or something like that)
00:37:24 <fizzie> gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3, llvm-gcc (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build). I think these were plain -O3, could try -march=native or some-such.
00:37:25 <Rugxulo> must be a regression, as I don't think 3.4.4 had that problem
00:38:52 <fizzie> Oh, and what it generated for the wrapping opcode was http://pastebin.com/caKbRGzh -- where in the upper version .L281 is immediately followed by a jmp **%rax.
00:39:55 <Rugxulo> you're on Athlon64, right?
00:39:59 <fizzie> Yes.
00:40:24 <fizzie> That double-jump is a bit strange construct anyway.
00:40:43 <Rugxulo> so -DBOUNDARY_CHECKING is faster ... but that code looks much more complex than the other bit
00:40:52 <Rugxulo> it must be something else, it can't be that
00:40:57 <fizzie> Yes, but it doesn't have the very silly double-jump the other bit has.
00:41:08 <fizzie> jmp .foo; .foo: jmp *%rax.
00:41:45 <fizzie> I didn't diff the whole assembly; the C code didn't change very much, but of course the compiled thing might've changed a lot.
00:41:59 <Rugxulo> what GCC version, 4.4.3?
00:42:02 <fizzie> I wanted to try clang, but my version of it (2.7~svn20100317-0ubuntu1) has a bug on the &&label thing.
00:42:16 <fizzie> The same I mentioned just five minutes ago.
00:42:23 <Rugxulo> oops ;-)
00:42:38 <Rugxulo> try "-mtune=generic -O2"
00:42:45 <Rugxulo> (sometimes -O3 is worse)
00:42:54 <fizzie> I also shared the thing at http://git.zem.fi/ff
00:44:09 <fizzie> And in fact I think the current BOUNDARY_TRACKING is broken; it wraps wrong if the edge of the program has a #. (The bounding-box boundary's only one cell deep; should be two, like the fixed one around the playfield is.)
00:44:45 <fizzie> I haven't tested it with anything that'd actually p outside the program's bounding-box.
00:46:49 <Rugxulo> BTW, mandel.bf doesn't seem to work
00:48:07 <fizzie> With what?
00:48:13 <fizzie> Or just in general?
00:48:16 <Rugxulo> ff3
00:48:50 <fizzie> Right; I've only tested it with rot13, your benchmark, and Mycology's 93 part, which isn't very comprehensive.
00:49:43 <fizzie> Do you have something it works with, and can output a trace of executed instructions, and compiles well on Unixy things, and so on?
00:51:07 <Rugxulo> output a trace? not sure
00:51:18 <Rugxulo> but mandel.bf is an official example on Cat's Eyes' site
00:51:27 <Rugxulo> http://www.pastebin.org/155608
00:51:51 <Rugxulo> original bef.c should compile fine on *nix, esp. since Pressey is apparently such a FreeBSD fan
00:52:39 <fizzie> That's funny results too, with the ff3b case.
00:52:45 <Rugxulo> yes
00:53:10 <Rugxulo> a P4 is a strange animal
00:53:22 <Rugxulo> AMD64 usually isn't as braindead, but it has weird corner cases too
00:54:39 <Rugxulo> hmmm, bef 2.2.1 has "-s stack" to write stack contents to file, but even after Ctrl-C (half finished, it was slow), the file is still 26 MB! :-P
00:55:23 <fizzie> Hrm, I get "Unsupported instruction 'ÿ' (0xffffffff) (maybe not Befunge-93?)" from bef.c all the time on mandel.bf.
00:55:24 <Rugxulo> lots of "g" and "p" and multiplication in there, so maybe it does some wraparound or relies on undefined behavior
00:55:34 <Rugxulo> (sorry, wraparound as in integer overflow)
00:55:37 <Rugxulo> use -q
00:55:41 <Rugxulo> that'll shut it up ;-)
00:56:01 <Rugxulo> CCBI also works on it, if that helps
00:56:22 <fizzie> I think CCBI also had some sort of trace thing.
00:56:23 <Rugxulo> not sure what or if it supports for outputting to file, but it does let you -t (trace)
00:56:29 <fizzie> I guess I could get a binary.
00:56:40 <fizzie> Conference of Catholic Bishops of India
00:56:47 <fizzie> Always hard to google it. :p
00:57:02 <Rugxulo> http://users.tkk.fi/~mniemenm/files/befunge/interpreters/ccbi/ccbi-linux-x86-32.txz
00:57:10 <Rugxulo> heh
00:57:39 <Rugxulo> (needs p7zip to unpack, I can re-pack as .ZIP or .tar.gz and upload to RapidShare if you need it)
00:57:53 <alise__> lol.
00:58:05 <Rugxulo> actually, GNU tar supports .xz now, I think (not sure, never tried)
00:58:21 <fizzie> "tar Jxvf" worked just fine.
00:58:30 <fizzie> I think it does need external xz-utils instealld.
00:58:53 <fizzie> Hopefully ff3 and ccbi will diverge soon, there's quite many instructions to trace through otherwise.
00:58:55 <Rugxulo> why he didn't just pack as .7z is beyond me
01:01:15 <Rugxulo> oh, BTW, I think I increased the IF_X and IF_Y to 20 and 2, respectively, since I thought benchmark2.bef might need it (might explain the speed diff in ff3b)
01:01:30 <Rugxulo> anyways, I gotta jet, bbl eventually ;-)
01:02:08 -!- Rugxulo has quit (Quit: Rugxulo).
01:02:14 <fizzie> I guess you mean PF, not IF; but yes, at least the Y=2 it needs.
01:03:08 -!- Oranjer has joined.
01:05:27 <alise__> Boxes.
01:05:27 <alise__> Boxen.
01:05:27 <alise__> bf10.
01:05:31 <alise__> Must. Implement. Linear. Loops.
01:08:29 -!- augur has quit (Remote host closed the connection).
01:09:49 -!- augur has joined.
01:11:42 <alise__> annoyingly i don't think my parser architecture can support such an advanced optimisation by itself
01:11:44 <alise__> (augur) PARSER
01:11:45 -!- FireFly has quit (Quit: Leaving).
01:11:50 <alise__> that means you have to help me
01:11:52 <alise__> since it's PARSER-RELATED
01:12:02 <alise__> and you're ALMOST SORT OF related to PARSERS
01:13:17 <alise__> Thailand went through a bloodless coup while the President was out in the United States to address the United Nations. What do you think?
01:13:17 <alise__> [..]
01:13:18 <alise__> "This is all in accordance with Thailand's 'Whoever sits in the President's chair is the President' policy."
01:13:20 <alise__> http://www.theonion.com/articles/bloodless-thai-coup,15074/
01:13:21 <augur> :o
01:13:24 <augur> PARSERRRRRRS
01:13:32 <alise__> Best policy ever.
01:18:40 <fizzie> Rugxulo: in case you logread; strange about that mandel.bf; ccbi's trace of it has numbers like 7398752256 in stack. It might be depending on some particular wraparound; I get a differently broken output with -DSTACK_TYPE='unsigned int' (or signed/unsigned long) from ff3 than with the default 'int'.
01:25:33 <oerjan> clearly a complex program
01:28:27 <fizzie> Rugxulo: Okay, ff3 runs mandel.bf correctly if you compile it with -DPF_TYPE='signed char', or just 'char' on proper systems/compilers -- it seems to store numbers in range [-128, 127] to the playfield and expect to get them back as-is. (My PF_TYPE default is "unsigned char".)
01:28:38 <Sgeo_> alise__, I'm going to reveal to you what my dad's big idea was. I'm pretty sure something like it already exists, otherwise http://www.androidzoom.com/android_applications/shopping/shopsavvy_eai.html couldn't really exist
01:29:02 <fizzie> Rugxulo: I think that's a bit wrong; the Funge-98 specification says "Befunge-93 defines signed 32-bit stack cells and unsigned 8-bit Funge-Space cells."
01:29:03 <alise__> was that the big idea that would make him five millions?
01:29:08 <alise__> and millions and millions?
01:29:15 <fizzie> Rugxulo: Admittedly I have no clue where Befunge-93 specifies that; certainly not in the official spec.
01:29:42 <Sgeo_> It was the big idea that he wanted me to keep secret, don't remember if he thought it would make us rich
01:29:54 <oerjan> billions and billions
01:30:55 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
01:31:32 <oerjan> WELL YOU BLEW IT NOW
01:33:57 <alise__> Sgeo_: your dad sounds like one of the managers from thedailywtf
01:34:34 <fizzie> Rugxulo: If you want some mandel.bf times, http://pastebin.com/MA5RjDL3
01:34:44 <fizzie> Rugxulo: It doesn't quite work with -DBOUNDARY_TRACKING at the moment.
01:34:59 <fizzie> (And probably tighter boundaries wouldn't much help.)
01:36:58 <alise__> Ugh; this is gonna be really hard.
01:37:06 <alise__> I guess linear loops should be done after parsing.
01:37:26 <alise__> Oh, I can't.
01:37:30 <alise__> The length of the loops might change. Grr..
01:38:29 * Sgeo_ is starting to get upset at how there are certain apps for iPhone but not Android
01:38:47 <Sgeo_> Not just Robozzle
01:40:55 -!- oerjan has quit (Quit: Good night).
01:46:37 <Sgeo_> Apparently, the Nexus One screen doesn't look good in direct sunlight?
01:47:11 <alise__> Yes, I read about that. A lot of screens don't.
01:47:18 <alise__> Didn't you use one?
01:49:50 <Sgeo_> Not in direct sunlight really
01:50:25 -!- Mathnerd314 has joined.
01:53:26 <fizzie> Rugxulo: Not much difference there, http://pastebin.com/BqmeZXUq -- I don't think it wraps all that much.
01:58:43 <fizzie> (WW) RADEON(2): Direct rendering disabled
01:58:44 <fizzie> (II) RADEON(2): Render acceleration disabled
01:58:44 <fizzie> No great wonder the rotated display is now horribly slow.
02:01:02 -!- alise__ has quit (Ping timeout: 258 seconds).
02:06:31 -!- Asztal has quit (Ping timeout: 252 seconds).
02:12:53 -!- alise__ has joined.
02:24:35 * uorygl tries to remember why if you do 9999*9999 and add the left and right halves of the result, you get 9999.
02:24:50 <alise__> magic
02:25:48 <uorygl> Because that's the ones' complement square of negative zero? That doesn't sound like the answer I got last time.
02:26:15 <uorygl> Last time, it was in binary, not decimal.
02:26:49 -!- cheater3 has quit (Ping timeout: 246 seconds).
02:27:44 <uorygl> Last time, the answer was the difference of squares expression 9999^2 - 1^2 + 1.
02:28:29 -!- augur has quit (Ping timeout: 276 seconds).
02:31:59 -!- cheater2 has joined.
02:32:53 -!- Oranjer1 has joined.
02:36:09 -!- Oranjer has quit (Ping timeout: 264 seconds).
02:37:10 <alise__> Does anyone use the ASCII notation (Σn∈[0,∞] n/n!) for sum n=0 to infinity, n/n!? I guess it's not all that clear that n is an integer there.
02:37:54 <alise__> (Σ(0≤n≤∞) n/n!) would also work, although that is not as pretty.
02:47:02 <alise__> I didn't realise Spivak wrote AMS-LaTeX!
03:01:06 -!- Oranjer1 has changed nick to Oranjer.
03:09:02 <uorygl> My unintelligently designed notation: (Σ_n=0^∞ n/n!)
03:09:42 <uorygl> I think it's understood that you're not taking the sum over all nonnegative real numbers, especially since ! is only defined for integers.
03:09:56 <uorygl> But [0,∞), please.
03:13:44 <alise__> Pfft, you just don't appreciate infinity divided by the factorial of infinity.
03:14:06 <alise__> The problem with (Σ_n=0^∞ n/n!) is that, well, it's sort of unreadable compared to the two-dimensional notation.
03:17:21 -!- augur has joined.
03:17:29 -!- alise_ has joined.
03:20:46 -!- alise__ has quit (Ping timeout: 258 seconds).
03:21:41 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
03:23:47 -!- diofeher has joined.
03:24:45 <alise_> Hi diofeher; you new?
03:26:06 <diofeher> hi alise_
03:26:08 <diofeher> yes, i'm now
03:26:10 <diofeher> new*
03:26:23 <diofeher> i'm doing a brainfuck programming... to show my love to my girlfriend
03:26:25 <diofeher> haha
03:26:34 <diofeher> alise_: http://gist.github.com/369963
03:26:59 <alise_> o-kay
03:27:26 <diofeher> alise_: what are you programming here?
03:27:37 <alise_> magic unicorn babies
03:29:16 <diofeher> alise_: hahaha
03:29:21 <Sgeo_> Flash games, or iPhone games?
03:29:25 <diofeher> what do you all talk here?
03:29:52 <alise_> diofeher: magic
03:29:56 <alise_> & also flower-picking
03:30:01 <alise_> these are two things very important to us
03:30:24 <Sgeo_> Esoteric languages is the official topic. There's ususally talk of advanced computer science and math topics
03:31:05 <diofeher> understood alise :P
03:31:17 <diofeher> nice Sgeo_ ... advanced computer science seems nice to me
03:33:25 <alise_> mostly though it's just me being annoying
03:50:37 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
03:55:44 <Sgeo_> Someone suggested I make a Befunge wallpaper
03:55:47 <Sgeo_> live wallpaper
03:59:05 -!- alise_ has quit (Ping timeout: 258 seconds).
04:04:26 -!- ze_german has quit (Ping timeout: 246 seconds).
04:07:16 -!- augur has quit (Remote host closed the connection).
04:07:34 -!- augur has joined.
04:15:45 -!- calamari has joined.
04:20:56 -!- Mathnerd314 has joined.
04:24:03 -!- alise_ has joined.
04:32:53 -!- diofeher has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100401213457]).
04:35:28 -!- alise_ has quit (Remote host closed the connection).
04:50:27 -!- augur has quit (Remote host closed the connection).
04:50:45 -!- augur has joined.
04:52:08 -!- MizardX has quit (Ping timeout: 276 seconds).
05:08:38 -!- comex has quit (Quit: leaving).
05:08:45 -!- comex has joined.
05:24:55 <Sgeo_> "This free download includes the tutorial and 15 puzzles. To unlock all the puzzles and online features you can use the In-App-Purchase store within the game."
05:25:05 <Sgeo_> [The Robozzle iPhone app]
05:25:09 <Sgeo_> Is that some sort of sick joke?
05:25:49 <coppro> no
05:25:58 <Sgeo_> http://www.gamefaqs.com/mobile/iphone/home/994970.html
05:26:00 <coppro> welcome to Apple world
05:27:31 <Sgeo_> Suddenly, the variety of apps available on iPhone is a bit less of an incentive
05:28:58 <Sgeo_> I mean, it would make sense if the puzzles weren't all available for free online anyway...
05:29:12 <Sgeo_> Also, he claims that there is a solution store, and I don't see how that's even physically possible
05:29:23 <coppro> pikhq: ping?
05:32:19 <Sgeo_> Between that, and the fact that it's not implied anywhere else that most of the puzzles aren't free..
05:32:50 <coppro> at least you didn't pay for the app to find out that the puzzles cost more
05:33:16 * Sgeo_ might end up making his own Robozzle for Android, rather than rely on someone else who may end up charging for access to most of the puzzles
05:35:22 -!- augur has quit (Ping timeout: 265 seconds).
05:37:14 -!- coppro has quit (Remote host closed the connection).
05:39:20 <Sgeo_> http://robozzle.com/forums/thread.aspx?id=1917 me complaining loudly
05:46:01 <calamari> after seeing some complex interactions between enemies in supertux, it made mew wonder about creating some kind of platform game esolang
05:50:44 -!- calamari has quit (Quit: Leaving).
05:51:51 -!- coppro has joined.
06:01:40 * Sgeo_ wonders if the RoboZZle iPhone app might be against the TOS
06:01:48 <Sgeo_> It does, after all, interpret a language
06:07:05 <coppro> RoboZZle is TC, right?
06:07:50 <Sgeo_> Given the paint commands, yes
06:08:03 <Sgeo_> Another esotericer implemented Langton's Ant, which I think means TC
06:08:23 <Sgeo_> [given obvious memory issues ofc]
06:08:55 <coppro> hmm... actually, it's pretty trivial to show that it is
06:09:13 <coppro> if you have infinite program space and playing field, of course
06:10:19 <coppro> each column is a slot on the tape; the programming language is sufficiently powerful to distinguish between every case of a column and act accordingly
06:24:36 -!- coppro has quit (Remote host closed the connection).
06:35:15 -!- Oranjer has left (?).
06:37:04 -!- coppro has joined.
06:54:01 -!- augur has joined.
06:56:17 <augur> hayo
07:11:18 -!- Rugxulo has joined.
07:11:58 <Rugxulo> <Deewiant> I've always considered it [frame pointer] as more a tool for humans and don't understand why compilers use it by default
07:12:03 <Rugxulo> I don't think x86-64 does use it by default
07:12:30 <Rugxulo> but normally they avoid it on IA32 because it makes debugging impossible (plus using ESP reg instead uses more output byte space)
07:12:47 <Rugxulo> <alise__> -O3 -march=k8 -msse3 -fwhole-program
07:12:55 <Rugxulo> newer GCCs support "k8-sse3" target
07:13:03 <Deewiant> x86-64 doesn't, true
07:13:12 <Rugxulo> however, I've seen programs slow down a lot with -O3, so your mileage may vary
07:13:27 <Rugxulo> (even -march doesn't always help)
07:13:45 <Rugxulo> personally, I'd suggest "-mtune=generic", but that's just my opinion ...
07:14:54 <Rugxulo> <alise__> comex: gdb is worse than useless. usually :P
07:15:05 <Rugxulo> at one time there was somebody writing their own debugger for *BSD, not sure how far they've come
07:15:39 <Rugxulo> <comex> admittedly, my assembly was nonoptimal (it used two 'xchg' around each putchar) but that shouldn't make a huge difference; however, the code just slowed down a lot
07:15:49 <Rugxulo> XCHG has been slow since at least 586, maybe earlier
07:15:59 <Rugxulo> and it's (still?) always atomic, hence not pairable
07:16:27 -!- Halph has joined.
07:16:27 <Rugxulo> the only reason to use it nowadays (or ever, really) is for convenience or if you really want to "xchg eax,reg32" in a single byte ;-)
07:16:40 -!- coppro has quit (Ping timeout: 276 seconds).
07:16:41 -!- Halph has changed nick to coppro.
07:16:45 <Deewiant> Well, slow and slow
07:16:51 <Deewiant> It's faster than a multiplication :-P
07:16:57 <Quadrescence> Rugxulo: in a single bite you mean right????
07:17:06 <Rugxulo> no, I mean byte
07:17:16 <Quadrescence> no, you mean bite
07:17:20 <Quadrescence> like pizza rolls
07:17:45 <Deewiant> I think its speed is mostly equivalent to the three movs it'd take otherwise
07:17:49 <Rugxulo> 00000100 91 xchg eax,ecx
07:17:55 <Rugxulo> opcode = 91h
07:17:57 <Rugxulo> one byte
07:18:07 <Rugxulo> (sorry, 00000100 was the start address)
07:18:23 <Rugxulo> Deewiant, no
07:18:36 <Rugxulo> push/pop are pairable on original Pentium, xchg is not
07:18:46 <Deewiant> Well yes, if you do push/pop
07:18:47 <Rugxulo> mov is also pairable (being pretty much the most common instruction)
07:19:04 <Deewiant> But don't the movs depend on each other
07:19:11 <Rugxulo> sometimes, yes
07:19:51 <Rugxulo> newer cpus handle that okay, older ones have an AGI, which is still minuscule
07:20:41 <Rugxulo> push eax ; push ebx ; pop ebx ; pop eax = 1 + 1 cycles on 586, unlike xchg (3 or such, can't remember exactly)
07:20:53 <Rugxulo> it's really all these newer cpus that suck so bad that slow down old well-used optimizations :-(
07:21:03 <Rugxulo> P4, especially
07:21:11 <Rugxulo> though AMD64 ain't immune
07:21:12 <Deewiant> Forget about P4 :-P
07:22:19 <Rugxulo> no way, there's too many still out there
07:22:30 <Rugxulo> (I'm on one now, my other is sitting a few feet away disconnected)
07:22:34 <Rugxulo> (also my aunts have two!)
07:23:06 <Rugxulo> GCC is much better targeting P4 than 586 :-/
07:23:06 <Deewiant> According to Agner push tends to have a higher latency than xchg
07:23:22 <Rugxulo> on P4?
07:23:32 <Deewiant> Core 2 and i7
07:23:37 <Rugxulo> dunno about those
07:23:52 <Rugxulo> but I always read it was atomic, which meant it stalled everything
07:23:55 <Deewiant> Not on P4, apparently
07:24:01 <Rugxulo> implied "lock" or whatever
07:24:32 <Deewiant> I think it's only really slow if you swap with memory
07:24:40 <Deewiant> But if you between two registers it's not that bad
07:24:47 <Deewiant> +xchg
07:25:46 <augur> Deewiant: is that the sequence to xkcd?
07:26:04 <Deewiant> >_<
07:28:08 <Rugxulo> <alise> *** is almost always really bad practice.
07:28:17 <Rugxulo> so is "goto" (in theory) but in practice everybody uses it
07:28:25 <Rugxulo> cdecl ftw! ;-)
07:28:34 * Rugxulo admits to not knowing or liking much, though
07:28:41 <Rugxulo> s/liking/& C/
07:34:13 <Rugxulo> N.B. (fizzie) [ DR-DOS 7.03 ] P166 no MMX> runtime ff3 benchmk2.bef
07:34:14 <Rugxulo> 2147483596 44.34 seconds elapsed
07:34:40 <Rugxulo> note that this is the one that does ">v<^" instead of wrapping around to x=0 again
07:35:00 <Rugxulo> gcc-3.4.4 -s -O2 -march=i586 -fomit-frame-pointer
07:35:45 <Rugxulo> Thailand went through a bloodless coup while the President was out in the United States to address the United Nations. What do you think?
07:35:55 <Rugxulo> isn't he also a born U.S. citizen??
07:36:08 <Rugxulo> (oops, quoting alise)
07:37:16 <Rugxulo> huh, Conan moving to TBS, who knew?
07:38:11 <Rugxulo> <fizzie> Rugxulo: I think that's a bit wrong; the Funge-98 specification says "Befunge-93 defines signed 32-bit stack cells and unsigned 8-bit Funge-Space cells."
07:38:30 <Rugxulo> I'm pretty sure B93 was always intended to only be 7-bit ASCII, e.g. no support of other stuff
07:38:59 <Rugxulo> some very rare programs may try storing data in the fungespace instead of the stack, but that's not common
07:39:17 <Rugxulo> I think it was B98 that officially was 8-bit clean
07:39:46 <Rugxulo> hence, signed char (7-bit) vs. unsigned char (8-bit)
07:40:06 <Deewiant> With access to only two stack cells, it seems like it should be very common; maybe the programs just don't do much :-P
07:40:35 <Rugxulo> there really aren't that many examples out there, probably < 200
07:40:51 <Rugxulo> (okay, so that's a bit presumptuous, how the hell do I know??? but still, you get the idea ...)
07:41:09 <Rugxulo> anyways, 1993 was well before Unicode was popular
07:41:09 <Deewiant> Yeah, I know
07:41:56 <Rugxulo> "UTF-8 was first officially presented at the USENIX conference in San Diego, from January 25?29, 1993." -- Wikipedia
07:42:06 <Rugxulo> s/?/-/
07:42:22 <Deewiant> s/-/–/
07:42:26 <Rugxulo> (Wikipedia is also UTF-8 now ... what was it before??)
07:44:24 <Deewiant> ISO-8859-1 if the Wayback Machine is to be believed
07:51:01 <Rugxulo> guess I'll scram for now ...
07:51:04 -!- Rugxulo has quit (Quit: Rugxulo).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:56 -!- Gracenotes has quit (Remote host closed the connection).
08:21:19 -!- sebbu has quit (Ping timeout: 246 seconds).
08:23:26 -!- aschueler has quit (Read error: Operation timed out).
08:23:31 -!- aschueler has joined.
08:25:30 -!- HackEgo has quit (Ping timeout: 240 seconds).
08:25:34 -!- HackEgo has joined.
08:26:10 -!- EgoBot has quit (Ping timeout: 240 seconds).
08:26:14 -!- EgoBot has joined.
08:33:37 -!- Gracenotes has joined.
08:53:47 -!- iamcal has joined.
08:55:34 -!- lament has joined.
08:56:24 -!- olsner_ has joined.
08:57:05 -!- cal153 has quit (*.net *.split).
08:57:05 -!- olsner has quit (*.net *.split).
09:06:59 -!- augur has quit (Remote host closed the connection).
09:07:06 -!- augur has joined.
09:12:46 -!- sebbu has joined.
09:20:36 -!- MigoMipo has joined.
10:02:39 -!- mre has joined.
10:03:30 -!- mre has quit (Quit: I'll be back).
10:07:46 -!- lament has quit (Quit: lament).
10:16:52 -!- tombom has joined.
10:24:20 -!- kar8nga has joined.
10:41:53 -!- FireFly has joined.
10:44:07 -!- sebbu has quit (Ping timeout: 240 seconds).
10:46:13 -!- BeholdMyGlory has joined.
11:24:06 -!- Asztal has joined.
11:29:42 -!- sebbu has joined.
11:43:13 -!- oerjan has joined.
12:05:51 -!- ze_german has joined.
12:25:51 -!- Tritonio_GR has joined.
12:42:54 -!- MizardX has joined.
12:52:59 -!- diofeher has joined.
12:55:50 <diofeher> hey guys, brainfuck is compiled or interpreted?/
12:57:11 <olsner_> diofeher: yes :)
12:57:50 <olsner_> or, more explicitly: either, depending on whether you use a brainfuck compiler or a brainfuck interpreter to run it
12:58:01 <olsner_> and both do exist
13:01:17 <diofeher> yes, it I was thinking olsner_
13:01:35 <diofeher> but it seems very strange to me... do you know another language that can be interpreted and compiled at the same time?
13:02:36 <olsner_> almost every language can
13:03:48 <diofeher> all depends on compiler...?
13:09:22 <olsner_> actually, I'm pretty sure that *every* language can be both (unless it's a language that can't be either - e.g. because it's impossible to implement on a computer)... it just depends on what people like to build for it (interpreters or compilers), how easy it is to implement the compiler, and how important it is to have programs in the language run fast
13:09:56 <olsner_> i.e. not a property of the language itself, but rather a matter of what has been implemented
13:13:38 <diofeher> olsner_: oh, nice explanation... thanks :)
13:13:51 <diofeher> a new world opened in my mind when I discovered these languages
13:14:09 <diofeher> i never heard about turing machine before them
13:15:01 <olsner_> prepare to have your mind blown a few times then :)
13:15:07 <diofeher> hehe
13:15:25 <diofeher> olsner_: do you have any material to point me about cool stuff of computer science?
13:16:14 <fizzie> Forth and Lispy things are some examples that tend to have both compilers and interpreters written for them; even in the sense that people use both. (Things like C interpreters don't have that many users, I don't think, even though they exist.)
13:17:21 <fizzie> Though, come to think of it, they do commercially sell Ch, that C/C++ interpreter...
13:17:28 <olsner_> I've read plenty, but I don't remember where :) browsing around the esolang wiki, and reading all the wikipedia articles on computation, is probably a good start though
13:17:58 <olsner_> there's a huge neural-network simulation package based around a C++ interpreter
13:18:34 -!- oerjan has quit (Quit: leaving).
13:18:39 <olsner_> (and it doesn't even try to be safe, like many other interpreters, a null dereference in the interpreted code is just a SIGSEGV)
13:20:01 <Gregor> I've heard that people use Ch to expedite the compile/run/debug cycle.
13:22:23 <diofeher> nice
13:22:33 <diofeher> thanks olsner_
13:23:24 <fizzie> Can't quite think of a compiled language that I'd be sure doesn't have an interpreter. Java's got that Beanshell thing, apparently there are some Fortran interpreters... the other way around seems more common; I'm sure there are several marginal scripting languages no-one has bothered to write a compiler for.
13:23:36 <Gregor> Also, the border between interpreters and compilers is very fuzzy.
13:24:15 <Gregor> Java is generally JITted, so some of it is compiled and some of it is interpreted (using some definition of "compiled"). Many languages are "compiled" into bytecode, but then that bytecode is "interpreted".
13:24:52 <Gregor> Often the compilation into bytecode is transparent, but the process is certainly still there.
13:29:02 <diofeher> Gregor: so if my teacher says "java is compiled", i can point and say "you're wrong, java can be interpreted too"
13:29:33 <Gregor> I wouldn't recommend it :P
13:30:40 <fizzie> Me neither; I pointed out an equally nit-picky thing about floating-point once, and it led to wasted 5 minutes of an argument that helped no-one.
13:31:03 <pineapple> depends on if the teacher is a dick or not
13:31:11 <Gregor> Java, the language, can certainly go either way. Java, the platform, is a compiler for Java and JITting interpreter for JVM bytecode.
13:31:21 <diofeher> hahahaha
13:32:34 <olsner_> if you really want to, you can ask another student to point it out, then it's not your fault for holding up the class and you can still get to hear the argument
13:32:38 <diofeher> any of these esoteric languages have implentation in JVM? I saw that LOLCode and Brainfuck have implementations in .NET
13:32:56 <diofeher> olsner_: haha nice idea
13:32:59 <pineapple> brainfuck can be done in any c-like
13:32:59 <Gregor> I guarantee there's an implementation of Brainfuck in Java somewhere.
13:33:26 <Gregor> Brainfuck can be done in any TC language with I/O, if you're willing to put the effort into it :P
13:35:07 <diofeher> hehe
13:35:13 <diofeher> Gregor: TC?
13:35:26 <pineapple> turing complete
13:35:29 <diofeher> ah ok
13:35:31 <Gregor> `google site:esolangs.org "turing complete"
13:35:42 <HackEgo> Nov 11, 2009 ... A programming language is said to be Turing-complete if it is in the same computational class as a Turing machine; that is to say, ... \ esolangs.org/wiki/Turing-complete - [13]Cached
13:35:56 <diofeher> oh, nice bot
13:36:08 <pineapple> `beer
13:36:09 <HackEgo> No output.
13:36:12 <pineapple> damn
13:36:30 <Gregor> pineapple: It's a writable Unix filesystem, make your own beer command.
13:36:31 <diofeher> talking about beer, do you all have heard about beerware?
13:36:40 <pineapple> yes
13:36:48 <Gregor> diofeher: I don't believe it to be a legally enforceable system of licensing :P
13:36:51 <pineapple> Gregor: :-P
13:38:39 <diofeher> should be!
13:39:08 <fizzie> I seem to have here a compiler from False to JVM bytecode, though I have no idea how complete it is; I also have no recollection of writing it, but it's got my name in the sources, so...
13:39:40 <fizzie> Sorry, FALSE is I guess the official name.
13:39:54 <pineapple> `google site:esolangs.org false
13:39:54 -!- tombom_ has joined.
13:39:55 <HackEgo> Sep 2, 2009 ... FALSE (named after the author's favourite truth value) is an early Forth-like esoteric programming language invented by Wouter van ... \ esolangs.org/wiki/False - [13]Cached
13:40:11 <pineapple> yeah, thought that was the one that aardappel wrote
13:40:51 <fizzie> It doesn't support the backtick: ` compile short as 68000 machine instruction in the original Amiga FALSE implementation
13:41:30 <Gregor> lawl
13:41:41 <Gregor> Surely there's a 68000 simulator in Java :P
13:43:01 -!- tombom has quit (Ping timeout: 246 seconds).
13:44:24 <diofeher> `google site:esolangs.org amiga
13:44:27 <HackEgo> Nov 7, 2008 ... He is the author of XPK compression package for the Amiga, and the Amiga version of CSH (the Unix C Shell). He now works for search.ch, ... \ esolangs.org/wiki/Urban_Mller - [13]Cached
13:44:54 <fizzie> [sensible code] else if (pendingFuncs.size() >= 1) throw new Exception("funky hunky"); else throw new Exception("dinky tonky"); -- yes, I'm afraid this might be still a bit incomplete.
13:46:01 <pineapple> heh
13:46:35 <olsner_> "in this case, the program shall terminate with the message 'dinky tonky'"
13:46:37 <diofeher> hehe
13:46:54 <olsner_> (I mean, it *could* be a legitimate language feature :P)
13:47:11 <Gregor> Depends on your definition of "legitimate"
13:50:14 <fizzie> There's an annoying safety feature in the JVM in that all code paths need to have a deterministic stack effect, and if you can reach a particular instruction through several different paths, the verifier checks that the stack changes from start of the function for all paths must be the same. Makes it more difficult to use the underlying JVM stack as the stack for the language you're compiling.
13:50:23 <fizzie> (Of course it's mostly a problem for stack-oriented languages only; and sure, you can always just use an int[] as the language's stack or something, but that's so inelegant.)
13:52:20 <fizzie> Speaking of bots, I guess I'm going to have to do the annoying advertisement bit I do for all newcomers.
13:52:22 <fizzie> ^source
13:52:22 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
13:52:38 <fizzie> That there's a useful use of an esolang. For some values of useful.
13:54:23 <diofeher> omg, what is this language?
13:54:46 <pineapple> befunge-98
13:54:56 <pineapple> judging by the file extension
13:55:23 <olsner_> fizzie: is that the source of the bot? awesome
13:55:36 <olsner_> I should learn me a funge
13:56:16 <fizzie> olsner_: Yes. (Though it's not completely trivial to run, it needs a loader file, and the babble-thing needs some fiddling.)
13:56:26 <fizzie> fungot: Say something clever now.
13:56:27 <fungot> fizzie: who was it
13:56:32 <fizzie> fungot: That wasn't clever.
13:56:32 <fungot> fizzie: those people like to call the functions foo, bar, baz; worries
13:57:10 <fizzie> That wasn't very clever either; I give up.
13:59:07 <diofeher> haaha
13:59:14 <diofeher> fungot: hi dude
13:59:15 <fungot> diofeher: georgia, of course. but no sure how. if the garbage collector, for example
14:02:33 <fizzie> There's some other speaking styles if the default is boring.
14:02:35 <fizzie> ^style
14:02:35 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
14:02:43 <fizzie> And also a couple of sub-interpreters in there.
14:02:48 <fizzie> ^bf .[,.]!hello
14:03:20 <fizzie> ^bf ,[.,]!hello, I mean to say
14:03:20 <fungot> hello, I mean to say
14:04:36 <fizzie> I always manage to swap those two, since befunge's , is the output-character thing.
14:04:41 <fizzie> ^ul (and underload)S
14:04:41 <fungot> and underload
14:16:30 <Gregor> !bf_txtgen Hewwo
14:16:41 <EgoBot> 74 ++++++++++++[>++++++>++++++++>++++++++++>+<<<<-]>.>+++++.>-..--------.>--. [415]
14:16:52 <Gregor> ^bf ++++++++++++[>++++++>++++++++>++++++++++>+<<<<-]>.>+++++.>-..--------.>--.
14:16:52 <fungot> Hewwo.
14:45:09 <diofeher> !bf_txtgen hi pretty girl
14:45:12 <EgoBot> 136 +++++++++++++++[>+++++++>++>+++++++>+++++++<<<<-]>-.+.>++.>+++++++.++.>----.<++..+++++.<.>>++.++.<-------.<<+++.>----------------------. [160]
14:45:55 <diofeher> nice bot :-)
15:39:36 -!- alise has joined.
15:40:52 <alise> abcdefg
15:42:08 <alise> 05:09:22 <olsner_> actually, I'm pretty sure that *every* language can be both (unless it's a language that can't be either - e.g. because it's impossible to implement on a computer)... it just depends on what people like to build for it (interpreters or compilers), how easy it is to implement the compiler, and how important it is to have programs in the language run fast
15:42:13 <alise> self-modifying is pretty hard to "compile"
15:43:39 <alise> 05:40:11 <pineapple> yeah, thought that was the one that aardappel wrote
15:43:40 <alise> THE one?
15:43:47 <alise> Ho ho ho ho ho ho ho
15:43:59 <alise> http://strlen.com/proglang/index.html
15:44:10 <alise> He has probably created more languages than any other human being.
15:44:23 <alise> http://strlen.com/aardappel/index.html is his most esoteric non-FALSE one, probably.
15:44:32 <olsner_> self-modifying is only hard because people don't try hard enough!
15:45:22 <alise> I'm looking forward to your Befunge-98 compiler. No JITting.
15:45:31 <olsner_> but yes, you may need quite complicated analysis to undo the self-modification at compile-time, or you have to "compile" the code to its interpreter
15:45:42 <alise> It /could/ be done... but the code would be very slow, and probably hyperexponentially big relative to the code size.
15:45:52 <alise> The latter isn't really compiling
15:47:03 <alise> [["Desperate, Marooned Astronaut Tries To Use Every Item With Every Other Item"]]
15:52:21 <fizzie> Anything with a real eval()-type of thing is also hard to compile, at least if you consider including the compiler in the output.
15:58:12 <olsner_> maybe if you were able to do dataflow analysis to figure out which self-modifications are possible
15:59:29 <olsner_> but if the range of self-modifications is not bounded or you can't solve the halting problem, you'll probably have to include an interpreter anyway
16:01:14 <olsner_> or just make the compiled code generic enough :)
16:02:00 <alise> Don't suppose anyone wants to help me figure out how to do linear loop optimisation in my interp? :P
16:02:22 <alise> olsner_: with befunge you can do it by modifying the code as it runs
16:02:25 <alise> to contain whatever instruction there is
16:02:28 <alise> threaded code style
16:08:16 <alise> it's annoying that my architecture doesn't really support it well
16:16:58 -!- adam_d has joined.
16:19:24 <Sgeo_> I think I got a bit flamey on the RoboZZle forums
16:19:32 <alise> Bah, I hate existing proof assistants.
16:19:38 <alise> Stop avoiding computation!
16:19:50 <alise> Do computation all the time! Put trivial steps in for me! Do some god damn number crunching; you're a COMPUTER!
16:20:02 -!- Mathnerd314_ has joined.
16:20:05 <Sgeo_> Someone in android-dev suggested a Live Wallpaper of Befunge
16:20:43 <alise> Game of Life would be prettier. :p
16:20:46 <alise> Ooh.
16:20:50 <alise> A befunge GOL that works on its own playfield.
16:21:30 <Deewiant> Already exists.
16:22:45 <Sgeo_> My dad doesn't want me using it on the bus, he's afraid someone will steal it
16:22:58 <Sgeo_> I don't _think_ that's likely on the busses I take, but still
16:23:01 -!- Mathnerd314 has quit (Ping timeout: 265 seconds).
16:23:15 -!- Mathnerd314_ has changed nick to Mathnerd314.
16:23:41 <fizzie> Not using a mobile thing while mobile sounds somehow point-missingy.
16:24:40 <Sgeo_> And I can't use it while going to my step-mother's apartment
16:24:57 <Sgeo_> Although one of the use-cases is when I got lost trying to get there
16:25:17 -!- diofeher has changed nick to diofeher__away.
16:25:39 <olsner_> alise: does "linear loop optimisation" refer to a common optimisation or is it something BF-specific?
16:26:17 <alise> Sgeo_: You know, you /are/ 20.
16:26:34 <alise> olsner_: basically a loop is linear if it has the same number of <s as >s, and all loops within it are linear
16:26:49 <alise> we can optimise /all/ of these into a constant time operation, well; apart from the ones that do input, dunno about output
16:27:27 <alise> because they all reduce to a sequence of "tape[tape_pointer + n] (+= or =) m;" where m can involve other tape[tape_pointer + n] cells of the tape, and also constants
16:27:50 <alise> http://mozaika.com.au/oleg/brainf/bff4.c the bits in #ifdef LNR do the optimisation in this (currently champion interpreter)
16:27:51 <olsner_> right, essentially that condition means that the loop returns to the same cell pointer as it was before the loop, after doing some transformation on a set of cells?
16:28:00 <alise> esotope-bfc also does it: http://code.google.com/p/esotope-bfc/
16:28:01 <alise> olsner_: yes
16:30:13 <alise> bff4's code is not the clearest and esotope-bfc does much more advanced optimisations at the same time
16:30:17 <alise> so unfortunately there is no real source for this stuff
16:30:29 <alise> though http://lifthrasiir.jottit.com/esotope-bfc_comparison has a small bit of info
16:31:21 <alise> olsner_: mainly the issue with doing it with my interp is that I parse directly into the flat program array as I get input, so I can't do the optimisation after, for the result will be smaller than the previous loop
16:31:25 <alise> and so i have blank cells
16:31:38 <olsner_> bff4 seems to have very simple code for detecting the linear loop, although it's not clear at all what o[i].linear means
16:31:40 <alise> but i can't do it while parsing because my parser isn't clever enough for that sort of thing, I don't think
16:31:40 <alise> not sure
16:31:49 <alise> I think o[i].linear is set when it decides it's linear
16:31:56 <alise> *I think
16:32:06 <Sgeo_> " Today, I bought an app on my iPod touch that was $900 because I thought it was just a joke. Turns out it wasn't."
16:32:08 <Sgeo_> WTF?
16:32:25 <Deewiant> Turns out you're an idiot. :-P
16:33:31 <olsner_> you also need to know the meaning of the "igo", "shift" and "off" fields
16:35:09 <alise> olsner_: yes, which i don't
16:35:17 <alise> i think the previous code does stuff to help linear loop optimisation
16:38:34 <alise> olsner_: I think parse() is my best bet for where to put the optimisation - but I'm not sure the way it's coded can handle it
16:38:38 <alise> http://pastie.org/925772.txt
16:38:43 <alise> because the recursive parser appends directly to the main instruction array as it goes along
16:39:50 <alise> hmm... I think with a fixed tape size, I could perfectly optimise BF
16:40:22 <olsner_> you could augment you internal instruction set to allow for "holes" where you've optimized away some stuff
16:40:32 <alise> to wit: detect infinite loops - possible because memory is small and bounded - and replace them with infinite loop instructions; run the rest of the program up to IO, embed the input/output instructions based on the transformations done to the tape
16:41:13 <alise> yes, but that means the interpreter would have to skip over dem holes
16:41:17 <alise> which would be slow
16:41:18 <olsner_> is that even turing complete?
16:41:26 <alise> bf with fixed tape size?
16:41:29 <olsner_> yeah
16:41:30 <alise> and fixed cell size?
16:41:31 <alise> of course not
16:41:35 <alise> I'm adding tape-growing later
16:41:52 <alise> I'd rather it somehow efficiently pooped the program into a separate buffer, and kept track of the running total of cell-moves
16:42:01 <alise> and if it's linear, spit out a linear instruction at the end, not a loop
16:42:08 <alise> ("poop" is a technical term)
16:43:44 <alise> just not sure how to do that without a lot of mallocing
16:43:58 <alise> ok, *d in op in bff4 is what contains the actual tape modifications
16:44:11 <olsner_> looks like it should be pretty straight-forward to iterate a loop to see if it's linear, provided you can buffer the whole loop body
16:44:11 <alise> hmm
16:44:17 <alise> it seems that every instruction is treat as the same "type" in bff4
16:44:22 <alise> well, mostly
16:44:23 <alise> like
16:44:33 <alise> > is "as if" just tapepointer+=1
16:44:37 <alise> but it could also be
16:44:42 <alise> tapepointer+=1, tape[tapepointer-4]=5
16:44:45 <olsner_> add delta, move cell-pointer, move ip by offset?
16:45:43 <alise> I'm not sure
16:45:48 <alise> http://mozaika.com.au/oleg/brainf/bff4.c consume() is the magic, I think
16:46:07 <alise> like, consume parses bf into one unified instruction set, such that loops literally just become a list of "primitive instructions" and keep track of whether they're linear
16:46:08 <alise> I think
16:46:15 <alise> so then we can just run the instructions in a /different manner/ if it's linear
16:46:17 <alise> but the same instructions
16:46:18 <alise> maybe?
16:46:19 <alise> this is just a guess
16:46:26 -!- diofeher__away has changed nick to diofeher.
16:47:18 <alise> this would seem to clash with my computed goto trick.
16:47:30 <alise> although i am tempted to try it with bf10, perhaps, and if it's faster that'll make linear loops in, say, bf11 easier
16:47:34 <alise> I'll give it a go
16:47:48 <alise> hmm
16:47:50 <alise> the issue is ordering
16:48:02 <alise> if you have mov=3, chg=-4, is it >>>---- or ---->>> or something else entirely?
16:48:26 <olsner_> depends on your definition :) just do it in the right order
16:48:56 <alise> right
16:49:03 <alise> so >->- would turn into, say, two instructions
16:49:09 <alise> mov=1 chg=-1, mov=1 chg=-1
16:49:23 <alise> obviously jumps should be done after this
16:49:28 <alise> as otherwise we'd have to retroactively modify instructions
16:49:49 <alise> typedef struct {
16:49:49 <alise> int mov;
16:49:50 <alise> int chg;
16:49:50 <alise> char io;
16:49:50 <alise> op *jmp;
16:49:50 <alise> } op;
16:50:08 <olsner_> yeah, since it modifies two cells it'd probably have to be two ops
16:50:13 <alise> io is 0 if , 1 if .
16:50:22 <alise> so given mov=i, chg=j, io=0, we have
16:50:29 <alise> >^i +^j ,
16:50:30 <alise> so given mov=i, chg=j, io=1, we have
16:50:31 <olsner_> dunno how common that is, but you could also collapse into an array of mov's with a base offset
16:50:31 <alise> >^i +^j .
16:50:36 <alise> and if loop points somewhere, that's the... oh wait
16:50:41 <alise> we need to distinguish begin and end loops
16:50:51 <alise> char loop;
16:50:51 <alise> op *jmp;
16:50:54 <alise> loop = 0 is [ loop = 1 is ]
16:52:08 <olsner_> is [ doing the testing (comparing to zero) or is ] doing it?
16:52:10 <alise> nicely, this means that the condition is
16:52:10 <alise> if (tape[tp] == loop)
16:52:10 <alise> olsner_: too advanced operations break it though
16:52:10 <alise> since this is an interp
16:52:11 <alise> everything costs
16:52:11 <alise> hmm...
16:52:12 <alise> io should be 0 for no io, 1 for input, 2 for output
16:52:13 <alise> so I can just say if (io)
16:52:14 <alise> both
16:52:16 <alise> obviously
16:52:17 <alise> moar speed
16:52:20 <alise> (by a long way)
16:54:27 <olsner_> I notice you have two booleans in there - you could encode them in the jmp pointer's low bits to reduce the data size
16:56:00 <olsner_> except that io had three values, nm
16:56:01 <alise> yes
16:56:01 <alise> but i'd rather use megs of memory than have to do more operations
16:56:01 <alise> if (ip->loop && ((ip->loop-1 && !tape[tp]) || tape[tp])) {
16:56:01 <alise> ip = ip->jmp;
16:56:01 <alise> }
16:56:02 <alise> my eyes, they burn
16:56:11 <comex> it would sure be nice if that code was comprehensible
16:56:19 <alise> comex: bff4?
16:56:20 <alise> or mine
16:56:21 <comex> bff4, I mean
16:56:23 <alise> yeah
16:56:33 <alise> it's impressive code but clearly written by a lone genius :-)
16:56:39 <olsner_> if you're into brainfuck, readability obviously isn't a big concern
16:56:48 <alise> lol
16:56:53 <alise> oh, I have nothing to encode stop
16:56:57 <alise> never mind, I'll stuff it into loop
16:56:59 <Deewiant> That !tape[tp] is redundant
16:57:09 <alise> no i won't
16:57:13 <alise> i'll stuff it into jmp
16:57:15 <alise> no i won't
16:57:22 <alise> Deewiant: No it isn't?
16:57:26 <alise> Oh, yes it is.
16:57:29 <alise> Er... oops.
16:57:30 <alise> It should be
16:57:40 <olsner_> encode it into jump, catch the SEGV and see if it crashed due to a null pointer, stop normally
16:58:00 <comex> except sometimes it's a SIGBUS :p
16:58:01 <olsner_> it's pretty exceptional to see the program stop anyway, happens at most once
16:58:10 <alise> Deewiant: I'm trying to say if ip->loop: if ip->loop is 2 and not tape tp, jump; if ip->loop is 3 and tape tp, jump.
16:58:12 <alise> Without using ==.
16:58:14 <alise> For no particular reason.
16:58:26 * comex doesn't see the point of collapsing linear loops, except for ones that copy one cell into another
16:59:19 <alise> comex: because instead of looping a lot and doings lots of jumps for a simple task, you perform, say, one assignment; or one increment/decrement, for each cell modified
16:59:23 <alise> and avoid doing costly pointer movement
16:59:37 <alise> http://mozaika.com.au/oleg/brainf/ ;; just look how much faster bff4lnr is to bff4
17:00:14 <olsner_> haha, except when compiled with cygwin gcc
17:01:40 <alise> nobody cares about cygwin :)
17:02:43 * alise considers io as a jump action
17:02:44 <alise> erm
17:02:47 * alise considers stopping as an io action
17:03:20 <olsner_> io is becoming a general trap instruction for native-calls
17:03:27 <alise> yep!
17:03:37 <alise> actually it's just because it saves me one more branch most of the time
17:04:04 <olsner_> if (io) goto trap[io];
17:04:13 <alise> lol
17:04:24 <alise> I've written interp, that was the easy part; now I need to rewrite parse
17:04:27 <alise> I bet this ends up slower
17:04:42 <olsner_> how significant is parsing time really?
17:04:47 <olsner_> for your benchmarks, I mean
17:05:47 -!- olsner_ has changed nick to olsner.
17:06:02 <alise> benchmark, singular
17:06:05 <alise> well
17:06:10 <alise> parsing is the least optimised part by far
17:06:13 <alise> it has many, many branches
17:06:15 <alise> so dunno
17:06:19 <alise> probably not that much
17:07:30 <olsner> I should complete my compiler-for-sensible-imperative-language and then start working on one of these of my own, it seems like fun
17:08:11 <alise> it is, optimising interpreters are wonderful
17:08:16 <alise> optimising compilers are easy since you can take as long as you want
17:08:45 <olsner> optimizing compilers are even easier if you can reuse existing awesome optimizers (e.g. LLVM)
17:10:52 -!- BeholdMyGlory has quit (Remote host closed the connection).
17:10:57 <olsner> I wonder what I need in terms of abstraction to be able to produce some parser combinator library inside my language
17:13:00 <alise> Monads or at least applicative functors help a lot.
17:13:37 <alise> $ ./bf10
17:13:37 <alise> Segmentation fault
17:13:38 <olsner> yeah, and that pretty much requires some kind of polymorphism and fancy type-system machinery
17:13:38 <alise> It is a start.
17:13:58 <alise> Not "fancy".
17:14:10 <alise> Even a simple dependently-typed language can be typechecked in about 100 lines of code.
17:14:22 <alise> Hindley-Milner is actually pretty simple if you don't care about lovely errors and the like.
17:14:37 <alise> olsner: Besides, you don't need polymorphism to make a monad.
17:14:43 <alise> Just rebind >>= in every monad definition.
17:14:46 <alise> And have no general monad class.
17:14:49 <alise> You don't need it for parser combinators.
17:15:01 <olsner> true that
17:15:43 <alise> Well, bf10 no longer segfaults; instead, it sits and does nothing.
17:16:09 <olsner> I was planning to add some kind of type inference after taking care of the fiddly details of getting something parsing, compiling and running at all
17:16:29 <alise> A bad idea: it's rather fundamental.
17:16:47 <olsner> too bad I don't know how it works then
17:16:53 -!- BeholdMyGlory has joined.
17:17:03 <alise> Well, look it up. :-)
17:17:27 <alise> augustss has done a really simple typechecker; but for dependently-typed lambda calculus.
17:17:51 <alise> I assume you don't want to go down that theoretical road: all programs terminate (and so sub-TC, although only barely), general inferrence isn't always possible, etc.
17:18:47 <olsner> no, probably not :)
17:20:51 <alise> (gdb) print tape
17:20:51 <alise> $7 = "\fF\000\000/F�", '\0' <repeats 65528 times>
17:20:53 <alise> Helpful.
17:21:15 <alise> I must have my ordering wrong or something. Sigh.
17:22:41 * Sgeo_ had a dream where the iPad fit in his pocket, which drove me to get an iPad
17:22:43 <alise> Strange...
17:23:50 <alise> Sgeo_: lol
17:24:02 <alise> Is that an iPad in your pockets or are you just happy to see me?
17:24:05 <alise> *pocket
17:24:25 -!- augur has quit (Remote host closed the connection).
17:24:39 <alise> Grr... this should be working.
17:24:44 <comex> no, really
17:24:52 <alise> Really, no?
17:25:17 <comex> alise: give me an example of a program other than [->+<] that is usefully optimized by linear stuff
17:25:28 * alise realises that {,} A := A x A -> Bool doesn't work; it could return Bool for more than two pairs.
17:25:42 <alise> And we can't use exists because it would identify the two pairs and thus give them an ordering of sorts.
17:25:52 <alise> comex: examine the output of LostKng.b from esotope sometime
17:25:57 <alise> it has like 90% fewer loops than the original
17:26:32 <comex> but, an example
17:26:34 <comex> please :p
17:26:52 <alise> half the loops in every program.
17:27:00 <alise> i'm a shitty bf coder so i cannot give you one off hand
17:27:05 <alise> comex: oh, for one, every constant-generating code
17:27:11 <alise> like from the bf constants page
17:27:15 <alise> or generating a constant string
17:27:20 <alise> those are just simple though...
17:27:21 <alise> there are far more
17:27:30 <alise> basically anything you'd write in an imperative lang manipulating your variables that /isn't/ a loop
17:27:32 <alise> becomes a linear loop in bf
17:29:08 <comex> hm
17:29:13 <comex> that sounds hard to optimize
17:29:17 <alise> it's not actually
17:29:23 <alise> check that there are the same number of > and <s
17:29:50 <alise> then, you can do it like this: "run" it, keep track of the current pointer, then spit out p[here + offset] (relative to the starting position using the keeping-trackness), then accumulate the increments and decrements it does to it
17:29:52 <alise> and spit out that as a +=
17:30:00 <alise> (plus optionally optimise for = x like with [-])
17:30:08 <alise> then you can rearrange it to sift out multiple changes of the same cell
17:30:19 <alise> http://mazonka.com/brainf/bff4.c does it, the bits in #ifdef LNR
17:30:51 <alise> hey guys, the cardinality of (list of A) is -(|A|/(|A|-1)), where |A| is the cardinalit yof A
17:30:59 <alise> *cardinality of
17:31:18 <alise> so, for instance, a list of booleans has cardinality -2
17:33:49 -!- ze_german has quit (Ping timeout: 252 seconds).
17:38:04 <alise> I refuse to give up until bfN is faster than bff4!
17:38:52 <alise> ok, at one point my ip stops changing
17:38:54 <alise> queer
17:38:56 <alise> oh
17:38:59 <alise> it is mixing input and output
17:39:25 <alise> olsner: yes this method is a lot slower
17:39:28 <alise> but maybe i can optimise out the jumps
17:39:59 <alise> if (ip->loop && ((ip->loop == 2 && !tape[tp]) || (ip->loop == 1 && tape[tp]))) {
17:40:02 <alise> This, I am sure, could be improved.
17:41:55 <alise> Oh, heh; I just forgot to use -O3.
17:42:05 <alise> It is still slower, though.
17:44:21 <olsner> hmm, '[' is jump-if-false to (after) the end of the loop while the ']' is jump-if-true to the beginning?
17:44:36 <alise> to after the beginning
17:44:40 <olsner> right
17:44:44 <alise> one less increment; significant difference in speed actually
17:44:48 <alise> small but extant
17:45:17 * alise has an idea
17:45:20 <alise> meh
17:45:22 <alise> this thing is slower
17:45:28 <alise> I should just chuck it out and face the linear loop monster
17:45:52 <alise> now what...
17:46:00 <alise> I still don't know how I should do linear loops
17:46:19 <alise> Oh, maybe I should allocate, in parse's scope, the output array.
17:46:27 <alise> But I return the /end/, and I'd need to return the beginning then.
17:46:34 <alise> And merging it in would be slow..
17:46:40 <alise> *slow...
17:50:10 <alise> olsner: Really I should probably do some microoptimisation to satisfy me before tackling the big stuff ;-)
17:51:31 <olsner> how does the assembly look? :)
17:51:51 <alise> olsner: With gcc? Bad; it decides that all my threaded-loveliness NEXT should get put into one place and jmps to it. With clang? Super-duper-excellent.
17:51:59 <alise> I don't have clang though so I'm testing with gcc.
17:52:06 <alise> It's still fast mind.
17:59:06 -!- lament has joined.
17:59:36 <Sgeo_> I've got some falling.. erm, homework to do!
18:01:12 <Sgeo_> Bye all! Homework now
18:02:02 -!- Sgeo_ has quit (Quit: Leaving).
18:03:25 <alise> olsner: I tell you what: you make my BF interp do linear loops, and I'll make the best proof assistant ever.
18:03:26 <alise> Deal! :P
18:19:48 * alise formalises mazes in Coq; decides that he's too lazy to write a solver
18:49:37 -!- adam_d has quit (Ping timeout: 246 seconds).
18:50:05 <alise> You know... someday soon, we'll start saying "What version of TeX are you using?" "π."
18:50:06 <alise> When Knuth dies.
18:53:46 <coppro> Knuth can't die; he has a book to finish
18:58:14 <alise> He'll finish it eventually, though.
18:58:42 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
19:00:09 <alise> "Its soooo ugly seeing variable names in formulas written without \text{} or \mbox{} I think its one of the most common mistakes"
19:00:10 <alise> FAIL
19:01:00 <alise> Why the fuck don't \alpha et al. work outside math mode? Ugh.
19:07:40 -!- augur has joined.
19:19:32 -!- adam_d has joined.
19:24:08 -!- ze_german has joined.
19:32:48 -!- augur has quit (Remote host closed the connection).
19:32:53 -!- augur has joined.
19:32:57 -!- oerjan has joined.
19:33:08 -!- adam_d has quit (Ping timeout: 240 seconds).
20:01:11 -!- diofeher has changed nick to diofeher__away.
20:05:46 <alise> Inductive classically : Prop -> Prop :=
20:05:46 <alise> | neg : forall P, ~~P -> classically P
20:05:46 <alise> | foa : forall A, forall P : A -> Prop, (forall x, classically (P x)) -> classically (forall x, P x)
20:05:46 <alise> | exi : forall A, forall P : A -> Prop, classically (~(forall x, ~ P x)) -> classically (exists x, P x).
20:05:46 <alise> this is deficient :(
20:05:56 <alise> because you can't prove e.g. classically (~exists P, P /\ ~P)
20:10:29 <alise> I fucking hate strictly positive
20:10:41 <pineapple> hmm?
20:14:27 <alise> rule of type theory
20:14:29 -!- Tritonio_GR has quit (Ping timeout: 276 seconds).
20:14:42 <alise> it's basically a restriction on recursive types to keep the type system sound
20:14:49 <alise> but it means you can't do some stuff that's innocent... like
20:15:01 <alise> | foo : forall P, ~(classically P) -> classically (~P)
20:15:12 <alise> because classically appears as an "input not result", so to speak, of the argument
20:15:16 <alise> so it can't guarantee that you won't do
20:15:21 <alise> foo (foo (foo (foo (foo (foo (...
20:15:22 <alise> or whatever
20:18:47 -!- augur has quit (Ping timeout: 268 seconds).
20:31:00 -!- adam_d has joined.
20:45:40 -!- augur has joined.
20:48:06 -!- tombom__ has joined.
20:49:38 -!- tombom has joined.
20:51:20 -!- augur has quit (Ping timeout: 245 seconds).
20:51:28 -!- tombom_ has quit (Ping timeout: 258 seconds).
20:52:35 -!- tombom__ has quit (Ping timeout: 245 seconds).
21:06:21 -!- diofeher__away has changed nick to diofeher.
21:12:34 -!- alise has quit (Ping timeout: 258 seconds).
21:19:43 -!- oerjan has quit (Quit: leaving).
21:32:57 -!- oerjan has joined.
21:34:53 -!- alise has joined.
21:38:40 -!- Oranjer has joined.
21:41:19 -!- Alex3012 has quit (Ping timeout: 245 seconds).
22:02:18 -!- adam_d has quit (Ping timeout: 265 seconds).
22:15:00 -!- 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:15:58 -!- Tritonio_GR has joined.
22:16:30 -!- kar8nga has quit (Remote host closed the connection).
22:30:19 -!- coppro has joined.
22:36:18 -!- coppro has quit (Ping timeout: 268 seconds).
22:38:25 <alise> magic as viewed through a spying lens
22:41:30 -!- Rugxulo has joined.
22:43:47 <Rugxulo> "Ben also made a true x86 version of False (by translating the 68k code), but I lost the code (silly me)." ... well that's annoying :-/
22:46:31 -!- diofeher has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100401213457]).
22:48:16 <alise> Rugxulo: It's easy enough to implement. Make sure to completely emulate 68k for `!
22:48:47 * alise appears to be determined, now, to create a better theorem prover than the one experts have worked on since the 1980s, Coq.
22:48:59 <alise> Well, you can't accuse me of being unambitious.
22:53:56 <Rugxulo> http://mozaika.com.au/oleg/brainf/
22:54:04 <alise> Yes.
22:54:10 <alise> I happen to be attempting to beat that implementation.
22:54:16 <alise> In fact, I already beat it on the test programs used there.
22:54:22 <Rugxulo> I did "runtime bff4lnr < long.b" after gcc -s -O2 -fomit-frame-pointer -mtune=generic -DLNR
22:54:28 <Rugxulo> 11.26 secs.
22:54:51 <Rugxulo> *but* ... bfd long.b && runtime long.com is 4.12 secs.
22:54:59 -!- Asztal has quit (Ping timeout: 265 seconds).
22:55:01 -!- Azstal has joined.
22:55:06 -!- Azstal has changed nick to Asztal.
22:55:22 <alise> Rugxulo: bfd?
22:55:25 <Rugxulo> http://home.arcor.de/partusch/html_en/bfd.html
22:55:35 <alise> if it's not written in C it doesn't really count; is it?
22:55:37 <Rugxulo> 799-byte compiler (DOS .COM)
22:55:40 <alise> Rugxulo: that's a compiler, duh
22:55:42 <alise> that doesn't count
22:55:46 <alise> we're comparing interpreters
22:55:52 <alise> you have to count how long the compiler takes if you want to be fair
22:55:54 -!- calamari has joined.
22:56:04 <Rugxulo> < 1 sec. to compile
22:56:06 <alise> since bff4 does compiler-esque optimisations at run time
22:56:18 <alise> Rugxulo: shrug - bff4 works on the machines I have; bfd works on none
22:56:30 <Rugxulo> no x86 cpus?
22:56:43 <alise> no windows
22:56:57 <Rugxulo> DOSBox, DOSEMU, FreeDOS, etc.
22:57:05 <alise> that's not "working"
22:57:08 <Rugxulo> I'm not discounting your efforts!
22:57:11 <alise> I can run Amiga binaries on this machine too
22:57:13 <alise> :-)
22:57:18 <alise> Rugxulo: never said you were, of course
22:57:19 <Rugxulo> I just wanted you to know (for speed comparison) how BFD fares (i.e. not bad)
22:57:24 <alise> just saying that bfd doesn't "really" beat bff4 :P
22:57:34 <alise> yeah compiling brainfuck wins over an interp, every time
22:57:40 <alise> Rugxulo: Have you seen esotope?
22:57:48 <alise> http://code.google.com/p/esotope-bfc/
22:57:50 <alise> It compiles hello world to a single print statement.
22:57:50 <Rugxulo> no
22:57:56 <alise> the most advanced BF compiler out there
22:58:10 <alise> does some "proper" -- as in stuff actual compilers do -- optimisations
22:58:10 <alise> detects arithmetic, while loops, optimises away tons of loops, ...
22:58:13 <Rugxulo> I've seen the site before, but since it required Python, I didn't really test it
22:58:26 <alise> why not?
22:58:43 -!- tombom has quit (Quit: Leaving).
22:59:08 <Rugxulo> well, for one, I'm no huge Brainf*** nut (haven't practiced enough, honestly)
22:59:13 <alise> it's easy to get python on windows.
22:59:19 <alise> *Brainfuck
22:59:27 <alise> or, I guess, to be absolutely pedantic, *brainfuck
22:59:30 <Rugxulo> Python 2.4.2 is available for DOS (via DJGPP), but esotope claims to need 2.5
22:59:38 <alise> Err... so get the Windows version.
22:59:50 <Rugxulo> I don't like Windows that much, honestly
23:00:00 <Rugxulo> or Python, too bloated and weird for me ;-)
23:00:02 <alise> What OS are you using right now?
23:00:12 <Rugxulo> Windows ... I use it, but don't like it ;-))
23:00:15 <alise> http://python.org/ftp/python/2.6.5/python-2.6.5.msi
23:00:18 <alise> Esotope your brain.
23:00:25 <alise> Anyway, less brainfuck, more theorem proving.
23:03:17 <alise> Rugxulo: I said more theorem proving.
23:03:32 <Rugxulo> ?
23:04:32 <alise> I was ordering you to talk about computerised theorem provers, along the lines of Mizar, Coq, HOL, Isabelle, etc. I did not actually expect you to follow this instruction.
23:04:49 <Rugxulo> me too dumb ;-)
23:05:08 <alise> Curry Howard Isomorphism: propositions <--> types; proofs <--> programs.
23:05:22 <alise> Computerised theorem provers mostly exploit this fact to automate, and formally verify, proofs of mathematical theorems.
23:05:25 <alise> The end.
23:07:31 <alise> Any questions?
23:08:04 <Rugxulo> yes ... where's the beef?
23:08:22 <Rugxulo> and why is the Smoke Monster such a meanie?
23:08:41 <alise> Rugxulo: The beef is in the proof's computational content.
23:08:45 <alise> And because REDACTED
23:19:03 <oerjan> probably bronchitis
23:19:30 * alise attempts to do some category theory-as-in-real-category-theory in Coq
23:19:35 <alise> it's hard, a lot of the concepts don't really map
23:19:47 <alise> I am having trouble even stating what a morphism is :-)
23:19:59 <oerjan> and when your categories don't map, then you know you _really_ have trouble
23:20:18 <alise> RIMSHOT
23:20:59 <alise> I /think/ a morphism is just a function arrow, more or less
23:21:00 <alise> except
23:21:06 <alise> then what is hom(C)
23:21:46 <alise> Or are morphisms arrows?
23:22:02 <oerjan> morphism = arrow, they are synonyms
23:22:09 <oerjan> (not haskell Arrow)
23:22:20 <alise> Right, I meant haskell Arrow.
23:22:31 <alise> I'm just wondering if I should represent morphisms as http://www.haskell.org/arrows/.
23:22:43 <alise> I guess not.
23:22:44 <oerjan> Arrow has additional properties in addition to being morphisms
23:22:48 <alise> Right.
23:23:07 <alise> Well, it isn't "hom : ob -> ob", it's more like "hom = ob -> ob".
23:23:28 <oerjan> morphisms are the fundamental concepts of a category. objects are optional
23:23:40 <alise> Then what do morphisms map if not objects?
23:23:51 -!- Sgeo has joined.
23:23:53 <oerjan> morphisms don't map. morphisms compose
23:24:09 <oerjan> it's just some categories where morphisms are maps
23:24:14 <alise> Then I am really confused.
23:24:23 <Sgeo> alise, confused?
23:24:27 <alise> Yes.
23:24:48 <oerjan> well that no objects version is just a reformulation and is not really intuitive
23:25:05 <oerjan> (basically you identify objects with their identity morphisms)
23:25:05 <alise> Unintuitive, maybe, but is it mathematically useful?
23:25:34 -!- cheater2 has quit (Ping timeout: 276 seconds).
23:26:04 <alise> Sounds nice. useful?
23:26:08 <oerjan> it has fewer fundamental concepts
23:26:17 <Rugxulo> gah, Evony ads on Sourceforge, have they no shame??
23:26:25 <Rugxulo> (although it wasn't one of the dirty ones, heh)
23:26:40 <oerjan> so might be easier to encode
23:26:45 <alise> oerjan: but is it easy to define objects with that and then formalise the rest conventionally?
23:27:16 <oerjan> as i said, objects are just identity morphisms
23:27:21 <alise> right.
23:27:27 <alise> still have to figure out how to encode a morphism :)
23:27:32 <oerjan> an identity morphism would be a morphism that composes with itself, giving itself
23:27:33 <Rugxulo> "malware free ... Google verified" ... yeah right
23:27:37 <oerjan> oh wait
23:27:59 <oerjan> that's not quite enough to identify it
23:28:11 <alise> hey guys
23:28:11 <oerjan> (could have other idempotents)
23:28:24 <alise> here's a single-axiom logical system
23:28:25 <alise> (((p -> q -> r) -> (p -> q) -> p -> r) -> (s -> t -> s) -> u) -> u
23:28:28 <alise> (it's the type of iota)
23:28:53 <oerjan> iota? the language?
23:28:56 <alise> yeah
23:29:02 <alise> the single combinator has that type
23:29:18 <alise> ((p -> q -> r) -> (p -> q) -> p -> r) is a bit of a strange argument to take. since it's the same as true :P
23:29:59 <alise> in fact that type is positively bizarre...
23:30:17 <alise> :: (((t -> t1 -> t2) -> (t -> t1) -> t -> t2)
23:30:17 <alise> -> (t11 -> t12 -> t11)
23:30:17 <alise> -> t21)
23:30:17 <alise> -> t21
23:30:19 <alise> maybe I translated it wrong
23:30:22 <oerjan> it looks like it cannot possibly use anything but its last argument
23:31:10 <alise> Prelude> let k x y = x
23:31:10 <alise> Prelude> let s x y z = x z (y z)
23:31:10 <alise> Prelude> let iota x = x s k
23:31:17 <alise> maybe iota doesn't work outside of the world of untypedness
23:31:54 <alise> yeah it doesn't work
23:31:57 <alise> iota iota isn't well typed
23:32:01 <oerjan> given that you need to self-apply it to get anything useful
23:32:06 <alise> and all applications involve iota iota at some point
23:32:13 <alise> apparently ^x.xKSK is ok though
23:33:53 <alise> oerjan: so what is one morphism, type-wise?
23:33:58 <alise> a function from A to A? a function from A to B?
23:34:09 <alise> i mean i get the concepts
23:34:13 <alise> just not how they gel with type theory
23:34:18 <oerjan> ouch
23:35:13 <alise> what :D
23:35:36 <oerjan> i cannot wrap my head around the idea of embedding fully general morphisms into type theory
23:35:53 <alise> hmm... perhaps hom(C) is a list of (ob(C),ob(C)) that is the length of ob(C)^ob(C)
23:35:58 <alise> which is a function, but
23:36:03 <alise> then the object X would be (X,X) in the list
23:36:15 <alise> so
23:36:20 <alise> hom(C) is ob(C) -> ob(C)
23:36:25 <alise> which makes one morphism (ob(C), ob(C))
23:36:29 <alise> oerjan: or is it more general in this case?
23:36:50 <alise> now mind I can't dispense with objects, since I say that ob(C) is a type
23:36:55 <alise> which I need to define hom
23:38:01 <oerjan> i tend to think of hom as something taking _two_ arguments, both objects
23:38:12 <oerjan> hom(A,B) being the set of morphisms from A to B
23:38:24 <alise> yes
23:38:33 <alise> but how is that distinct from hom(A,B) being one single function A->B?
23:38:50 <alise> a morphism is just a pairing of two objects, (A,B) and hom(A,B) pairs every object in A with one from B; so it's A->B
23:39:11 <oerjan> er for the category Set, the _elements_ of hom(A,B) are functions A->B
23:39:23 <alise> i'm talking about an interpretation of category theory
23:39:28 <alise> i'm attempting to implement category theory
23:39:51 <alise> oerjan: so, using Haskell, would you agree that this definition is reasonable?:
23:39:55 <alise> type Hom a b = a -> b
23:40:02 <alise> where hom(A,B) is translated into Hom a b
23:40:48 <alise> but then what of hom_C(A,B)
23:40:51 <oerjan> for the category Hask, sure
23:41:12 * Sgeo wonders how LiveFunge-93 would work
23:41:19 <alise> oerjan: but I'm trying to implement /every/ category
23:41:25 <alise> i'm trying to implement category theory itself
23:41:28 <Sgeo> Display the code on its side in normal portrait mode?
23:41:41 <alise> Sgeo: or in normal mode
23:41:43 <alise> not flipped
23:41:45 <alise> who knows
23:41:56 <oerjan> and i have no idea whether what you are trying to do even makes sense
23:42:00 <Sgeo> I don't want to squish the characters though
23:43:08 <Sgeo> Are people here willing to make nice-looking Befunge-93 programs for it if I make it?
23:43:30 -!- ze_german has quit.
23:43:44 <alise> Sgeo: maybe.
23:43:51 <alise> oerjan: well, category theory is a mathematical discipline. agreed?
23:44:07 <alise> it has abstract objects, called categories; relations between these objects, definitions about them, theorems relating to them, etc.
23:44:08 <alise> agreed?
23:45:14 <alise> oerjan: you seem hesitant :)
23:45:34 <oerjan> yes. i don't see that it makes sense to identify morphisms between two objects with a type
23:46:11 <oerjan> well a functional type
23:46:23 <alise> oerjan: but, let's go incrementally here
23:46:26 <alise> do you agree with my two assertions?
23:47:50 <Rugxulo> Sgeo, eh? I missed it, what are you making?
23:48:12 <Sgeo> Live Wallpaper for Android 2.1 showing Befunge-93 being interpreted..
23:48:13 <Sgeo> Maybe
23:48:16 <Sgeo> If I have time
23:48:18 <oerjan> leave me out of this
23:48:25 <Sgeo> And don't start making a RoboZZle for Android app
23:48:35 <alise> oerjan: :P
23:48:44 <alise> YOU ARE OBLIGATED TO RESPOND
23:49:10 <Rugxulo> Sgeo, the only "pretty" Befunge program (output) is my "guesswho2.bef" ;-)
23:49:16 <Rugxulo> well, or maybe mandel.bf
23:49:23 <Sgeo> It wouldn't show output
23:49:27 <Rugxulo> everything else is pretty banal
23:49:33 <Sgeo> It would show Fungespace, or wahtever it's called in 93
23:49:37 <Rugxulo> then what's the point? just to see it trace
23:49:38 <Rugxulo> ?
23:49:48 <Sgeo> Why not?
23:49:58 <Rugxulo> that's fine, just a bit mind-numbing ;-)
23:50:03 <Sgeo> Ooh! Different threads are different.. wait, that's 98
23:50:40 <Sgeo> CPU usage might be a bit extreme for a live wallpaper :/
23:52:47 <alise> just run at low priority
23:56:32 -!- oerjan has quit (Quit: leaving).
23:57:59 <Sgeo> http://www.expertrating.com/jobs/Programming-jobs/Befunge-Programmer-jobs.asp
2010-04-19
00:05:35 <Sgeo> "END
00:05:36 <Sgeo> Like BAD, but worse. The interpreter terminated, either as a result of Mycology realizing that the interpreter doesnt support something required in a future test, or as a result of the interpreter crashing." How, exactly, is Mycology able to detect the interpreter crashing?
00:06:16 <alise> Perhaps a wrapper shell script? Dunno.
00:06:18 <alise> Oh.
00:06:22 <alise> That's just how he reported the results.
00:06:26 <alise> Not what Mycology /says/.
00:10:59 <Sgeo> If I make a t for LiveFunge-98, will anyone be angry?
00:12:54 <alise> ?
00:13:17 <Sgeo> Concurrent Befunge-93!
00:14:14 <Rugxulo> there are no Befunge jobs, silly :-P
00:15:21 <alise> you said -98
00:15:54 * Sgeo meant -93
00:15:55 <Sgeo> >.>
00:17:12 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
00:17:54 -!- Asztal has quit (Ping timeout: 248 seconds).
00:18:47 -!- Asztal has joined.
00:30:06 * Sgeo misreads Church's Thesis as "Chuck's Thesis"
00:31:46 -!- Rugxulo has quit (Quit: Rugxulo).
00:32:24 -!- FireFly has quit (Quit: Leaving).
00:32:37 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
00:38:01 -!- alise has quit (Ping timeout: 258 seconds).
00:50:07 -!- jcp has joined.
00:59:33 -!- alise has joined.
00:59:36 <alise> http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.4193
00:59:37 <alise> this is GOLD
00:59:41 -!- alise has set topic: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.4193 | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
00:59:45 <alise> someone please remind me of it next week
01:00:56 <alise> Note that here we make an essential use of the universes hierarchy: There is not a unique CAT ,
01:00:57 <alise> there is a family of CATi , and each CATi is a Categoryj for i < j . Thus we do not have \small"
01:00:57 <alise> and \large" categories, but \relatively small" categories. Thus the construction of CAT above is
01:00:57 <alise> consistent with the analysis by Coquand 4] of paradoxes related to the category of categories.
01:00:59 <alise> amazing
01:01:07 <alise> i gotta go now
01:01:10 <alise> Sgeo: it's time again
01:01:28 <Sgeo> Bye alise
01:01:41 <alise> see you guyayayz
01:02:11 <Sgeo> Keep working on improving your situation
01:02:25 -!- Gracenotes has quit (Remote host closed the connection).
01:02:27 <alise> yep
01:02:27 <alise> bye
01:02:31 -!- alise has quit (Client Quit).
01:12:08 <olsner> tried implementing bf using a very small subset of my language's features in order to try and catch the ones that were already implemented
01:12:43 <olsner> turns out I have to implement a huge amount of new stuff and complicate the grammar in order to do something useful
01:27:16 -!- coppro has joined.
01:29:51 -!- coppro has quit (Read error: Connection reset by peer).
01:30:32 -!- coppro has joined.
01:38:55 -!- aschueler has quit (Ping timeout: 252 seconds).
01:41:14 -!- coppro has quit (Quit: reboot).
02:06:28 -!- cheater2 has joined.
02:11:59 -!- Sleeping_boy has joined.
02:21:52 -!- Sleeping_boy has quit (Quit: 暂离).
02:28:33 -!- coppro has joined.
02:35:55 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
02:36:22 -!- michael__ has joined.
02:36:40 -!- michael__ has changed nick to maedhros777.
02:37:28 <maedhros777> Does anyone here know of a good Fugue compiler besides this one: http://esoteric.voxelperfect.net/wiki/Fugue_Compiler? Because I'm having problems with that compiler.
02:38:21 <maedhros777> I use Linux, and when I run the executable that's created it says "cannot execute binary file"
02:43:45 -!- cheater2 has quit (Ping timeout: 258 seconds).
02:46:18 <Gregor> maedhros777: Looks to me like that compiler's output is PE/COFF for Windows. Try wine? Alternatively, write your own :)
02:46:56 <maedhros777> Ok, I'll try wine -- judging by the size of the compiler, I don't think I could write my own :)
02:51:51 <Gregor> Sounds like it's about time for EgoFugue :P
02:52:20 <maedhros777> I just tried wine and it didn't work, unfortunately. Maybe I'll have to write my own compiler, because this language seems interesting.
02:52:46 <maedhros777> What would be really awesome would be if I could make a piece that actually sounded good and executed :)
02:53:29 <maedhros777> Bye now.
02:53:31 -!- maedhros777 has quit (Remote host closed the connection).
02:55:35 -!- Oranjer has left (?).
02:55:36 <Sgeo> AndroFugue!
02:55:43 * Sgeo is obsessed with Android
02:58:55 -!- jcp has joined.
03:00:00 -!- augur has joined.
03:29:43 -!- Asztal has quit (Ping timeout: 246 seconds).
03:33:14 <Sgeo> lower ASCII values
03:33:14 <Sgeo> means lower precedence (isn't that *much* easier to remember?
03:34:06 <Sgeo> http://catseye.tc/projects/n-dcnc/doc/readme.txt
03:34:16 <Sgeo> Aces are only high in certain restricted situations, such
03:34:17 <Sgeo> as when the compiler mistakenly assumes they are high.
03:38:48 <Sgeo> Awesome!
03:38:58 <Sgeo> Ifs are division by 0!
03:39:05 <Sgeo> erm, just division
03:45:12 <coppro> that language spec is awesome
03:56:50 * Sgeo notes that there exists another Concurrent Befunge-93 interpreter
04:00:24 * Sgeo thinks that a Befunge-93 Live Wallpaper might not actually be that pretty
04:36:06 <calamari> Sgeo: android can have live wallpaper?
04:36:28 <Sgeo> http://www.youtube.com/watch?v=Hz1YBcYw_qE
04:37:40 <Sgeo> As of 2.1 I think
04:50:57 -!- Gracenotes has joined.
05:20:05 -!- augur has quit (Ping timeout: 245 seconds).
05:26:08 -!- coppro has quit (Read error: Connection reset by peer).
05:34:29 -!- coppro has joined.
05:36:47 -!- Owner has joined.
05:37:06 -!- Owner has changed nick to evincar.
05:37:45 <evincar> Arbitrary obligatory introduction.
05:39:43 <evincar> What, nobody's up tonight?
05:41:59 * Sgeo is awake
05:42:18 <evincar> Woah hey.
05:42:21 <evincar> I'm not alone.
05:47:24 <evincar> You working on anything interesting?
05:48:06 <Sgeo> If you asked me around the beginning of 2008, I'd have said yes
05:48:21 <Sgeo> Actually, I am working on something now not related to esolangs
05:48:58 -!- augur has joined.
05:49:11 <evincar> Haha...well, I've got a while. What's the story from then to now?
05:49:35 <Sgeo> No one but me cared, so I stopped
05:49:49 * Sgeo was an overzealous promoter
05:50:05 <evincar> Esolangs'll do that to you.
05:50:12 <evincar> Cruell mistresses, the lot of 'em.
05:50:52 <evincar> For the record, that was supposed to be "cruelle", but I mistyped my misspelling. :/
05:51:54 <evincar> Anyway, what's the project of the now?
05:52:43 <Sgeo> A game
05:52:49 <Sgeo> In Active Worlds
05:52:57 <Sgeo> That I shouldn't be talking about, but have, at length
05:53:18 <evincar> Haha...love that.
05:53:24 <evincar> Call it drumming up interest.
05:53:34 <Sgeo> lol
05:54:20 <evincar> All the language stuff I do nowadays is DSLs to fill specific needs in other projects.
05:54:24 <evincar> http://sourceforge.net/projects/protodata/
05:54:38 <evincar> https://sourceforge.net/projects/vision-language/
05:55:04 * Sgeo is eating then sleeping
05:55:10 <Sgeo> I'll look at those another day probably
05:55:27 <evincar> Alright, whatever you want.
05:55:38 <evincar> I'm just trying to kill some time, honestly.
05:55:50 <evincar> Somebody caring would be pretty cool, though.
05:56:03 <Sgeo> Hm, those project seem interesting
05:56:14 <Sgeo> Oh, and someone reviewed the Vision Web Template thing
05:56:27 <evincar> Eh?
05:56:29 <Sgeo> Although I don't quite understand that one. The Protodata seems nice
05:56:34 <Sgeo> http://sourceforge.net/projects/vision-language/
05:56:58 <evincar> Oh, yeah, that's from a friend of mine. :P
05:57:09 <AnMaster> morning
05:57:14 <evincar> Evening.
05:57:28 <Sgeo> Night
05:57:29 <AnMaster> heh not in Europe I guess
05:57:32 <AnMaster> and bbl, going to university →
05:57:39 <evincar> Laters.
05:57:43 <evincar> (And no.)
06:00:57 -!- augur has quit (Remote host closed the connection).
06:01:02 -!- augur has joined.
06:09:05 <evincar> Welp, there goes my interaction for the night.
06:09:09 -!- evincar has quit (Quit: Sleep.).
06:47:15 -!- FireFly has joined.
06:50:46 -!- coppro has quit (Read error: Connection reset by peer).
06:57:35 -!- tombom has joined.
07:48:44 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:50:39 -!- FireFly has quit (Quit: Leaving).
07:50:49 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:14:23 -!- adam_d has joined.
08:41:02 <augur> I recommend that everyone go watch this movie Following by Chris Nolan
08:54:45 -!- augur has quit (Remote host closed the connection).
08:54:51 -!- augur has joined.
08:57:49 -!- calamari has quit (Quit: Leaving).
09:04:59 -!- lament has quit (Quit: lament).
09:14:39 -!- aschueler has joined.
09:15:47 -!- MizardX has quit (Ping timeout: 276 seconds).
09:50:26 -!- Tritonio_GR has joined.
10:06:16 -!- ais523 has joined.
10:06:47 <AnMaster> hi
10:07:39 <AnMaster> current connection is ssh tunnel over unreliable university wlan, and there are microwave ovens near here, so if I don't reply suddenly you now know why.
10:08:34 <ais523> hmm, ok
10:08:41 <ais523> my connection is similar, except without the tunnel
10:11:12 <augur> you both have sucky connections it seems :(
11:03:00 -!- Mathnerd314_ has joined.
11:06:12 -!- Mathnerd314 has quit (Ping timeout: 268 seconds).
11:06:26 -!- Mathnerd314_ has changed nick to Mathnerd314.
11:33:48 -!- cheater2 has joined.
11:42:28 -!- cheater2 has quit (Ping timeout: 246 seconds).
12:14:00 -!- zdhwjcln has joined.
12:14:26 <zdhwjcln> Are there somebody?
12:14:52 -!- zdhwjcln has left (?).
12:20:55 -!- Asztal has joined.
12:23:02 <ais523> zdhwjcln: yes but you didn't stay long enough to find out
12:23:15 <ais523> also, that's a pretty dubious hostname (~Administr as the username, and an IP)
12:42:30 <ais523> <catamorphism> Yes... I turned on the radio this morning and heard something like, "A volcano has erupted in Iceland... but we can't tell you which one, since none of us American reporters would even dare to try to pronounce the name. Tweet us if you know how."
12:47:18 -!- oerjan has joined.
12:52:12 <ais523> alise for the logs: the iPhone developer contract is getting even crazier, see http://www.wired.com/epicenter/2010/04/with-new-developer-agreement-apple-unlevels-the-iad-playing-field/
12:52:41 <ais523> it looks like they've done enough stupid arbitrary restrictions on programmers for the time being, now they're going after marketers
12:53:30 <ais523> and managing to get rid of loads of useful information for programmers at the same time
13:03:10 -!- FireFly has joined.
13:04:58 -!- lereah_ has joined.
13:08:02 -!- cheater2 has joined.
13:37:45 -!- MigoMipo has joined.
13:50:45 -!- oerjan has quit (Quit: leaving).
14:28:17 -!- aschueler has quit (Ping timeout: 265 seconds).
14:30:30 -!- maedhros777 has joined.
14:30:52 <maedhros777> Does anyone know of a good Prelude compiler?
14:32:13 <Gregor> If there's not one linked on the wiki, then there's probably not one ... which means it's time for you to write one ... although prelude being semi-multithreaded would make that interesting ;)
14:32:38 <maedhros777> There is one on the wiki, but I don't think it works.
14:33:05 <maedhros777> I think I might write a Prelude to C compiler and then write a Fugue to Prelude compiler.
14:33:15 <maedhros777> And then put it on the wiki
14:33:20 <Gregor> Good, that means I don't have to.
14:33:24 <maedhros777> :)
14:33:38 <maedhros777> Does a period do anything in Prelude?
14:33:46 <ais523> I have a prelude to BF compiler somewhere, IIRC
14:33:55 <maedhros777> Really?
14:33:57 <maedhros777> Where?
14:33:58 <ais523> wait, no, other way round
14:34:01 <maedhros777> Darn
14:34:07 <maedhros777> I think i saw it on the wiki
14:34:16 <maedhros777> So does a period do anything?
14:34:34 <ais523> hmm, I have a Prelude interp, it seems
14:34:40 <maedhros777> Where?
14:34:53 <maedhros777> On the wiki?
14:35:01 <ais523> on my hard drive, but I could paste it as soon as I figure out how it works
14:35:14 <ais523> and it doesn't seem to do anything special in response to .
14:35:15 <maedhros777> How did you make it without knowing how it works?
14:35:19 <ais523> oh, I did once
14:35:23 <maedhros777> Ok
14:35:26 <ais523> but it's years old
14:35:34 <maedhros777> Could you put it on the wiki?
14:35:48 <ais523> $ ls -l prelude.c
14:35:49 <ais523> -rw-r--r-- 1 ais523 ais523 4309 2006-08-06 17:35 prelude.c
14:35:54 <ais523> wow, that's old
14:35:58 <maedhros777> :)
14:36:07 <maedhros777> Nice, you use Linux
14:36:18 <ais523> yep; unfortunately the code appears to be DOS-specific
14:36:24 <maedhros777> Too bad
14:36:34 <maedhros777> I guess I'll just write my own compiler.
14:36:37 <ais523> but luckily, I had a hint of cross-platform-ness back then and put the DOS stuff in #defines
14:36:51 <ais523> so it should be a one-line change to port
14:37:06 <maedhros777> Should I make it to C or to BrainF**k, do you think?
14:37:28 <ais523> if you're compiling, to C might be easier
14:37:39 <ais523> emulating the effective multiple tapes thing isn't that bad in BF, but it may take some thought
14:37:50 <maedhros777> Yeah, I guess so. Bye now, I'll put it on the wiki when I'm finished.
14:37:53 -!- maedhros777 has quit (Remote host closed the connection).
14:38:16 <Gregor> Do people have something against staying on IRC...
14:38:19 <ais523> hmm, I was about to paste it as well
14:38:20 <ais523> http://www.pastebin.ca/1867807
14:39:10 <Gregor> lol
14:39:31 <ais523> oh, it's not only on the wiki already
14:39:37 <ais523> but someone ported it to POSIX
14:40:21 <ais523> what you really don't want to see is my Prelude to Fugue compiler
14:40:37 <ais523> because it was so specific to the specific system it was running on, I think it could only have run on that one computer
14:40:51 <ais523> it first worked out what the sequence of notes was (sane)
14:41:21 <ais523> then sent a sequence of keystrokes via the Windows SendKeys API to a proprietary MIDI editor which had its keyboard shortcuts set up to be able to receive them properly (insane)
14:41:54 -!- Asztal has quit (Ping timeout: 248 seconds).
14:43:45 -!- maedhros777 has joined.
14:44:16 <maedhros777> Wait, I just thought of something -- what do ^ and v do in Prelude, exactly? Because I don't get the wiki's explanation.
14:44:48 <ais523> maedhros777: why don't you stay in the channel, btw?
14:44:55 <maedhros777> Sure, ok
14:45:02 <ais523> we discovered that my compiler was the one that was already on the wiki just after you left
14:45:08 <ais523> except that on the wiki, it was ported to Linux#
14:45:14 <maedhros777> You mean the interpreter?
14:45:17 <ais523> err, yes
14:45:37 <maedhros777> Does it work? Because I tried the hello world example and it didn't do anything
14:45:39 <ais523> anyway, ^ and v basically peek the top of the next voice's stack
14:45:45 <ais523> and push onto the current stack
14:45:52 <ais523> also, what syntax did you use to run it
14:46:23 <ais523> it seems to take a file from the command line and output on stdout
14:46:34 <maedhros777> I compiled the interpreter, put it in my path, and did: $ prelude helloworld.txt
14:46:46 <maedhros777> Nothing happened
14:46:57 <maedhros777> Here's the hello world: http://esoteric.voxelperfect.net/wiki/Hello_world_program_in_esoteric_languages#Prelude
14:47:03 <Gregor> Nothing happened = it hung, or it quit with no output
14:47:13 <maedhros777> Quit with no output
14:47:22 -!- Gregor-L has joined.
14:47:31 <ais523> I just ran that program through the interpreter and it worked fine
14:47:37 <ais523> however, it doesn't output a final newline
14:47:42 <ais523> so it's possible that your command prompt overwrote it
14:47:51 <maedhros777> Ok, let me try it again.
14:48:07 <maedhros777> I'll have to download the interpreter again, because I just deleted it :)
14:48:08 <ais523> try adding "; echo" to the end of the command line to add a newline
14:48:47 <maedhros777> Wait, yours is the C interpreter, right? Not the python one?
14:48:50 <ais523> yes
14:48:55 <maedhros777> ok, hang on
14:49:13 <ais523> I'm a Perl fan, it's pretty rare for me to write things in Python as a result ;)
14:49:16 -!- BeholdMyGlory has joined.
14:49:18 -!- BeholdMyGlory has quit (Changing host).
14:49:18 -!- BeholdMyGlory has joined.
14:49:21 <Gregor-L> E_WORKSFORME
14:50:44 -!- Gregor-L has set topic: #esoteric, the international hub for esoteric programming language design and deployment - #esoteric is not associated with the joke language Perl, please visit www.perl.org - logs: http://tunes.org/~nef/logs/esoteric/.
14:50:53 <maedhros777> Didn't work
14:51:11 <Gregor-L> E_YOUFAILATC :P
14:51:17 <maedhros777> This is the code you're using, right?
14:51:21 <maedhros777> ...8+.!v...4+.1+!..v!..vvv...4+.!vvv.....9+.3-!###!..v6-!..vv..v
14:51:23 <maedhros777> 9+(1-)^#7+(1-)..^7+!^3+!##8+(1-)^###9+1+(1-)..^^^^^3+!..^8-!#1+!
14:53:27 <maedhros777> Right?
14:53:57 <maedhros777> I was kind of confused about all the periods
14:56:32 <Gregor-L> Presumably nops.
14:56:41 <Gregor-L> To synchronize "timing", you have to waste time.
14:56:56 <maedhros777> Oh, I get it
14:57:05 <maedhros777> So was that the program you were running?
14:57:12 <Gregor-L> Yeah
14:57:20 <maedhros777> That's strange
14:58:00 <maedhros777> And this is the interpreter you're using, right? http://esoteric.voxelperfect.net/files/prelude/impl/prelude.c
14:58:04 <ais523> yes
14:58:14 <ais523> just downloaded, compiled and ran it
14:58:23 <maedhros777> Then what could I be doing wrong?
14:58:48 <ais523> my guess is the problem's with I/O somehow
14:58:55 <maedhros777> I guess
14:58:58 <ais523> either providing the wrong input, or looking in the wrong place for the output
14:59:08 <maedhros777> Hang on, I'll look at the interpreter
15:00:32 <ais523> on another topic, I finally discovered the solution to something that had been bothering me for days: http://www.astucia.co.uk/products/product-details?categoryid=176910&productid=179235&class=product
15:00:51 <ais523> I was walking for miles down a cycle path and wondering wtf those things were (it was daytime)
15:00:57 <maedhros777> :)
15:01:17 <ais523> but luckily some of them were unworn enough to have readable brand names on, and I traced them via the company that made them
15:01:38 <ais523> (you don't know how hard it is to make out the word "Astucia" when it's mostly covered by dirt and worn in places...)
15:04:22 <Gregor-L> ais523: Does interstack communication create a race condition in Prelude, or is there a guaranteed order of evaluation between the voices?
15:04:35 <maedhros777> So what are cv, nv, sp, c, and f?
15:04:48 <ais523> Gregor-L: I don't see any evidence that it isn't a race condition; that hello world is designed to avoid races with appropriate NOPing
15:04:50 <maedhros777> I can't really tell without enough description in the variable names
15:05:17 <Gregor-L> maedhros777: You don't find those variable names helpful and self-explanatory? :P
15:05:19 <ais523> current voice, number of voices for the first two
15:05:41 <maedhros777> Oh, okay. I'll go replace the variable names :)
15:05:44 <ais523> sp seems to be the instruction pointer
15:06:06 <ais523> c seems to just be a generic temporary
15:06:14 <maedhros777> Okay
15:06:21 <ais523> and f's a flag used for breaking out of loops
15:07:09 <ais523> hmm, kind of ridiculous that I can refigure out what this code does so quickly after not seeing it for three years
15:07:26 <maedhros777> And what does kp stand for?
15:08:03 <ais523> must be the stack pointer
15:08:11 <Gregor-L> stacK Pointer
15:08:12 <ais523> well, the array of stack pointers
15:08:22 <Gregor-L> ais523 doesn't quite ... "get" initialisms.
15:08:22 <maedhros777> Ok
15:08:23 <ais523> still, I have no clue why the IP is called sp
15:08:33 <ais523> Gregor-L: s/doesn't/didn't/
15:08:38 <Gregor-L> lawl
15:08:49 <ais523> there's no evidence as to whether I get them or not atm
15:09:24 <ais523> oh, I've also noticed that that program only has one way to exit, and it's always with status code EXIT_FAILURE
15:09:28 <ais523> which is... slightly bizarre
15:09:36 <maedhros777> =D
15:10:02 <ais523> (not counting command line arg problems, which /also/ exit with EXIT_FAILURE)
15:10:26 <Gregor-L> It's just scolding you for using esolangs.
15:10:38 <Gregor-L> Even if it works, running it is still FAILURE.
15:10:48 <ais523> at least I can guess why the static arrays are 10 by 6553; it must be to prevent exceeding the maximum static array size limit in DOS
15:10:59 <ais523> nah, it's scolding you for not writing infinite loops
15:11:11 <ais523> int kp[10]={0}; /* stack pointers. Points to TOS. */
15:11:18 <ais523> hmm, there's actually a comment saying what kp does
15:11:31 <Gregor-L> stacK Pointers
15:12:06 <ais523> at least the code doesn't randomly break with 32-bit ints
15:12:15 -!- songhead95 has joined.
15:12:21 <ais523> (up until around 4 or 5 years ago, I used to write all my code assuming int was 16 bits)
15:12:28 <maedhros777> Wow
15:12:28 <ais523> (apart from when it really had to use the win32 API)
15:12:29 <Gregor-L> Wow
15:12:32 <maedhros777> Fail
15:12:40 <Gregor-L> ais523: Welcome to the 21st century :P
15:12:45 <ais523> thanks
15:13:12 <Deewiant> What changed around 4 or 5 years ago?
15:13:22 <Gregor-L> Deewiant: He installed Windows 95
15:13:24 <ais523> moved to Linux
15:13:31 <ais523> Gregor-L: nah, this was even on Windows XP
15:13:43 <ais523> actually, to UNIX first, then Linux
15:13:47 <maedhros777> Long live Linux
15:13:57 <maedhros777> What distro do you run?
15:14:08 <Gregor-L> OH GOD NO I see distro wars ahead *sobs*
15:14:12 <ais523> Gregor-L: I got really disappointed that the deprecated API for working the PC speaker directly was removed in Windows XP, I used to have fun with that one
15:14:21 <maedhros777> Nah, I don't care much about different distros
15:14:25 <fizzie> ais523: And that drove you to Linux?
15:14:32 <Gregor-L> fizzie: X-D
15:14:42 <ais523> maedhros777: originally, Ubuntu because it was preinstalled, then Ubuntu again because I had to replace my laptop in a hurry and didn't want too radical a change while I was in the middle of something else
15:14:52 <maedhros777> Yeah, I use Ubuntu too
15:14:55 <ais523> fizzie: that, and the random 20-second pauses whenever you tried to load a MIDI file
15:15:08 <maedhros777> OpenSUSE looks pretty good though, I might try it sometime
15:15:22 <ais523> in the end, my games just spent 5 or 6 minutes at the start loading all the MIDI files so it could play them immediately
15:15:38 -!- deschutron has joined.
15:15:51 <fizzie> Our workstations here at work used to run OpenSUSE, but they went Ubuntu recently-ish; not many years ago.
15:15:52 <Gregor-L> Sidux blar blar
15:15:52 <ais523> (the strange thing is, this bug affected Microsoft's own media player too, although for some reason there, it happened the second time the file was loaded, rather than the first)
15:16:02 <Gregor-L> Nowait
15:16:04 <Gregor-L> LFS blar blar
15:16:09 <Gregor-L> All other distros are for pussies.
15:16:29 <maedhros777> =D
15:17:46 <fizzie> Some of these cluster nodes here run CentOS, I think.
15:18:16 <Gregor-L> CentOS is amusing. <RedHat> Getting some money now and then would be nice ... <CentOS> NO.
15:18:18 <ais523> the desktop in my office triple-boots CentOS, CentOS, and Windows 7
15:18:23 -!- lereah_ has quit (Quit: Leaving).
15:18:32 <ais523> Gregor-L: yet Red Hat are still pretty profitable
15:18:36 <maedhros777> Triple boot?
15:18:36 <ais523> somehow
15:18:38 <maedhros777> Wow
15:18:44 <Gregor-L> ais523: Yeah, I don't get it :P
15:18:47 <maedhros777> I double boot XP and Ubuntu
15:18:50 <Gregor-L> All my computers single-boot sidux :P
15:18:53 <ais523> I have yet to figure out why there are two CentOS boots on there
15:19:03 <maedhros777> I never use XP, though
15:19:17 <Gregor-L> maedhros777: SO LONG AS IT IS INSTALLED IT WILL BE YOUR SHAME
15:19:22 <maedhros777> True
15:19:36 <maedhros777> I'll be getting a new laptop soon, though
15:19:45 <maedhros777> I'll try to get a Windows refund
15:19:51 <Gregor-L> <maedhros777> And it'll double-boot Windows 7 and Ubuntu.
15:19:52 <ais523> I have win7 installed, partly for the purpose of obeying the letter of various contracts
15:19:52 <Gregor-L> :P
15:19:53 <maedhros777> And i'll probably fail
15:20:06 <maedhros777> Down with the Windows tax!
15:20:13 <maedhros777> We should have a tea party
15:20:19 <ais523> heh, the box this computer came in basically had a sticker on saying "by opening this box you accept that you can't get a Windows refund even though the EULA inside says otherwise"
15:20:35 <fizzie> And that neighbour cluster runs Rocks, it seems.
15:21:36 <fizzie> There's an amusing joke about dual-booting in a Finnish parody site, but unfortunately it's in Finnish only.
15:21:53 <ais523> fizzie: as in, doesn't work when translated?
15:22:01 <maedhros777> Isn't MS generally required to give a refund?
15:22:05 <ais523> "this sentence is difficult to translate into French"
15:22:22 <Gregor-L> `translateto fr this sentence is difficult to translate into French
15:22:32 <HackEgo> cette phrase est difficile ŕ traduire en français
15:22:49 <ais523> maedhros777: no, MS's EULA says that the hardware company has to give you a refund, and doesn't refund the price of Windows to the hardware company itself
15:23:07 <ais523> and it's part of their own contracts with the hardware companies that the hardware companies have to put up with this
15:23:14 <maedhros777> Darn
15:23:15 <fizzie> ais523: As in, I don't have time to translate ans wouldn't probably generate very good prose anyway. The gist of it is that it's a parody of a column in a computing magazine, and the guy's recounting his experiences on installing Linux on a computer that currently "dual-boots MacOS and Netware 5 simultaneously".
15:23:31 <maedhros777> So I could get a refund, but it would benefit MS?
15:23:34 <ais523> so dodging the Microsoft tax unfortunately doesn't hurt Microsoft, just the hardware manufacturer
15:23:49 <maedhros777> Wow
15:23:51 <ais523> maedhros777: you could /maybe/ get a refund; the majority of companies eventually pay persistent people to go away
15:24:07 <ais523> because it costs them less money than actually trying to handle the whole legally dubious issue
15:24:09 <maedhros777> Yeah, but a Windows OS is like $200
15:24:13 <ais523> no, it isn't
15:24:18 <maedhros777> What is it, then?
15:24:21 <ais523> that's how much it costs to buy in the shop
15:24:25 <ais523> the price preinstalled is much lower
15:24:33 <maedhros777> Like what?
15:24:47 <songhead95> what window manager do you prefer?
15:24:57 <Gregor-L> songhead95: X11 is for the weak.
15:25:14 <fizzie> After the distro wars: window management wars!
15:25:20 <maedhros777> Wow
15:25:23 <maedhros777> :)
15:25:24 <ais523> maedhros777: just looking around online, it seems that the OEM price - that's the price that you could get buying in bulk as a small computer manufacturer - tends to be about half the price of buying in the shops
15:25:26 <fizzie> Awesome for me, even with the Lua bad-smell.
15:25:39 <Gregor-L> ais523: That's still $100 *shrugs*
15:25:41 <songhead95> an esoteric wm would be awsome
15:25:43 <maedhros777> Yeah
15:25:55 <maedhros777> Does Apple give refunds?
15:25:58 <ais523> the values for large manufacturers buying in bulk tend to be lower still
15:26:01 <Gregor-L> maedhros777: Haw
15:26:13 <Gregor-L> maedhros777: Apple barely acknowledges that Mac OS X isn't burnt into ROM.
15:26:20 <maedhros777> :)
15:26:38 <ais523> http://en.wikipedia.org/wiki/Windows_refund is a list of the actual amounts that people were refunded when they actually tried and succeeded
15:29:25 <maedhros777> I guess MS just gets tired of arguing
15:29:51 <songhead95> I hope apple will follow that example
15:30:17 <ais523> well, in pretty much all minor lawsuits, there comes a point where it's cheaper just to give in and pay a trivial amount of money for the other side to go away
15:30:23 <maedhros777> Yeah
15:30:24 <ais523> which is normally just before the lawyers get involved
15:30:50 <maedhros777> They should really be less monopolistic
15:30:58 <maedhros777> If only
15:31:00 <ais523> as for window managers, I'm using Compiz at the moment
15:31:08 <maedhros777> Same
15:31:26 <ais523> although I use xmonad from time to time, I haven't yet figured out how to get it to work with sound and networking, both of which are a little important
15:31:28 <maedhros777> But i use Metacity for Blender, it doesn't work with Compiz
15:31:30 <songhead95> most people would say it's just good fair in the business world
15:32:02 <ais523> (for some reason, the way Ubuntu sets up startup things, which WM you use somehow affects networking and audio, probably because it's different between KDE and Gnome so xmonad gets nothing)
15:33:47 <maedhros777> Is it just me, or in the Prelude interpreter, does sp remain 0 for most of the program, when it's used?
15:34:03 <maedhros777> Ever since line 83
15:35:16 <maedhros777> Oh wait, never mind
15:35:23 <maedhros777> It changes at 180
15:35:35 <ais523> the instruction pointer rarely changes value in an interp
15:35:50 <fizzie> I was under the impression that large corporations have teams of lawyers on retainer-sort of deals all the time anyway, and can use them to bully little people if they're not doing anything more important at the moment.
15:35:53 <ais523> normally, it increments once each time round the main loop, and sometimes jumps up or down if you find a loop
15:36:11 <ais523> fizzie: but their travel costs to small claims court would be too expensive
15:36:14 <maedhros777> Yeah, I'm getting sick of these corporations
15:36:28 <maedhros777> How about we start a tea party? :)
15:37:50 <maedhros777> Destroy all the Windows boxes
15:37:56 <maedhros777> And throw them in the Boston harbor
15:38:20 <maedhros777> Then declare ourselves an independent country
15:38:36 <fizzie> One microsoft lawyer estimated (in a bar over beers, unofficially, to a visiting lecturer) that they spent around a megadollar on lawyer expenses for the EU part of the Oracle-Sun deal, even though it didn't directly concern them.
15:38:37 <ais523> hmm, the problem would be with trying to get rid of a particular magnetic pattern on the hard drive, and throwing that into the harbor
15:38:39 <ais523> nothing wrong with the computer
15:38:55 <maedhros777> True
15:39:07 <maedhros777> Then we can just destroy the software.
15:39:14 <ais523> and Windows is beginning to reach the stage of not being that bad
15:39:16 <maedhros777> Infiltrate it with viruses.
15:39:26 <maedhros777> Not that bad? Are you serious?
15:39:48 <ais523> maedhros777: it's been stealing a whole load of good ideas from other OSes, and maybe even having a few of its own
15:39:54 <ais523> it's certainly /usable/, just frustrating
15:40:06 <maedhros777> Yeah, i'll admit it's usable
15:40:13 <maedhros777> But definitely frustrating
15:40:18 <Gregor-L> It's also stole good ideas from Windows 1 and advertized them to no end as if they're new :P
15:40:33 <maedhros777> And I'd rather not have MS benefit.
15:40:37 <ais523> Gregor-L: seriously? Windows 1 hardly had any features at all
15:40:58 <Gregor-L> ais523: "Snap" is effectively the ONLY window layout of Windows 1, and now it's a feature ;)
15:41:16 <maedhros777> The lady in the commercial just annoys me
15:41:17 <ais523> ah, aha
15:41:30 <maedhros777> "Windows 7 was my idea!" What nonsense.
15:41:31 <Gregor-L> (Also, "snap" already had a meaning in all other windowing systems, and they decided to take it for something else because they're douchebags)
15:41:38 <maedhros777> Linux is truly the people's idea.
15:41:46 <Gregor-L> The People's idea.
15:41:55 <Gregor-L> The People's Republic of Idea.
15:42:00 <Gregor-L> COMMUNISM
15:42:04 <ais523> one interesting thing to notice, btw, is that both the Microsoft and Apple commercials try to make the decision "Mac vs. PC" rather than "OS X vs. Windows"
15:42:07 <pineapple> windows 7: mouse gestures to give you what keyboard shortcuts could give you anyway
15:42:26 <Gregor-L> ais523: Yes, both of them want to choke out other options, just like the Democratic and Republican parties.
15:42:26 <maedhros777> Yeah
15:42:27 <ais523> which is, I suppose, a good way to confuse people into not realizing Linux exists
15:42:37 <ais523> or, well, OpenSolaris or the BSDs
15:42:39 <ais523> or even FreeDOS
15:42:42 <maedhros777> Wow, you sound like you have my politics, Gregor
15:42:58 <ais523> Gregor-L: the UK politics situation has become really confusing
15:43:00 <Gregor-L> My politics are "I fucking hate politics" :P
15:43:20 <ais523> there was a big televised debate on Thursday, and the Liberal Democrats somehow managed to win it by all sensible measures, shocking everyone
15:43:25 <maedhros777> I'm a self-titled anarcho-syndicalist =D
15:43:49 <maedhros777> Similar to democratic socialism
15:44:01 <ais523> they're currently within-statistical-noise of the Conservatives at the top of the polls, with Labour in third, which is also rather unexpected
15:44:10 <maedhros777> So you guys are in the UK?
15:44:14 <ais523> although, the voting system means that they don't have much of a chance
15:44:16 <Gregor-L> ais523 is.
15:44:19 <ais523> maedhros777: I'm in the UK; I think Gregor-L is American
15:44:22 <maedhros777> Ok
15:44:40 <Gregor-L> Amerk'n
15:44:50 <ais523> !help
15:44:51 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
15:44:55 <maedhros777> Gregor-L, whom do you vote for?
15:45:05 <ais523> !bf_txtgen Never gonna give you up, never gonna let you down
15:45:08 <maedhros777> If you don't like the Republicrats
15:45:11 <maedhros777> Nader?
15:45:11 <EgoBot> 481 ++++++++++++[>+++++++>++++++>+++++++++>+++<<<<-]>>++++++.>-------.+++++++++++++++++.<+++++++++++++++++++++++.>----.>----.<<++.++++++++.-.>----.<<+++++++++++++.>>>.<-------.++.+++++++++++++.<<++++.>>>.<+++.<+.>----.>.<.<+.>>++++++++++++.------------.<<--.---------.>+.<.>----.>.<<<++.>>---.<<+++++++..>----.-----------------------------------------------------------------.<--.-------.>>+++++.<.>+++++.----------.++++++.<.<-.+++++++++++.++++++++.-------
15:45:12 <ais523> sorry, this is needed to settle an argument in another channel
15:45:18 <Gregor-L> maedhros777: Given that the two parties are the only ones that have non-zero chance of winning at the national scale, I vote democrat.
15:45:27 <Gregor-L> Usually
15:45:30 <Gregor-L> At the local level it varies.
15:45:40 <maedhros777> Yeah
15:45:55 <maedhros777> I do hate the Republicrats, though
15:45:56 <Gregor-L> In one election I voted for a republic, a democrat, a green, a libertarian and an independent all on one ballot :P
15:46:01 <maedhros777> Wow
15:46:01 <Gregor-L> *republican
15:46:17 <maedhros777> You voted for a republican??!!!
15:46:18 <ais523> technically speaking, isn't the US both a republic and a democracy?
15:46:21 -!- songhead95 has quit (Quit: songhead95).
15:46:22 <Gregor-L> They were each the best and most qualified for the respective roles *shrugs*
15:46:28 <maedhros777> Wow
15:46:40 <maedhros777> Well, I guess the Dems aren't much better
15:46:41 <Gregor-L> ais523: It's a democratic republic and/or representative republic.
15:46:45 <ais523> maedhros777: from an external point of view, the democrats and republicans are so similar that it makes more sense to vote for the sanest person than for the party
15:46:55 <maedhros777> Exactly, I agree
15:47:12 <maedhros777> Just that if i had to vote for a Republicrat, it would be a Dem
15:47:15 <maedhros777> Probably
15:47:23 <Gregor-L> BTW, I'm an Oregonian ... we're even weirder out there :P
15:47:28 <maedhros777> :)
15:47:39 <maedhros777> Strange word, Oregonian
15:47:41 <Gregor-L> It's one of the few states where Greens actually win positions occasional.
15:47:44 <Gregor-L> *occasionally
15:47:51 <Gregor-L> Gawd, these fekking wrist splints are making me mistype
15:47:58 <maedhros777> But I'm a massachussettsian =D
15:48:05 <maedhros777> If that's what the name is
15:48:19 <Gregor-L> Presently I'm in Indiana *bleh*
15:51:52 <ais523> well, you aren't (yet) grounded by an Icelandic ash cloud
15:52:05 <ais523> although, really people need to stop relying on air travel so much
15:52:19 <maedhros777> This is strange -- when I change the interpreter to print the number of voices, it says there are 4
15:52:27 <maedhros777> Shouldn't it be 2?
15:52:49 <ais523> maedhros777: aha, maybe somehow newlines have been doubled in your input file
15:52:55 <ais523> or there are trailing newlines, or something like that
15:53:02 <maedhros777> Perhaps, let me check
15:53:25 -!- songhead95_ has joined.
15:53:27 <maedhros777> How would I change that?
15:53:42 <maedhros777> I'm using gedit, does it do anything strange with newlines?
15:54:30 -!- songhead95___ has joined.
15:54:31 -!- songhead95_ has quit (Read error: Connection reset by peer).
15:55:17 <songhead95___> Hi I'm a mac booting debian, and in the other room is a pc running freebsd
15:55:52 <songhead95___> and in my hand is an ipod ssh-ing into the pc, because you can do that with a jailbreak
15:55:57 <Gregor-L> maedhros777: $ file helloworld.txt
15:56:08 -!- songhead95___ has quit (Client Quit).
15:56:24 <maedhros777> prelude.txt: ASCII text
15:56:31 <maedhros777> Oh yeah, I renamed it prelude.txt
15:57:04 <ais523> strange, file normally says what sort of file terminators it has
15:59:11 <maedhros777> When i do "cat prelude.txt", it just shows two lines
16:01:13 <ais523> maedhros777: if there are carriage-returns in there, they won't be visible
16:01:16 <ais523> try cat -v prelude.txt
16:01:29 <maedhros777> Still two lines
16:01:48 <ais523> any ^M written at the ends of them?
16:01:59 <maedhros777> No
16:02:36 * Gregor-L reappears.
16:02:53 <Gregor-L> Well that's fuckular.
16:03:01 <Gregor-L> I got nothin'
16:03:45 <maedhros777> Hang on, let me try using ftell() in the interpreter when it encounters a newline.
16:06:13 <maedhros777> Oh wait, it works now
16:06:28 <maedhros777> Turns out there were 2 newlines at the end of the file
16:06:54 <maedhros777> Now to write a Fugue to Prelude compiler!
16:07:54 <Gregor-L> Schweet. Have fun with MIDI :P
16:08:11 <maedhros777> Only problem will be that Fugue allows more than just 0..9
16:08:48 <maedhros777> I'll have to alter the interpreter a bit, or just directly interpret Fugue using the interpreter code
16:10:07 <maedhros777> If you listen to the Fugue Hello World (http://esoteric.voxelperfect.net/wiki/Hello_world_program_in_esoteric_languages#Fugue) it sounds horrible =D
16:11:35 <Gregor-L> Are you a musician?
16:11:44 <maedhros777> Yeah
16:11:58 <maedhros777> Why?
16:12:02 <Gregor-L> Well then it seems to me like it's up to you to improve upon it :P
16:12:11 <ais523> maedhros777: it was autogenerated
16:12:16 <maedhros777> Oh, okay
16:12:20 <ais523> I actually find autogenerated Fugue music kind-of beautiful
16:12:24 <maedhros777> Wow
16:12:24 -!- kar8nga has joined.
16:12:34 <ais523> because the program has some sort of a purpose behind it, it's not the normal computer's autogenerated ramblings
16:12:39 <ais523> it grows on you after a while
16:12:48 <maedhros777> What would be awesome would be if an existing piece compiled in Fugue :)
16:13:01 <maedhros777> Well, I mean that it did something
16:13:04 <ais523> (meanwhile, I've been looking at <http://languagelog.ldc.upenn.edu/nll/?p=2257>; just how /do/ you pronounce Eyjafjallajökull, anyway?)
16:13:40 <ais523> they actually interviewed a bunch of icelanders, and they all gave different pronunciations
16:16:38 <ais523> some day I want to compile Lost Kingdoms to Fugue
16:16:44 <ais523> I wonder how long the resulting tune would be?
16:16:54 <ais523> I probably need to learn the MIDI file format first, though, so I can generate it directly
16:17:17 <Gregor-L> ais523: http://alsa.opensrc.org/index.php/MidiComp Use this intermediary format instead.
16:17:53 <ais523> ugh, web's being unreliable again
16:18:01 <ais523> it's not a DNS problem or proxy problem
16:18:14 <ais523> because there's no proxy (that I know of), and I'm using level3's DNS
16:18:24 -!- maedhros777 has quit (Ping timeout: 245 seconds).
16:18:29 <Gregor-L> midicomp is a MIDI-to-ASCII-to-MIDI convertor that uses an ASCII format very related to MIDI, but without fekking around with MIDI bignums and the like.
16:18:29 <ais523> and it works or doesn't work randomly when I try to load the page
16:18:52 <Gregor-L> I use it whenever I have to write programs that fekk with MIDIs :P
16:19:41 <ais523> hmm, I'll just use CPAN
16:27:40 -!- Asztal has joined.
16:33:19 -!- augur has quit (Ping timeout: 246 seconds).
16:38:52 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
16:39:24 -!- lament has joined.
16:45:04 <AnMaster> Gregor-L, MIDI bignums?
16:45:05 <AnMaster> what?
16:45:20 <Gregor-L> AnMaster: MIDI files use a bignum format.
16:45:33 <AnMaster> Gregor-L, heh, as scaled integer or what
16:45:35 <AnMaster> ?
16:45:59 <Gregor-L> AnMaster: One bit of each byte is used to indicate whether the next byte is part of the bignum. The rest are used as part of the number.
16:46:14 <Gregor-L> It's used for ... everything.
16:46:24 -!- lament has quit (Quit: lament).
16:47:24 <ais523> Gregor-L: hmm, like UTF-9?
16:47:38 <Gregor-L> Never 'eard of UTF ... 9 ...
16:47:56 <AnMaster> Gregor-L, sure, but consider the length of a note for example. How is that encoded? An _integer_ wouldn't work unless you could do a _scaled_ integer or a ratio between two or such
16:48:16 <Gregor-L> AnMaster: It's an integer number of ticks.
16:48:24 <Gregor-L> AnMaster: You have to choose your ticks wisely so that you can encode all notes you need.
16:48:30 <AnMaster> hah
16:48:38 <AnMaster> Gregor-L, and how is the tick encoded?
16:48:50 <Gregor-L> Ticks per beat, an integer.
16:48:58 <AnMaster> right
16:49:05 <Gregor-L> And beats are in something like microseconds per beat.
16:49:16 <Gregor-L> Erm, tempo is, that is.
16:49:32 <AnMaster> yeah I was trying to figure out how that recursive definition worked ;P
16:50:17 <Gregor-L> Sadly, most systems that write MIDIs use a fixed, and often bad, tick length.
16:50:21 <Gregor-L> Erm
16:50:25 <Gregor-L> Ticks/beat rather
16:50:29 -!- Asztal has quit (Ping timeout: 245 seconds).
16:50:38 <Gregor-L> 1024 is a popular (and inexcusably flawed) choice.
16:51:00 <Gregor-L> It should be a large power of 2 times as many primes as you can reasonably get.
16:51:13 <Gregor-L> e.g. 256*3*5*7*11
16:51:22 <AnMaster> Gregor-L, what a about rosegarden?
16:51:30 * Gregor-L checks
16:51:57 <Gregor-L> It uses 480
16:52:01 <Gregor-L> Which is a decent one.
16:52:02 <pineapple> Gregor-L: i thought it was 960, not 1024
16:52:27 <ais523> the Perl libraries default to 96, unless you really happen to need a different division
16:52:32 <pineapple> i've seen 960 used by something, but i forget what
16:52:32 <Gregor-L> pineapple: 960 is the less-popular, non-flawed choice.
16:52:44 <Gregor-L> 96 doesn't allow for proper 5-tuplets.
16:52:44 -!- Asztal has joined.
16:52:47 <AnMaster> Gregor-L, 480 is less detailed than 1024?
16:53:00 <Gregor-L> AnMaster: 1024 doesn't allow for proper 3- or 5-tuplets.
16:53:17 <Gregor-L> It needs to be a power of many 2s, and as many primes as possible to allow for tuplets.
16:53:24 <pineapple> 840?
16:53:32 <Gregor-L> Since 7-tuplets and higher are rare, multiples of 7 are generally reserved for Chopin :P
16:53:32 <AnMaster> Gregor-L, true. So what about 8192*3*5*7*13 or such?
16:53:37 <pineapple> seems to be the best i can come up with
16:53:50 <Gregor-L> AnMaster: If you get too high, you're liable to make beat counts be enormous :P
16:54:00 <AnMaster> Gregor-L, heh
16:54:06 <pineapple> AnMaster: i think the format is limited to 1024
16:54:16 <ais523> it should be the number with the most factors less than 16384
16:54:17 <AnMaster> Gregor-L, IMO rosegaden should check how much it needs when exporting to midi
16:54:28 <AnMaster> pineapple, that would be stupid
16:54:39 -!- ais523 has quit (Remote host closed the connection).
16:54:43 <Gregor-L> AnMaster: It might, I just checked an example file *shrugs*
16:55:00 <Gregor-L> pineapple: The format isn't limited IIRC, although it's quite possible that many /players/ are limited.
16:55:01 <pineapple> although i might be wrong about the limit
16:55:34 <pineapple> well... 3.5.7 = 105; i'd be tempted to add another 3 in that before adding an 11
16:55:52 <Gregor-L> pineapple: WOULDJA LIKE SOME 2S
16:55:53 <Gregor-L> :P
16:56:02 <pineapple> Gregor-L: i'm adding the 2s on afterwards
16:56:17 <Gregor-L> I'd say 128ths are more common than 9-tuplets.
16:56:19 <pineapple> work out how many i have "room" for
16:56:56 <pineapple> 20160 ?
16:57:06 <pineapple> 3.3.5.7.64
16:59:34 <fizzie> I've done a reasonable bit of manual MIDI file handling for a former jobplace; it's certainly a bit crafty format. The time division field is either 15-bit "ticks per beat" thing, or some sort of SMPTE time-code based frames-per-second value (7 bits for fps, 8 for ticks/frame).
16:59:50 -!- Asztal has quit (Ping timeout: 260 seconds).
17:02:26 <AnMaster> Gregor-L, I demand 127-tuplets!
17:02:40 <AnMaster> in your next piece ;P
17:02:51 <AnMaster> I have no clue how it would sound
17:03:18 <AnMaster> Gregor-L, btw what about midi as in the hardware protocol thingy, does it use such a tick too?
17:04:19 <Gregor-L> I don't know.
17:04:22 <Gregor-L> I only know the file format.
17:05:16 -!- 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).
17:05:56 -!- Asztal has joined.
17:06:20 -!- maedhros777 has joined.
17:06:38 <maedhros777> Sorry, I lost my internet connection
17:09:37 <maedhros777> So does anyone know of an MIDI library or where the specification is?
17:09:50 <Gregor-L> `google midi file format
17:09:54 <maedhros777> ok
17:09:55 <HackEgo> The standard MIDI file format is a very strange beast. When viewed as a whole, it can be quite overwhelming. Of course, no matter how you look at it, ... \ faydoc.tripod.com/formats/mid.htm - [13]Cached - [14]Similar
17:10:18 <Gregor-L> midicomp is a MIDI-to-ASCII-to-MIDI convertor if you want to make your life easier but have another intermediary.
17:10:31 <maedhros777> Wow, I googled it and i got that exact site :)
17:10:49 <Gregor-L> maedhros777: How unsurprising what with `google being a script that googles :P
17:11:01 <maedhros777> Yeah, this is a strange format
17:12:15 <maedhros777> Oh yeah -- I don't know if any of you are musicians, but are accidentals allowed in Fugue, or a key other than C major?
17:12:47 <Gregor-L> The spec makes that utterly unclear.
17:12:56 <Gregor-L> I would say, since it's interval-based, assume the first note is the root.
17:13:04 <Gregor-L> (Which is horribly broken, but ignore that :P )
17:13:19 <Gregor-L> Treat diminshed and augmented intervals as if they were the natural interval.
17:13:23 <maedhros777> Well, I guess that just gives you C major, A minor, and all the strange modes out there
17:13:40 <maedhros777> I do like Phrygian though
17:14:17 <Gregor-L> maedhros777: I recall this spec being quite useful: http://www.sonicspot.com/guide/midifiles.html
17:14:31 <maedhros777> Ok, thanks
17:15:35 <maedhros777> So, if i take forever, I could write a 2-hour composition in E phrygian that does a text adventure game when run =D
17:15:40 <maedhros777> That would be so awesome
17:15:46 <Gregor-L> ... yes :P
17:15:55 <Gregor-L> But not if I do it first.
17:15:58 <Gregor-L> (Which I won't)
17:15:58 <maedhros777> I take it you're a musician?
17:16:08 <Gregor-L> http://codu.org/music/
17:16:20 <maedhros777> You have a website?
17:16:34 <Gregor-L> ... no, I was just linking some totally random site</sarcasm>
17:16:59 <maedhros777> Wow, you're a good pianist
17:17:17 <Gregor-L> Okidokie.
17:17:27 <maedhros777> Did you write all these, or just some?
17:17:47 <Gregor-L> Everything on that page was written by me.
17:17:52 <maedhros777> Sweet
17:17:58 <maedhros777> What are your influences?
17:18:37 <maedhros777> http://codu.org/hats.php Nice hats :)
17:18:46 <Gregor-L> My favorite composer is Borodn, I like all the other Romantic-era Russian composers, also Chopin ... I also like to think there's a tiny tidbit of jazz in there, though not much.
17:19:06 <maedhros777> Yeah, I like Chopin
17:19:34 <maedhros777> My favorites are Baroque,like Bach and Vivaldi, and some Romantic like Mendelssohn and Paganini
17:19:48 <Gregor-L> http://aforteforpiano.wordpress.com/ I was working on Chopin's third nocturne from Op. 9 until I just recently got my hands put in wrist splints as punishment for working on Chopin's third nocturne from Op. 9 ...
17:19:56 <maedhros777> I play guitar, right now I'm trying to learn Paganini's 24 caprice
17:20:00 <maedhros777> It's wicked hard
17:20:13 <maedhros777> http://www.youtube.com/watch?v=b6XJkRBPSQc
17:20:46 <Gregor-L> Guitar in a classical context doesn't get the respect it deserves.
17:20:50 -!- adam_d has quit (Ping timeout: 265 seconds).
17:20:51 <maedhros777> Yeah
17:21:01 <maedhros777> I play guitar and piano
17:21:06 <Gregor-L> Meanwhile, the piano gets tossed in over music that predates the instrument :P
17:21:14 <maedhros777> Yeah
17:21:24 <maedhros777> Bach used the harpischord
17:21:30 <maedhros777> It sounded pretty good
17:21:47 <Gregor-L> I've got a sweet digital piano with a really nice harpsichord sound, I like to use it when I play Bach.
17:21:52 <maedhros777> Nice
17:22:30 <maedhros777> I know a really good pianist who can play Mendelssohn's fantasy in F# minor (http://www.youtube.com/watch?v=ODorVTR7p4w)
17:22:33 <maedhros777> It's insane
17:23:05 <maedhros777> His fingers move at like a billion mph
17:24:08 <Gregor-L> Y'know, I think raw velocity isn't quite the right measurement for such things :P
17:24:15 <maedhros777> =D
17:24:40 <maedhros777> Well, there isn't really a unit of measurement for finger speed on piano
17:25:06 <Gregor-L> Sure there is ... the scale goes from "first grader who just started Piano lessons" to "Rachmanninov"
17:25:29 <maedhros777> :)
17:25:42 <Gregor-L> That's also a hand-size scale, btw.
17:25:48 <maedhros777> I'm not great at piano, right now I just play a bit of Beethoven
17:26:03 <maedhros777> And some jazz stuff
17:26:45 <maedhros777> So on choosemyhat.com, do you actually wear those hats wherever you go?
17:26:49 <Gregor-L> Yup
17:27:04 <Gregor-L> I'm wearing a pakul even as we speak.
17:27:10 <maedhros777> Sweet
17:27:33 <maedhros777> I vote for the Scottish hat tomorrow
17:27:53 <maedhros777> Only one vote though, too bad
17:28:03 <maedhros777> Looks pretty awesome :)
17:28:19 <maedhros777> You should get a Viking helmet.
17:29:28 <Gregor-L> I have two Scottish hats :P
17:29:34 <Gregor-L> Also, I try to keep my hats JUST south of insane.
17:29:43 <maedhros777> Darn :)
17:29:55 <maedhros777> The scottish hat looks pretty good, though
17:30:23 <Gregor-L> I still have two Scottish hats :P
17:30:25 <maedhros777> So can the same IP vote for different days?
17:30:35 <Gregor-L> Yes.
17:30:38 <Gregor-L> But only one per day.
17:30:42 <maedhros777> I'll do that
17:31:20 <maedhros777> I voted for the pirate hat on Wednesday
17:32:55 <Gregor-L> I don't own a pirate hat, but I appreciate your vote for my extremely-patriotic American-style tricorn.
17:33:11 <maedhros777> :)
17:34:06 <maedhros777> It's funny how myths about pirates spring up, real pirates live in Somalia and wouldn't say "arr", they'd just shoot you with an m16
17:35:29 <Gregor-L> And if they'd get the hell out of there, the government could fix itself and I could finally buy the domain name which is my greatest dream: libc.so
17:35:56 <maedhros777> Why do you want that?
17:36:12 <Gregor-L> ... because it's libc.so!
17:36:17 <maedhros777> Ok
17:36:30 <maedhros777> http://codu.org/colormatch/ Pretty interesting
17:36:38 <Gregor-L> I don't even know what I'd use it for, probably just forward it to the GNU libc page ;P
17:38:25 -!- tombom has joined.
17:38:45 <maedhros777> Wow, you have a lot of results
17:40:19 <maedhros777> http://codu.org/colormatch/q/index.php This is pretty accurate
17:40:32 <maedhros777> I'm saying yes to a lot of them
17:42:36 <maedhros777> Wow, did you write Plof by yourself?
17:44:09 <maedhros777> It looks interesting, extremely flexible
17:46:17 <Gregor-L> Today, a tour of Gregor Richards Technologies :P
17:46:30 -!- deschutron has left (?).
17:46:36 <maedhros777> Yep
17:46:37 <Gregor-L> Some of the standard library was written by pikhq, the interpreter, spec and most of the standard library were written by me.
17:47:18 <maedhros777> Wait, I downloaded Plof but the INSTALL file says to run configure; I don't see it
17:47:37 <maedhros777> Or should i be running configure.ac?
17:47:43 <Gregor-L> Heh, that INSTALL is autogenerated; you have to have autoconf and automake installed, and run ./autoreconf.sh before running configure.
17:48:09 <Gregor-L> (Conventionally, since configure scripts are generated, they're not put into source repositories)
17:48:55 <maedhros777> Ok
17:49:39 <maedhros777> When I run make it says "plof/plof.h:31:19: error: gc/gc.h: No such file or directory"
17:49:47 <Gregor-L> Requires libgc :P
17:49:59 <Gregor-L> (And libgc-dev or whatever your package manager wants to call it for compiling)
17:50:15 <maedhros777> Okay, I'll apt-get it
17:50:39 <Gregor-L> Get libffi-dev while you're at it.
17:50:44 <Gregor-L> Not STRICTLY necessary, but a huge plus.
17:50:47 <maedhros777> Okay
17:51:24 <Gregor-L> (Also, we should probably move this to #plof )
17:51:33 <maedhros777> Ok
17:52:44 -!- Sgeo has quit (Ping timeout: 265 seconds).
17:53:16 -!- Sgeo has joined.
17:54:29 <AnMaster> Gregor-L, what package?
17:54:32 <AnMaster> oh plof
17:57:32 -!- maedhros777 has quit (Remote host closed the connection).
18:00:09 <pikhq> I got highlighted, and the highlight is not in my buffer.
18:00:42 <Gregor-L> <maedhros777> Wow, did you write Plof by yourself?
18:00:42 <Gregor-L> <Gregor-L> Some of the standard library was written by pikhq, the interpreter, spec and most of the standard library were written by me.
18:00:47 <pikhq> Oh, there it is. Away message.
18:00:54 <pikhq> 23:29 #esoteric: < coppro> pikhq: ping?
18:01:05 <pikhq> That was the highlight.
18:01:09 <pikhq> A few days ago.
18:01:19 * pikhq just returned from weekend-ness
18:02:01 <pikhq> Gregor-L: BTW, just "autoreconf" works instead of ./autoreconf.sh nowadays.
18:02:22 <Gregor-L> pikhq: ./autoreconf.sh just runs autoreconf, then find . -name autom4te.cache | xargs rm -rf :P
18:02:29 <pikhq> Oh, I see.
18:02:30 <pikhq> :)
18:02:46 <AnMaster> what is the point of autom4te.cache?
18:02:49 <AnMaster> I always wondered
18:03:01 <AnMaster> I mean, it seems just as slow with as without that cache
18:03:02 * Sgeo goes off to take a cold shower
18:03:18 <Gregor-L> If you run autom4te (as part of autoconf) again, it doesn't need to expand macros it has cached.
18:03:36 <AnMaster> heh, I never noticed any speed diff
18:03:43 <Gregor-L> It's quite stupid, because we live in 2010, not 1975 :P
18:03:49 <AnMaster> Gregor-L, and _why_ does plof (presumably) use autoconf?
18:03:59 <AnMaster> after all we live in 2010, not 1975 :P
18:04:11 <Gregor-L> Because all the alternative systems suck donkey balls, and autoconf merely sucks dog balls?
18:04:31 <AnMaster> Gregor-L, yeah but it is one of those huge wild dogs :P
18:05:05 <AnMaster> Gregor-L, anyway there are non-sucky build systems.
18:05:20 <Gregor-L> When you spend two years doing software build automation, you learn to love autoconf and hate {plain makefiles,scons,that one the name of which I can't remember}
18:05:28 <AnMaster> however all those I know of are targeting a single specific language
18:05:32 <AnMaster> like erlang or whatever
18:05:48 <AnMaster> Gregor-L, BSD make?
18:06:08 <AnMaster> Gregor-L, also there is a technical term for that. It is: brainwashing
18:06:19 <Deewiant> CMake?
18:06:22 <Gregor-L> CMake!
18:06:25 <Gregor-L> That's the one I hate the most!
18:06:28 <Gregor-L> God CMake sucks.
18:06:39 <pikhq> Most build systems are *terrible* for automation.
18:06:41 <Gregor-L> Couldn't even remember that crappile's name.
18:06:45 <AnMaster> Gregor-L, why? I mean, it used to be worse. But even back then it was better than autoconf
18:06:48 <pikhq> Autoconf at least gets it right.
18:06:49 <Gregor-L> And yes, CMake SUCKS for automation.
18:07:17 <AnMaster> custom build system?
18:07:22 <pikhq> Gregor-L: Less so than it used to.
18:07:22 <Gregor-L> lawl
18:07:29 <pikhq> AnMaster: Those, I BURN WITH FIRE.
18:07:30 <AnMaster> Gregor-L, the kernel has a _very_ nice build system IMO
18:07:38 <AnMaster> pikhq, so you prefer the kernel to use autoconf?
18:07:43 <AnMaster> imagine the _huge_ command line
18:07:48 * pikhq too has spend quite a bit of time doing build automation
18:07:59 <Gregor-L> AnMaster: That no longer counts as custom, and its system only makes sense when you have an untenably huge number of configuration options.
18:08:02 <pikhq> AnMaster: No, that is one of the *very* few custom build systems that's not evil.
18:08:05 <AnMaster> to ./configure --arch=amd64 --enable-sata --disable-whatever --with-foo=module
18:08:07 <AnMaster> and so on
18:08:28 <pikhq> It's great when you have a massive number of configuration options.
18:08:34 <Gregor-L> Most software packages are nowhere near as build-configurable as {the kernel,busybox}.
18:08:35 <AnMaster> Gregor-L, iirc uclibc uses kernel configure
18:08:39 <AnMaster> so does busybox iirc
18:08:53 <AnMaster> yeah
18:08:57 <pikhq> uclibc and busybox are both complex enough to need it.
18:09:00 <AnMaster> true
18:09:09 <pikhq> There's also ALFS.
18:09:14 <AnMaster> I wonder why glibc doesn't use it
18:09:17 <AnMaster> pikhq, ALFS?
18:09:27 <pikhq> Automated Linux From Scratch.
18:09:31 <Gregor-L> Automated Linux From Scratch. It is exactly as WTF as it sounds.
18:09:33 <AnMaster> pikhq, oh it uses that?
18:09:37 <pikhq> Yeah.
18:09:40 <AnMaster> and ALFS sounds like cheating ;P
18:09:50 <pikhq> Only slightly.
18:09:52 * AnMaster did LFS and HLFS the hard way
18:10:09 <AnMaster> and HLFS I did successfully for a (back then at least) unsupported arch
18:10:29 * pikhq can generally bootstrap a build chain from memory by now
18:10:39 <AnMaster> but ALFS sounds interesting, I would very much like to learn how the kernel build system works on the inside
18:10:55 <AnMaster> but perhaps it will start to look horrible around then
18:10:58 <pikhq> I start having issues when members of the build chain don't build without patches.
18:11:09 <Gregor-L> Stupid patches :P
18:11:12 <AnMaster> hm?
18:11:17 <pikhq> (uClibc; GCC just plain *hates* uClibc without patches)
18:11:27 <AnMaster> pikhq, do llvm + clang?
18:11:33 <Gregor-L> X_X
18:11:38 <AnMaster> or isn't that mature enough to manage libc, kernel and so on yet?
18:11:47 <pikhq> Insufficiently mature.
18:11:51 <Gregor-L> <Apple> clang solves ALL PROBLEMS and also allows us to lock GNU out of OS X.
18:11:53 <AnMaster> right
18:12:07 <AnMaster> Gregor-L, you started hating clang now?
18:12:08 <pikhq> Well. The *C* frontend is, but the C++ frontend in the stable release isn't.
18:12:13 <AnMaster> I thought you loved it recently
18:12:16 <Gregor-L> AnMaster: No, I don't hate clang, I hate Apple.
18:12:19 <Gregor-L> I never loved clang.
18:12:21 <AnMaster> ah
18:12:23 <AnMaster> hm
18:12:23 <Gregor-L> I'm ambivalent toward clang.
18:12:28 <AnMaster> perhaps it was pikhq who did
18:12:36 <pikhq> I do quite like Clang.
18:12:45 <pikhq> It gives useful errors. Is nice.
18:12:50 <Sgeo> There's an Apple IIe emulator for Android
18:13:03 <AnMaster> pikhq, who cares about C++? I don't think you need C++ for the base system
18:13:04 <Sgeo> Why do I have a feeling one will never exist for iProduct?
18:13:07 <Gregor-L> Sgeo: On a scale from one to ten, I find that entirely unsurprising.
18:13:21 <Gregor-L> Sgeo: Because it's against the SDK license agreement?
18:13:28 <AnMaster> pikhq, well of course you do for clang itself
18:13:37 <AnMaster> but yeah apart from that (and that includes llvm)
18:13:37 <pikhq> AnMaster: Surprisingly? Many things do require C++.
18:13:52 <Sgeo> Gregor-L, how is RoboZZle not against it?
18:14:01 <AnMaster> pikhq, getting a bootable POSIX shell with the standard POSIX commands does not
18:14:23 <Gregor-L> Sgeo: It probably "is", but the license agreement is more about Apple asserting themselves as douchebags than actually accomplishing anything.
18:14:29 <pikhq> Depends on what you mean by "standard". Sure, coreutils and fileutils you can get without a C++ compiler..
18:15:22 <AnMaster> pikhq, well, all that is required from POSIX. I very much doubt you can't get that without C++. Unless it explicitly declares there should be a /usr/bin/c++ (and I have forgotten that)
18:15:40 <AnMaster> and by that I mean POSIX.1-2008 with no optional features
18:16:02 <AnMaster> the only thing that is an issue is the C compiler
18:16:04 <AnMaster> as I said above
18:16:22 <AnMaster> and in theory you could just use an older gcc version before it needed c++ stuff or pcc
18:16:30 <AnMaster> (or tcc)
18:17:52 <AnMaster> ooh this looks nifty: http://codu.org/projects/stuff/hg/index.cgi/file/32bf7f3d092d/lddcapture
18:18:49 <pikhq> You can actually build GCC without a C++ compiler, and not build in C++ support.
18:19:04 <AnMaster> Gregor-L, does it copy just the files listed in ldd or does it try to copy the original one in case it happens to be a symlink? and then run ldconfig to recreate the symlink
18:19:24 <AnMaster> pikhq, yes but gcc nowdays depend on some C++ libs iirc
18:19:33 <AnMaster> I don't think they are optional any more
18:19:58 <Gregor-L> AnMaster: It copies and does not recreate symlinks.
18:20:00 <AnMaster> http://gcc.gnu.org/install/prerequisites.html
18:20:11 <AnMaster> or hm maybe not
18:20:16 <Gregor-L> AnMaster: The created files are not expected to be canonical names, they are expected to be the names expected by the linker.
18:20:29 <AnMaster> Gregor-L, ah okay
18:20:58 <AnMaster> Gregor-L, this explains why it was too good to be true. Was hoping it was the perfect tool for populating chroots with the required libs
18:21:43 <Gregor-L> Well, it could certainly do that, so long as you don't care about the filename being correct ... that being said, if the libs depend on other files, you're still screwed.
18:22:03 <Gregor-L> (e.g. files in /usr/share)
18:22:03 <AnMaster> Gregor-L, oh. Very much to good to be true then
18:22:06 <AnMaster> ah
18:22:23 <AnMaster> Gregor-L, so it *does* do foo -> libbar -> libquux correctly then?
18:22:32 <Gregor-L> Yes, in the sense that ldd does that for it.
18:22:49 <pikhq> AnMaster: No, those libraries just have optional C++ bindings.
18:23:08 <Gregor-L> Must disappear now, ta.
18:23:10 -!- Gregor-L has quit (Quit: Leaving).
18:23:11 <AnMaster> Gregor-L, idea for future version: decompile the code in case of dlopen() to figure out (if possible) the arguments it is called with ;)
18:23:22 <AnMaster> gah, he missed that lame joke
18:23:29 <AnMaster> pikhq, hm
18:24:06 * Sgeo feels unsanitary :(
18:32:57 -!- Mathnerd314_ has joined.
18:35:37 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
18:35:38 -!- Mathnerd314_ has changed nick to Mathnerd314.
19:01:03 -!- Phantom_Hoover has joined.
19:01:24 <Phantom_Hoover> Is there a thing like fork() which keeps the two threads using and modifying the same memory?
19:01:31 <Phantom_Hoover> In C, I should add.
19:03:08 <pikhq> Look into pthreads.
19:03:24 <pikhq> Also: abandon all hope, ye who enter here.
19:14:24 <Phantom_Hoover> Thanke ye.
19:20:58 <Phantom_Hoover> O dear god the manual pages don't cross-reference properly.
19:21:03 <Phantom_Hoover> HELP.
19:24:05 <AnMaster> heh
19:24:18 <AnMaster> Phantom_Hoover, it doesn't?
19:24:30 <AnMaster> what bit of it specifically?
19:24:55 <AnMaster> things under "see also" in man pthreads seems to work
19:24:57 <AnMaster> tried only a few
19:25:39 <AnMaster> and there is always man pthread<tab><tab><y to list all 114 posibilities>
19:27:38 <Phantom_Hoover> I can't have much more than twenty things in man,
19:28:21 <Phantom_Hoover> I've checked Synaptic, and it doesn't look like there's a doc package I'm missing, or at least not an obvious one.
19:32:28 <AnMaster> eh?
19:32:38 <AnMaster> Phantom_Hoover, what specific man page are you missing?
19:32:51 <AnMaster> Phantom_Hoover, try apt-file on it
19:33:05 <AnMaster> (install and update apt-file's db first of course)
19:34:44 <Phantom_Hoover> Most of the ones beginning with "pthreads", it seems.
19:35:40 <AnMaster> Phantom_Hoover, I can't help you without a *specific* example
19:35:48 <AnMaster> so I can search for what package provides it
19:36:03 <AnMaster> now since you seem completely uninterested I'll leave it to yourself
19:36:06 <AnMaster> have fun with apt-file
19:36:48 <AnMaster> (it might be 3p, worth considering)
19:44:35 <Gregor> manpages-posix-dev
19:47:30 <AnMaster> Gregor, he could have tried to help himself. He refused the help first, then the help to help.
19:48:06 <Phantom_Hoover> pthread_create
19:48:15 <AnMaster> Phantom_Hoover, well Gregor already helped you
19:48:26 <Phantom_Hoover> Oops, missed that. Thanks.
19:48:33 <AnMaster> Phantom_Hoover, I'm not feeling in the mood for helping someone who needs to look up in a dict what "specific" means
19:49:08 <AnMaster> (that is the only theory consistent with your behaviour...)
19:51:50 <Gregor> Feeling a modicum more dickish than usual, eh
19:52:53 <AnMaster> Gregor, I'm rather annoyed in general if that is what you mean
19:53:15 <Gregor> Ah x-p
19:53:24 <AnMaster> Gregor, I also always have a problem with people who can't keep up in a convo.
19:53:29 <AnMaster> well
19:53:35 <AnMaster> it is fine up to a point
19:53:52 <AnMaster> (that point varies depending on lots of things)
19:58:03 <Phantom_Hoover> Bye
19:58:05 -!- Phantom_Hoover has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100401213457]).
20:01:42 -!- MigoMipo has joined.
20:10:14 -!- MizardX has joined.
20:14:09 -!- Tritonio_GR has joined.
20:17:44 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
20:21:20 -!- charlls has joined.
22:23:02 -!- clog has joined.
22:23:02 -!- clog has joined.
22:23:09 -!- jcp has joined.
22:24:03 <AnMaster> fizzie, well? How do they work?
22:33:19 <fizzie> No clue; they haven't told us.
22:33:57 <fizzie> I think the Storage System (tm) is a commercial thing; the name was mentioned.
22:37:45 <fizzie> There was a SAN system called EMC CLARiiON AX150, but I'm not sure if that's the new or the old one.
22:41:33 <fizzie> "The laboratory has two large disk systems. The primary disk system is an HP EVA 5000, and the secondary is the newer EMC AX150."
22:41:45 <fizzie> I'm just not sure the "newer" here equals "newest", too.
22:42:10 <fizzie> At least the server names have changed.
22:48:30 -!- Norvig_Bonanza has joined.
22:48:40 -!- Norvig_Bonanza has left (?).
22:49:36 -!- augur has joined.
22:50:59 <fizzie> Last SysAdmGroup meeting minutes document says they've actually been thinking about 5 GB/10 GB (soft/hard) quotas for ~; nothing for project and work disks, of course.
22:51:26 -!- tombom has quit (Quit: Leaving).
23:10:13 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:10:23 -!- cheater2 has quit (Ping timeout: 276 seconds).
23:15:41 -!- charlesq__ has joined.
23:16:05 <fizzie> AnMaster: Oh, and you asked about the SSD speed; this is the lamest benchmark of them all (hdparm -t --direct), but http://pastebin.com/TwSHuU5f -- sda's the SSD, sdb and sdc are identical "energy-save, low-noise" marketed 5400 RPM 1TB rotating disks.
23:18:01 -!- charlls has quit (Ping timeout: 252 seconds).
23:18:42 -!- Rugxulo has joined.
23:18:59 <Rugxulo> <maedhros777> "Windows 7 was my idea!" What nonsense.
23:19:10 <Rugxulo> they show the French ad (!) here in the U.S. ad nauseum ... why????
23:19:26 <pikhq> Rugxulo: Fuck if I know.
23:19:41 <pikhq> It's not even like we have a notable French-speaking population outside of Louisiana...
23:20:05 -!- FireFly has quit (Quit: Hey! Listen!).
23:20:10 <Rugxulo> it's got (very small) subtitles, but they also (less often) show the English (U.K.) ad too
23:20:23 <Rugxulo> at least that one is comprehensible
23:20:37 <Rugxulo> still, talk about a waste of money ... "Buy Windows! Oh wait, 99% of you already have it!"
23:21:14 <Rugxulo> I still laugh at the truth in ye olde "advertising, advertising, advertising ... fix Vista ... advertising, advertising, advertising ..." joke ad
23:22:50 <Rugxulo> <Gregor-L> It's one of the few states where Greens actually win positions occasional.
23:23:10 <Sgeo> WHY does Apple want to restrict apps, exactly?
23:23:11 <Rugxulo> well Jesse Ventura made big headlines as (Independent) governor of Minnesota back in the day
23:23:13 <Sgeo> What does it get them?
23:23:20 <Rugxulo> dunno ... money, I guess
23:23:24 <Rugxulo> I agree, it's silly
23:23:36 <Rugxulo> "no cross-compiled stuff" ... eh? as if it matters!
23:24:26 <Rugxulo> <ais523> well, you aren't (yet) grounded by an Icelandic ash cloud
23:24:42 -!- charlls has joined.
23:24:44 <Rugxulo> http://upload.wikimedia.org/wikipedia/commons/1/10/Eyjafjallajkull.ogg
23:25:55 <augur> [ejafjatlajokutl]
23:25:59 <augur> or something close to that
23:26:26 -!- cheater2 has joined.
23:26:34 <Rugxulo> gesundheit
23:26:41 <Rugxulo> ;-)
23:27:40 -!- charlesq__ has quit (Ping timeout: 258 seconds).
23:28:31 -!- charlesq__ has joined.
23:29:58 -!- charlls has quit (Ping timeout: 258 seconds).
23:30:08 * oerjan imagines "As Katla erupts, the whole of Europe shivers, while American newscasters breathe a sound of relief."
23:31:25 <oerjan> s/sound/sigh/
23:34:35 <Rugxulo> <Gregor-L> God CMake sucks.
23:34:50 <Rugxulo> but it's more and more common these days
23:39:32 <Rugxulo> <AnMaster> and in theory you could just use an older gcc version before it needed c++ stuff or pcc
23:39:53 <Rugxulo> G++ only works with GCC (while I think you can, or used to, be able to build GCC itself with other CCs)
23:39:57 <pikhq> Rugxulo: Still a royal pain for build automation.
23:40:21 <pikhq> And yes, G++ only works with GCC, but that's quite irrelevant.
23:40:34 <pikhq> You just perform a bootstrap build, so that everything but GCC is built with GCC.
23:43:29 <Rugxulo> what compilers work at compiling GCC? I presume ICC would work (or probably did in the past), doubt many others do (Sun C ???)
23:44:13 -!- sebbu2 has joined.
23:44:25 -!- sebbu has quit (Ping timeout: 276 seconds).
23:44:38 -!- sebbu2 has changed nick to sebbu.
23:44:55 <pikhq> Rugxulo: GCC proper actually goes to great pains to be buildable by other compilers.
23:45:06 <pikhq> For the longest time it was written to allow a K&R compiler to build it.
23:45:09 <Rugxulo> GCC is a great pain to build, IMHO ;-)
23:45:15 <pikhq> It is.
23:45:30 <pikhq> It only uses autoconf, not automake. Ugh.
23:46:15 <Rugxulo> however, I imagine that using GCC 2.7.2 to build 2.95 would then allow newer versions to compile properly, if in a pinch (since those are easier, esp. 2.7.2)
23:54:46 -!- charlls has joined.
23:57:11 -!- charlesq__ has quit (Ping timeout: 258 seconds).
2010-04-20
00:16:44 -!- charlls has quit (Ping timeout: 258 seconds).
00:20:53 <Gregor> http://www.irextechnologies.com/irexdr800 Opinions? (Note also that it runs Linux and has a vendor-supported jailbreak)
00:23:32 <Rugxulo> isn't that a lot more expensive than iPad? and I didn't see any direct mentions of Linux
00:23:59 -!- charlls has joined.
00:24:09 <augur> http://www.timesonline.co.uk/tol/news/science/earth-environment/article7100906.ece
00:24:12 <augur> im sorry, europeans. :(
00:24:16 <augur> im so sorry
00:24:36 <Gregor> I wouldn't use the iPad if it was free. Also, that's $100 less than the iPad. Also it has an eInk screen (though a smaller one). Also, they don't tend to mention the developer details on the general product page, but the forums, developer page, etc etc are quite explicit.
00:24:48 <Gregor> Rugxulo: ^^^
00:25:08 <oerjan> well katla hasn't erupted _yet_
00:25:36 <oerjan> (although there was a fake report that hekla (another volcano) had done so
00:25:37 <oerjan> )
00:25:58 <oerjan> hekla = largest volcano on iceland
00:28:09 -!- HackEgo has quit (Remote host closed the connection).
00:28:09 -!- EgoBot has quit (Remote host closed the connection).
00:28:12 -!- EgoBot has joined.
00:28:16 -!- HackEgo has joined.
00:28:56 <Rugxulo> "I wouldn't use the iPad if it was free" ... I know, they treat developers like crap
00:28:57 <Rugxulo> but the "shop" part of the iRex showed $895, so I just assumed that's the one you meant :-/
00:29:29 <oerjan> (apparently someone was looking at a webcam of hekla or something like that, and seeing smoke - but they didn't notice that the smoke was in the background, from the current volcano eruption :D)
00:29:35 <Gregor> Rugxulo: No, that's the enormous 10.2" one.
00:30:00 <Gregor> Rugxulo: The 8.7" one is $400 from Best Buy (plus shipping)
00:30:35 <Sgeo> My phone's going to be more expensive than the iPad :/
00:31:09 <Gregor> Sgeo: Smaller = more expensive
00:31:12 <oerjan> augur: anyway some of the ashes are currently at newfoundland, i read
00:31:30 <augur> oerjan: man if they come to the US we might have to shut down shit here too
00:31:38 <augur> this will /definitely/ be interesting
00:32:19 <oerjan> however there are reports that the volcano is changing behavior from sending out ash to sending out lava, so it may be better at least for a while
00:33:33 <augur> im secretly hoping that it continutes to get worse. grounding air travel wouldnt be all that bad
00:33:40 <augur> maybe itll force america to build more trains.
00:34:06 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.2/20100316074819]).
00:34:14 <oerjan> augur: the main worry in norway is all the ambulance helicopters
00:34:24 <Rugxulo> http://board.flatassembler.net/topic.php?t=11432
00:34:30 <augur> ambulance helicopters :(
00:34:43 <oerjan> they were grounded too
00:35:00 -!- charlesq__ has joined.
00:35:05 <augur> i figured
00:35:11 <augur> that sucks
00:35:18 <augur> upsides and downsides
00:35:26 <augur> the world is a giant reddit
00:35:48 <oerjan> however norway cleared up today, anyway, although they expect a new cloud of ash tomorrow
00:36:22 -!- charlls has quit (Read error: Connection reset by peer).
00:36:25 <oerjan> we were hit first, but also cleared up first, it seems
00:36:37 <oerjan> but it all depends on wind direction, anyhow
00:37:08 <Rugxulo> would be a good name for an esolang ... Ejafjojfakjasfjkul
00:37:42 <oerjan> we do have Itflabtijtslwi
00:38:01 <oerjan> and eodermdrome can _look_ like that, i think
00:39:13 <Rugxulo> !bf_txtgen Eyjafjallajkull
00:39:16 <EgoBot> 182 +++++++++++[>++++++>+++++++++++>++++++++++++++++++++++>+<<<<-]>+++.>.---------------.<++++++++++++++++++++++++++++.+++++.>.---------.<++++++..>.+++++++++.>++++.<+.++++++++++.<..>>>-. [691]
00:39:42 <augur> BUT DOES IT WORK?
00:39:54 <Rugxulo> !bf_txtgen Eyjafjallajoekull
00:39:56 <EgoBot> 169 ++++++++++[>++++++++++++>+++++++>++++++++++>+<<<<-]>>-.<+.---------------.>++++++++++++++++++++++++++++.>++.++++.<.<++..>.+++++++++.<+++.----------.>+.++++++++++.>++..>. [173]
00:39:56 <oerjan> BUT WHO WAS VOLCANO
00:40:00 <augur> 8D
00:40:10 <augur> slereah got banned from another channel lol
00:42:51 <Gregor> !bf +++++++++++[>++++++>+++++++++++>++++++++++++++++++++++>+<<<<-]>+++.>.---------------.<++++++++++++++++++++++++++++.+++++.>.---------.<++++++..>.+++++++++.>++++.<+.++++++++++.<..>>>-.
00:42:57 <EgoBot> Eyjafjallajkull
00:43:16 <Rugxulo> dare I ask, but what's with the "[173]" ?
00:43:48 <Rugxulo> length is 170, apparently
00:44:00 <pikhq> Generations used to evolve that solution.
00:46:43 <Rugxulo> bfd output size -> 178, 187 bytes (respectively)
00:47:10 <Rugxulo> although I do wonder how it encodes "o:"
00:47:31 <pikhq> !bf_textgen o:
00:47:43 <Rugxulo> !bf_txtgen o:
00:47:46 <EgoBot> 49 ++++++++++[>+++++++++++>++++++>+>+<<<<-]>+.>--.>. [177]
00:47:52 <pikhq> Yeah, that.
00:47:59 <Rugxulo> I meant what character encoding does it use
00:48:06 <pikhq> Oh, that.
00:48:08 <pikhq> UTF-8.
00:48:24 * Rugxulo didn't know Brainf*** was UTF-8 aware ;-)
00:48:27 <Gregor> pikhq: http://www.irextechnologies.com/irexdr800 Opinions? (Note also that it runs Linux and has a vendor-supported jailbreak)
00:48:33 <Gregor> Rugxulo: Doesn't have to be.
00:48:49 <Rugxulo> but how can you output Unicode in a non-Unicode implementation? you can't!
00:48:52 <pikhq> Rugxulo: It has to be UTF-8 not-breaking is all.
00:48:58 <Gregor> Rugxulo: What a silly thing to say.
00:49:11 <pikhq> And that's quite ignorant.
00:49:19 <Rugxulo> how so?
00:49:31 <Gregor> In every way.
00:49:41 <pikhq> A UTF-8 string is a string of 8-bit units.
00:49:51 <pikhq> 1 or more of those units makes a UTF-8 character.
00:49:51 <Rugxulo> bfd compiler creates volcano.com, which uses 0xF6 for "o:", which I don't think is proper UTF-8
00:50:14 <Rugxulo> at least, it doesn't look correctly here (no big surprise, DOS app)
00:50:25 <Gregor> Rugxulo: That's because DOS isn't UTF-8-capable.
00:50:33 <pikhq> Programs unaware of UTF-8 will simply treat each unit as an 8-bit character instead.
00:50:33 <Rugxulo> I know, that's what I meant!
00:50:44 <pikhq> And if they don't do any splitting, it "just works".
00:51:01 <Rugxulo> it looks like a division symbol here, which is wrong
00:51:06 <pikhq> (that is, it outputs a UTF-8 string without having a clue)
00:51:31 <pikhq> Rugxulo: Yes, that's because DOS is interpreting the UTF-8 string as using characters from the codepage instead.
00:51:41 <Rugxulo> all I meant was that it is ignorant of code pages, so it's pretty random what it chooses for that
00:52:08 <pikhq> This is because DOS knows nothing about UTF-8 so it can't do UTF-8.
00:52:20 <pikhq> Instead, it tries something else.
00:52:27 <Rugxulo> nor does Brainf***, only particular implementations
00:52:28 <pikhq> In this case, displaying the glyph for 0xF6.
00:52:33 <Gregor> ARGH
00:52:40 <Gregor> <Rugxulo> nor does Brainf***, only particular implementations // NO NO NO
00:53:02 <Rugxulo> "treats as raw data" isn't the same as "fully supports"
00:53:12 <Gregor> It is for Brainfuck.
00:53:26 <pikhq> Brainfuck treats everything as raw data.
00:53:29 <Gregor> Brainfuck has no characters, only bytes.
00:53:39 <pikhq> That happens to be in 8-bit units called "bytes".
00:53:45 <Gregor> (Usually :P )
00:53:56 <pikhq> (some implementations make this 16-bit, 32-bit, etc. units instead)
00:55:17 <Rugxulo> U+00F6c3 b6LATIN SMALL LETTER O WITH DIAERESIS
00:55:40 <pikhq> Okay. So?
00:55:42 <Rugxulo> so 0xF6 came from UTF-16 from my Windows XP (since I cut and pasted via clipboard), I guess
00:55:54 <Gregor> UTF-16
00:55:56 <Gregor> Good lawd
00:55:58 <Gregor> So much lame.
00:56:08 <pikhq> UTF-16 is such a *retarded* character encoding.
00:56:32 <pikhq> About as much of a pain as UTF-8, except without being compatible with anything.
00:56:57 <Rugxulo> In other languages that do not have the letter as part of the regular alphabet or in limited character sets such as ASCII, O-umlaut is frequently replaced with the two-letter combination "oe".
00:57:14 <Rugxulo> my only guess as to why they chose UTF-16 is speed
00:57:38 <pikhq> Except it's no faster than UTF-8 if actually handled correctly.
00:58:01 <pikhq> (note: UTF-16 requires 2 16-bit units to encode some Unicode characters)
00:58:23 <Rugxulo> cp437 represents "o:" as 0x94 (148)
00:58:33 <Rugxulo> so there :-P ;-)
00:58:53 <pikhq> You are aware that o followed by colon is not the same as ö, right?
00:58:56 <Rugxulo> I know, UTF-16 can be wasteful, but so can UTF-8, depends on language most heavily used
00:59:09 <Rugxulo> sorry, I'm only using that because I'm not setup to enter 8-bit chars here
00:59:12 <pikhq> Big. Deal. WE HAVE COMPRESSION.
00:59:18 * Rugxulo is American, typically doesn't do 8-bit ...
00:59:34 <Rugxulo> pikhq, I'm not defending them, I'm just saying ...
00:59:35 <pikhq> ö is not an 8-bit character.
00:59:44 <oerjan> typically cannot even pronounce a simple 8-bit word like eyjafjallajökull
00:59:46 <Rugxulo> it is in cp437 ;-)
00:59:48 <pikhq> It is U+00F6, which in UTF-8 is encoded using 2 bytes.
00:59:50 <Gregor> oerjan: lol
00:59:54 * oerjan whistles innocently
01:00:14 <pikhq> In other encodings, it may be 8-bit. In still others, it's 32-bit.
01:00:33 <Rugxulo> you know what I mean, it's not 7-bit ASCII
01:00:35 <Gregor> In UTF-64 (UCS-8) it's 64-bit.
01:00:38 <pikhq> And Huffman encoded, it may well end up as one bit. :P
01:02:04 <Rugxulo> dumb question, but is the "oe" in "oerjan" short for U+00F6 ??
01:02:12 <pikhq> No.
01:02:17 <oerjan> Ø
01:02:38 <pikhq> Wrong Germanic language. :)
01:02:47 <oerjan> if i were swedish, it would be, but i'm norwegian
01:03:29 <Rugxulo> cp850 = 0x9D (157)
01:04:02 <Rugxulo> um, isn't Norwey related to Sweden somewhat? ;-)
01:04:10 <Rugxulo> s/wey/way/
01:04:25 <oerjan> next door neighbors
01:04:37 <Rugxulo> more than just neighbors, though, cousins right??
01:05:09 <oerjan> we're both descended from vikings
01:06:01 <Rugxulo> http://en.wikipedia.org/wiki/Treaty_of_Kiel
01:06:34 <Rugxulo> Accordingly, on November 4, 1814, Norway was forced into entering the union with Sweden.
01:06:35 <oerjan> and if you insist, the swedes were our evil oppressors from 1814 - 1905 (ok, not _that_ evil)
01:06:37 <Rugxulo> (sounds messy)
01:07:40 <oerjan> we actually had great autonomy in most matters, with our own constitution and parliament
01:09:29 <oerjan> so much so that our national day is the day of our 1814 constitution rather than our 1905 independence
01:11:14 <augur> oerjan: yeah but you europeans are so waifish anyway
01:11:37 <augur> the netherlands' national anthem still has it swearing allegiance to spain!
01:11:52 <oerjan> wow :D
01:12:42 <Rugxulo> I read that a lot of Icelanders are migrating to Norway (economic, mostly, but now I'm sure the stupid volcano doesn't help)
01:12:43 <oerjan> you could say the constitution was the crowbar we used to eventually get independence, and remarkably peacefully
01:13:08 <oerjan> they cannot emigrate to norway if they cannot fly here, silly
01:13:24 <oerjan> well i guess they could bring their fishing boats
01:14:07 <oerjan> (and yeah i've read that too)
01:20:59 <Rugxulo> "Eyjafjallajkull" (according to Wikipedia's OGG) sounds like "ehvya leyv kvik" (where's the "ull" ??)
01:21:30 <Rugxulo> s/leyv/leyvov/
01:23:34 <Rugxulo> http://en.wikipedia.org/wiki/K2 ... much easier to pronounce :-P
01:29:14 -!- charlesq__ has quit (Read error: Connection reset by peer).
01:30:33 -!- Asztal has quit (Ping timeout: 252 seconds).
01:30:45 -!- Rugxulo has quit (Quit: food).
01:36:10 -!- cheater2 has quit (Read error: Connection reset by peer).
01:36:11 -!- cheater3 has joined.
01:51:07 -!- augur has quit (Ping timeout: 240 seconds).
01:52:44 -!- coppro has quit (Read error: Connection reset by peer).
02:08:26 -!- Mathnerd314 has joined.
02:09:45 <Gregor> Mathnerd314: 314 is too obvious, you should go with 271 (272?) or 161 (162?), maybe 141.
02:10:04 <Gregor> The ?s being on whether you truncate or round.
02:12:13 <oerjan> 1729
02:12:24 <pikhq> 8675309.
02:12:30 <pikhq> I need to use that as a magic number some day.
02:12:33 <Gregor> pikhq: Boo hiss.
02:12:47 <Mathnerd314> Gregor: it's intended to be obvious
02:12:59 <Gregor> Mathnerd314: Exactly the problem :P
02:13:03 <pikhq> Gregor: If it makes you feel better, I know of that only by force of meme.
02:13:18 <Gregor> pikhq: Everyone knows of that one only by force of meme.
02:13:19 <oerjan> pikhq: that's not math nerdy
02:13:25 <pikhq> oerjan: True.
02:13:32 <pikhq> Just memey.
02:13:39 <Gregor> Hence my "boo hiss" :P
02:13:42 <pikhq> Gregor: No, *people actually have heard the song and enjoyed it*.
02:14:00 <Gregor> Define "people"
02:14:37 <pikhq> "Collective noun for members of homo sapiens. Sometimes broadened to be inclusive of other sapient beings."
02:15:04 <Gregor> So Homo sapiens dumbassus still counts then.
02:15:28 <pikhq> Yes, Homo sapiens stultus still counts.
02:16:00 <Gregor> Your usage varies from mine :P
02:16:38 <oerjan> small furry creatures from alpha centauri
02:26:58 -!- cheater3 has quit (Ping timeout: 248 seconds).
02:35:33 -!- augur has joined.
03:03:53 -!- coppro has joined.
03:25:56 -!- MizardX has quit (Quit: brb).
03:30:00 -!- MizardX has joined.
03:40:17 <uorygl> Neat. Denmark, Iceland, Norway, Sweden and Finland have, like, the same flag.
03:40:43 <pikhq> Scandinavia's like that.
03:40:51 <uorygl> Yeah, I know I put them in the wrong order.
03:41:10 <uorygl> I don't remember whether Norway or Sweden goes first, nor whether Finland or Iceland goes last.
03:41:35 <pikhq> I was unaware that Country was an instance of Enum.
03:41:51 <oerjan> norway goes first, of course. sheesh.
03:41:58 <uorygl> Of course.
03:42:12 <uorygl> So Norway, Sweden, Denmark...
03:43:11 <oerjan> as for chronology, denmark's flag is the oldest country flag in the world iirc
03:43:54 <Gregor> Oldest in continuous use, or oldest period?
03:43:56 <uorygl> Mmkay, Finland definitely goes before Iceland.
03:44:23 <oerjan> Gregor: um... i thought oldest period
03:45:06 <pikhq> And God Save the Queen is the oldest national anthem.
03:45:50 <uorygl> oerjan, it looks like you're wrong. Sweden comes before Norway.
03:46:02 * oerjan swats uorygl -----###
03:46:17 <uorygl> Sweden, Norway, Denmark, Finland, Iceland.
03:46:20 <oerjan> CLEARLY A MISPRINT YOU'VE FOUND
03:46:47 <uorygl> Well, it's not like the earlier countries are better or anything.
03:47:32 <oerjan> actually i didn't know there was a fixed order. and that one is definitely not chronological by independence.
03:49:02 <oerjan> not by original founding either, i'm pretty sure norway was unified before sweden
03:49:03 <uorygl> Hmm, maybe Norway comes first after all.
03:49:44 <oerjan> and i think denmark may have been first
03:50:38 <oerjan> actually it's just a big mess trying to order them
03:51:13 <uorygl> It's a very small mess; you just have to figure out whether it's Sweden and then Norway or the other way around.
03:52:08 <uorygl> If only there were some NULL country we could compare them to.
03:52:27 <oerjan> Kenya, perhaps
03:52:57 <oerjan> hm, Tanzania
03:53:06 <oerjan> http://en.wikipedia.org/wiki/Olduvai_Gorge
04:05:03 * Sgeo grumbles at Normish not having Java
04:05:28 * Sgeo wanted to run an HTTP-IRC proxy on there so he could connect to IRC from his crap RAZR
04:11:47 <pikhq> How's about the Sovereign Military Order of Malta?
04:11:59 <pikhq> Which has the notable property of being a sovereign non-nation.
04:13:24 -!- coppro has quit (Remote host closed the connection).
04:40:29 <uorygl> What's it sovereign over?
04:41:32 -!- adu has joined.
04:45:21 <pikhq> Itself.
04:45:38 <pikhq> Oh, and yes: it has international recognition.
04:45:58 <pikhq> Some 50 countries have embassies with it, and it is a permanent observer in the UN.
05:08:37 -!- sebbu2 has joined.
05:09:29 -!- sebbu has quit (Ping timeout: 260 seconds).
05:09:30 -!- sebbu2 has changed nick to sebbu.
05:16:50 -!- oerjan has quit (Quit: Good night).
05:18:15 -!- augur has quit (Ping timeout: 276 seconds).
06:00:14 -!- Rugxulo has joined.
06:12:45 <Rugxulo> AnMaster signed on at 4/8/2010 11:14:50 PM, and has been idle 7 hours, 48 minutes and 10 seconds
06:13:01 <Rugxulo> clearly a small timezone difference (as it just turned 12am here) ;-)
06:20:11 <Rugxulo> "Atari 2600 Air Raid auction that ended for $31,600"
06:20:15 <Rugxulo> o_O
06:20:26 <Rugxulo> "The auction resulted in 52 valid bids, and in auction's final seconds bidding jumped from $17,528.28 to its final price of $31,600."
06:21:13 <Rugxulo> boxed, of course, which apparently makes a difference to some people *shrug*
06:22:21 -!- lament has joined.
06:23:25 -!- augur has joined.
06:29:48 -!- myndzi\ has joined.
06:32:46 -!- FireFly has joined.
06:32:46 -!- myndzi has quit (Ping timeout: 260 seconds).
06:55:56 -!- evincar has joined.
06:56:13 <evincar> I exist.
06:57:08 <pikhq> Thou think'st, therefore thou art?
06:58:11 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
06:58:12 <evincar> Thou ask'st me, therefore I answer thee; and could thou tell the difference?
06:58:18 <evincar> *couldst
06:58:21 <evincar> Dammit.
06:58:33 <evincar> C-c-c-combo breaker.
06:58:42 -!- kar8nga has joined.
06:59:06 -!- tombom has joined.
07:00:23 <evincar> So what's going on?
07:05:30 <Rugxulo> right now? apparently not much ;-)
07:06:12 * Rugxulo wrote a lame Befunge93 program that names the digit you enter, easy to i18n-ize, heh
07:06:39 <Rugxulo> a lot of people here are European, so I guess they're all asleep
07:07:58 <fizzie> 09am here already, so possibly at work too.
07:11:19 <evincar> 2:10 over here.
07:11:28 <evincar> The night is young.
07:33:49 -!- Sgeo_ has joined.
07:34:22 -!- Sgeo has quit (Ping timeout: 265 seconds).
07:36:10 -!- MigoMipo has joined.
07:36:12 -!- MigoMipo has quit (Read error: Connection reset by peer).
07:38:20 -!- adu has quit (Quit: adu).
07:39:14 -!- Sgeo_ has quit (Ping timeout: 245 seconds).
07:41:11 -!- Sgeo has joined.
07:48:06 <evincar> Hey, Sgeo.
07:48:25 <evincar> You get a chance to check out those links?
07:49:48 -!- tombom has quit (Quit: Leaving).
07:55:16 <evincar> Ugh. Sleep beckons.
07:55:23 -!- evincar has quit (Quit: Beckons.).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:54 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
08:08:59 -!- Sgeo_ has joined.
08:10:13 -!- MigoMipo has joined.
08:11:48 -!- Sgeo has quit (Ping timeout: 276 seconds).
08:15:24 -!- adam_d has joined.
08:36:19 -!- Quadrescence has quit (Ping timeout: 245 seconds).
08:37:11 -!- Quadrescence has joined.
08:44:21 -!- Sgeo__ has joined.
08:46:54 -!- adam_d has quit (Ping timeout: 276 seconds).
08:47:09 -!- Sgeo_ has quit (Ping timeout: 245 seconds).
08:48:13 -!- 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).
08:53:21 <Rugxulo> befi.asm -> 13 SUBs, 13 XORs, 19 ADDs, 20 PUSHes, 24 POPs, 27 CMPs, 32 CALLs, 45 JMPs, 71 MOVs, etc. (including other less interesting numbers)
08:56:32 <Rugxulo> total of 53 unique instructions used
08:57:22 <Rugxulo> oh, and (surprise!) a Kenyan won the Boston Marathon ;-)
08:59:54 -!- Sgeo has joined.
09:03:09 -!- Sgeo__ has quit (Ping timeout: 276 seconds).
09:03:24 <Rugxulo> "A Kenyan has now won 18 of the past 20 men's Boston marathons"
09:03:38 <Rugxulo> dang, I didn't know it was quite that common
09:11:09 <fizzie> Oh, right, Ubuntu's clang package updated; I should maybe try out ff3 with it.
09:11:35 -!- Tritonio_GR has joined.
09:11:36 <fizzie> Er, except that I turned the computar off when leaving home today. Whoops. Well, maybe later.
09:15:51 -!- Gracenotes has quit (Ping timeout: 252 seconds).
09:16:26 * Rugxulo still can't get used to it being called "clang" (like a bell) instead of "C lang"
09:17:00 <Rugxulo> should've maybe been called "Clangejajofulkullok" ;-)
09:17:09 -!- Sgeo has quit (Ping timeout: 245 seconds).
09:17:14 * Rugxulo would explode too with a name like that
09:17:17 -!- Sgeo has joined.
09:17:56 <Rugxulo> why do so many people have ping timeouts?
09:18:09 -!- Gracenotes has joined.
09:26:49 <fizzie> I mentally pronounce "clang" as the bell sound instead of "see-lang"; I wonder how it officially speaking should be.
09:31:23 <Rugxulo> clang (as bell), I read somewhere
09:33:56 <fizzie> Apparently so.
09:34:11 <fizzie> "Clang (pronounced /ˈklæŋ/ like the English word clang[2]) is ...", [2] http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-July/015624.html
09:52:14 -!- aschueler has joined.
09:55:14 -!- Rugxulo has quit (Quit: Rugxulo).
10:00:32 <AnMaster> <Rugxulo> AnMaster signed on at 4/8/2010 11:14:50 PM, and has been idle 7 hours, 48 minutes and 10 seconds <-- morning.
10:00:37 <AnMaster> (now that is)
10:00:46 <AnMaster> well, closer to noon
10:09:32 -!- Sgeo_ has joined.
10:11:24 -!- lereah_ has joined.
10:12:19 -!- Sgeo has quit (Ping timeout: 276 seconds).
10:14:02 -!- FireFly has quit (Quit: Hey! Listen!).
10:15:41 -!- Sgeo__ has joined.
10:16:48 -!- kar8nga has quit (Remote host closed the connection).
10:18:42 -!- Sgeo_ has quit (Ping timeout: 265 seconds).
10:19:44 -!- lament has quit (Quit: lament).
10:50:49 -!- kar8nga has joined.
11:22:01 -!- BeholdMyGlory has joined.
11:26:34 -!- oklopol has joined.
11:26:44 -!- kar8nga has quit (Remote host closed the connection).
11:57:13 -!- Asztal has joined.
12:46:23 -!- ais523 has joined.
13:27:25 -!- kar8nga has joined.
13:27:36 -!- kar8nga has quit (Remote host closed the connection).
13:27:56 -!- kar8nga has joined.
13:29:47 -!- BeholdMyGlory has quit (Remote host closed the connection).
13:31:20 -!- oerjan has joined.
13:50:12 -!- augur has quit (Ping timeout: 268 seconds).
13:54:42 -!- dio77 has joined.
13:55:53 -!- cheater2 has joined.
13:57:02 -!- dio77 has quit (Quit: Quitte).
14:15:44 -!- oerjan has quit (Quit: leaving).
14:30:49 -!- augur has joined.
14:44:03 -!- Sgeo__ has quit (Ping timeout: 265 seconds).
14:44:04 -!- Sgeo has joined.
14:51:07 -!- FireFly has joined.
15:03:31 -!- FireyFly has joined.
15:03:37 -!- augur has quit (Ping timeout: 240 seconds).
15:08:41 -!- BeholdMyGlory has joined.
15:10:21 -!- FireyFly has quit (Quit: Hey! Listen!).
15:37:00 <oklopol> from the creators of clue, www.vjn.fi/oklopol/toi.py
15:37:57 <ais523> hmm, interesting
15:38:07 <oklopol> if someone wants a more comprehensive documentation (not sure there's much to add but i could clarify it), do tell, also the interp is incredibly slow
15:38:09 <ais523> which clue, btw
15:38:15 <ais523> the name is ambiguous
15:38:21 <oklopol> by incredible i mean don't run the example program for long
15:38:28 <oklopol> because it uses as much memory as ordinals usually do
15:40:06 <AnMaster> oklopol, what does it do? Just very very quick desc.
15:40:30 <AnMaster> like "it is an esolang" or "it is a game" or whatever
15:41:09 <AnMaster> ah found the docs at the bottom
15:41:11 <AnMaster> lets see..
15:41:22 <AnMaster> oklopol, esolang I guess?
15:59:27 <oklopol> ais523: from mine
15:59:36 <oklopol> esolang
15:59:56 <oklopol> so, if i leave some chicken in room temperature overnight, can i die from eating it?
16:00:08 <oklopol> iIlari and pikhq
16:00:10 <oklopol> i'
16:00:12 <oklopol> argh
16:00:21 <oklopol> i'm sure at least Ilari and pikhq know
16:01:46 <oklopol> it would be really easy to make the thing run non-exponential timely, but i would first like to know its computational class
16:01:55 <oklopol> haven't given it any thought really
16:03:46 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
16:03:50 -!- lereah_ has quit (Quit: Leaving).
16:06:53 <oklopol> the point of the language is you can't actually talk about any object, you can just map stuff over all objects
16:06:57 <oklopol> i guess that's the only point
16:11:25 <oklopol> SO HOW ABOUT THAT CHICKEN
16:11:52 <oklopol> maybe i'll just eat something else and eat the chicken some other day ->
16:18:46 <oklopol> ...about the chicken, there's a lot of information about what can cause food poisoning, but why would i give a shit about food poisoning if i don't die
16:19:09 -!- augur has joined.
16:19:28 <oklopol> augur: what's the probability that i die from eating chicken i left in room temperature overnight
16:19:56 <augur> very small
16:20:01 <augur> ive done it.
16:20:07 <augur> also, <3
16:20:09 <augur> bye
16:20:09 <oklopol> because i'm pretty sure it's 0%, but i've heard some stories about people actually dying of food poisoning
16:20:14 <oklopol> oh you have?
16:20:17 <oklopol> great
16:20:21 <oklopol> then i will too
16:20:29 <oklopol> bye :P
16:21:00 <oklopol> wait umm
16:21:05 <oklopol> actually there's also some cheese involved
16:21:14 <oklopol> that might complicate things?
16:22:11 <oklopol> why can't there be statistics on this stuff online
16:24:37 -!- augur has quit (Ping timeout: 240 seconds).
16:30:29 -!- lament has joined.
16:33:19 <oklopol> okay i decided to eat them because they tasted okay when i tasted them without cooking
16:33:36 <oklopol> so i suppose this is it, consider the language my obituary
16:34:09 <ais523> if you do get food-poisoned, it's likely to be curable
16:35:30 <oklopol> possibly
16:35:47 <oklopol> but you'd think there's a continuous scale of food-poisonings
16:35:56 <oklopol> worseness scale
16:48:56 -!- lament has quit (Quit: lament).
17:08:07 -!- tombom has joined.
17:10:00 -!- oklofok has joined.
17:18:43 -!- MigoMipo has joined.
17:19:17 -!- MizardX has quit (Read error: Connection reset by peer).
17:45:39 -!- augur has joined.
18:07:23 -!- jcp has joined.
18:18:31 -!- |MigoMipo| has joined.
18:22:21 -!- MigoMipo has quit (Ping timeout: 264 seconds).
18:29:43 -!- kar8nga has quit (Remote host closed the connection).
18:53:05 <ais523> <kitsuneudon> Noone ever wants to hang out with me in #malbolge :( <dwchandler> Of course not. All the cool kids hang out in #malbolge-t
18:54:05 <ais523> #malbolge was empty and unregistered when I looked
18:54:25 <ais523> #malbolge-t likewise
18:54:41 <ais523> context indicated Freenode, but not strongly; I suspect they were just joking
19:16:25 -!- charlls has joined.
19:24:38 -!- |MigoMipo| has changed nick to MigoMipo.
19:32:47 -!- atrapado has quit (Quit: Ex-Chat).
19:32:50 -!- charlesq__ has joined.
19:33:48 -!- charlesq__ has quit (Read error: Connection reset by peer).
19:51:09 -!- sebbu2 has joined.
19:51:22 -!- sebbu has quit (Ping timeout: 246 seconds).
19:51:32 -!- sebbu2 has changed nick to sebbu.
20:18:26 -!- oerjan has joined.
20:34:03 -!- Gracenotes has quit (Quit: Leaving).
20:35:48 -!- augur has quit (Ping timeout: 264 seconds).
21:05:47 -!- augur has joined.
21:08:07 -!- nooga has joined.
21:08:10 <nooga> great
21:08:15 <nooga> now i'm stuck in edinburgh
21:08:39 <ais523> ash cloud?
21:08:43 <oerjan> so they wouldn't let a simple pole on a complex plane today?
21:09:06 <nooga> oerjan: hahahaha ohohoho
21:09:26 <nooga> yeah, the f#$$%#$, icelandic ash cloud
21:09:39 <nooga> icelanders smoke too much
21:10:09 <ais523> oerjan: that's a pretty impressive joke to come up with so quickly
21:10:19 <nooga> polandball cannot into poland
21:10:33 <nooga> I'm enraged
21:10:35 <oerjan> ais523: well it's not quite new
21:10:56 <ais523> ok, an existing joke, modified to fit in the context?
21:11:01 <oerjan> yeah
21:13:07 <oerjan> currently reading: http://www.reddit.com/r/AskReddit/comments/btkx2/hands_up_who_is_secretly_hoping_katla_erupts_just/
21:19:54 <ais523> I imagine reactions would change significantly based on whether it kills a lot of people, or just makes air travel impossible for a decade
21:20:00 <ais523> the second would give the world quite a wake-up call
21:20:05 <ais523> the first would mostly be ignored
21:20:25 <oerjan> er... right
21:20:51 <oerjan> http://languagelog.ldc.upenn.edu/nll/?p=2257
21:21:15 <olsner> bleak, but realistic
21:21:49 <olsner> something like eyftljktl
21:22:03 * oerjan doesn't find that very hard to pronounce at all :D
21:22:14 <oerjan> although the ll's are a bit surprising
21:22:46 <oerjan> especially the last one
21:24:54 <olsner> welsh uses ll for a voiceless lateral fricative
21:26:28 <oerjan> well my own dialect does strange things with l itself, like many norwegian ones
21:27:29 -!- nooga has quit (Ping timeout: 258 seconds).
21:28:28 <oerjan> fjell (cognate with -fjall- there) has a palatalized one, kull (not the same as jökull, but rather "coal") has the strange retroflex flap
21:29:59 <olsner> I think the palatized is common in some dialects of swedish
21:30:00 <oerjan> and tillit (trust) has a "normal" l
21:31:16 <olsner> weird, I consider the "normal" swedish to have the same l everywhere, and I think the dialects that do weird stuff do it consistently
21:32:37 <oerjan> well standard norwegian does more or less the same one everywhere
21:33:31 <oerjan> (newscaster pronunciation, or something)
21:46:22 -!- Azstal has joined.
21:46:28 -!- Asztal has quit (Ping timeout: 265 seconds).
21:46:37 -!- Azstal has changed nick to Asztal.
21:51:07 -!- Asztal has quit (Ping timeout: 240 seconds).
21:51:14 -!- nooga has joined.
21:52:16 -!- Asztal has joined.
21:55:10 -!- Asztal has quit (Read error: Operation timed out).
21:55:22 -!- Asztal has joined.
21:59:12 -!- BeholdMyGlory has quit (Remote host closed the connection).
22:05:34 -!- Azstal has joined.
22:07:17 -!- Asztal has quit (Ping timeout: 260 seconds).
22:07:28 -!- Azstal has changed nick to Asztal.
22:09:23 -!- ais523 has quit (Remote host closed the connection).
22:20:04 -!- FireFly has quit (Quit: Hey! Listen!).
22:22:30 -!- 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:39:23 -!- charlls has quit (Quit: Saliendo).
22:47:53 * uorygl ponders the decision problem "in formal system X, there is a proof of Y whose length is less than n"
22:48:19 <uorygl> Where n is written in unary or something.
22:49:01 <uorygl> I'm pretty sure that decision problem is in NP.
22:49:15 <uorygl> Well, if you restrict the formal system to stuff that runs in polynomial time, I guess.
22:49:22 <uorygl> Let's do so.
22:49:39 <uorygl> So yeah, I'm quite sure that's in NP.
22:50:05 <uorygl> And it seems like it's not in P, but maybe it is.
22:54:17 <oerjan> you can make Y any SAT problem, i should think.
22:54:18 <oklopol> if you can check a proof of length n in polynomial time, then finding it is in NP by definition
22:54:46 <oerjan> so, NP-complete precisely
22:55:22 <oerjan> the n doesn't even really enter into it
22:55:49 -!- tombom has quit (Quit: Leaving).
22:56:25 <oerjan> (Except that you need to make it large enough that the obvious test-the-correct-guess proof fits
22:56:29 <oerjan> )
22:56:33 <oklopol> i assumed n was somehow linked to size of Y
22:56:58 <oerjan> no... for really _difficult_ Y's, n could be enormous
22:57:14 <oklopol> if you use other quantifiers than just existential then you can easily find pspace-complete stuff too
22:57:16 <oerjan> say if Y is an encoding of something EXPTIME, just for a start
22:57:16 <oklopol> err
22:58:03 <oerjan> essentially n is padding to get the whole problem down to NP, given Y's size
22:58:59 <oerjan> oklopol: pspace-complete doesn't work because the _proof_ would likely be exponential in size
22:59:20 <oklopol> well i meant in that case the problem isn't in <np
22:59:21 <oerjan> as it may have to trace the whole pspace evaluation
22:59:22 <oklopol> NP
22:59:48 <oerjan> oklopol: the problem is in NP because n caps the size of proofs
23:00:19 <oerjan> basically the size of problem is size X + size Y + n
23:00:21 <oklopol> ...okay what's the input exactly, maybe i misunderstood?
23:00:27 <oklopol> alright
23:00:46 <oerjan> uorygl: correct me if i'm wrong there
23:01:11 <oerjan> but i thought that was the point of making n unary
23:01:26 <oklopol> if the size is calculated like that, then it's obviously in NP because you can guess the proof of length n... so it's pseudo nondeterministic polynomial
23:01:28 <oklopol> <.p
23:01:30 <oklopol> :P
23:01:43 <oklopol> right
23:02:16 <uorygl> oerjan: yes, that was the point of making n unary.
23:03:35 <oklopol> yeah okay i don't know what i was thinking
23:03:40 <oklopol> maybe i wasn't?
23:03:51 <oerjan> ok, when i said "the n doesn't even really enter into it", i meant just for the encoding SAT direction
23:04:02 <oerjan> it's obviously needed for showing < NP
23:04:16 <oklopol> the problem with math conversations on irc is no one bothers taking out the definitions and actually going through the details because there's nothing to write on
23:04:45 <oklopol> well maybe that's just a problem for me because i also happen to be unable to do that mentally when on irc
23:04:51 <oerjan> for SAT you just need X to be propositional boolean logic, i should think
23:05:33 <oerjan> oh also existence quantifiers
23:06:35 <oerjan> nothing more than predicate logic, anyway
23:09:25 <oklopol> we have a complexity theory course next year \o/
23:09:26 <myndzi\> |
23:09:26 <myndzi\> >\
23:09:47 <oklopol> i like to think it's because of me because i asked if they're gonna give courses on it
23:11:11 <uorygl> Aww, I want to take a complexity theory course next year.
23:11:13 -!- Asztal has quit (Ping timeout: 260 seconds).
23:11:44 <oklopol> there's also tilings and patterns & cellular automata
23:12:16 <oerjan> (oh my)
23:13:24 -!- Asztal has joined.
23:13:28 <oklopol> not sure the rest is that interesting
23:13:36 <oklopol> maybe i should stare at the courses again
23:13:40 <uorygl> But I'm stuck taking stuff like MTH 210 - Communicating in Mathematics.
23:13:41 <oklopol> i like to do that every few days
23:13:48 <oklopol> heh
23:13:52 <uorygl> "A study of proof techniques used in mathematics. Intensive practice in reading mathematics, expository writing in mathematics, and constructing and writing mathematical proofs. Mathematical content includes elementary logic, congruence arithmetic, set theory, functions, equivalence relations, and equivalence classes."
23:14:14 <uorygl> I already know elementary logic, set theory, functions, equivalence relations, and equivalence classes!
23:14:20 <uorygl> Congruence arithmetic, not so much.
23:14:33 <oklopol> so you'll be studying the first 5 pages of every math book intensively
23:14:56 <oklopol> you don't know congruence arithmetic? Z/nZ is a field iff n is a prime
23:15:17 -!- Asztal has quit (Read error: Operation timed out).
23:15:21 <uorygl> If congruence arithmetic is the same thing as modular arithmetic, I do know it already.
23:15:26 -!- Asztal has joined.
23:15:28 <oklopol> i'm pretty sure it is
23:15:31 <oerjan> i should think so
23:15:40 <oklopol> we're pathetic
23:15:43 <oklopol> i KNOW it's the same.
23:17:04 <uorygl> I wonder what I'm supposed to do if I already know all the listed topics.
23:17:07 <oklopol> uorygl: the interesting thing is nZ are actually ideals of the ring Z, and in general we know R/I is a field iff I is a maximal ideal of R, and obviously nZ is maximal in Z iff n is a prime (n = mo = mZ is a bigger ideal)
23:17:17 <oklopol> err
23:17:18 <oklopol> typo
23:17:29 <oklopol> (n = mo => mZ is a bigger ideal)
23:17:43 <oklopol> uorygl: take some other course
23:17:53 <uorygl> This is a prerequisite for everything.
23:18:12 <oklopol> you actually have to take prerequisite courses before taking the actual ones?
23:18:21 <uorygl> Literally every required math course has this as a prerequisite.
23:18:29 <oklopol> in finland we can do what the fuck we want and everything's free
23:18:38 <uorygl> I hope you're exaggerating. :P
23:18:44 <oklopol> i'm not
23:18:48 <oklopol> well there are laws
23:18:57 <oklopol> and not all courses give you useful credits
23:19:16 <oklopol> but you can take any course you want to, and go to whichever lectures you choose, just do 25% of homework and take the exam
23:20:08 <Sgeo> uorygl, what course is this?
23:20:15 <uorygl> When you say "in Finland", are you referring to a specific university?
23:20:21 <uorygl> Sgeo: MTH 210, Communicating in Mathematics.
23:21:19 <oklopol> i think all universities are free here
23:21:32 <uorygl> "Free" in the sense of being able to take any course you want to?
23:21:53 <oklopol> i mean they cost nothing, i'm also rather sure you can take any course you want to in most unis here
23:22:02 * uorygl nods.
23:22:17 <uorygl> I thought such places didn't exist.
23:23:11 <oklopol> there's also these unicorns who guide ppl from one lecture to the next
23:23:49 <pikhq> oklopol: Allow me to make your jaw drop then. (because mine already has)
23:24:05 <pikhq> In the US, $20,000 a semester is not an unusual cost for college.
23:24:57 <oklopol> i actually considered going to an american uni for a year mostly for the language, so i knew that
23:25:01 <pikhq> Some universities can cost significantly more than that.
23:25:10 <oklopol> but yeah that's pretty horrible
23:25:24 <uorygl> I think $20,000 seems pretty expensive.
23:25:28 <pikhq> I think the Ivy Leagues can get up to $100,000.
23:26:10 <Sgeo> I think for my (crappy) college, it's ~$3,000/semester
23:26:14 <fizzie> There are some courses at our place that are a bit more strict than usual with the prerequisites, and also some that take a limited number of people and you have to specifically apply for them, but in general what oklopol says goes here too.
23:26:33 <pikhq> (though they tend to have full-ride programs if you are accepted and can't afford to pay that)
23:27:53 <pikhq> uorygl: I'm counting books, fees, board, not just tuition.
23:28:06 <pikhq> Oh, I should also mention. $20,000 is also quite often for state-funded schools.
23:28:11 <uorygl> I think that's still expensive. Not sure.
23:28:22 <pikhq> They have the nerve to charge for tax-funded institutions.
23:28:25 * Sgeo doesn't live at school
23:28:35 <uorygl> Sgeo: have you talked to those financial aid dudes yet?
23:29:06 <Sgeo> Considering that my dad's now paying for an unlimited data plan, I think I'll hold off
23:29:19 <Sgeo> >.>
23:29:38 <uorygl> If this is out of gratitude, you're making me slightly angry. :P
23:30:01 <pikhq> Hooray, capitalism.
23:30:27 <uorygl> Grand Valley State University's tuition is $4,315 per semester if you're taking 12-16 credits.
23:31:10 <pikhq> Wait, I was saying semester when I meant year. XD
23:31:18 <uorygl> Or $6,694, or something in between, depending on whether you're a Michigan resident or not, and on whether you're lower or upper division.
23:31:30 <uorygl> Oh. In that case, $20,000 isn't so expensive.
23:32:58 <pikhq> But, yeah. America seems to feel that education is a privledge for the wealthy or people willing to go in debt for much of their lives.
23:33:05 <pikhq> Ain't it "wonderful"?
23:33:14 <uorygl> I guess we're weird that way.
23:33:31 <pikhq> uorygl: By "weird" you of course mean "getting boned".
23:33:55 <uorygl> So, how come so many of us #esoteric people are Scandinavian-type people?
23:42:55 -!- coppro has joined.
23:55:12 <uorygl> Swedish politics is complicated. There are too many parties. :P
23:56:32 <coppro> could be worse
23:56:34 <coppro> could be too few
23:58:31 <uorygl> Yeah. I need to figure out how this coalition stuff works.
23:58:56 <pikhq> I take it you're unfamiliar with parliamentary systems?
23:59:03 <uorygl> Completely.
23:59:05 <pikhq> (as used in pretty much every democracy but the US)
23:59:36 <uorygl> The US is, in a few ways, the strangest country in the world. :P
2010-04-21
00:00:10 <pikhq> A coalition is fairly simple. A few parties simply decide to act in concert to further their collective interests.
00:00:20 <uorygl> Is it completely informal?
00:00:40 <pikhq> I think so, but let me check before I make a fool of myself.
00:01:16 <pikhq> Yes.
00:01:21 <uorygl> Wikipedia makes it seem pretty formal. Like, in Sweden, there's the Government coalition and the Opposition coalition, each formed of a certain set of parties.
00:01:40 <uorygl> (Though they're actually called the Alliance for Sweden and the Red-Greens.)
00:02:07 <pikhq> That's called "tradition".
00:02:23 <coppro> Usually they're semiformal
00:02:25 <uorygl> Huh.
00:02:38 <coppro> A government is usually considered a coalition if they include ministers from multiple parties
00:03:02 <uorygl> Ah, what does "a government" refer to?
00:03:08 <coppro> the people running the country
00:03:19 <oerjan> aka cabinet
00:03:28 <pikhq> uorygl: Various appointend ministers, including the Prime Minister.
00:03:28 <uorygl> Does the parliament include some people in the government and some people not in it?
00:03:31 <coppro> sometimes it refers to the cabinet
00:03:41 <pikhq> A parliament appoints these ministers.
00:03:48 <coppro> Not necessarily
00:04:04 <pikhq> coppro: My apologies.
00:04:13 <coppro> In Canada, for instance, the PM is appointed by the Queen (though this is usually delegated to the Governor-General), and the PM appoints the cabinet
00:04:19 <oerjan> uorygl: in norway at least, any parliament members who join the cabinet get replaced
00:04:24 <coppro> pikhq: apologies?
00:04:30 <pikhq> I am speaking from an American's knowledge of parliamentary systems is all.
00:04:36 <coppro> ah, no worries
00:04:39 <coppro> they're varied enough as is
00:04:42 <oerjan> so no overlap
00:04:44 <pikhq> That I even know a thing about it is probably exceptional. :P
00:05:46 * oerjan is not sure if "vice representatives" is the right word for that
00:06:01 <coppro> actually, the US government isn't that far from a parliamentary system if you consolidate the PM and head of state into one office (the president)
00:06:16 -!- Asztal has quit (Ping timeout: 276 seconds).
00:06:23 <coppro> and add a restriction that members of the legislative houses cannot be members of the government
00:06:35 <uorygl> I don't like having the head of state and the head of government be the same person.
00:07:11 <coppro> If the head of government is directly involved in the legislative bodies, then yes, I'd say it's a bad idea
00:07:26 <coppro> but in the US for instance, the President has no power within Congress
00:07:40 <uorygl> The Vice President does. :P
00:07:46 <coppro> heh
00:07:53 <oerjan> coppro: um i think the right of parliament to _sack_ the cabinet is an essential part of the definition of "parliamentary". at least it was when that right was forced through that norway's system became known as "parliamentarism"
00:08:14 <pikhq> Yes, the Vice President is also President of the Senate and, thus, has a tie-breaker vote.
00:08:33 <coppro> the VP is just weird
00:08:47 <pikhq> The President has a few other roles than just that. He is also head of the military, among other things...
00:09:11 * pikhq looks for a full list...
00:09:12 <coppro> yeah, the VP has no other official roles than to be the President of the Senate and the POTUS' successor, IIRC
00:09:21 <pikhq> Yup, that's all he has.
00:09:25 * uorygl ponders political systems.
00:09:30 -!- Azstal has joined.
00:10:10 * uorygl ponders whether he likes this whole separate branches thing.
00:10:12 <coppro> oerjan: I've never heard that definition, but I see that argument. Do note, however, that many parliaments cannot directly sack the cabinet; the PM will usually resign as PM and thus dissolve the cabinet if the parliament shows a lack of confidence, though
00:10:30 <uorygl> So what happens if a vote of confidence goes through?
00:11:16 <oerjan> coppro: well sacking the cabinet ~= sacking the prime minister with no confidence, in norway anyway
00:12:18 <coppro> A vote of /no/ confidence is just a motion saying that the parliament (e.g. the majority of elected representatives, and thus, in theory, the majority of the people) do not believe the government can run the country (hence the term 'no confidence'). It has no formal power, but carries the expectation that the government resign. If they didn't, the parliament would simply block all progress...
00:12:19 <coppro> ...until the head of state was forced to dismiss the government and either dissolve the parliament and call an election, or form an alternate government that will have the confidence of the house
00:12:32 <oerjan> admittedly norway isn't representative of everything. for example in our system neither the head of state nor the pm can dissolve parliament, like in many others (btw i read on wp pakistan recently abolished this right)
00:12:56 <oerjan> s/recently/just/
00:13:51 <oerjan> the norwegian right of making no confidence votes was informal for over a hundred years, btw, just recently put into the constitution
00:13:54 -!- Azstal has changed nick to Asztal.
00:13:59 <coppro> that's neat
00:14:08 <coppro> uorygl: I recommend http://www2.parl.gc.ca/procedure-book-livre/Document.aspx?sbdid=7C730F1D-E10B-4DFC-863A-83E7E1A6940E&sbpidx=1&Language=E&Mode=1
00:14:17 <oerjan> (it was originally forced through by threatening impeachment, essentially)
00:15:35 <coppro> There are other varied mechanisms for dealing with crises of government. For instance, in Australia, if the Commons and (elected) Senate disagree sitting over a critical matter, such as the budget, then they have a joint session and if they still can't come to an agreement, both houses are simultaneously dissolved and sent to an election.
00:17:03 <oerjan> hm or was the impeachment actually done, i'm vague on this
00:17:07 <pikhq> oerjan: Wait, you guys threaten impeachment for valid causes?
00:17:07 <pikhq> Whoa.
00:17:19 <pikhq> *Here*, the only impeachable offense is a blowjob!
00:17:24 -!- Gracenotes has joined.
00:17:38 <Gregor> Receiving one, that is.
00:17:42 <oerjan> pikhq: i'm not sure it was actually valid that one time, it was a _political_ threat
00:17:52 <pikhq> Ah.
00:17:53 <oerjan> and it's very rarely used
00:18:15 <pikhq> Gregor: Well, yeah. I think if the President gave a blowjob, the entire right wing would just have a heart attack and die.
00:18:33 <Gregor> pikhq: Portland's mayor is still in office :P
00:18:46 <pikhq> *President*.
00:18:54 <Gregor> Also, *not Portland*
00:19:10 <pikhq> Yes.
00:19:14 <oerjan> "During the constitutional struggle in the last half of the 19th century impeachment became vital following the case against the Selmer's Cabinet in 1883 and 1884, concerning the veto rights of the King in matters of the constitution. Prior to this case, impeachment was the only way for parliament to dismiss a member of the cabinet; after 1884 Norway got a system of parliamentarism, and parliament could dismiss a member of cabinet through a majority v
00:19:33 <Gregor> pikhq: The DR800 is X11 and GTK+-based, so it's stupidly easy to port things to it :)
00:19:41 <Gregor> Oh yeah, it's also OpenEmbedded-based.
00:19:52 <coppro> According to Wikipedia: "A parliament is a legislature, especially in those countries whose system of government is based on the Westminster system modeled after that of the United Kingdom."
00:21:58 <pikhq> Gregor: Glee.
00:22:21 <Gregor> pikhq: Also they have a Qemu-based image for emulating it, which even emulates the screen refresh slowness.
00:22:26 <Gregor> I ported GTK+ nethack to it :P
00:23:00 <oerjan> "After the constitutional battle was over,[clarification needed] there was only one case, where Prime Minister Abraham Berge and six members of his cabinet were found not guilty in 1927. Since then impeachment has not been used, and is no longer considered part of the political game."
00:25:38 <pikhq> Gregor: That is a thing of beauty.
00:27:17 <coppro> pikhq: good show
00:27:28 <coppro> wtf... sometimes I just want to stab someone... someone honestly voted against C-470?
00:29:27 <pikhq> coppro: C-470?
00:30:18 * oerjan fixes that up a bit
00:30:18 <coppro> pikhq: a bill to make it so that charities with massive executive kickbacks can be deregistered by the government.
00:32:15 <pikhq> coppro: You mean someone could possibly think that was a bad idea?
00:32:25 <coppro> pikhq: that's exactly what I mean
00:32:34 <pikhq> WTF.
00:32:42 <coppro> precisely
00:32:47 <coppro> we
00:32:55 <coppro> *we'll get to see who when they do an actual vote tomorrow
00:35:55 <oklopol> how exciting!
00:47:37 <uorygl> Let's kick out the guy who voted against C-470, eh?
00:48:44 <coppro> :P
00:48:55 <coppro> quiet, you American :P
00:49:26 <oerjan> bit thin-skinned that one, eh
00:49:57 <coppro> huh?
00:50:07 <nooga> beh
00:50:09 <uorygl> You know, something I don't like about the United States is that Congress isn't elected by nationwide popular vote; instead, each seat is individually elected by a state.
00:50:36 <uorygl> So you end up with people in the federal government representing states instead of the entire nation.
00:51:20 <uorygl> I guess it's not obvious how to elect a body of hundreds of individuals via popular vote in any way other than dividing the populace.
00:51:49 <oerjan> well israel manages
00:51:54 -!- nooga has left (?).
00:52:00 -!- nooga has joined.
00:52:13 <uorygl> How do parliamentary systems do it? I sort of get the idea that each person votes for a party, and the number of seats the party gets is proportional to the amount of the popular vote they get.
00:52:41 <oerjan> approximately yes
00:52:56 <coppro> close
00:52:59 <oerjan> there are several ways of doing the actual accounting
00:53:07 <coppro> most frequently, it's done by region
00:53:15 <oerjan> with different rounding behavior
00:53:34 <coppro> each region elects a single representative by some form of majority
00:53:39 <coppro> just like in your country
00:53:47 <uorygl> Aww.
00:53:49 <oerjan> (my mention of israel is because iirc they're a rare country _not_ to divide by regions)
00:53:59 <coppro> this can lead to disparity between total popular vote and actual representation
00:54:40 <oerjan> coppro: um that's not proportional representation
00:56:14 <oerjan> in norway we divide into regions (counties), but each region has _several_ representatives, chosen proportionally within that region. in addition there are a number of extra seats for the whole country, divided proportionately according to the "left over" votes for the whole country
00:56:32 <oerjan> (the number of extra seats is currently also == number of counties)
00:56:44 <oklopol> i bet those details matter
00:57:54 <coppro> oerjan: Interesting. In Canada, the ridings are reevaluated regularly to match population trends
00:58:01 <oerjan> the details certainly matter, because the extra seats comes with a cutoff. the party venstre last year came _just_ under the cutoff and so got only one, directly elected seat.
00:58:09 <oerjan> *come
00:58:35 <oerjan> the party leader himself lost his seat, and resigned.
00:58:59 <coppro> in theory, each riding is supposed to have roughly equal population within a province (old and stupid laws lead to disparity between provinces; damn Quebec)
01:01:08 <oerjan> um they got 2 seats, apparently :D
01:02:49 <oerjan> coppro: norway also has disparity between counties, leading to rural ones getting higher representation
01:03:18 <oklopol> what's disparity between counties?
01:03:41 <oerjan> currently iirc, number of seats depends not just on population, but also area
01:03:43 <coppro> oklopol: when the number of people electing a representative is not the same for all counties
01:04:34 <oklopol> i don't get how people can get interested in politics outside a formal system
01:06:26 <coppro> oklopol: Because it affects our lives
01:08:09 <coppro> oerjan: We also have a rural-urban disparity that comes about due to inconvenience, as organizing an election in a larger riding is more work and money. The requirement is that any riding have population no more than 25% the average in that province
01:09:57 <oklopol> curing sicknesses affects peoples lives more directly, but not everyone is a doctor
01:09:59 <oklopol> oh hmm
01:10:06 <oklopol> i guess everyone should learn cpr tho
01:10:17 <oklopol> so maybe i've been wrong all these year
01:10:17 <oklopol> s
01:11:14 <pikhq> I doubt that rural areas have *quite* as much influence as in the US, though.
01:13:55 <coppro> oklopol: A major problem with elected representation is the lack of actual understanding of the process
01:14:03 <coppro> don't contribute!
01:14:59 <oklopol> i let python choose who i vote for
01:15:13 -!- Oranjer has joined.
01:15:23 <pikhq> I note Bush as an example of why you should have an understanding of politics.
01:15:26 <pikhq> And actually vote.
01:15:42 <oerjan> btw thanks mostly to that cutoff effect, norway's current coalition government, while having a majority of _seats_, did not actually have a majority of votes.
01:15:47 <oklopol> notice i don't actually believe wars can happen
01:15:48 <pikhq> *The man actually won in 2004*.
01:16:04 <pikhq> oklopol: You don't?
01:16:06 <oklopol> no.
01:16:14 <pikhq> But we've been at war for all of your life.
01:16:37 <pikhq> (the Korean War has yet to end.)
01:16:40 <oerjan> so we have our own version of that bush-gore case :D
01:16:43 <oklopol> i didn't know that, but in any case i'm not entirely sure you're having any sort of war now
01:16:48 <oklopol> oh
01:16:51 <oklopol> :)
01:17:33 <oklopol> i mean i know of that iraq thing, but i consider it trivia, not something that's actually true
01:17:49 <oklopol> because people wouldn't go to war, that'd be stupid
01:17:52 <pikhq> Iraq is a defacto war, but not dejure.
01:18:06 <oklopol> i don't mean that
01:18:10 <oklopol> try to understand i'm insane
01:18:14 <oklopol> in this aspect
01:18:15 <pikhq> Also. The US has people who think that war is a wonderful thing.
01:18:30 <oklopol> generally speaking i'm told i'm the sanest guy here
01:18:36 <pikhq> Namely, one and a half political parties.
01:18:50 <oklopol> i've met people who think that
01:18:56 <pikhq> (out of two)
01:19:01 <oklopol> wanna participate in warring and stuff
01:19:18 <oklopol> but a true believer will not care about evidence
01:19:27 <pikhq> The US nearly *worships at the shrine of war*.
01:19:32 <oklopol> :)
01:19:45 <pikhq> We spend a trillion dollars on it each and every year.
01:19:57 <pikhq> We are, quite frankly, fucking mad for this, but *this is what we do*.
01:20:56 <oklopol> btw i found proof i'm not racist
01:21:02 <oklopol> was watching the cleveland show
01:21:10 <oklopol> and cleveland dresses up as a white guy
01:21:17 <oklopol> and his wife is like WTF
01:21:32 <oklopol> and i actually didn't notice
01:21:41 <oklopol> had to watch is a few times to see what was different
01:22:17 <oklopol> or maybe i'd notice if a white guy painted his face black
01:22:37 <pikhq> Blackface is fairly noticable.
01:23:14 <pikhq> As it looks like a fucking stupid stereotypical display, rather than actually looking like melanin-having skin.
01:23:22 <oklopol> now that i think about it, it seems likely that i would go WTF
01:23:44 <oklopol> oh hmm right what if someone just had an incredible tan
01:24:00 <pikhq> That just makes you look like a douche. :P
01:25:30 <oklopol> at some point i actually didn't know which people i knew wore glasses, but i think my brain is growing because i seem to remember which people do now
01:27:01 <oklopol> well nowadays i actually consciously try to observe my surroundings all the time because i've gotten tired of not remembering if i have curtains
01:27:52 <oklopol> thank god i stepped in and ended all the boring grown-up talk
01:27:54 <oklopol> so
01:27:56 <oklopol> about my language
01:28:15 <oklopol> did someone find the computablenessity class
01:28:37 <oklopol> let me relink... www.vjn.fi/oklopol/toi.py
01:29:05 <oklopol> should be obvious, but i don't know which way
01:52:29 -!- Asztal has quit (Ping timeout: 265 seconds).
01:52:44 <Sgeo> Anyone have a link to ais523's Tic-Tac-Toe in MS Paint?
02:05:54 <pikhq> oklopol: Thy language is insufficiently Anglo-Frisian.
02:05:56 <pikhq> Try again.
02:12:37 <coppro> Sgeo: ?
02:13:13 <Sgeo> Ah, here we go
02:13:13 <Sgeo> http://filebin.ca/tesmth/OANDX.BMP
02:13:26 <oklopol> wait what
02:13:32 <Sgeo> Um, or not
02:13:38 <oklopol> did i write the spec in finnish or something?
02:14:04 <oklopol> i didn't mean to
02:16:00 <oklopol> it looks english
02:16:08 <oklopol> i'm going to have to ask for an elaboration
02:19:27 <pikhq> oklopol: Your language itself should be more Anglo-Frisian. :P
02:19:41 <pikhq> I DEMAND ANGLO-FRISIAN GRAMMAR OF SOME SORT
02:20:43 <oklopol> oh, i see i see
02:20:52 <oklopol> but aren't most esolangs non-eng-fri
02:21:27 <oklopol> *ang
02:21:50 <pikhq> Yes, I'm just being silly is all.
02:22:00 <oklopol> is that the case now
02:22:09 <pikhq> Gregor: BTW, nice job on having an Anglo-Frisian esolang.
02:22:11 <oklopol> i should go to sleep
02:22:16 <pikhq> oklopol: Often is.
02:22:34 <Gregor> It's what I do?
02:22:48 <pikhq> ORK.
02:22:52 <Gregor> Figgered :P
02:22:55 <Gregor> Unless you meant IRP.
02:23:10 <pikhq> IRP is only Anglo-Frisian in some implementations. :)
02:28:54 <Sgeo> http://i.imgur.com/yscQ2.png ais523 made this
02:37:16 <coppro> heh
02:38:35 -!- augur has quit (Remote host closed the connection).
02:41:01 -!- lament has joined.
02:49:42 -!- sebbu has quit (Ping timeout: 268 seconds).
02:54:16 -!- sebbu has joined.
02:56:22 -!- c0vert has joined.
02:57:20 <pikhq> Sgeo: Huh. Is that the perfect game, or not?
02:59:38 -!- oklopol has quit (Ping timeout: 260 seconds).
03:00:00 <coppro> pikhq: It is not
03:00:34 <coppro> the image cannot lose, but it can quite easily not make a winning move
03:01:26 <pikhq> Alas.
03:04:20 <Sgeo> Anyone want to make an esolang to make describing and understanding the circuitry easy?
03:04:29 <pikhq> Wireworld.
03:04:58 <Oranjer> sounds like a great idea, Sgeo
03:06:58 -!- sebbu has quit (Ping timeout: 248 seconds).
03:08:05 -!- sebbu has joined.
03:08:41 <coppro> Engineer of the People
03:09:13 -!- Mathnerd314 has quit (Ping timeout: 260 seconds).
03:12:18 -!- c0vert has quit (Quit: Leaving).
03:38:57 <uorygl> Engineer of the People is a flawed game; it does not distinguish between 0 and Z.
03:41:35 <Sgeo> Didn't realize that it was something that exists, rather than just a name coppro blurted out.
03:42:13 <coppro> uorygl: Z?
03:42:21 <uorygl> High impedance.
03:42:47 <coppro> does that mean low current? I know little about actual circuitr
03:43:05 <Sgeo> Um
03:43:13 <uorygl> Ideally, high impedance means that no current flows.
03:43:16 <Sgeo> I know 0 about actual circuitry. How am I supposed to play?
03:43:39 <coppro> ah
03:43:50 <uorygl> In the water analogy...
03:43:52 <coppro> why is this supposed to matter?
03:43:58 <Sgeo> Oh, there's a tutorial
03:44:14 <uorygl> 0 is a vacuum; it tries to suck up water. 1 is a faucet; it tries to spit out water. Z is a wall; it refuses to admit water in either direction.
03:44:30 <coppro> ok
03:44:40 <coppro> makes sense
03:44:40 <uorygl> A logic gate reads the incoming pressures. A vacuum has low pressure, a faucet has high pressure, and a wall has undefined pressure.
03:46:08 <uorygl> Z isn't very often useful; since logic gates just read pressures, you usually want to use the things that have defined pressures.
03:47:14 <uorygl> But it can be useful in implementing, say, an OR gate with many inputs. Say you have 64. You can use a circuit element that turns each input into either 1 or Z, and simply attach all the outputs together.
03:47:48 <uorygl> Further, you can attach a 0 to all those outputs, but put a resistor in between.
03:48:39 <uorygl> So if all the inputs are 0, those are translated to lots of Zs, so the 0 you just attached takes over the output.
03:48:56 <uorygl> If at least one input is 1, though, it will overwhelm that 0, because that 0 is behind a resistor and the 1 is not.
04:04:38 -!- Mathnerd314 has joined.
04:09:28 <uorygl> Hmm, I wonder if it's possible to build a computer that computes entirely using flood fill.
04:09:41 <coppro> uh
04:09:51 <coppro> no
04:09:57 <uorygl> The thing about a flood fill is that as each computing element is used, it's destroyed.
04:10:34 <coppro> yes and no
04:10:55 <coppro> you lose the original element, but may gain a new one
04:11:02 <coppro> (alternatively you may just destroy it)
04:11:31 <coppro> hmm.. that does give me an interesting idea for an esolang though.
04:11:53 <uorygl> Mm, once two differently-colored regions are joined, they can never become unjoined.
04:11:54 -!- Oranjer has left (?).
04:12:06 <uorygl> And joining of differently-colored regions is the only thing that can possibly be useful for computing.
04:12:47 <coppro> right
04:13:50 <pikhq> Time-travel of regions fixes that.
04:13:50 <pikhq> >:D
04:14:02 <Sgeo> Is there a way to have a flood fill loop infinitely? I doubt it
04:14:17 -!- aschueler has quit (Ping timeout: 276 seconds).
04:14:21 <pikhq> Time travel.
04:14:26 <uorygl> I've always wondered if you could use time travel to reverse entropy.
04:14:32 <uorygl> No.
04:14:36 <uorygl> There, now I don't wonder that any more.
04:14:39 <Sgeo> ^^that question feels similar to "That bus does have a way to go in reverse, right?" that I actually asked IRL
04:18:39 <oerjan> parallel flood fill!
04:19:02 <oerjan> with different colors racing
04:19:12 <pikhq> uorygl: But time travel is the reversal of entropy in this setup. :P
04:19:49 <oerjan> hm that could be done as a CA
04:19:58 <uorygl> When time goes backwards, entropy, alas, still goes forwards.
04:20:13 <coppro> If you used a deterministic algorithm, you could have two separate floodfills running in a loop a la wireworld
04:20:17 <oerjan> each cell has a color, + a hidden color which it'll turn into itself i neighboring
04:20:26 <pikhq> Goes forwards from the point of time that has been returned to, yes.
04:20:38 <pikhq> There is, however, less entropy at that time than there was before leaving.
04:21:06 <oerjan> and if it has no neighbors of the hidden color, it shuts off
04:21:11 <oerjan> *if
04:21:45 <uorygl> I think our terminology has broken down.
04:22:54 <oerjan> wioll haven breaken down
04:24:08 * uorygl ponders how entropy reversal would work.
04:24:47 <uorygl> It's the future, and there's too much entropy there, so you go back in time to when there wasn't so much entropy, but all that lack-of-entropy is already being used by someone else.
04:34:51 <coppro> hmm... the Internet should switch from EST to UTC
04:35:23 <coppro> entropy is a statistical phenomenon, though!
04:38:05 * oerjan didn't know "the Internet" used EST
04:42:52 <uorygl> I live in Michigan, and I am not on EST.
04:43:02 <uorygl> Nor is anyone I know.
04:58:32 -!- MizardX has joined.
05:29:13 -!- sebbu2 has joined.
05:30:02 -!- sebbu has quit (Ping timeout: 268 seconds).
05:30:04 -!- sebbu2 has changed nick to sebbu.
05:34:14 -!- oerjan has quit (Quit: leaving).
05:41:02 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
06:09:37 -!- dhave has joined.
06:19:49 -!- dhave has left (?).
06:20:51 -!- MizardX has quit (Quit: brb).
06:22:46 -!- MizardX has joined.
06:23:45 -!- jcp has joined.
06:41:10 <coppro> oerjan: Many sites update at 12 PM EST
06:41:31 <coppro> oh wait, he left
06:49:36 -!- FireFly has joined.
07:05:14 -!- tombom has joined.
07:09:09 -!- augur has joined.
07:09:43 -!- MigoMipo has joined.
07:25:41 -!- Gracenotes has quit (Remote host closed the connection).
07:29:13 -!- Gracenotes has joined.
07:35:06 -!- 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).
07:49:08 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:11:34 -!- lament has quit (Quit: lament).
08:36:01 -!- adu has joined.
08:57:59 -!- kar8nga has joined.
09:08:02 -!- Adrian^L has quit (Ping timeout: 248 seconds).
09:29:15 -!- Rugxulo has joined.
09:29:39 <Rugxulo> okay, it's official, silly AMD64 cpu doesn't like self-modifying code ;-)
09:30:01 -!- Adrian^L has joined.
09:30:22 <Rugxulo> benchmark #2 sped up by 10x just by using true variables (instead of modifying two ADD instructions)
09:31:02 <Rugxulo> 02:25.33 (2 1/2 mins.) vs. 28.30 (1/2 min.)
09:31:05 <Rugxulo> oops, that's not 10x
09:31:12 <Rugxulo> well, you get the idea ;-)
09:31:24 <Rugxulo> I'm pretty sure this will help my silly P4 also
09:31:44 <Rugxulo> still, 5x is quite shocking o_O
09:32:21 <Rugxulo> I guess it's re-decoding everything instead of relying on cache
09:32:29 <fizzie> Self-modifying code has fallen quite badly out of fashion, I believe.
09:32:50 <Rugxulo> luckily, the faster way only wastes four extra bytes ;-)
09:33:17 <Rugxulo> but seriously, there's a big difference between "unpopular" and "sucks big time"
09:33:52 <Rugxulo> it didn't seem to hurt my 586 at all ... then again, I haven't tested the "new" version yet
09:34:05 <fizzie> I had a bit of self-modification (change of jump target) in a DS thing; it worked just fine on DeSmuME's ARM emulation thing, but on the real hardware the jump target just wouldn't change; my guess is you need to do something different than just a normal write to invalidate instruction caches.
09:34:24 <Deewiant> Rugxulo: How far was the modification
09:34:32 <Rugxulo> some Intel cpus (but not all) require "jmp $+2"
09:34:50 <Rugxulo> the whole file is (was?) only 1014 bytes ;-)
09:34:50 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
09:35:03 <Deewiant> Intel's manuals say that you should be at least a page away, IIRC
09:35:19 <Rugxulo> as in 4096 bytes?
09:35:55 <Rugxulo> honestly, I didn't write this, just hacked at it heavily, so I personally wouldn't have used self-modifying code, but I didn't know it hurt *that* bad!
09:36:24 <Rugxulo> I knew the P4 was a weird bastard, just didn't think AMD64 would be as sensitive also
09:36:29 <Deewiant> "... on separate 4-KByte pages or on separate aligned 1-KByte subpages."
09:37:18 <Deewiant> "avoid writing to a code page in the same 1-KByte subpage that is being executed or fetching code in the same 2-KByte subpage of that is being written."
09:37:36 <Rugxulo> it doesn't affect all processors as badly, though
09:37:45 <Deewiant> And then stuff gets worse if you have multiple processors working there.
09:37:58 <Deewiant> It does say "H impact" for this stuff.
09:38:38 <Rugxulo> 5x slowdown here :-/
09:38:41 <Deewiant> And "try to do it all at once" - lots of small modifications are a no-go.
09:39:00 <Rugxulo> every direction change is (was) self-modifying
09:39:06 <Deewiant> heh
09:39:15 <Deewiant> That's a good way to kill performance :-)
09:39:28 <Rugxulo> still faster than official BEF 2.21 ;-)
09:39:52 <Rugxulo> of course ff3 seems to slaughter it, but he's smart, me not :-P
09:40:21 <fizzie> Deewiant: "About NetHack: the intensity of its time, at xerox parc. izchak contributed greatly to the carpet, where he appears as a tree. a towel,..."
09:40:41 <Deewiant> Heh at izchak
09:41:07 <fizzie> Yes, the "appears as a tree in a carpet" bit was funney.
09:43:42 <fizzie> I have a bit of a p-heavy benchmark, if anyone's interested; it just needs a termination condition hacked in. It does rule 110 on a 80-cell line, but most of the time is spent because it maintains a history of 20 generations, and therefore has to move (well, copy) 80x19 playfield cells upwards one row.
09:44:45 <Rugxulo> needs a termination condition?
09:44:53 <Deewiant> If it's -98y I might be interested but it doesn't sound like it is
09:45:13 <fizzie> Currently it just keeps going and going; for benchmarking, you'd probably like it to terminate after a set amount of generations.
09:45:33 <Rugxulo> yes, actually finishing like sometime before I die would be nice :-)
09:45:34 <fizzie> Deewiant: No, it's 93. Though it probably works in 98 interps too. Mostly I wrote it because I wanted something that looks nice in a thing that shows the playfield state; 80 cells is a bit narrow though.
09:46:38 <Rugxulo> one guy wrote an interpreter (93) for Net/OpenBSD that was 41x25 since it "was easier for [his] terminal" :-P
09:46:42 <Deewiant> 93 has the problem that you can special-case for it so well that 98 interps are out of their league :-P
09:46:49 <Deewiant> heh
09:47:22 <Rugxulo> I don't know what he was doing exactly, but that's a weird size
09:47:43 <fizzie> Meh, on '98 I'd just keep a count of generations in one playfield cell, but for 93 you can't really put very large numbers in there.
09:49:50 <Rugxulo> store it in several cells as BCD, then :-)
09:51:14 <fizzie> Hrm, ff3 segfaults on it after 1061 generations. I fancy I 'p' outside the playfield at some point; I'm not very careful with that.
09:51:32 -!- cheater2 has quit (Ping timeout: 258 seconds).
09:51:53 <Rugxulo> well at least it didn't need a termination condition ;-)
09:52:28 <Rugxulo> run until you crash (like Win95 ... 57 days or whatever it was)
09:54:18 <fizzie> Yes, it seems to p at (89,1) once, then afterwards at (80,0) and (161,1) repeatedly, but that's maybe after the (89,1) p breaks it.
09:54:47 <Rugxulo> perhaps your moving generation is overwriting the copy code?
09:55:48 <fizzie> It shouldn't; it starts the copy on row 5 and moves downwards. And anyway I'd assume that to kick in rather early.)
09:57:42 <fizzie> Unfortunately with -DTRACE it seems it generates a bit too much output before getting to the crashy part; after 6 generations, the trace output is already 17 megabytes.
09:59:48 <Rugxulo> pastebin it and I'll take a look if you're desperate
10:00:00 <fizzie> Looks like a stack overflow, actually; my stack is 1024 elements by default.
10:00:09 <fizzie> I must've forgotten to discard some number somewhere.
10:00:11 <Rugxulo> sounds very close to 1016
10:00:15 <Rugxulo> er, 1061
10:02:39 <fizzie> Yes, there was a leftover 80 in the stack. Fixed now.
10:03:13 <Rugxulo> "1024 elements should be enough for anyone"
10:08:44 <fizzie> Running about 64*64*64 generations with ff3 here takes ~32 seconds; that's reasonable for benchmarking. And you can of course decrease the numbers if you like. The code is at http://pastebin.com/WtrAcs8K
10:09:08 <fizzie> It ,s out the stuff it computes; you may want to >/dev/null or just blank those bits of code that do it.
10:09:35 <fizzie> (The ":," on line 3 and "55+," on line 4.)
10:10:11 <Rugxulo> is line 25 required?
10:10:44 <fizzie> Well, that depends. It's the initial state.
10:11:00 <fizzie> If you don't put in anything, it's the all-zeros thing, and rule 110 on that is I think pretty uninteresting.
10:11:10 <Rugxulo> k
10:11:35 <fizzie> It will do just as many operations, though, so in that sense it doesn't matter.
10:13:08 <fizzie> The beginning of line 5 lists the new cell state (_ = 0, # = 1) indexed by 0bXYZ, where X is the right neighbour, Y the old state of the cell and Z the left neighbour; so it's not limited to rule 110.
10:13:13 <Rugxulo> well, I'm using the "old" befi that self-modifies, so it may be slower than usual
10:13:43 <Rugxulo> for the record, I'm no mathematician, so rule 110 is Greek to me ;-)
10:13:51 <fizzie> See http://en.wikipedia.org/wiki/Rule_110 perhaps.
10:14:06 <Rugxulo> (will waste more cpu cycles, heh)
10:14:12 * Rugxulo reads anyway
10:14:38 <fizzie> Should've probably put the "new state for center cell" values on line 5 in the canonical order like they are in the wiki-page.
10:19:11 -!- lereah_ has joined.
10:20:06 -!- Rugxulo has quit (Read error: Connection reset by peer).
10:20:20 -!- Rugxulo has joined.
10:23:26 <fizzie> Just for aesthetics, flipped those things: http://pastebin.com/Zr83drK9 -- now the line 5 beginning bits are indexed by the same values as in the wikipedia article. (It's still the reverse of the table there, because they've been numbered 111, 110, .., 001, 000, but I use that three-bit number as the column on line 5.)
10:25:08 -!- Rugxulo has quit (Read error: Connection reset by peer).
10:25:47 -!- Rugxulo has joined.
10:26:16 <Rugxulo> back
10:26:37 <Rugxulo> still running
10:26:44 * Rugxulo wonders if 128x128 would break it
10:27:03 <fizzie> If you mean that program, it shouldn't.
10:27:14 <fizzie> It won't use more than the 80x25 block, though.
10:27:15 <Rugxulo> well it certains take more than 32 secs. here ;-)
10:28:33 <fizzie> If you want to cut down the time to 1/8th, you can change the three @s on line 1 to spaces, and the two "@"s to " "s on line 4; but not the final @, that's for actually terminating. :p
10:28:44 <fizzie> (That should make it compute 32*32*32 generations instead of 64*64*64.)
10:29:30 <fizzie> Actually I could make it ask for the number of generations in the beginning, and keep that at the bottom of the stack. Except that I haven't implemented & in ff3. :p
10:29:50 <fizzie> stack_cell read_number(void)
10:29:50 <fizzie> {
10:29:50 <fizzie> return 0;
10:29:50 <fizzie> }
10:30:05 <fizzie> That's not exactly correct. But a good approximation!
10:31:19 -!- Rugxulo` has joined.
10:31:29 <Deewiant> That's correct for TRDS in a past time
10:32:06 <Deewiant> Insofar as pretty much any other behaviour is correct, anyway
10:32:57 -!- Rugxulo has quit (Ping timeout: 240 seconds).
10:33:04 <Rugxulo`> ping
10:33:37 <Deewiant> timeout
10:33:59 * Rugxulo` isn't sure this thing will ever end
10:34:58 <fizzie> http://pastebin.com/xtKNrC6W if you want a version that asks for the number of generations at the beginning. With ff3 you'll need to hardcode the number you want in read_number, though. :p
10:35:13 <Rugxulo`> fizzie, you forget that other interpreters are dirt slow ;-)
10:35:45 <fizzie> Yes, well, that's why you should tune the parameter to something suitable.
10:38:02 <Rugxulo`> 1000 takes 12.03 secs
10:38:49 <fizzie> Wow, that *is* slow. Does it seem to work right?
10:40:04 <Rugxulo`> 3000 (when redirected to NUL) takes 23.08 secs.
10:40:09 <Rugxulo`> prints lines
10:40:11 <Rugxulo`> so I guess so
10:40:18 <Rugxulo`> BTW, original finished finally ;-)
10:40:43 <Rugxulo`> befi.com 2l "two ell" (1014 bytes, self-modifying) takes 26:37.25 (26 mins.)
10:41:04 <Rugxulo`> that was with no output
10:41:11 <Rugxulo`> original 64*64*64 version
10:43:20 <Rugxulo`> okay, trying again with "faster" (no self-modify ... well, almost) version
10:43:54 <Rugxulo`> keep in mind that befi isn't multi-threaded or multi-core aware
10:44:07 <Rugxulo`> not sure, but I bet your Glibc does some stuff behind the scenes (cheaters, heh)
10:45:03 * Rugxulo` hopes it's 5x faster
10:45:08 -!- Rugxulo` has changed nick to Rugxulo.
10:48:11 <Rugxulo> not done yet :-/
10:48:29 <Rugxulo> this is a laptop, so it's not super fast or anything
10:50:08 <Rugxulo> BTW, I wonder why Deewiant has no signed multiply test in Mycology
10:50:14 <fizzie> Yay, finally something where -DBOUNDARY_TRACKING slows things down: http://pastebin.com/wZPiSLAG
10:50:26 <fizzie> It's probably the "test for boundaries" thing in p.
10:50:36 <fizzie> This program p's a lot.
10:51:18 <Rugxulo> 3 secs. (10%), not as dramatic as you implied ;-)
10:51:35 -!- oklopol has joined.
10:51:47 <Rugxulo> done! :-)
10:52:01 <Rugxulo> 08:07.58 (8 mins.) so much faster now w/o self-modifying movement crud
10:52:26 <Rugxulo> still slower than ff3, but much improved ;-)
10:53:17 <Rugxulo> so ~ 3x speedup this time
10:54:31 <Rugxulo> what, no congrats? ;-)
10:55:12 <fizzie> Elation and jubilation! Whoo!
10:55:43 <fizzie> Hrm, I was hoping more from -DNO_SELF_MODIFY than just http://pastebin.com/wvXReqEK
10:57:07 <Rugxulo> what cpu again? Athlon64?
10:57:15 <fizzie> This is my work-workstation.
10:57:32 <fizzie> model name : Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
10:57:55 <Rugxulo> Core 2 is usually said to be pretty smart, so (hopefully) it doesn't penalize as badly as older models
10:58:03 <Rugxulo> still, 4 secs. faster IS significant
10:58:46 <Rugxulo> it (src, dest) was probably > 4 kb apart anyways
10:58:49 <fizzie> With -DNO_SELF_MODIFY the p implementation doesn't check for boundary changes and doesn't change the code-space, just the playfield "text".
10:59:14 <fizzie> It's not about self-modification in ff3 itself; that's always a bit too tricky with plain C.
11:00:04 <Deewiant> Rugxulo: ... because I assume you're not implementing things in assembly? :-P
11:00:22 <Rugxulo> ?
11:00:30 <Rugxulo> you mean Core 2 assumes?
11:00:33 <Deewiant> Re. no signed multiply test in Mycology
11:00:48 <Rugxulo> well you assumed WRONG! muahahahahaha
11:01:03 <Rugxulo> I know of three (well, four if you count RISC) assembly B93 interpreters
11:01:17 <Rugxulo> s/RISC/RISC OS/
11:01:36 <fizzie> Rugxulo: Do you know of the TI-86 calculator one that's done in z80 assembly? It's very nice; has a debugger and all if I recall correctly.
11:01:57 <Rugxulo> I don't, actually, probably 'cause I don't have a TI-86 :-P
11:02:07 <Rugxulo> how big is it?
11:02:23 <fizzie> I'm not sure if it's anywhere in the interwebs nowadays, and I sure don't have it in my calculator either.
11:02:32 * Rugxulo only vaguely remembers playing Pac-Man and Tetris on his TI-82 or such ...
11:02:46 <Rugxulo> I hate that good things disappear
11:04:01 <fizzie> I'll see if archive.org remembers; it was on mooz's kotisivu.mtv3.fi/quux page.
11:04:10 <Rugxulo> hmmm, seems GCC only benchmarks against P4, Core2, and PPC
11:04:19 <Rugxulo> I knew they had good P4 support, but seriously, they should test others too :-(
11:04:40 <Rugxulo> the RISC OS one is 1024 bytes, I think
11:04:45 <fizzie> It was called "befunge86" or "bef86", which is a bit misleading name, since it sounds like a suspiciously early variant of the language.
11:04:55 <Rugxulo> others are big only because of OS alignment requirements (Win32, *BSD)
11:05:01 <Rugxulo> 3.5k and 8k, respectively
11:05:39 <fizzie> 128x32 playfield, 8-bit stack, unsigned numbers (except for `); but it has a-f hex-pushing and single-shot stringmode ' stolen from -98.
11:06:49 <fizzie> Unfortunately I don't think archive.org has saved the actual program. Trying to check if the page mentions the size; readme didn't.
11:07:20 <Rugxulo> unsigned numbers except for compare ... how so?
11:09:10 <fizzie> I assume it means / and % do unsigned division.
11:09:22 <fizzie> Not sure about input/output.
11:09:46 <fizzie> http://web.archive.org/web/20061205024750/http://kotisivu.mtv3.fi/quux/befunge.html has screenshots, though archive.org's so slow you may have to wait a bit.
11:10:17 <fizzie> The 86p file seems to be 3024 bytes; few bytes of that is overhead.
11:10:49 <fizzie> There's also his Algol-60 Befunge interpreter there.
11:10:50 <Rugxulo> you should test a Javascript interpreter with your rule 110 thingy, they've sped those up a lot in recent browsers
11:11:57 <Rugxulo> heh, that's quite obscure itself ;-)
11:12:42 <fizzie> We had some sort of campaign of doing obscure-ish languages; I did two in FORTRAN. And one in Forth.
11:13:04 <fizzie> "Doing" above means "doing a befunge-93 interp in".
11:14:08 <Rugxulo> I've been looking for a Forth one in vain
11:14:39 <fizzie> Mine might be a bit incomplete, and very unidiomatic Forth; it was among the first bits of Forth I wrote. Not that I'm very fluent yet either, but better.
11:15:01 <fizzie> I have that home computer offline again, otherwise I'd paste it.
11:15:38 <Rugxulo> screenshots of Bef86 finally appeared ;-)
11:16:17 <Rugxulo> font is a little blocky in places (hard to read)
11:16:46 <fizzie> It's a 128x64 pixel screen, that limits it a bit.
11:17:25 <fizzie> You can compare his tiny-ti86-font to mine at http://zem.fi/rfk86/screens.html
11:17:41 <fizzie> If you happen to have a suitable browser, you'll even get the site itself rendered in that font.
11:18:04 <fizzie> (What joy.)
11:18:09 <Rugxulo> BTW, it the whole "FuzzooBizzarWoo" crud related to Intercal in some way?
11:18:47 <fizzie> Not that I know of, no. It was a one-off posting in some newsfroup, I think without any replies or anything.
11:20:19 <fizzie> Did that rfk86 font embedding happen to work for you?
11:24:02 <Rugxulo> I see the screenshots, if that's what you mean
11:25:19 <fizzie> The whole site should be using the same font.
11:25:26 <fizzie> I've seen that work in ff3.5, but not much else.
11:25:52 <fizzie> It should also work with some specific IE version, but I'm not sure about that.
11:26:03 <Rugxulo> you mean did the browser use the font? no
11:26:03 <Rugxulo> I'll try again in another one
11:26:40 <fizzie> It's not a great loss if it doesn't want to work.
11:27:25 <Rugxulo> it seems to work in Firefox, yes
11:27:33 <Rugxulo> Chrome? either no or still loading
11:27:39 <Rugxulo> IE 8? apparently not
11:28:30 <fizzie> None of these obsolete Ubuntu interpid browsers I have at work (Firefox 3.0.19, Opera 9.63) show it right. It might work in Opera 10; for IE I've gone through the trouble of converting the font to EOT (embeddable opentype) format that according to some page somewhere should work, but maybe not.
11:28:59 <fizzie> "Mozilla Firefox 3.5+, Opera 10+[12], Safari 3.1+[13] and Google Chrome 4.0+[14] support linking to industry-standard TrueType (TTF) and OpenType (OTF) fonts."
11:29:14 <Rugxulo> Opera works
11:29:25 <Rugxulo> yes, Opera 10
11:29:55 <fizzie> I think I mostly just wanted an excuse to play with truetype font files.
11:30:20 <Rugxulo> yes, Chrome works
11:30:20 <Rugxulo> no, IE 8 apparently doesn't work
11:30:43 <Rugxulo> of course ;-)
11:31:29 <fizzie> Heh. Well, it might something so simple that my server doesn't send the correct content-type for the .eot file.
11:38:25 <Rugxulo> welp, guess I'll head on down the dusty trail ...
11:38:57 <Rugxulo> be back later, I suppose
11:39:04 -!- Rugxulo has quit (Quit: doy).
11:49:25 -!- cheater2 has joined.
11:52:53 -!- Tritonio_GR has joined.
11:58:37 -!- cheater2 has quit (Ping timeout: 240 seconds).
12:49:10 -!- adu has quit (Quit: adu).
13:35:58 -!- Asztal has joined.
14:28:48 -!- oerjan has joined.
14:31:15 -!- augur has quit (Remote host closed the connection).
14:49:12 -!- Gracenotes has quit (Quit: Leaving).
15:00:42 -!- augur has joined.
15:31:48 -!- oerjan has quit (Quit: leaving).
15:39:59 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
16:08:00 -!- kar8nga has quit (Remote host closed the connection).
16:22:44 -!- lament has joined.
16:25:56 -!- lereah_ has quit (Quit: Leaving).
16:28:49 -!- BeholdMyGlory has joined.
16:32:46 -!- Asztal has quit (Ping timeout: 246 seconds).
16:33:10 -!- Asztal has joined.
16:36:18 -!- augur has quit (Ping timeout: 252 seconds).
16:38:36 -!- lament has quit (Quit: lament).
16:41:42 -!- Asztal has quit (Ping timeout: 258 seconds).
16:47:21 -!- Tritonio_GR has quit (Quit: Leaving.).
16:48:14 -!- Asztal has joined.
17:09:42 -!- tombom has joined.
17:17:09 -!- nooga has quit (Ping timeout: 245 seconds).
17:27:07 -!- cheater2 has joined.
17:38:15 <pineapple> do people here have an understanding of statistics?
17:45:14 <oklofok> no
17:46:30 <fizzie> " Those who don't understand statistics are doomed to become such." -- Old Jungle Saying
17:53:14 -!- MigoMipo has joined.
17:53:57 <oklofok> "those who mention statistics are doomed to hear a joke about it"
17:54:19 <pineapple> ..
17:54:20 <pineapple> .
17:54:54 <oklofok> there are multiple
17:55:03 <oklofok> MANY
17:55:08 <oklofok> it's a very jokeable subject
17:55:15 <oklofok> or sayingable
17:55:36 <oklofok> or maybe not
18:11:49 <fizzie> Since the topic has been a matter of discussion here... http://bayimg.com/image/camjbaaca.jpg [full disclosure disclaimer: got it from another #channel, as usual]
18:14:32 <Deewiant> http://aasi.ebm.fi/data/images/0000006346.jpg I got a bigger version
18:18:18 <fizzie> Yes, yes, yours is bigger, but isn't it a bit vulgar to start bragging about the size of it like that?
18:19:09 <Deewiant> Only if you're a prude
18:20:53 <oklopol> i find that funny but it seems like it might be some sort of reference?
18:21:14 <fizzie> One does not simply walk into Mordor.
18:21:29 <oklopol> thought so
18:21:51 <oklopol> that makes it significantly less funny
18:22:40 <oklopol> also i just looked at your small one, fizzie
18:32:20 -!- augur has joined.
18:41:58 <Ilari> Statistics: Where calculations can be mathematically valid but the results can be total maliscous garbage... :-)
18:42:27 <pikhq> Statistics: like bullshit with a statistically greater chance of being related with reality.
18:42:31 <pikhq> >:D
18:42:59 -!- oklopol has quit (Ping timeout: 245 seconds).
18:44:16 -!- oklofok has quit (Ping timeout: 276 seconds).
18:46:06 <Ilari> Statistically signaficant != really signaficant. Just check the figures for how much cutting salt intake lowers blood pressure (average).
18:47:15 -!- oklopol has joined.
18:50:06 <AnMaster> okay this is strange...
18:50:18 <AnMaster> I have a latex document, the first table figure gets number 2
18:50:27 <AnMaster> err table float
18:50:35 <AnMaster> the first figure float gets number 1 as expected
18:52:00 <Ilari> Just have large enough sample and arbitrarily small differences become statistically signaficant... :-)
18:52:30 <Gregor> Ilari: That's a funny statement taken as a response to AnMaster.
18:53:14 <Ilari> AnMaster: Is there figure float 2 too?
18:53:46 <AnMaster> Ilari, well yes, there are 9 figure float and 5 table floats. On and 3 "long tables" (more than a page long, not in a float)
18:54:00 <AnMaster> Ilari, and there are 4 figure floats before the first table float
18:54:41 <AnMaster> Ilari, I have looked for patterns unsuccessfully.
18:56:07 <AnMaster> also *looks for a package on ctan to do Karnaugh diagrams*
18:56:10 <AnMaster> oh look there is one
18:56:19 <AnMaster> why am I so completely not surprised ;)
18:57:58 <AnMaster> what the heck I think I need ais to figure this one out
18:59:21 <AnMaster> you don't \usepackage it, you \input it
18:59:24 <AnMaster> which seems strange
19:01:24 <fizzie> You can most likely fix that table numbering by forcibly setting the counter, but that's more of a workaround than a real fix; doesn't tell you why it happens.
19:01:43 <AnMaster> fizzie, indeed...
19:01:58 <AnMaster> fizzie, any idea about this \input kvmacros vs. \usepackage[foo] thingy?
19:02:48 <fizzie> Not really; it might be just that they haven't quite gotten the hang of making real LaTeX packages.
19:03:49 <AnMaster> it seems rather old. 2002
19:05:03 <fizzie> Matching /^2/ means it can't be *old*, just.. not lately updated.
19:18:20 -!- augur has quit (Remote host closed the connection).
19:21:30 -!- kar8nga has joined.
19:34:34 <AnMaster> oh the horror
19:34:41 <AnMaster> from a latex package:
19:34:43 <AnMaster> The macros are to be processed by m4, and evaluate to drawing
19:34:43 <AnMaster> commands in the pic "little language,"
19:35:01 <AnMaster> fizzie, have you seen anything quite as awful before?
19:35:13 <AnMaster> (note this is a different package than the one above)
19:35:35 <fizzie> Well, now... it *could* be using the C preprocessor there.
19:35:46 <AnMaster> fizzie, was looking at the README for http://www.ctan.org/tex-archive/graphics/circuit_macros/
19:36:25 <AnMaster> for this I think dia might be better
19:36:47 <pikhq> fizzie: It's *TeX8.
19:36:54 <pikhq> They could be using *TeX* for that.
19:37:20 -!- kar8nga has quit (Remote host closed the connection).
19:37:40 <AnMaster> pikhq, my point
19:37:42 <AnMaster> exactly
19:37:50 <fizzie> Yes, but he asked about awful.
19:38:03 <AnMaster> now I can't find the box style gate icons in dia
19:38:04 <AnMaster> how strange
19:38:11 <AnMaster> as in Xor being a box with =1 in it
19:38:20 <AnMaster> as opposed to the weird shaped icons for it
19:47:42 -!- adam_d has joined.
19:48:29 -!- adam_d has changed nick to mixxx|adam_d.
20:08:02 <oklopol> http://esolangs.org/wiki/Toi
20:08:14 <oklopol> look i added a SERIOUS entry
20:08:54 <fizzie> You've got some SERIOUS balls, adding a SERIOUS entry in there.
20:09:01 <oklopol> excuse me if it's not up to the high esolang standards, i had to write it twice because i did some failinjg.
20:09:03 <oklopol> *failing
20:09:29 <oklopol> but the great thing about wikis is i can upload any crap i want because someone else can fix it
20:09:36 <oklopol> AMIRITE
20:10:00 <oklopol> also <math> does *not* work
20:10:44 <AnMaster> Ilari, strange but inserting a table float near the start made it have table 2 but then later skip table 2 and jump directly to table 3.
20:10:45 <AnMaster> huh
20:10:59 <oklopol> AnMaster: are you talking about my language
20:11:05 <fizzie> There must be a hidden table-like thing in there somewhere.
20:11:44 <oklopol> i read inserting as interesting
20:11:50 <AnMaster> oklopol, no I'm not
20:11:56 <oklopol> AnMaster: i know
20:12:00 <AnMaster> I'm talking about spooky latex issues
20:12:05 <AnMaster> fizzie, probably...
20:13:52 <oklopol> i noticed that in toi.py i'd been talking about stacks all the time
20:14:20 <oklopol> hopefully you realized that was just a silly mistake and were able to write all your toi programs without problems
20:15:15 <fizzie> Toy programs.
20:15:25 <oklopol> yes i've noticed that
20:16:19 <oklopol> i never actually chose the name, toi was just the random string i named my interp to
20:16:35 <oklopol> but the whole thing is really half-assed anyway so i thought it'd be perfect
20:17:08 <oklopol> essentially just a BF derivative
20:17:21 <oklopol> with new more hip names for 'things
20:17:23 <oklopol> *-'
20:25:28 <fizzie> That looks like one of those non-tilted ^_^-style smileys.
20:26:31 <oklopol> okay say we wanted to write a condition "do this thaang iff set has an odd number of elements"
20:27:15 <oklopol> no wait
20:27:40 <oklopol> actually my failed attempt doesn't even work in the sense that i originally thought
20:27:56 <oklopol> it's not even a sensible idea
20:30:00 <oklopol> okay i dunno maybe it's just not TC
20:30:27 <fizzie> Given that you didn't get nice TeX rendering, I'd perhaps just replace those \cups and \ins with the correct characters (∪, ∈), and use plain { instead of \{; I don't think everyone has a TeX renderer in the brain.
20:30:58 <oklopol> yes but do note my remark about the great things about wikis!
20:31:21 <fizzie> I already previewed that change, but then I thought it'd be IMPUDENT to go and change it.
20:31:45 -!- Tritonio_GR has joined.
20:31:50 <oklopol> no, in fact it would be very nice of you
20:32:02 <oklopol> party, Tritonio_GR!
20:32:23 <Tritonio_GR> huh?
20:32:36 <oklopol> that's how we say hello in finland
20:32:57 <Tritonio_GR> aha... :-) health to you oklopol!
20:34:03 <oklopol> thank you, i have a lot of use for health
20:34:18 <fizzie> I did that thing, but in my font the \cup is pretty small. There's the n-ary cup, ⋃, which is generally speaking a bigger cup, but semantically wrongly there, so I went with the small cup anyway.
20:34:33 <oklopol> okay now could you also fix the computational class?
20:35:52 <fizzie> I don't think I can select a proper character to do that with a simple substitution.
20:36:05 <oklopol> Tritonio_GR: we're talking about Toi on esolang, in fact we've been talking about it all day and they say it might actually be the new LOLCODE
20:36:29 <oklopol> popularitywise at least
20:36:54 <fizzie> With only a tiny teeeensy bit of ex-aggregation there.
20:37:01 <oklopol> yes
20:37:14 <Tritonio_GR> oklopol and the rest: i really wanna talk about it but i gotta go NOW. :-D so.... adios!
20:37:42 <oklopol> party over i guess :<
20:37:52 <Tritonio_GR> hehe
20:37:54 <Tritonio_GR> cyaaa
20:37:57 <oklopol> cyaaaa
20:38:06 <AnMaster> fizzie, doesn't mediawiki have <math>?
20:38:20 <fizzie> AnMaster: It's an optional bit, maybe esolangs wiki doesn't have it turned on?
20:38:32 <fizzie> AnMaster: At least in preview there <math> doesn't seem to do anything.
20:38:36 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
20:40:13 <AnMaster> ah
20:42:26 <oklopol> i have to go, but don't worry i'll answer the rest of your questions about toi when i return
20:42:49 <oklopol> remember to call 0400243514 if you have something really urgent to ask about it
20:43:00 <oklopol> i wouldn't want to stand in the way of progress
20:43:21 <oklopol> i'm such a silly boi ->
20:43:41 <AnMaster> silly bot? silly boy?
20:44:06 <fizzie> I don't think oklokloklok's a bot.
20:44:16 <fizzie> fungot: Are you a silly bot?
20:44:17 <fungot> fizzie: icon... i really need one as i have no idea
20:44:35 <fizzie> I doubt getting an icon would much help you, but I'll see if I can design one up at some point.
20:52:18 -!- jcp has joined.
20:58:49 -!- lament_ has joined.
20:58:51 -!- lament_ has quit (Client Quit).
20:59:41 -!- Oranjer has joined.
21:04:53 -!- Asztal has quit (Ping timeout: 260 seconds).
21:07:02 -!- Deewiant has quit (Ping timeout: 276 seconds).
21:07:09 -!- Asztal has joined.
21:09:46 -!- Deewiant has joined.
21:10:39 -!- ais523 has joined.
21:15:24 <AnMaster> fizzie, I still haven't figured out why latex thinks there is an extra table there in the float numbering
21:17:06 <AnMaster> and now I seem to have two jumps(!?)
21:17:12 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
21:17:32 <AnMaster> ais523, hi btw
21:17:40 <AnMaster> and maybe you know what could cause that
21:17:54 <ais523> no, I don't
21:18:02 <AnMaster> figure float numbering okay. but table float numbering skips some numbers
21:18:09 <AnMaster> which ones depend on where I place the floats
21:18:23 <AnMaster> ais523, never had anything like that in LaTeX before?
21:18:56 -!- |MigoMipo| has joined.
21:19:01 -!- diofeher has joined.
21:19:10 <ais523> AnMaster: look, I've missed pretty much the whole day due to sleep problems, missed a deadline as a result, and am now trying to explain to my boss
21:19:15 <ais523> your problems aren't really my top priority ATM
21:19:21 <AnMaster> ais523, ouch
21:19:29 <AnMaster> I feel sorry for you
21:19:37 -!- Asztal has quit (Ping timeout: 240 seconds).
21:22:00 -!- MigoMipo has quit (Ping timeout: 264 seconds).
21:22:03 -!- Asztal has joined.
21:22:50 -!- BeholdMyGlory has joined.
21:34:48 -!- kar8nga has joined.
21:38:06 -!- BeholdMyGlory has quit (Remote host closed the connection).
21:39:06 -!- Azstal has joined.
21:39:24 -!- BeholdMyGlory has joined.
21:39:53 -!- Asztal has quit (Ping timeout: 260 seconds).
21:41:43 -!- Asztal has joined.
21:43:55 -!- Azstal has quit (Ping timeout: 246 seconds).
21:44:21 -!- sebbu2 has joined.
21:45:14 -!- sebbu has quit (Ping timeout: 260 seconds).
21:45:16 -!- sebbu2 has changed nick to sebbu.
21:45:17 -!- Azstal has joined.
21:46:01 -!- charlls has joined.
21:47:17 -!- Asztal has quit (Ping timeout: 276 seconds).
21:47:23 -!- Azstal has changed nick to Asztal.
21:51:14 -!- _MigoMipo_ has joined.
21:53:06 -!- |MigoMipo| has quit (Ping timeout: 252 seconds).
22:03:02 -!- _MigoMipo_ has quit (Quit: co'o rodo).
22:04:36 -!- kar8nga has quit (Remote host closed the connection).
22:12:53 -!- sebbu2 has joined.
22:13:06 -!- sebbu has quit (Ping timeout: 248 seconds).
22:13:23 -!- sebbu2 has changed nick to sebbu.
22:14:51 -!- diofeher has quit (Quit: goodnight).
22:15:00 -!- mixxx|adam_d has changed nick to adam_d.
22:40:54 -!- jcp has quit (Read error: Connection reset by peer).
22:41:19 -!- jcp1 has joined.
22:43:29 -!- nooga has joined.
22:51:02 -!- jcp1 has changed nick to jcp.
23:00:36 -!- tombom has quit (Quit: Leaving).
23:05:35 -!- adam_d has quit (Ping timeout: 240 seconds).
23:08:25 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:11:18 -!- coppro has joined.
23:16:07 -!- oerjan has joined.
23:19:16 -!- coppro has quit (Remote host closed the connection).
23:20:48 -!- FireFly has quit (Quit: Hey! Listen!).
23:24:17 -!- Gracenotes has joined.
23:26:37 <AnMaster> night
23:29:44 -!- coppro has joined.
23:39:06 -!- Gracenotes has quit (Ping timeout: 260 seconds).
23:45:15 -!- Azstal has joined.
23:47:32 -!- Asztal has quit (Ping timeout: 276 seconds).
23:47:39 -!- Azstal has changed nick to Asztal.
23:49:27 -!- charlls has quit (Quit: Saliendo).
23:50:20 * coppro is playing with a meldy
23:50:22 <coppro> *melody
23:50:56 <oerjan> a medley melody
23:52:04 -!- nooga has quit (Remote host closed the connection).
23:52:11 -!- nooga has joined.
23:52:26 <oerjan> oklopol: your natural printing program prints lines of .'s, right? while <>[puan] would actually print numbers instead iiuc?
23:53:41 -!- Gracenotes has joined.
23:53:59 -!- coppro has quit (Remote host closed the connection).
23:55:07 <oerjan> it seems like [A] is useless for passing results to the outside, and it's the only general looping construct. however a single loop can still be TC in some languages, so...
23:58:57 -!- coppro has joined.
2010-04-22
00:01:12 -!- coppro has quit (Remote host closed the connection).
00:01:56 -!- Gracenotes has quit (Quit: Leaving).
00:10:09 <oerjan> actually [A] seems useful if you want to set an unknown S to empty - [r] would do that i think
00:11:50 <oerjan> and i cannot see any way to achieve that without [ ]
00:12:32 <oklopol> i believe all of those are correct
00:12:42 <oklopol> p was actually added after writing the program
00:12:54 <oklopol> or at least i implemented it after trying the program
00:13:02 <oerjan> mhm
00:13:55 <oklopol> and yes [] can basically just make S empty, unless it's the last loop
00:14:22 <oklopol> plus it can do io and other things not relevant to computational class
00:14:44 <oerjan> u(A{B}r seems like the way to do if-then
00:14:53 <oklopol> i thought i could change the semantics of [] to something like {} and {E} ending a loop
00:15:30 <oerjan> you're not specifying how E works with the rest of the commands, anyway
00:15:32 <oklopol> but changes can be made once someone makes some sense out of what currently exists
00:15:38 <oklopol> yeah i'm not
00:15:45 <oklopol> it's just useful for err
00:16:48 <oklopol> i mean it's just another set, so -(!-<>{B} will do B for exactly the set {{}}
00:17:05 <oklopol> not sure that's very useful
00:17:30 <oklopol> you can't currently remove it, so it's a bit special that way
00:17:46 <oerjan> oh, i assumed you could remove it explicitly...
00:17:47 <oklopol> but i could just add -E, -!E etc
00:17:55 <oklopol> well there isn't a command for that is there
00:18:10 <oerjan> hm i guess not, if E is not included in the <<<>>> syntax
00:18:22 <oklopol> it's not. i guess it should be
00:18:32 <oklopol> in fact i should definitely add it
00:18:51 -!- uorygl has quit (Ping timeout: 252 seconds).
00:19:27 <oerjan> otoh it's still interesting to see what can be achieved without E
00:20:23 -!- uorygl has joined.
00:20:24 <oklopol> the reason i didn't start fixing the language was i could only see it's nontrivial to show it's TC, but couldn't see any reason why it couldn't be
00:21:15 <oklopol> if that needs fixing
00:23:01 <oklopol> {^n }^n might be better numbers than ordinals btw
00:23:14 <oklopol> i haven't actually given that any thought either
00:23:38 <oklopol> well i suppose ordinals are nice because you can map over a number to do something that many times... sort of
00:25:28 <oerjan> there needs to be a way to do some other datastructures though
00:26:03 <oklopol> sure, but i have a hunch it'd be easier to encode them in integers...
00:26:23 <oerjan> i'm not sure you can actually do arithmetic, however
00:26:36 <oklopol> that's very possible
00:26:53 <oerjan> at least without a surrounding [ ]
00:27:06 <oklopol> i've been trying to find the parity of a number
00:27:17 <oklopol> but that seems impossible
00:27:27 <oerjan> basically without a [ ] there is no way to inspect arbitrarily deep within a set, i think
00:28:20 <oklopol> well ({} goes one deep, so you'll just get finitely deep if you use those nested
00:28:21 <oerjan> you can use [r] to "cut it off" at any level, however
00:29:33 <oklopol> i'm not sure i see what you mean
00:29:43 <oklopol> or maybe i do
00:29:51 <oerjan> replacing elements at some depth with empty sets
00:29:55 <oklopol> yeah
00:30:59 <oklopol> anyway [r-Er] would check parity if you had {} and {E} end a loop
00:31:13 <oerjan> ah
00:31:35 <oerjan> um no
00:31:45 <oklopol> oh it wouldn't?
00:31:47 <oklopol> err hmm
00:31:53 <oerjan> r never errors
00:31:59 <oklopol> oh err lol right
00:32:15 <oklopol> but assuming ordinals, we could do...
00:32:19 <oerjan> [r-!<>r] perhaps?
00:32:32 <oklopol> let's see
00:33:11 <oklopol> so umm
00:33:23 <oklopol> the r's will get the number to 0 anyways
00:33:32 <oklopol> the error set doesn't matter for that
00:33:40 <oerjan> hm
00:33:42 <oklopol> so you get it iff the first r gets you to 0
00:33:51 <oerjan> try [rr-!<>]
00:34:07 <oklopol> that's the same because {E}r = {E}
00:34:16 <oklopol> if you get my notation
00:34:29 <oklopol> that's also not specified :P
00:34:43 <oerjan> well i meant the last doesn't need specification
00:34:56 <oklopol> yes true
00:35:11 <oklopol> okay so yeah cool that'd work
00:35:47 <oklopol> but sort of a hack, i could just add a set called blerror set to get mod 3...
00:36:14 <oklopol> i mean
00:36:27 <oklopol> consider some (A{B} where [] occurs in B
00:37:24 <oerjan> hm that's the same as mapping all elements matching A to a constant, essentially
00:37:36 <oklopol> then the code after [] will have one of two sets, so the (A{B} can result in at most 2 different sets that replace the sets B is run on
00:37:53 <oerjan> er right with E stuff
00:37:54 <oklopol> yeah but two constants if you add the E thing
00:38:02 <oklopol> i'm just wondering if that changes anything
00:38:41 <oklopol> you basically filter with A, plus you can do something extra with some extra condition on the elems of A
00:38:44 <oerjan> you get one bit of information from a [ ]
00:38:55 <oklopol> yes
00:39:42 <oklopol> one thing that'd probably change things a lot is the following construct which i was thinking (once i'm convinced this thing doesn't have potential)
00:39:50 <oklopol> err and it goes
00:40:35 <oklopol> /A|B\ is like (A{B} but each B is run on the context S, in any random order
00:41:26 <oerjan> um you need the information of what element it is run for somehow...
00:41:35 <oerjan> *about
00:41:37 <oklopol> oh umm
00:41:49 <oklopol> actually i think i dropped that idea when i realized that
00:41:52 <oklopol> but forgot i dropped it
00:41:55 <oklopol> :P
00:41:56 <oerjan> ah
00:42:24 <oklopol> but anyway, something like that would be nice, because right now you just of a broken loop and map + filters.
00:42:34 <oklopol> then you'd have a reduce
00:43:22 <oerjan> hm what about just having a general loop with test
00:43:33 <oerjan> so /A|B\ is like while (A) B
00:43:34 <oklopol> oh umm
00:43:44 <oklopol> that's not a bad idea...
00:43:54 <oklopol> let's tell everyone it was mine
00:44:02 <oerjan> except B doesn't see the result of A, obviously
00:44:04 <oerjan> :D
00:44:14 <oklopol> hmm
00:44:52 <oklopol> S has some state, then A is run, and iff it results in nonempty, B is run on S... is there a problem with B not seeing the result?
00:44:55 <oerjan> or rather, the effect of A is always reverted apart from testing
00:45:36 <oerjan> no, that's what i mean, but B is run on the original S, not the one after A
00:45:41 <oklopol> i was thinking A runs with S, then if empty, S is returned, otherwise B is run on S, S is updated, and we repeat
00:45:44 <oklopol> yeah
00:45:53 <oerjan> right
00:46:22 <oklopol> so now you could return any amt of info
00:46:24 <pikhq>
00:46:43 <oerjan>
00:48:20 <oklopol> actually ([] could replace [] if there isn't a problem with that thing
00:48:45 <oerjan> you call this ([] ?
00:48:52 <oklopol> i could, then
00:49:00 <oerjan> i think empty A would be equivalent to []
00:49:13 <oklopol> yes, so also literally ([A] could replace [A]
00:49:58 <oklopol> and maybe []) for do while ;P
00:50:14 <oerjan> except that syntax is ambiguous, because (..[]..{...} is already legal
00:50:34 <oklopol> well it's not ambiguous if you drop [] altogether
00:50:40 <oerjan> (or hard to parse)
00:50:47 <oerjan> true
00:51:41 <oklopol> so anyway let's see if parity is a piece of cake with that thing
00:51:42 <oerjan> ([] and []) still seems ambiguous together
00:52:29 <oerjan> (r[r]), isn't it?
00:52:35 <oerjan> er, (r[r]
00:52:55 <oklopol> umm
00:52:56 <oerjan> er
00:53:03 <oklopol> no not with those semantics
00:53:06 <oerjan> (r[rr]
00:53:08 <oklopol> because A's result is just ignored
00:53:51 <oerjan> or possibly (rr[rr], if there is a difference
00:53:51 <oklopol> so while(n>=2){n-=2}
00:54:03 * ais523 reads up on Toi on the wiki
00:54:09 <oklopol> looks correct to me
00:54:11 <ais523> for some reason I find it easier to follow there than IRC
00:54:26 <oklopol> well the article is exceptionally well written
00:54:44 <ais523> yes, I like it when esolang articles do that
00:54:51 <ais523> and try to aspire to the same quality with mine
00:54:55 <oerjan> one is while(n>=2) the other is while(n>=3)
00:55:04 <oklopol> i was actually joking, but glad if you like it :P
00:55:09 <oerjan> or is that while(n>=1)
00:55:24 <oklopol> i just copypasted a page of keymaker's and changed everything to toi stuff :P
00:55:35 <oklopol> oerjan: who knows...
00:55:39 <oklopol> okay err
00:56:16 <oklopol> the loop ends if A gives you an empty set, so rr ends if n is of depth less than 3
00:56:30 <oklopol> because r decrements depth
00:56:38 <oklopol> by exactly one
00:56:40 <oerjan> 3 -> r -> 2 -> r -> 1 -> 0
00:56:48 <oerjan> argh
00:56:51 <oerjan> 3 -> r -> 2 -> r -> 1 -> r -> 0
00:57:23 <oerjan> (r[rr] will not halt on 2, while (rr[rr] will
00:57:39 <oklopol> 'will not halt on 2'?
00:57:42 <oerjan> so (rr[rr] could give 2,1 or 0 as result
00:57:47 <oklopol> oih
00:57:48 <oklopol> oh
00:58:10 <oerjan> so (r[rr] seems "correct"
00:58:21 <oklopol> (rr[rr] ~ while(depth>2){depth-=2}
00:58:30 <oklopol> err
00:58:39 <oklopol> so yeah
00:58:44 -!- ais523 has quit (Remote host closed the connection).
00:58:55 <oklopol> 0->0, and otherwise parity with 1/2 as output
00:59:14 <oerjan> hm, since there is only one set <<>> of depth 1, it will always return an ordinal even for non-ordinal input
00:59:29 <oklopol> a nice way to think about it is the loop ends iff S's depth is 0, and r will always decrement depth by exactly one
00:59:44 <oerjan> this will not hold for higher moduli
00:59:49 <oklopol> true
01:00:28 <oklopol> okay so how about addition
01:00:32 <oklopol> :P
01:00:36 <oerjan> argh
01:00:47 <oklopol> we need a tuple...
01:00:56 <oerjan> yes
01:01:36 <oklopol> there are probably standard ways to store this stuff in sets
01:01:48 <oklopol> 'probably'
01:01:59 <oerjan> yes, (x,y) = {x,{x,y}} but i don't think that is useable here
01:02:10 <oerjan> um
01:02:25 <oerjan> or (x,y) = {{x},{x,y}}
01:02:27 <oklopol> yes, i just realized there are relatively well-known formalisms based on sets.
01:02:37 <oerjan> i think one of them requires foundation, the other not
01:03:04 <oklopol> foundation = set has finite depth or something?
01:03:16 <oklopol> err
01:03:38 <oerjan> but neither can be used for our purposes, because we cannot detect which is {x} and which is {x,y} easily
01:03:47 <oerjan> ordinal depth
01:04:00 <oerjan> no infinitely descending chains of elements
01:04:17 <oklopol> so... set has finite depth?
01:04:21 <oklopol> oh
01:04:21 <oerjan> of course we do have finite depth
01:04:38 <oerjan> um
01:04:47 <oerjan> that was not an answer to your question
01:04:51 <oklopol> yeah those aren't the same thing
01:04:53 <oklopol> i know
01:04:58 <oerjan> but a comment on toi specifically
01:05:02 <oklopol> yes
01:05:47 <oklopol> but what about {^n }^n, then we could do {<>^n, {<>^m, <>^(m+1)}} and use the size of the sets to see which one is m
01:06:00 <oklopol> <>^n = {^n }^n
01:06:13 <oerjan> we cannot detect the size of a set
01:06:15 <oklopol> *do something like
01:06:20 <oklopol> well... no
01:06:32 <oklopol> but i mean err
01:06:41 <oklopol> in A, we can check if <> is in S, i think
01:06:43 <oerjan> at least not directly enough, we might be able to _after_ we solve this problem
01:06:57 <oklopol> so we just need to decrement the set that has two elems, and increment the other
01:07:10 <oklopol> this would be done with foreach
01:07:19 <oklopol> OR NOT
01:07:29 <oerjan> i was hoping for a pair construction that could contain more than just numbers
01:07:36 <oerjan> so it could be repeated
01:07:58 <oklopol> that would be nice, sure.
01:08:37 <oerjan> my idea is something like (x,y) = {{a,{x}}, {b,{x}}} where a and b are sets chosen specifically so we _can_ test for them
01:08:47 <oerjan> er
01:09:05 <oerjan> {{a,{x}}, {b,{y}}}
01:09:11 <oklopol> before i go along, can we solve the problem of checking if <> is in S for fun
01:09:25 <oklopol> i mean i don't see how to
01:09:34 <oerjan> except we may need to put more {} around x and y to distinguish them from a and b easily
01:09:40 <oerjan> ok
01:09:56 <oklopol> -!<> gives us the error set iff it's there, but currently E has no special properties that actually make that helpful
01:10:10 <oerjan> yeah so try without E
01:10:24 <oerjan> first step: turn every element _other_ than <> into <<>>
01:10:32 <oerjan> i think we can do that
01:11:07 <oklopol> ([([r]<>]
01:11:19 <oklopol> for every element: change to <>
01:11:21 <oklopol> ?
01:11:31 <oerjan> um you want { not [ somewhere there
01:11:40 <oklopol> oh whoops
01:11:46 <oklopol> ({([r]<>}
01:11:57 <oklopol> i love the unnested parens <3
01:12:40 <oerjan> um i think you miss one [
01:12:41 <oklopol> or umm am i confusing levels of depth there
01:12:54 <oerjan> also <> could be u instead
01:13:04 <oerjan> but i think both work
01:13:31 <oerjan> er wait
01:13:39 <oerjan> scratch that
01:13:51 <oklopol> if you run ([r] for some set, it will be emptied
01:13:58 <oerjan> ok i now official hate the unnested parend ;D
01:14:02 <oerjan> *ly
01:14:05 <oerjan> *parens
01:14:15 <oklopol> so ({ ([r] } gives you <<>> for all except <>
01:14:21 <oklopol> because it empties every element
01:14:23 <oklopol> of your set
01:14:38 <oklopol> hate is such a strong word
01:14:41 <oerjan> right
01:14:57 <oklopol> okay so now it should be trivial
01:15:01 <oklopol> we just remove <<>> first
01:15:03 <oklopol> -<<>>
01:15:08 <oklopol> and then we check for <>
01:15:13 <oklopol> with say -!<>
01:15:25 <oerjan> no, we don't want to use E :(
01:15:45 <oklopol> well that's what it's meant for, so ! makes sense
01:15:48 <oklopol> but hmm
01:16:02 <oklopol> i guess
01:16:03 <oklopol> there could be
01:16:05 <oklopol> <>
01:16:09 <oklopol> and -<>
01:16:12 <oklopol> and TOGGLE <>
01:16:17 <oklopol> that would serve the same purpose
01:16:19 <oklopol> maybe
01:16:30 <oerjan> i don't think we need that
01:16:36 <oklopol> ...which makes me realize we don't need to do *anything*
01:16:48 <oklopol> whether <> is there or not already makes A either say yes or no
01:17:12 <oklopol> so ({([r]}-<<>> should check for <>
01:17:15 <oerjan> i think you did miss one level of depth above, btw
01:17:53 <oklopol> it empties if <> is not in S, so we'd need to converse
01:17:55 <oklopol> i did?
01:18:02 <oklopol> in ({([r]}?
01:18:15 <oerjan> we are trying to check whether S _contains_ <>, not whether it _is_ <>
01:18:22 <oklopol> sure
01:18:43 <oklopol> ({([r]} maps ([r] over each element of S, so it turns every element of S to <>
01:18:43 <oerjan> that one changes every element of S to <>
01:18:55 <oklopol> which means if S is empty, then nothing happens, otherwise we get <<>>
01:18:56 <oklopol> oh
01:19:16 <oerjan> so what want to do is to apply that to every element of S
01:19:18 <oerjan> *we
01:19:43 <oerjan> ({({([r]}}
01:19:50 <oklopol> hehe
01:20:15 <oklopol> so ({({([r]}}-<<>>
01:20:19 <oerjan> yep
01:20:28 <oklopol> but...
01:20:31 <oerjan> and now we are left with either <> or <<>> as S itself
01:20:34 <oklopol> that's the negation of what we need
01:21:08 <oklopol> i mean i could add -([] tho, would fit the pattern
01:21:23 <oerjan> it shouldn't be hard to do a not though
01:21:51 <oklopol> okay so {<>} => {}, {} => {<>}
01:22:33 <oerjan> u({([r]}r
01:22:46 <oerjan> er wait
01:23:28 <oklopol> that's S => {S} => {<>} => {}, i think
01:23:49 <oerjan> u(-{([r]}r but not quite either
01:24:18 <oerjan> hm
01:24:21 <oklopol> (-{ is -({ ?
01:24:30 <oerjan> u(-{([r]u}rr maybe?
01:24:40 <oerjan> er right
01:24:47 <oerjan> u-({([r]u}rr
01:26:07 <oerjan> er
01:26:12 <oklopol> u-({([r]u}rr is... <> => <<>> => <<>> => <> => <> i think
01:26:27 <oerjan> u-({([r]uu}rr
01:26:30 <oklopol> -({} is for each nonempty
01:26:45 <oerjan> no, for each empty
01:26:49 <oklopol> argh yes
01:27:20 <oerjan> um wait
01:27:28 <oerjan> the [r] is redundant
01:27:28 <oklopol> <>, <<>>, <<<<>>>>, <<>>
01:27:32 <oklopol> yes
01:27:38 <oklopol> for each empty, and then you empty
01:27:42 <oerjan> *([r]
01:27:49 <oklopol> <<>>, <<<>>>, <>
01:27:54 <oklopol> nice
01:28:07 <oerjan> does this work now? :D
01:28:12 <oklopol> yes
01:28:14 <oklopol> i think so
01:28:18 <oerjan> u-({uu}rr
01:28:50 <oklopol> u-({uu}rr... inc depth, then if depth is exactly 2, inc depth by 2, dec depth by 2
01:29:07 <oklopol> so 1, 2, 4, 2
01:29:08 <oerjan> *exactly 1
01:29:09 -!- augur has joined.
01:29:17 <oklopol> 2, 3, 1
01:29:33 <oklopol> right i meant <> having depth 1
01:29:49 <oerjan> 0 is the usual i think
01:29:55 <oklopol> let's go with that
01:29:58 <oerjan> means ordinal has its own depth
01:30:03 <oklopol> right
01:30:33 <oklopol> so okay maybe back to the actual problem?
01:30:58 <oerjan> well if we append that not to what we had, we can test for element <>
01:30:59 <oklopol> or i'll collect the algo first
01:31:17 <oklopol> ({({([r]}} -<<>> u-({uu}rr
01:31:47 <oklopol> checks if <> is in S
01:31:55 <oerjan> although i have a hunch we might combine it more somehow
01:32:29 <oklopol> probably
01:34:06 <oklopol> so about this {{a,{x}}, {b,{y}}} you mentioned
01:34:19 <oerjan> ({([r]} is the equivalent of >0 in C it seems
01:34:28 <oklopol> umm
01:34:48 <oerjan> (as an anything -> 0,1 function)
01:35:12 -!- Tritonio_GR has joined.
01:35:24 -!- oklofok has joined.
01:35:52 <oerjan> 02:33 oerjan> ({([r]} is the equivalent of >0 in C it seems
01:35:52 <oerjan> 02:34 oklopol> umm
01:35:52 <oerjan> 02:34 oerjan> (as an anything -> 0,1 function)
01:35:59 <oklofok> damn
01:36:06 <oklofok> you missed my yes before you explained it
01:36:16 <oerjan> what yes
01:36:20 <oklofok> i said
01:36:20 <oklofok> umm
01:36:21 <oklofok> ys
01:36:24 <oklofok> *yes
01:36:27 <oerjan> heh
01:36:55 <oklofok> but yeah anyway are you sure you need to optimize that thing before we have a use for it?
01:37:20 <oerjan> er i'm not optimizing, just pointing out what that subroutine is
01:37:26 <oklofok> rrrright okay
01:38:05 <oklofok> i meant "<oerjan> although i have a hunch we might combine it more somehow", see it's starting to look like there's something to this thing, so tuples would be cooool.
01:39:08 -!- oklopol has quit (Ping timeout: 258 seconds).
01:39:15 <oerjan> let's say we make a = <>, b = <<>>, and add an extra {} around x and y so they are clearly of greater depth than either
01:39:40 <oerjan> then i think we should have a fighting chance of extracting x and y from it
01:40:55 <oklofok> so let's see, first of all is the idea {{<>, {x}},{<<>>, {y}}} and then ( end if x is zero [ decrement x, increment y ]
01:41:15 <oerjan> an _extra_ {} to x and y
01:41:24 <oklofok> so
01:41:39 <oklofok> {{<>, {{x}}}, {<<>>, {{y}}}}
01:41:48 <oerjan> yeah
01:42:06 <oklofok> okay actually this doesn't look all that hard
01:42:16 <oklofok> but let's see if the details are hard...
01:42:59 <oerjan> or wait
01:43:08 <oklofok> to decrement x, ( "check if contains <>" { rr and then you have x here }
01:43:25 <oerjan> {{<>, {{x}}}, {{y}}} might be enough
01:43:53 <oerjan> we don't need that <<>>, we can just reverse the test
01:44:09 <oerjan> erm
01:44:16 <oerjan> {{<>, {x}}, {{y}}} might be enough
01:44:31 <oerjan> (without <<>> that extra depth is one more than we need)
01:44:38 <oklofok> so to decrement x, how about ( "contains <>" { rr <> u }
01:45:02 <oerjan> sounds reasonable
01:45:39 <oklofok> so only {<>, {{x}}} triggers it and then it goes => {{x}} => {x} => {<>, x} => {{<>, x}}
01:45:40 <oklofok> so almost'
01:45:59 <oklofok> err
01:46:58 <oklofok> {<>, {{x}}} => r => {{x}} => <> => {<>, {x}}
01:47:12 <oklofok> where every second is an instruction
01:47:20 <oerjan> yeah
01:47:26 <oklofok> so to decrement x, ( "contains <>" { r <> }
01:47:58 <oklofok> inc y = ( "ain't contains <>" { u }??
01:48:01 <oklofok> can it be that easy
01:48:13 <oerjan> um
01:48:33 <oerjan> only if we use {{{{{...}}}} for numbers
01:48:40 <oklofok> oh right
01:48:44 <oerjan> but then yes
01:48:59 <oklofok> otherwise ua is succ, but you need to rr out the y first
01:49:09 <oerjan> yeah
01:49:38 <oerjan> anyway we are optimizing here using ur = nop
01:49:55 <oerjan> let's do an _arbitrary_ A on each
01:50:09 -!- augur has quit (Ping timeout: 252 seconds).
01:50:22 <oklofok> ah
01:50:53 <oerjan> for x, "contains <>" { rrr A uu <> }
01:51:14 <oklofok> the whole thing for this special case would be ( "remove sets not containing <>" "get x out" "check length" [ ( "contains <>" { r <> } ( "ain't contains <>" { u } ]
01:51:17 <oklofok> ?
01:51:35 <oerjan> erm what
01:51:51 <oklofok> well i just tried to get the addition algo out
01:52:15 <oklofok> the condition removes y, then gets x out of its tuple, and checks its length
01:52:24 <oklofok> all of which i believe we can do
01:52:57 <nooga> what is that?
01:53:08 <oklofok> *out of its set
01:53:13 <oklofok> well it's sort of a tuple
01:53:21 <oerjan> you mean for calculating (x,y) -> x+y ?
01:53:24 <oklofok> yes
01:53:44 <oklofok> then we'd have the result in y
01:53:52 <oklofok> nooga: <toi
01:53:55 <oklofok> *Toi
01:54:43 <oerjan> hm sounds reasonable
01:56:41 <oklofok> "remove sets not containing <>" = say -( "contains <>" {([r]} -<<>>
01:56:53 <oklofok> if it doesn't contain <>, then we make all its elements <>
01:56:54 <oklofok> err
01:57:15 <oklofok> not perfect but anyway it's clearly possible, i'm currently convinced anything trivial can be done
01:57:48 <oklofok> maybe if you add -<> it works
01:57:55 <oerjan> food ->
01:58:55 <oklofok> i fear ([] is not a one line parser change because of ({}... :<
01:59:25 <oklofok> maybe )[]!
01:59:28 <oklofok> :D
01:59:47 <oklofok> (A {B} C) [D]
02:00:09 -!- Asztal has quit (Ping timeout: 264 seconds).
02:00:19 <oklofok> i actually originally considered -- behold -- <{} for for each :D
02:02:41 <oklofok> ( "contains <>" { rrr A uu <> } runs X on {x} to get {y}, then uu => {{{y}}} => <> => {<>, {{y}}}
02:02:59 <oklofok> my other computer just bluescreened
02:03:06 <oklofok> i should probably consider doing some backups soon
02:04:03 -!- olsner has quit (Ping timeout: 258 seconds).
02:11:05 <oerjan> i am thinking this is probably TC now, even without the ([] extension
02:11:21 <oerjan> (we didn't actually use it for manipulating the pairs afaict
02:11:27 <oerjan> )
02:12:12 <oerjan> well it was used for the addition
02:12:19 <oklofok> without what extension?
02:12:35 <oerjan> (A[B] rather than just [B]
02:13:19 <oerjan> but we don't need addition for say a minsky machine, dec/inc is sufficient
02:13:29 <oerjan> and a minsky machine is just one large loop
02:14:05 <oklofok> so what's the rules exactly
02:14:36 <oklofok> finite amt of integers, and you have a finite amount of repeated rules like dec this inc this inc this if this is zero
02:15:20 <oerjan> it's a transition table of states like for a TM, technically
02:15:40 <oerjan> each transition a rule like you say
02:15:55 <oklofok> hmm alright
02:16:01 <oerjan> and two integers are enough, plus the state
02:16:17 <oklofok> the loop might be nice anyway
02:16:43 <oerjan> http://esoteric.voxelperfect.net/wiki/Minsky_machine
02:17:06 <oerjan> yeah if we want to do anything "practical"
02:17:21 <oerjan> and a loop would probably allow a more direct compilation of brainfuck into it
02:17:55 -!- olsner has joined.
02:17:58 <oklofok> yes
02:18:01 <oklofok> that'd be sweet
02:18:30 <oerjan> well ignoring IO as at present
02:18:49 <oklofok> i thought i'd add the optimization to the interp that every set ever used is actually cached, this will make ordinals usable
02:19:19 <oklofok> like you just have any given set in one place
02:19:25 <oerjan> ah
02:19:32 <oerjan> hash consing
02:20:50 <oklofok> i... think so
02:21:32 <oklofok> anyway for IO do you have better ideas? i don't really like p
02:22:36 <oerjan> bf-complete IO more or less requires byte representations
02:23:07 <oerjan> for binary IO
02:24:54 <oklofok> for hello world, you'd need 64 which requires a million universes to represent as an ordinal
02:25:19 <oklofok> errr 64?
02:25:53 <oklofok> anyway
02:26:02 <oerjan> O_o
02:26:50 <oerjan> hm without sharing you mean...
02:26:50 -!- augur has joined.
02:28:07 <oklofok> yes
02:28:26 <oklofok> redheads or brunettes
02:29:56 <oerjan> !haskell let sizes = scanl (+) 2 sizes in take 10 sizes
02:30:00 <nooga> he
02:30:09 <oklofok> ?
02:30:24 <oerjan> now what
02:30:25 <EgoBot> [2,4,8,16,32,64,128,256,512,1024]
02:30:29 <nooga> i was looking for a good optical raytracer that wouldn't cost $$$$$$$$$$$$$$$$$$$$$
02:30:35 <oerjan> ah just powers of 2
02:30:48 <nooga> and i realised that my only option is to write one
02:30:58 <oklofok> nooga: i could whip you one up in toi
02:31:13 <nooga> toi?
02:31:27 <oerjan> oklofok: 2^65 isn't _that_ big ;D
02:32:02 <oklofok> 2^65!
02:32:05 <oklofok> *?
02:32:10 <oklofok> i thought it'd be more like factorial
02:32:13 <oerjan> hm well H is 64+8 so 73
02:32:29 <oerjan> nah it seems it's powers of 2
02:32:40 <oklofok> huh.
02:32:41 <oerjan> <> <<>> <<><<>>> etc.
02:32:51 <nooga> what's toi?
02:32:59 <oklofok> nooga: the language
02:33:10 <nooga> which?
02:33:21 <oklofok> the one called toi!
02:33:25 <pikhq> All of them.
02:33:56 -!- olsner has quit (Ping timeout: 276 seconds).
02:34:15 <oerjan> nooga: oklofok is just joking, or possibly insane
02:34:30 <nooga> yea, i've noticed :D
02:34:34 <oerjan> (given what i've seen of toi so far)
02:34:49 <nooga> but i'm just curious about that toi
02:35:42 <oerjan> http://esoteric.voxelperfect.net/wiki/Toi
02:36:07 <oerjan> except the [A] command seems destined to be replaced with a more flexible (A[B] command
02:36:37 <oerjan> basically it's a language with finite sets
02:37:55 <nooga> lol
02:38:59 <oerjan> we suspect it is turing complete
02:43:25 <oerjan> (we can encode a pair of sets as <<<><x>><<y>>>, giving basic data structures to work with)
02:44:29 <Mathnerd314> just encode some other turing-complete language in it
02:45:00 <oklofok> we actually thought of that already
02:48:08 -!- olsner has joined.
02:48:55 <oklofok> okay so
02:49:31 <oklofok> oerjan: ([] and -([] or just ([]?
02:49:46 <oklofok> if we don't have -([] then -({} feels impure
02:49:59 <oklofok> hmm
02:50:01 <oerjan> -([] is probably convenient
02:50:54 <oerjan> and it fits with the rest
02:51:13 <oklofok> i'll add it, it's convenient and it's basically impossible it'd be TC with it and not TC without it.
02:51:25 <oklofok> yes
02:51:40 <oerjan> given that we already _know_ how to do a not, indeed
02:51:41 <oklofok> the interpreter change will have to wait till weekend because of my exam
02:51:47 <oklofok> well yes
02:53:33 -!- Mathnerd314 has set topic: #esoteric, the international hub for esoteric programming language design and deployment - #esoteric is not associated with the joke language Perl, please visit www.perl.org - logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
02:54:08 <pikhq> :)
02:54:39 <oklofok> should i just completely drop the error set?
02:54:46 <oklofok> doesn't really seem useful anymore
02:54:55 <oerjan> oklofok: actually we used -({} to construct not, so the same cannot be said for that one
02:55:15 <oklofok> yes, i did notice that
02:55:25 <Mathnerd314> oklofok: well, you haven't defined anything special for how the error set behaves
02:55:37 <oklofok> indeed i haven't
02:55:50 <oerjan> it's sort of a wart
02:55:53 <oklofok> i was going for the toggle behavior.
02:56:13 <oklofok> that you could remove <> or add it depending on whether it's there
02:56:18 <oklofok> or any other set
02:56:36 <oklofok> because that made it easy to check for some specific set
02:56:40 <oerjan> well it may still be awkward to test for sets other than <>
02:57:08 <oklofok> we should probably look into that
02:57:15 <oklofok> but i'll remove the error set for now
02:57:25 <oklofok> err
02:57:30 <oklofok> *for good
02:57:31 <oklofok> <.p
02:57:34 <oklofok> :P
02:57:59 <oerjan> down with evil errors!
02:59:28 <oklofok> http://esoteric.voxelperfect.net/wiki/Toi
02:59:39 <oklofok> the error set has been removed... sort of
03:00:07 <Mathnerd314> what happened to []?
03:00:17 <oklofok> it's been changed for convenience
03:00:22 <Mathnerd314> your example is no longer valid...
03:00:25 <oklofok> because addition was implemented with the new version
03:00:28 <oklofok> ah, true, thanks
03:00:59 <oklofok> fixd
03:01:01 <oklofok> i think
03:01:16 <oerjan> subtle, oklofok
03:01:52 <Mathnerd314> now I'm not following... ([ runs with the empty set?
03:02:06 <oklofok> okay i admit the explanation wasn't very good
03:02:07 <oerjan> Mathnerd314: basically the old [] could not be used to get much of any information _out_ of the loop
03:02:32 <oerjan> so it was hard to use it nested for anything other than clearing S
03:03:16 <oklofok> yes, so the conversation of ours invented a way to get something out of it
03:03:21 <oerjan> Mathnerd314: <> doesn't make S the empty set, it _adds_ the empty set as an element
03:03:35 <oerjan> (it is empty at the start)
03:03:42 <oklofok> oh was he confused about the example
03:03:55 <Mathnerd314> then why does <<>> add the set {{}}?
03:04:05 <oerjan> as an element, yes
03:04:22 <oklofok> <<>> adds {{}} to S, <> adds {} to S
03:04:37 <Mathnerd314> So, S={}, running <<>> gives S={{{}}}?
03:04:42 <oerjan> yeah
03:04:43 <oklofok> yes
03:04:49 <Mathnerd314> and S={}, running <> gives S={{}}
03:04:53 <oklofok> yes
03:04:55 <Mathnerd314> ok
03:05:19 <oklofok> oerjan: did we use all of rua up there btw?
03:05:25 <oklofok> are they all actually necessary
03:05:31 <oerjan> i don't think a is
03:05:35 <oklofok> i just took three random operations that seemed pretty
03:06:03 <oerjan> it's only necessary if you want to use von neumann ordinals
03:06:04 <Mathnerd314> oklofok == oklopol?
03:06:12 <oklofok> i'm oklo
03:06:15 <oklofok> yes
03:06:23 <oklofok> hmm right
03:06:46 <oklofok> it was actually a coincidence rua was exactly the successor and the precursor or whateversor
03:07:02 <oklofok> because i hadn't even thought of von neumanns at that point
03:07:04 <oerjan> oh
03:07:16 <oklofok> they just really were pretty operations.
03:07:31 <oerjan> there's one thing about a though - it's the only thing which copies information
03:07:43 <oerjan> but i'm not sure it does so in a useful way
03:08:13 <oklofok> like say you have x
03:08:18 <oklofok> and you want the tuple (x, x)
03:08:23 <oklofok> is that possible
03:08:39 <oerjan> i'm not sure and actually doubt it
03:08:41 <oklofok> hmm
03:08:46 <Mathnerd314> so, in Von Neumann, 0=<>, 1=<0>, 2=<0,1>, 3=<0,1,2>, etc.?
03:08:52 <oerjan> Mathnerd314: yes
03:09:22 <Mathnerd314> you might, instead of e, just have 0 1 2 etc.
03:09:37 <oklofok> i considered that
03:09:37 -!- olsner has quit (Read error: Operation timed out).
03:09:52 <Mathnerd314> or just remove e
03:10:07 <Mathnerd314> (since by definition it's just <>)
03:10:12 <oklofok> it's just a shorthand that accompanied the error set for fun.
03:10:19 <oklofok> eEeEEe
03:10:21 <oklofok> anyway
03:10:23 <oerjan> i think we actually forgot we had e in the above discussion
03:10:25 <oklofok> yes, it's useless
03:10:28 <oklofok> yeah
03:11:09 <Mathnerd314> maybe define error set = <error set> ?
03:11:18 <oerjan> heh
03:11:43 <oerjan> that would make ([r] an infinite loop, though
03:12:18 <Mathnerd314> that's the point of turing-completeness :-)
03:12:27 <oerjan> although we could do ([-Er] instead
03:12:42 <oerjan> (assuming E was made set notation)
03:13:04 <oerjan> Mathnerd314: not particularly, it's a trivial loop
03:13:18 <oerjan> turing-completeness requires undetectable ones
03:13:28 <Mathnerd314> ok, see you later
03:13:39 <oklofok> x >> u >> {x} >> <> >> {x} <> >> u >> {x <>} >> a >> {x <>} x <> >> -<> >> {x <>}, x >> u >> {{x <>} x}
03:13:59 <oerjan> bye Mathnerd314
03:14:17 <oklofok> so doesn't that get you from x to the tuple (x, x)
03:14:24 <oklofok> given some extra wrapping in the beginning
03:14:28 <oerjan> wait what
03:14:38 <oklofok> notation may be a bit confusing
03:14:41 <oklofok> at least
03:14:59 <oerjan> you mean wrong ;D
03:15:19 <oklofok> i don't think so, but do explain
03:15:27 <oklofok> x means S = {x}
03:15:37 <oklofok> every second is S, every second is an operation
03:15:47 <oerjan> oh well
03:16:16 <oklofok> i believe that works
03:16:36 -!- nooga has quit (Ping timeout: 264 seconds).
03:16:39 <oklofok> you should too
03:16:49 <oklofok> please believe :<
03:17:03 <oerjan> if i can wrap my head around that {x <>} >> a >> {x <>} x
03:17:08 <oklofok> oh and bye mathnerd
03:17:22 <oklofok> there's a <> in the end
03:17:28 <oklofok> {x <>} >> a >> {x <>} x <>
03:17:32 <oerjan> oh
03:17:53 <oklofok> >> is not the best notation maybe.
03:18:18 <oerjan> that's not the hard part
03:18:25 <oklofok> oh than what is
03:18:40 <oerjan> your weird set notation with contatenation
03:18:41 <oklofok> *then
03:18:49 <oerjan> let me untranslate it
03:18:55 <oklofok> i just drop <> around S...
03:19:37 <oerjan> {{x,{}}} >> a >> {{x,{}},x,{}}
03:19:43 <oklofok> yes
03:19:49 <oerjan> ok it seems correct there
03:19:50 -!- MizardX has quit (Ping timeout: 260 seconds).
03:20:00 <oklofok> my notation was prettier :)
03:20:40 <oerjan> heh
03:20:50 <oklofok> i just realized by accident that changing [] to ([] might actually make my parser *shorter*
03:20:58 <oklofok> i
03:21:06 <oklofok> i'm still not gonna do it now but anyway
03:21:44 <oerjan> ?
03:21:51 <oklofok> nevermind that
03:22:17 <oklofok> actually
03:22:41 <oklofok> having {} around S is nice because you can't confuse S with instructions
03:22:42 <oerjan> ok i believe you can get (x,x) that way
03:22:47 <oklofok> thanx
03:22:58 <oklofok> if you use {} for S and <> for instrs
03:22:59 <oerjan> although some wrapping care is needed
03:23:09 <oerjan> as you said
03:23:24 <augur> yeah!
03:23:27 <augur> we got chris barker!
03:25:20 -!- olsner has joined.
03:29:09 -!- coppro has joined.
03:31:40 <oklofok> augur: i'm happy for you people
03:31:59 <augur> you should be!
03:32:03 <augur> semanticist AND esolanger!
03:32:08 <augur> right here are our university!
03:32:48 <oklofok> a guy at uni is an esolanger as well
03:32:57 <oklofok> sort of
03:34:16 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
03:37:10 <augur> yes well
03:37:13 <augur> barker invented Iota
03:37:15 <augur> and is a prof
03:37:16 <augur> so
03:37:41 <oklofok> he invented the combinator itself?
03:41:30 <Mathnerd314> oklofok: idea: add variables/functions to the language with =
03:41:44 <oklofok> no!
03:41:52 <Mathnerd314> like e=<>
03:41:54 <oklofok> the whole idea is that you can only do stuff to the global set S
03:42:10 <oklofok> well how exactly?
03:42:27 <Mathnerd314> well, it's just textual substitution
03:43:23 <oklofok> the whole beauty is the you can't access any individual object directly, you can just do an operation on all objects individually
03:43:46 <oklofok> well if it's done in such a way that it's convenient but essentially useless, then i might consider it
03:44:02 <oklofok> like numbers would be
03:44:13 <Mathnerd314> yeah; that's all I'm thinking of
03:44:31 <oklofok> if you can actually use letters as storage, sort of as another S, then noo
03:45:05 <Mathnerd314> maybe it's more like program-abbreviation
03:45:43 <Mathnerd314> but yeah, shouldn't change anything about turing-completeness or whatever
03:46:39 <oklofok> hmm umm i'm not convinced
03:46:50 <Mathnerd314> I'm guessing you should be able to define some of r, a, or u in terms of the others
03:47:21 <oklofok> with or without loops?
03:47:45 <Mathnerd314> with loops
03:47:51 <oklofok> then i believe oyu
03:47:53 <oklofok> *you
03:48:01 <Mathnerd314> your language has no meaning for <r>, right?
03:48:08 <oklofok> nnope
03:48:56 <Mathnerd314> that - is weird, then
03:49:15 <Mathnerd314> no real semantics
03:49:26 <oklofok> huh?
03:49:28 <Mathnerd314> pay no attention to me ;-)
03:49:30 <oklofok> - what
03:49:57 <oklofok> well i'll pay no attention to that last suggestion
03:50:03 <oklofok> compromise
03:50:38 <Mathnerd314> as an example: tuple=u<>ua-<>u
03:50:47 <Mathnerd314> you can write <> tuple
03:51:00 -!- coppro has quit (Remote host closed the connection).
03:51:23 <oklofok> oh you meant subroutines
03:51:31 <Mathnerd314> well, they aren't
03:51:57 <oklofok> well macros whatever, what i meant is oh not variables that contain sets
03:51:57 <Mathnerd314> because you just run it as <> u<>ua-<>u
03:52:07 <Mathnerd314> well, they do contain sets
03:52:14 <oklofok> but variables that contain programs
03:52:20 <Mathnerd314> like foo=<<<<>>>>
03:52:30 <oklofok> they can contain sets if they can contain programs, yes
03:52:38 <Mathnerd314> but yeah, it's not a real set, it's a program meaning "add this set to S"
03:53:09 <oklofok> that sounds like a better idea than having variables that contain sets.
03:53:10 <oklofok> but
03:53:43 <oklofok> this is always a bit of a subtle issue
03:53:50 <oklofok> macros make the language less pure
03:53:53 <oklofok> but programs nicer
03:54:14 <oklofok> the thing is you could easily just have the macros from some other preprocessor
03:54:51 <oklofok> but then you could only actually show the obfuscated substituted in programs as toi programs, because the macros aren't part of the lang
03:55:17 <Mathnerd314> yeah, it's a definite choice
03:55:19 <oklofok> i'll probably not add macros, and someone can make a derivative with macros WHEN it becomes popular.
03:55:26 <Mathnerd314> heh :-)
04:00:48 <oerjan> !
04:01:21 <oklofok> i should put clue on the wiki too given all this ATTENTION. except there's no mystery in clue so at least oerjan won't be interested
04:01:52 <oerjan> indeed, completely obvious
04:02:52 <oerjan> u-<<>>r
04:03:02 <oerjan> not without -({}
04:03:22 <oerjan> oh wait
04:03:26 <oerjan> u-<<>>
04:04:26 <oklofok> what are you doing
04:04:41 <oerjan> writing not...
04:05:03 <oerjan> to show that -({} is actually redundant
04:05:49 <oerjan> now more generally
04:07:02 <oerjan> u({([r]<>}-<<>>
04:07:44 <oklofok> u({...} ~ ...u?
04:08:08 <oerjan> no
04:08:21 -!- Gracenotes has joined.
04:08:24 <oerjan> ({...} runs on non-empty elements
04:08:38 <oklofok> right, we did this already
04:08:44 <oklofok> i don't learn that fast.
04:09:42 <oerjan> it turns every non-empty element into <<>>, so they can be removed
04:09:45 <oklofok> but yeah i think that's a correct not
04:11:11 <oklofok> S => {S} => {{{}}} => {} if S was nonempty
04:17:26 <bsmntbombdood> your FACE is nonempty
04:17:40 <oklofok> xDSSA
04:18:24 <oklofok> that's one reverse-ass smiley
04:21:02 <oerjan> stop mooning bsmntbombdood, oklofok
04:21:52 -!- bsmntbombdood has quit (Ping timeout: 246 seconds).
04:27:40 -!- Oranjer has left (?).
04:47:22 -!- zzo38 has joined.
04:47:36 -!- Gracenotes has quit (Read error: Connection reset by peer).
04:48:50 <zzo38> I have idea more to add to GCC __builtin_ functions/commands, including:
04:49:04 <zzo38> (all starting with __builtin_ prefix (or a different prefix))
04:49:25 <zzo38> _fastest { code } else { code } optimizer selects faster code.
04:49:36 <zzo38> _smallest same as _fastest but selects smallest code.
04:49:48 <zzo38> _assume(expr) makes optimizer assume expr is true even if it isn't.
04:49:56 <pikhq> Optimizer does not know what's fastest.
04:50:31 <oklofok> but maybe it could compile into a program that runs both and returns the result of the one that ran faster
04:50:53 <zzo38> pikhq: No, it would guess what's fastest
04:51:04 <pikhq> Yeah, that's feasible if it's possible to run the relevant snippets independently.
04:51:06 <zzo38> But either way, _smallest would still work
04:51:21 <pikhq> Yeah, _smallest is pretty easy.
04:51:26 <pikhq> Compile both, compare code size.
04:52:30 -!- coppro has joined.
04:52:35 <zzo38> And if you wrote, _assume(x==5); x+=1; then, it would compile x=6; instead if and only if x=6; is considered better in the current optimizer mode.
04:54:29 <zzo38> I don't know how well that would work, or if you would instead need multiple kind of _assume commands such as _assume_equal and so on.
04:54:45 <pikhq> _assume would work pretty well.
04:54:58 -!- Gracenotes has joined.
04:55:11 <pikhq> The optimisers already have a bunch of assumptions that they do that sort of thing with.
04:55:35 <pikhq> For instance, GCC assumes that a pointer cannot be NULL if it was previously dereferenced.
04:55:50 <zzo38> You can write: __builtin_assume(x==5); y=__builtin_constant_p(x); y will now be 1 if the optimizer is turned on.
04:59:03 <zzo38> Also a way to remove assumptions, with codes such as: __builtin_fake { p=__builtin_anything(); }
04:59:34 <zzo38> And now it will get rid of assumptions about "p" because it now assumes p could be anything.
05:01:19 <Sgeo> pikhq, wasn't there a security hole related to that?
05:03:49 <pikhq> Sgeo: In Linux.
05:03:54 <pikhq> Where that assumption is false.
05:03:56 <zzo38> What security hole do you mean? Probably it might be possible that there is such security holes. But I would like to know what security hole
05:04:15 <Sgeo> How did that assumption manage to be false?
05:04:35 <pikhq> Sgeo: In kernel-space, NULL might be a valid address.
05:04:42 <pikhq> Meaning that it is entirely valid to dereference it.
05:04:47 <Sgeo> Ah
05:05:09 <pikhq> (this is actually true in user-space with mmap, but *you will be shot* for doing so.)
05:05:36 <oerjan> linux execution squad
05:05:57 <Sgeo> Going to go eat now
05:06:56 <zzo38> Yes, of course it very well could be a valid address, but if that is the case you would probably not use functions such as strlen() with it, anyways. You might do *(char*)0=0xFE;
05:08:54 <pikhq> The exploit resulted from mmaping some space at NULL, then passing it to a system call that had a minor bug that *could* cause it to jump to arbitrary space.
05:09:37 <Sgeo> mmap?
05:09:38 <zzo38> Also, how do you figure out what the numeric type of a same size as a pointer address is?
05:09:42 <pikhq> *Normally*, it could only cause a jump into other bits of kernel space, but because a NULL check was being ignored, it managed to instead jump into a bit of user space.
05:09:52 <pikhq> zzo38: uintptr_t
05:10:00 <zzo38> pikhq: OK
05:10:17 <pikhq> Sgeo: mmap is a slightly odd and very flexible system call.
05:10:38 <pikhq> It allows you to lazily allocate memory, map a file into memory, and do a few other oddball things.
05:10:47 <zzo38> pikhq: Perhaps that is why you need to have such a command as __builtin_fake { p=__builtin_anything(); } so that you can stop ignoring such checks even in optimizer mode
05:10:47 <pikhq> You can request an address for it to map to.
05:11:08 <pikhq> zzo38: Command line option, actually.
05:11:14 <pikhq> Linux now builds with it.
05:12:09 <coppro> mmap is awesome
05:12:16 <zzo38> But what if you want to change all of the optimizer modes on each individual line of a code?
05:14:47 <pikhq> I beat you to death with a baseball bat.
05:15:29 <zzo38> My idea is that, the instruction __builtin_anything() the optimizer would assume that its return value could be anything, but it is an error for the __builtin_anything() instruction to actually be compiled into the executable (unless the optimizer can determine that the part of the code referencing __builtin_anything() can never actually get executed, such as: {return; __builtin_anything();} )
05:22:49 <zzo38> If GCC assumes a pointer cannot be NULL if it was previously dereferenced, can you check that with the __builtin_constant_p function?
05:23:07 <zzo38> (such as: __builtin_constant_p(!ptr))
05:25:19 <pikhq> I dunno.
05:26:01 <zzo38> Perhaps I can check what the compiler does (I do have GCC on this computer)
05:29:41 <zzo38> No, that doesn't seem to work. But this does work: x=1; __builtin_constant_p(x);
05:30:41 -!- sebbu2 has joined.
05:31:13 -!- sebbu has quit (Ping timeout: 260 seconds).
05:31:13 -!- sebbu2 has changed nick to sebbu.
05:34:41 <zzo38> Can this work: #define lengthof(_1) (sizeof(_1)/sizeof(typeof(*_1)))
05:34:50 <zzo38> And this: #define FORCE_CONSTANT(_1) __builtin_choose_expr((_1),(_1),(_1))
05:35:06 <pikhq> Yes and WTF?
05:35:24 <pikhq> (that's two answers, BTW)
05:36:09 <pikhq> Also, (sizeof(_1)/(sizeof(*_1)) should work.
05:36:20 <pikhq> Also, only (obviously) works right for actual arrays.
05:36:26 <pikhq> No pointers to chunks of memory.
05:36:43 <zzo38> Well, yes, obviously. It is meant for arrays, of course.
05:36:49 <coppro> zzo38: Is this C or C++?
05:36:54 <zzo38> C
05:37:01 <zzo38> And it is GNU C, to be specific
05:52:01 <zzo38> #define RANGE_X3(_1,_2,_3) (_1(_3 0)_2),(_1(_3 1)_2),(_1(_3 2)_2)
05:52:10 <zzo38> #define RANGE_X6(_1,_2,_3) RANGE_X3(_1,_2,_3),RANGE_X3(_1,_2,3+_3)
05:52:59 -!- augur has quit (Ping timeout: 245 seconds).
05:55:11 <zzo38> Is there a way to make pipes loop in Linux, so that the output of the last command in a pipeline sent to the input of the first command?
05:55:28 -!- augur has joined.
05:56:52 <pikhq> Yes, but it's a pain.
05:57:00 <pikhq> I suggest named pipes.
05:59:38 <zzo38> Does any shell support the following way of doing it like: |nc example.org 1323|tr A-Z a-z|
05:59:55 <zzo38> Perhaps if I get computer I can put Linux, I can write the shell like that
06:00:20 <zzo38> So if you put | at the beginning and another at the end of the command-line it will do loop like that
06:00:22 <pikhq> Could add it to zsh.
06:00:40 <pikhq> (it's the Emacs of shells already. Would fit nicely.)
06:02:19 <zzo38> I do know a few things about Zsh, it seems better for code-golf than bash is
06:03:02 <coppro> I'd suggest Perl, but IO is actually a pain in Perl
06:03:08 <coppro> one of the few things it's bad at
06:03:52 <coppro> pikhq: hmm... couldn't you do it with while true; do
06:04:13 <coppro> *while true; do foo=$(really <<<"$foo" | long | pipe | here); done
06:04:33 <pikhq> coppro: No, because shell is not lazy.
06:04:40 <coppro> that's what I'm relying on
06:05:04 <pikhq> Well, you're relying on nonexistent semantics.
06:05:09 <pikhq> Stop doing it.
06:05:21 <coppro> why are they nonexistent?
06:05:29 <pikhq> Because they are.
06:05:52 <coppro> the variable is substituted into the command, then the command is executed, then the output from the command is assigned to the variable
06:06:00 <coppro> if you are really afraid of that, you could always use two variables
06:06:33 <pikhq> And then you'd see how wrong you are about how this is working.
06:06:42 <coppro> uh
06:06:49 <coppro> why?
06:06:55 <pikhq> (namely, it isn't)
06:07:13 <pikhq> You set foo to the result of a command depending on foo.
06:07:24 <coppro> yes. And I just said you could use two variables
06:07:26 <pikhq> In order to get the result of that command, you must know the value of foo.
06:07:44 <pikhq> In order to get the value of foo you must get the result of that command.
06:07:56 <coppro> while true; do foo="$(<<<"$bar" pipe | line | goes | here)"; bar="$foo"; done
06:08:18 <pikhq> Technically works, but I hate you.
06:08:25 <coppro> you're welcome
06:08:33 <coppro> testing on dash
06:08:38 <pikhq> And has quite different semantics from a proper pipe.
06:08:48 <coppro> that much is true
06:10:08 <coppro> eh, dash can't handle the syntax
06:10:12 <coppro> so no way to test
06:10:52 <coppro> wait, got it. It works there too
06:11:07 <zzo38> In Anarchy Golf there is only one file in a current directory, which is the program itself, which means you can write a (cheating) quine 2-bytes in Zsh
06:14:33 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
06:15:21 -!- jcp1 has joined.
06:15:24 <zzo38> http://golf.shinh.org/reveal.rb?Quine/zzo38%28cheat%29_1269737774&zsh
06:15:51 <pikhq> :)
06:22:24 -!- jcp1 has changed nick to jcp.
06:32:37 -!- augur has quit (Ping timeout: 265 seconds).
06:39:10 -!- oerjan has quit (Quit: Good night).
06:43:49 <zzo38> Do you like to invent spells in D&D game?
06:44:15 <coppro> what?
06:44:57 <pikhq> No, tend to come up with very inventive ways of using spells in D&D instead.
06:44:59 <zzo38> Like, invent new spells for use in D&D game.
06:45:14 <pikhq> (presuming you mean D20 system)
06:45:22 <zzo38> Here are some of the ones I have done, if you are interested: http://zzo38computer.cjb.net/dnd/options/ (I cannot figure out what name I should give the _1 spell)
06:45:32 <zzo38> (_1 is just a temporary name)
06:46:08 <zzo38> I especially like the Object_Mirrored.s spell that I invented.
06:46:09 <coppro> ah, no, I do not
06:46:51 <zzo38> Do you know what name I should give to _1.p
06:46:56 <coppro> zzo38: where are you from?
06:47:28 <zzo38> coppro: Is that relevant? Check my IP address
06:49:27 <zzo38> Also, which D&D characters have you played (race/class/spells/etc)
06:49:47 <coppro> I have never really played :/
06:49:50 <coppro> only DMed
06:50:07 <coppro> also kept a book collection far larger than it should be
06:50:24 <pikhq> Most recently I played a barbarian bard cleric druid fighter monk paladin wizard warlock gestalted with soulblade.
06:50:33 <zzo38> coppro: OK, what campaigns, then? And what players have been
06:50:38 <pikhq> It was a very, very silly run through Tomb of Horrors.
06:50:46 <pikhq> Oh. And level 9.
06:50:56 <zzo38> pikhq: OK, what race and what spells?
06:51:11 <pikhq> zzo38: Human, and I actually didn't bother with a spelllist.
06:51:33 <zzo38> pikhq: Then how do you know what spells if you don't spells?
06:51:33 <coppro> zzo38: Is that relevant? Check my IP address
06:51:49 <pikhq> zzo38: Level 1 spells at level 9?
06:52:05 <zzo38> coppro: How am I supposed to figure out that from your IP address, and of course it is relevant, isn't it?
06:52:12 <pikhq> Screw that shit. Scrolls of level 9 spells.
06:52:13 <coppro> well, it might be
06:52:13 <zzo38> pikhq: Any level spells, whatever level spells you have
06:52:16 <pikhq> (there went *all* his cash)
06:53:09 <pikhq> Uh. Magic missile?
06:53:27 <zzo38> That's a common one. I never selected that spell, however.
06:53:36 <pikhq> It'
06:53:43 <pikhq> s probably the best level 1 spell.
06:53:57 <pikhq> I note that it is very, very, *very* hard to avoid damage from it.
06:54:22 <pikhq> No save, no AC, and almost nothing has DR against force.
06:54:44 <coppro> zzo38: use Swap Eye on itself
06:54:45 <zzo38> Maybe it is, but I don't like it much. I nearly always select spells that do not do any damage
06:55:03 <pikhq> You, sir, are probably playing very poor casters.
06:55:04 <zzo38> coppro: You can't, that's a feat and it can not be applied to feats
06:55:09 <coppro> zzo38: OH
06:55:13 <coppro> I get it now
06:55:15 <coppro> c s f
06:55:17 <pikhq> If you get clever you can do 1-shot nukes. :P
06:55:21 <coppro> hmm... the mirroring spell is a great way to kill someone
06:55:42 <pikhq> It gets... Much, much, *much* scarier with a good psion/wizard build.
06:56:14 <zzo38> pikhq: Actually I try never to do damage I try to win without damage or kill, whenever possible because I play good-aligned characters, that's why
06:56:40 <pikhq> zzo38: "Good-aligned" does not mean "cannot damage or kill" you know.
06:57:01 <pikhq> BTW, might I suggest looking into non-lethal damage? :P
06:57:17 <zzo38> pikhq: I know that, but that is one way to be good-aligned even if not the only way, and of course there are a few exceptions
06:57:23 <zzo38> And yes, I do understand non-lethal damage
06:57:50 <coppro> zzo38: the _1 sounds like a confession?
06:58:26 <zzo38> But what I like to do is to trick the opponent in different ways sometimes
06:58:54 <zzo38> coppro: The _1 is almost likea confession, I guess. Not quite, but still, I don't know the name?
06:59:03 * pikhq is still proud of geasing the drow race.
06:59:20 <coppro> zzo38: I think 'confession' or something similar should be in the name
06:59:30 <zzo38> coppro: OK, that's an idea
07:01:33 -!- augur has joined.
07:02:12 <zzo38> My character has no magic items except for harp (the magic gives it +2 Perform) (we are members of Harper, this is the campaign)
07:02:27 <zzo38> My brother's character doesn't have many either, but he has no harp
07:03:07 -!- Gracenotes has quit (Read error: Connection reset by peer).
07:04:49 -!- Gracenotes has joined.
07:06:40 -!- tombom has joined.
07:07:30 <zzo38> The kind of trick I do is, one of them is as follows: Metamorphosis into human of the size to wear the unform so we can disguised as the army, steal the scroll, hide behind the tent, dismiss metamorphosis, dark, web, wait for wizard to attempt to dispel darkness (my brother's character helped to tell when), just before was doing, teleport away, leaving a crystal and the clothes in the area.
07:08:43 <zzo38> This really confused everyone. Everyone now believes lies... Someone thought the wizard did it but the wizard said they did nothing. And the tent teleported into turned out to be the toilet tent and the people inside thought my character was a big cockroach. After they get out to tell someone, I hide and then they look and see there is nothing in there!
07:09:13 <zzo38> Someone thought the soldier must be crazy, someone thought they must be running around naked, someone thought they must have turned into a crystal... See, it works.
07:11:06 <pikhq> Ah, the *other* useful half of a wizard's spell list.
07:11:08 <pikhq> Being fucking Batman.
07:11:09 <pikhq> :P
07:12:23 <zzo38> (The soldier they were talking about was actually in jail by then, but the other soldiers did not know that.)
07:13:00 <zzo38> What does it have to do with Batman? (I don't know about Batman very well, actually)
07:14:27 <pikhq> Batman, much like a wizard, can quite reasonably defeat anyone given prep time.
07:15:38 <pikhq> Ready for *everything*.
07:16:04 <zzo38> Now we need to send a forged note to the army. However, I have a different idea: Write a forged note to the emperor of the army (the note I stole was to send to emperor), that will make the emperor send a note to the army of the way I want. (No magic needed here.)
07:18:42 <zzo38> In fact, about half the time we need no magic, just paper or speech or even just a wood box might just do
07:20:13 <tombom> this doesn't sound like the world i know
07:20:16 <tombom> i'm scared
07:22:48 <zzo38> If I actually *do* need to damage someone, I suppose I can just bite (and poison) them, but that is hardly ever needed. Usually we can win without harming anyone. In fact, at least one time we won by *healing* the opponents instead.
07:23:59 <zzo38> Mostly the bite is just used as a threat of eating them if they do not comply.
07:24:35 <zzo38> (I don't actually have a high enough attack bonus to effectively use it most of the time anyways.)
07:24:38 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:25:09 <pikhq> tombom: 魔法がある世界。なぜ知らないか。(も、人々は日本語で話す世界。)
07:25:11 <zzo38> (And I don't care; because I don't need a high attack bonus. It is OK if this misses 80% of the time)
07:29:06 <zzo38> Or, of course, my brother's character, he is a ninja and can use sudden strike. He prefers to fight a lot
07:29:55 <pikhq> GAH
07:30:03 <pikhq> MAGIC THE GATHERING HAS RACE CONDITIONs
07:30:21 <zzo38> pikhq: There are rules how to resolve them
07:30:48 <pikhq> zzo38: No, the Grand Melee variant introduces actual race conditions.
07:31:03 <zzo38> pikhq: OK. Sorry I thought you meant standard rules
07:31:07 <pikhq> What's relevant is the existence of multiple stacks.
07:31:13 <pikhq> Which function concurrently.
07:31:31 <zzo38> The Grand Melee variant does have actual race conditions
07:33:34 <pikhq> Fun fact: spell resolution is not atomic.
07:35:17 -!- zzo38 has quit (Remote host closed the connection).
07:50:21 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:13:35 -!- Sgeo_ has joined.
08:15:29 -!- Sgeo has quit (Ping timeout: 245 seconds).
08:22:01 -!- augur has quit (Remote host closed the connection).
08:22:11 -!- augur has joined.
08:24:25 -!- Sgeo has joined.
08:26:41 -!- Sgeo_ has quit (Ping timeout: 265 seconds).
08:30:12 -!- lament has joined.
08:34:57 -!- Gracenotes has quit (Read error: Operation timed out).
08:35:52 -!- augur has quit (Remote host closed the connection).
08:35:57 -!- augur has joined.
08:35:58 -!- Slereah has quit (Ping timeout: 246 seconds).
08:41:35 -!- Slereah has joined.
08:53:45 -!- Gracenotes has joined.
08:54:08 -!- lament has quit (Quit: lament).
09:03:25 -!- Gracenotes has quit (Ping timeout: 258 seconds).
09:15:36 -!- Gracenotes has joined.
10:34:00 -!- FireFly has joined.
11:04:30 -!- Slereah has quit (*.net *.split).
11:04:31 -!- dbc has quit (*.net *.split).
11:04:31 -!- fizzie has quit (*.net *.split).
11:04:31 -!- AnMaster has quit (*.net *.split).
11:04:32 -!- augur has quit (*.net *.split).
11:04:32 -!- Mathnerd314 has quit (*.net *.split).
11:04:32 -!- pineapple has quit (*.net *.split).
11:04:32 -!- fungot has quit (*.net *.split).
11:04:33 -!- myndzi\ has quit (*.net *.split).
11:04:34 -!- oklofok has quit (*.net *.split).
11:04:34 -!- iamcal has quit (*.net *.split).
11:04:34 -!- comex has quit (*.net *.split).
11:04:34 -!- jix has quit (*.net *.split).
11:04:34 -!- Leonidas has quit (*.net *.split).
11:04:35 -!- coppro has quit (*.net *.split).
11:04:35 -!- uorygl has quit (*.net *.split).
11:04:35 -!- ineiros has quit (*.net *.split).
11:04:35 -!- Sgeo has quit (*.net *.split).
11:04:35 -!- Quadrescence has quit (*.net *.split).
11:04:35 -!- olsner has quit (*.net *.split).
11:04:36 -!- rodgort has quit (*.net *.split).
11:04:36 -!- SimonRC has quit (*.net *.split).
11:04:36 -!- mtve has quit (*.net *.split).
11:04:36 -!- lifthrasiir has quit (*.net *.split).
11:04:36 -!- cheater2 has quit (*.net *.split).
11:04:36 -!- mycroftiv has quit (*.net *.split).
11:04:36 -!- sshc has quit (*.net *.split).
11:04:36 -!- Gregor has quit (*.net *.split).
11:04:37 -!- yiyus has quit (*.net *.split).
11:04:38 -!- Deewiant has quit (*.net *.split).
11:04:38 -!- FireFly has quit (*.net *.split).
11:04:39 -!- HackEgo has quit (*.net *.split).
11:04:39 -!- EgoBot has quit (*.net *.split).
11:04:39 -!- Geekthras has quit (*.net *.split).
11:04:39 -!- wareya has quit (*.net *.split).
11:04:39 -!- chickenzilla has quit (*.net *.split).
11:04:40 -!- Ilari has quit (*.net *.split).
11:05:45 -!- Adrian^L has quit (Read error: Connection reset by peer).
11:06:42 -!- sebbu has changed nick to 94SAAF2AN.
11:06:42 -!- pikhq has changed nick to 94SAAEFTX.
11:06:46 -!- Adrian^L has joined.
11:06:46 -!- pikhq has joined.
11:06:46 -!- sebbu has joined.
11:06:46 -!- FireFly has joined.
11:06:46 -!- Slereah has joined.
11:06:46 -!- augur has joined.
11:06:46 -!- Sgeo has joined.
11:06:46 -!- coppro has joined.
11:06:46 -!- olsner has joined.
11:06:46 -!- oklofok has joined.
11:06:46 -!- uorygl has joined.
11:06:46 -!- Deewiant has joined.
11:06:46 -!- cheater2 has joined.
11:06:46 -!- Mathnerd314 has joined.
11:06:46 -!- Quadrescence has joined.
11:06:46 -!- myndzi\ has joined.
11:06:46 -!- HackEgo has joined.
11:06:46 -!- EgoBot has joined.
11:06:46 -!- iamcal has joined.
11:06:46 -!- comex has joined.
11:06:46 -!- dbc has joined.
11:06:46 -!- mycroftiv has joined.
11:06:46 -!- fizzie has joined.
11:06:46 -!- rodgort has joined.
11:06:46 -!- Geekthras has joined.
11:06:46 -!- sshc has joined.
11:06:46 -!- fungot has joined.
11:06:46 -!- pineapple has joined.
11:06:46 -!- AnMaster has joined.
11:06:46 -!- Leonidas has joined.
11:06:46 -!- lifthrasiir has joined.
11:06:46 -!- mtve has joined.
11:06:46 -!- ineiros has joined.
11:06:46 -!- SimonRC has joined.
11:06:46 -!- jix has joined.
11:06:46 -!- wareya has joined.
11:06:46 -!- chickenzilla has joined.
11:06:46 -!- Gregor has joined.
11:06:46 -!- Ilari has joined.
11:06:46 -!- yiyus has joined.
11:06:51 -!- 94SAAF2AN has quit (Ping timeout: 280 seconds).
11:06:51 -!- 94SAAEFTX has quit (Ping timeout: 241 seconds).
11:10:11 -!- augur has quit (Remote host closed the connection).
11:10:20 -!- augur has joined.
11:24:36 -!- BeholdMyGlory has joined.
12:57:34 -!- kar8nga has joined.
13:06:31 -!- ais523 has joined.
13:10:24 -!- lereah_ has joined.
13:45:32 -!- nooga has joined.
13:48:34 -!- ais523 has quit.
13:49:46 -!- ais523 has joined.
13:50:28 -!- aschueler has joined.
14:08:08 <nooga> ll
14:20:49 <AnMaster> fizzie, there? Which llvm version are you using for jitfunge?
14:21:15 <Deewiant> AnMaster: Some 2.7 prerelease
14:21:18 <AnMaster> reading 2.7 release notes (note: 2.7 is at beta2 or something like that atm iirc): "The JIT now supports generating debug information, which is compatible with the new GDB 7.0 (and later) interfaces for registering debug info for dynamically generated code."
14:21:47 <fizzie> Whatever's in lucid; currently it seems to be "2.7~svn20100418-0ubuntu1".
14:21:58 <fizzie> I'll have to read about that later.
14:22:10 <AnMaster> fizzie, that dynamic debug info thing might help with that bug in generated code you mentioned
14:27:59 <AnMaster> interesting line from that same release notes:
14:28:01 <AnMaster> "# The ARM and Thumb code generators now using register scavenging for stack object address materialization.(FIXME: WHAT BENEFIT DOES THIS PROVIDE?)"
14:28:49 <AnMaster> hm that # seems to be a bug in firefox copy and paste
14:29:51 <AnMaster> "# The X86-64 backend does not yet support the LLVM IR instruction va_arg. Currently, front-ends support variadic argument constructs on X86-64 by lowering them manually." <-- that has been there since ages. I wonder when they will fix it finally
14:31:14 <fizzie> Doesn't it do that for <li> nodes deliberately? In which case it's a feature, not a bug.
14:31:25 <AnMaster> a weird feature
14:31:41 <AnMaster> mapping it to * or the middot char would make more sense
14:31:55 <Deewiant> Why does * make more sense than #
14:32:18 <AnMaster> Deewiant, for a dot list. It isn't a numbered list
14:32:26 <Deewiant> Why does * make more sense than #
14:32:47 <AnMaster> there is a dot on my screen for it. And * is closer to the same shape. Plus the usual way to render such lists in plain text files
14:33:11 <AnMaster> * or - are amongst the more common ones. # I never seen in any README or such for this purpose
14:33:12 <Deewiant> What the bullet is can be controlled by CSS anyway
14:33:30 <AnMaster> Deewiant, yes, and?
14:33:42 <AnMaster> Deewiant, now instead tell me why # makes more sense than * for this
14:33:51 <Deewiant> So "there is a dot on my screen for it. And * is closer to the same shape." is not a sound argument
14:33:59 <Deewiant> Because what is on the screen can vary.
14:34:03 <AnMaster> Deewiant, so why #
14:34:06 <Deewiant> Why not?
14:34:34 <AnMaster> Deewiant, See above. * is more common in plain text for such lists
14:34:55 <Deewiant> Maybe this dates to before * became common
14:34:58 <AnMaster> ever heard of "principle of least surprise to the user"?
14:35:15 <Deewiant> I am completely uninterested in the bullet
14:35:17 <AnMaster> Deewiant, you mean back to netscape 0.0.1 or such?
14:35:24 <Deewiant> It could be ~»÷—–, whatever
14:35:30 <Deewiant> any of*
14:35:44 <Deewiant> AnMaster: Probably not that far :-P
14:36:31 <AnMaster> Deewiant, well I think I have seen * for bulleted lists in really old text files. Older than the web certainly.
14:36:59 <AnMaster> (heirloom toolkit age kind of things)
14:37:05 <Deewiant> I've seen # for bulleted lists in text files
14:37:14 <AnMaster> Deewiant, and that I have never seen
14:37:35 <Deewiant> I've also seen - and § and others
14:37:54 <AnMaster> well § is "paragraph". And yes "-" is quite common too
14:42:42 <AnMaster> actually, some quick googling indicates that § is closer to "section". However the Swedish word "paragraf" is closer to this meaning. en:paragraph = sv:stycke. iirc sv:paragraf is mostly used in the context of law texts and similar
14:48:24 -!- nooga has quit (Ping timeout: 252 seconds).
15:06:18 <AnMaster> Deewiant, btw the GCC 4.5 miscompliation seems to be a gcc bug. Unless you tell me (size_t)(-count) is not allowed by the standards. Here count is a int64_t
15:06:41 <AnMaster> just printing the value out makes it not miscompile it btw
15:07:32 <ais523> AnMaster: can you cut it down to a minimal testcase?
15:07:41 <AnMaster> ais523, yes during the weekend I will do so
15:07:45 <AnMaster> don't have time today
15:08:04 <AnMaster> Deewiant, basically it miscompiles it so that: size_t stack_size = 6; stack_size -= (size_t)(-5); makes stack_size == 2
15:08:15 <AnMaster> wait
15:08:17 <AnMaster> not -5 there
15:08:21 <AnMaster> it is -(-5)
15:08:21 <AnMaster> even
15:08:32 <AnMaster> so 6-5 = 2 according to GCC :D
15:08:49 <AnMaster> only at -O3 though
15:10:16 <ais523> AnMaster: undefined behaivour
15:10:18 <ais523> *behaviour
15:10:47 <ais523> aren't you trying to subtract a very large number from a signed number?
15:10:54 <ais523> that causes signed overflow, which is undefined
15:11:18 <AnMaster> ais523, no
15:11:24 <AnMaster> ais523,
15:11:25 <AnMaster> } else if (count < 0) {
15:11:25 <AnMaster> stack_discard(SOSS, (size_t)(-count));
15:11:25 <AnMaster> }
15:11:34 <AnMaster> that will be a *positive* number
15:11:45 <ais523> ok, what type's the second argument to stack_discard?
15:11:46 <AnMaster> -(-x) = x
15:11:55 <AnMaster> ais523, size_t
15:12:01 <AnMaster> and count is a int64_t
15:12:24 <AnMaster> and the values that produce the bug are in the range "would fit in a signed char"
15:12:34 <ais523> why are you casting explicitly then? that's normally asking to suppress warnings
15:13:25 <AnMaster> ais523, iirc icc gave a spurious warning there otherwise.
15:13:33 <AnMaster> or maybe some older gcc version did
15:14:23 <AnMaster> ais523, point is however that there seems to be nothing undefined in that. Oh and just storing it to a size_t variable first and then passing that as argument hide the bug. So does printf("%zu\n",(size_t)(-count)) inside that block...
15:14:53 <AnMaster> (as in: on the line before or the line after the call to stack_discard())
15:15:11 <ais523> ok, that only seems to have undefined behaviour if count happens to be holding INT_MIN
15:15:13 <ais523> which presumably it isn't
15:15:38 <AnMaster> ais523, indeed it didn't. Also why would it be undefined at INT_MIN? Don't you mean SIZET_MIN or whatever it is called
15:15:49 <ais523> um, INT64_T_MIN or whatever it's called
15:15:49 <AnMaster> size_t is unsigned 64-bit after all
15:15:51 <AnMaster> yeah
15:16:00 <ais523> because the unary minus overflows before the cast happnes
15:16:01 <ais523> *happens
15:16:48 <AnMaster> anyway, it is hard to make a minimal test case. It seems to optimise differently with just trivial changes
15:23:33 <AnMaster> ais523, for example -fno-inline removes this bug
15:24:06 <ais523> hmm, it's a bug with the way stack_discard is inlined?
15:24:37 <AnMaster> ais523, hm removing restrict on stack pointer to stack_discard "hides" the bug too
15:24:48 <AnMaster> but I'm pretty sure restrict *is* valid there
15:25:03 <ais523> hmm, messing with restrict you always have to be careful
15:25:25 <AnMaster> ais523, so perhaps some combination of restrict and inlineing triggers a gcc bug
15:26:26 <AnMaster> ais523, yes but restrict should be valid here. It can't alias anything else in the scope of that function. However in the caller it could, but those vars are not visible in stack_discard.
15:27:00 <ais523> perhaps restrict is being inlined incorrectly? as in, it's inlining the restricts to refer to the wrong scope?
15:27:08 <AnMaster> on the other hand I think restrict is fairly pointless there nowdays since there should be no other variable of that type visible at all nowdays
15:27:14 <AnMaster> ais523, yes perhaps
15:27:19 <AnMaster> but then that is the compiler bug
15:27:55 <AnMaster> however I'm a bit unsure about how it can result in a one-off error like this...
15:28:25 <AnMaster> off-by-one*
15:31:54 <AnMaster> ais523, okay from checking the code it is doing 7-5 instead of 6-5
15:32:00 <AnMaster> which is even stranger
15:32:42 <ais523> have you at least got a test case minimal enough to dump the compiler internals to see what's going on?
15:32:45 <AnMaster> err, code as in asm and dumping registers
15:32:47 <ais523> say, a couple of functions or so
15:32:47 -!- coppro has quit (Remote host closed the connection).
15:33:31 <AnMaster> ais523, well that is what I'm not able to produce, I tried doing it and I had to have all the ip and funge stack logic needed to reach that point for it to happen. Oh and if you want to test this you need gcc 4.5.0
15:34:06 <AnMaster> also I don't know if it is x86_64 only or such, will test -m32 later
15:34:35 -!- Asztal has joined.
15:35:05 -!- Mathnerd314 has quit (Ping timeout: 260 seconds).
15:35:21 -!- MizardX has joined.
15:36:45 -!- samosa has joined.
15:44:25 * AnMaster diffs the asm for good/bad code
15:45:10 <AnMaster> okay that is strange
15:46:26 <AnMaster> it seems to load it from memory without restrict, with restrict it reuses it from a register
15:46:32 <AnMaster> but I think it reuses the wrong value
15:48:09 <AnMaster> ais523, http://sprunge.us/IhiB
15:48:14 -!- Mathnerd314 has joined.
15:49:01 <AnMaster> basically %rsi is what it thinks contains the top of the stack value, but for some reason it doesn't contain that.
15:49:02 <ais523> ah, ok; the restrict's saying that the value can't have changed in the meantime, which is fine
15:49:13 <ais523> but the register itself has been clobbered without gcc noticing?
15:49:35 <AnMaster> ais523, if so it did it. There is nothing else that could have clobbered it
15:49:39 <ais523> yep
15:49:43 <AnMaster> and there is no inline asm anywhere near here.
15:49:53 <AnMaster> unless assert() or something like that has inline asm
15:50:01 -!- lereah_ has quit (Quit: Leaving).
15:50:30 <ais523> what does that nopl statement do? it's an opcode I haven't seen before
15:50:36 <AnMaster> ais523, I'm not sure either
15:50:41 * AnMaster looks for the docs
15:50:51 <ais523> it almost implies a no-op operation with an unusually large bitwidth, but that surely doesn't make sense
15:51:27 <AnMaster> ais523, how so? For code alignment purposes perhaps?
15:51:39 <AnMaster> if you need more than 1 byte
15:51:42 <AnMaster> brb phone
15:53:39 <AnMaster> bacl
15:53:41 <AnMaster> back*
15:54:21 <AnMaster> ais523, anyway I don't know what it is named in intel syntax, which while a lot harder to read, have names matching the AMD and Intel docs
15:54:43 -!- samosa has quit (Quit: samosa).
15:55:17 -!- oerjan has joined.
15:55:45 <AnMaster> ais523, anyway, considering that it seems to use different nopl variants there I do think it is a wide nop
15:56:03 <ais523> that takes an argument that does nothing?
15:56:24 <AnMaster> ais523, the classical xchg %eax,%eax nop is iirc 1 byte and it takes an argument
15:56:39 <AnMaster> heck it takes 2 of them
15:56:45 <ais523> fair enough
15:57:23 <AnMaster> ais523, and iirc intel docs mentions special-casing that one as a nop in modern CPUs, so it doesn't block other things depending on that register
15:58:47 <AnMaster> ais523, anyway, from what I can tell yeah the restrict should be allowed there. And I can't find any place at all in the code where %rsi actually held the value gcc think it held
15:59:02 <AnMaster> I don't know what it is holding instead...
15:59:38 <AnMaster> ais523, do you remember how lea worked?
16:00:03 <ais523> it basically just uses the addressing system of the processor to do arithmetic
16:00:25 <AnMaster> ais523, so what about: lea -0x1(%rcx),%rsi
16:01:14 -!- Gracenotes has quit (Ping timeout: 276 seconds).
16:01:19 <ais523> that sets %rsi equal to %rcx minus 1
16:01:46 <AnMaster> huh
16:01:50 <AnMaster> also huh @ "test %rsi,%rsi"
16:05:41 <AnMaster> oh it probably tests if it is zero. I forgot the rFLAGS register stuff
16:11:01 -!- cheater2 has quit (Read error: Connection reset by peer).
16:11:54 -!- cheater2 has joined.
16:19:04 <AnMaster> actually... hm
16:20:43 <AnMaster> wth, if I remove the restrict on the argument to stack_pop_vector it give me *yet* another result
16:20:56 <AnMaster> I think restrict + inlining is completely broken in gcc 4.5
16:21:46 <AnMaster> except, if I remove all restrict it also gives me the wrong result
16:26:22 <AnMaster> ah wait there was still restrict on another called function. Well removing that too then it gives the right resylt
16:26:24 <AnMaster> result*
16:26:33 <AnMaster> but restrict *should* be valild there
16:26:35 <AnMaster> valid*
16:34:35 -!- Gracenotes has joined.
16:36:45 -!- lament has joined.
16:39:55 <AnMaster> ais523, possibly relevant from gcc 4.5 release notes: "The infrastructure for optimizing based on restrict qualified pointers has been rewritten and should result in code generation improvements. Optimizations based on restrict qualified pointers are now also available when using -fno-strict-aliasing."
16:43:56 -!- ais523 has quit (Remote host closed the connection).
16:52:03 -!- Gracenotes has quit (Read error: Connection reset by peer).
16:54:03 -!- Gracenotes has joined.
16:55:59 -!- lament has quit (Quit: lament).
17:15:59 -!- tombom has joined.
17:17:58 -!- Gracenotes has quit (Ping timeout: 260 seconds).
17:27:45 -!- oerjan has quit (Quit: leaving).
17:48:44 -!- jcp has joined.
17:52:59 -!- Mathnerd314 has quit (Ping timeout: 245 seconds).
17:54:35 -!- Mathnerd314 has joined.
18:10:52 -!- nooga has joined.
18:14:24 -!- augur has quit (Ping timeout: 265 seconds).
18:19:34 -!- Gracenotes has joined.
18:34:29 -!- pikhq has quit (Read error: Connection reset by peer).
18:50:00 -!- augur has joined.
18:54:05 -!- augur has quit (Remote host closed the connection).
18:56:42 -!- Slereah has quit.
18:56:56 -!- Slereah has joined.
19:01:38 -!- augur has joined.
19:02:04 -!- BeholdMyGlory has changed nick to BeholdMyGlory_.
19:02:22 -!- BeholdMyGlory_ has changed nick to BeholdMyGlory.
19:03:31 -!- nooga has quit (*.net *.split).
19:03:31 -!- MizardX has quit (*.net *.split).
19:03:31 -!- Deewiant has quit (*.net *.split).
19:09:13 -!- nooga has joined.
19:09:13 -!- MizardX has joined.
19:09:13 -!- Deewiant has joined.
20:04:07 -!- pikhq has joined.
20:04:18 -!- augur has quit (Remote host closed the connection).
20:04:30 -!- tombom_ has joined.
20:05:48 -!- tombom has quit (Ping timeout: 264 seconds).
20:24:35 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
20:36:53 -!- nooga has quit (Ping timeout: 276 seconds).
20:39:51 -!- oklofok has quit (Ping timeout: 252 seconds).
21:20:15 -!- nooga has joined.
21:49:19 -!- Mathnerd314 has quit (Ping timeout: 258 seconds).
21:54:21 -!- Mathnerd314 has joined.
22:15:03 <AnMaster> fizzie, there?
22:15:07 -!- Phantom_Hoover has joined.
22:15:21 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
22:17:06 <AnMaster> I had an idea for how to figure out FOV of my phone, since it doesn't export that info in EXIF. What you do is you find an outdoor landscape (so the parallax we will get is insignificant) then you take a panorama with a "known good" camera, and _from the same spot_ you then take photos using the unknown camera. Then you include both in the panorama and let hugin estimate the fov from that.
22:17:30 <AnMaster> of other there are other ways, from a 360° pano it should be possible to estimate it as well
22:18:17 <Phantom_Hoover> What is the fov?
22:20:06 <AnMaster> field of view. Well, what you really want is angle of view but no one seems to use the term "aov" for it
22:20:54 <AnMaster> Phantom_Hoover, don't know if you noticed it but both fizzie and me likes to make panorams and HDR images and such.
22:21:06 <AnMaster> for panoramas, you need to know the angle of view really
22:22:19 <fizzie> I would think you'd get some sort of FOV estimate simply by taking a pile of shots, adding control points and letting the optimizer optimize one fov for all the images. Might not be quite as accurate, but still.
22:22:43 <AnMaster> fizzie, how would that work?
22:23:22 <Phantom_Hoover> is there a reason that you can't do it with some pins and a protractor?
22:24:23 <AnMaster> Phantom_Hoover, huh?
22:25:09 <AnMaster> Phantom_Hoover, I want to estimate that on my mobile phone camera. Which, unlike my rather large and bulky "real" camera, I have handy everywhere.
22:25:44 <Phantom_Hoover> Well, if you're trying to work out the angle the pictures encompass, you could stick a couple of pins at the edge of the picture, keep the camera in a marked position, and then measure the angle.
22:25:56 <AnMaster> Phantom_Hoover, I tried with a protractor before (had to google what it was, didn't know the English word) but how does pins come into it?
22:26:07 <AnMaster> ah hm
22:26:11 <Phantom_Hoover> For marking points
22:26:26 <AnMaster> Phantom_Hoover, well I tried moving myself to use some fixed points in that case
22:26:47 <AnMaster> but the measurement error was too large to give any usable results
22:26:51 <AnMaster> when I tried to measure the angle
22:26:54 <fizzie> AnMaster: I would think the correct FOV should lead to best control-point fit, since it's a different sort of image transformation (basically the image "size") than the yaw/pitch/roll positioning; so if you optimize positions and view, I think you should end up with some sort of view estimate.
22:27:04 <AnMaster> more than 20° variation commonly
22:27:21 <AnMaster> fizzie, hm.
22:27:55 <AnMaster> fizzie, and then suddenly it rushes off to way wrong values (that commonly happens)
22:28:13 <AnMaster> like from around 40° it jumps to 230° or such
22:29:24 <fizzie> Yes, it can do that. But if you start with a reasonable guess and have good points, I'm thinking it should converge sensibly. Assuming the images are short with different enough directions.
22:29:43 <fizzie> Doing the whole 360 degrees would probably help in that too.
22:29:56 <AnMaster> fizzie, well yes but that is tricky with no tripod and so on
22:30:10 <AnMaster> I mean, not just tricky, near impossible
22:30:44 -!- kar8nga has quit (Remote host closed the connection).
22:31:42 <fizzie> I've done a couple of full-circle shots freehand, I wouldn't call it impossible. At least as long as there's nothing nearby so that parallax movement is minimized.
22:32:40 <fizzie> The Sun-Earth L4 Lagrange point would be one suitable place, for example.
22:34:33 <Phantom_Hoover> I leave the conversation for like 5 minutes and you've gone from photography to Lagrange points?
22:40:05 <Phantom_Hoover> GCC is refusing to accept __asm__("jmp %eax"
22:40:06 <Phantom_Hoover> :
22:40:08 <Phantom_Hoover> : "A" (bin)); as valid code. Any ideas?
22:40:32 -!- tombom_ has quit (Quit: Leaving).
22:40:44 <fizzie> Isn't that jmp *%eax (if you want an indirect jump) in the AT&T syntax?
22:40:45 <AnMaster> <fizzie> I've done a couple of full-circle shots freehand, I wouldn't call it impossible. At least as long as there's nothing nearby so that parallax movement is minimized. <-- yes quite
22:40:50 <Phantom_Hoover> Ah.
22:40:58 <AnMaster> but I know no such huge open areas nearby
22:41:09 <Phantom_Hoover> I don't know much about gas syntax in general.
22:41:24 <AnMaster> <fizzie> The Sun-Earth L4 Lagrange point would be one suitable place, for example. <-- for what?
22:41:40 <fizzie> AnMaster: For a huge open area, with no parallax movement problems.
22:41:50 <AnMaster> hah
22:41:50 <pikhq> Phantom_Hoover: goto **bin
22:41:57 <pikhq> Erm.
22:41:59 <pikhq> goto *bin
22:42:09 <Phantom_Hoover> Thanks.
22:42:12 <fizzie> Right, it has that computed-goto extension too.
22:42:14 <AnMaster> pikhq, depends on what he is doing
22:42:24 <AnMaster> pikhq, it needs to be a label for that doesn't it?
22:42:28 <AnMaster> well
22:42:32 <AnMaster> a pointer to a label
22:42:47 <pikhq> AnMaster: No, it needs to be a void* that points to an address to jump to.
22:42:49 <Phantom_Hoover> It's not.
22:43:05 <AnMaster> pikhq, wrong, I read about this on the llvm blog today.
22:43:14 <Phantom_Hoover> It's from some code I scrounged which is meant to jump to an address in memory that was mallocced.
22:43:18 <pikhq> *As documented* it needs to be a "pointer to a label", but it is treated as an indirect jump.
22:43:29 <AnMaster> pikhq, older (pre-2.7) llvm versions used to handle it by turning it into a switch case
22:43:30 <pikhq> AnMaster: LLVM handles it differently from GCC. ;)
22:43:37 <AnMaster> since that was the only way to represent it in the IR
22:43:43 <AnMaster> 2.7 can do a lot more
22:43:52 <AnMaster> pikhq, and yes "as documented"
22:44:14 <AnMaster> pikhq, please do not use undefined behaviour. It makes me said
22:44:15 <AnMaster> sad*
22:44:34 <fizzie> It's documented with the typical sort of warnings; "You may not use this mechanism to jump to code in a different function. If you do that, totally unpredictable things will happen."
22:44:34 -!- BeholdMyGlory has joined.
22:44:45 <fizzie> Note: not "may happen", but "will happen".
22:45:22 <fizzie> Still, I don't think they've quite managed to make absolutely sure that something unpredictable happens.
22:45:22 <AnMaster> fizzie, yes and also you may not do anything except jump to that label pointer
22:45:23 <Phantom_Hoover> But if one reads some raw machine code straight into memory how would one then execute it.
22:45:26 <Phantom_Hoover> ?
22:45:27 <AnMaster> you may not try to covert the value to an int to print what it is with printf or such
22:45:38 <AnMaster> Phantom_Hoover, by doing what you did
22:45:47 <AnMaster> not by computed goto
22:45:50 <Phantom_Hoover> goto *bin or the inline asm?
22:45:52 <Phantom_Hoover> OK.
22:45:56 <AnMaster> Phantom_Hoover, inline asm yeah
22:46:17 <fizzie> Alternatively, you could make the machine code correspond to the platform's calling conventions and then use a function pointer.
22:46:52 <pikhq> That would be the *cleanest* thing to do.
22:47:02 <pikhq> And work on any compiler, not just a particular version of GCC.
22:47:15 <Phantom_Hoover> Difficult.
22:47:29 <Phantom_Hoover> Need to go anyway.
22:47:32 <Phantom_Hoover> Bye.
22:47:33 -!- Phantom_Hoover has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100401213457]).
22:47:47 <AnMaster> fizzie, yeah
22:47:55 <AnMaster> fizzie, how does jitfunge with llvm do it?
22:48:02 <AnMaster> and how did the old backend do it?
22:48:12 <pikhq> AnMaster: Actually, the result of unary "&&" may be used whenever a constant void* would be valid. It's just the actual goto *foo that can break shit.
22:48:36 <pikhq> (erm. Constant of type void*, not a const void*.)
22:49:07 <AnMaster> pikhq, not according to the same llvm blog post
22:49:22 <AnMaster> which claimed llvm 2.6 was implementing this to the letter
22:49:31 <AnMaster> (giving us a DS9K implementation)
22:49:37 <pikhq> AnMaster: I'm looking at the GCC documentation.
22:49:55 <pikhq> "This value is a constant and can be used wherever a constant of that type is valid."
22:50:01 <pikhq> On the result of unary &&.
22:50:20 <AnMaster> for which gcc version?
22:50:23 <AnMaster> try an older one
22:50:26 <AnMaster> around 4.0 or so
22:50:28 <pikhq> Looking at 4.4 ATM.
22:50:39 <fizzie> AnMaster: LLVM mostly handles the ugly details; calling ExecutionEngine's getPointerToFunction(Function*) method -- where Function is LLVM's function type that has the LLVM IR body and whatnot -- gives you a "void *" that you have to (a bit messily) cast to a function pointer.
22:51:26 <pikhq> "The value has type void *. This value is a constant and can be used wherever a constant of that type is valid."
22:51:33 <pikhq> 4.0.4 documentation.
22:51:58 <pikhq> "The value has type void *. This value is a constant and can be used wherever a constant of that type is valid."
22:52:04 <pikhq> 3.4.6 documentation.
22:52:26 <pikhq> "The value has type void *. This value is a constant and can be used wherever a constant of that type is valid."
22:52:32 <pikhq> 3.3.6 documentation.
22:52:55 <AnMaster> hm
22:52:56 <pikhq> I'll let you know if I find a change in the documentation of that this side of the EGCS merge.
22:53:05 <AnMaster> pikhq, strange then I guess I was wrong
22:53:10 <fizzie> (The old jitfunge code generator also made the necessary function bits so that it was callable via a function pointer.)
22:53:32 <AnMaster> pikhq, but see http://blog.llvm.org/2010/01/address-of-label-and-indirect-branches.html
22:53:52 <AnMaster> "An interesting aspect about this extension is that the only thing you are allowed to do with an address taken label is to jump to it. While it is widely misused for other things (e.g. the BUG macro in the linux kernel, which prints the address of a label on error), you are really really only allowed jump to it. You are not allowed to use it in an inline asm, inspect the value, or do anything else."
22:53:56 <AnMaster> which is then wrong I guess
22:54:06 <AnMaster> pikhq, you should contact the person who wrote it
22:54:15 <pikhq> AnMaster: I should.
22:54:37 <pikhq> Though LLVM's implementation was, in fact, entirely correct.
22:54:54 <pikhq> GCC makes no guarantee that the address in question is an *actual* address.
22:55:10 <pikhq> Just that when you dereference it for an indirect goto, it jumps to the correct address.
22:55:31 <AnMaster> pikhq, yeah I guess llvm could do 1,2,3,4,...
22:55:35 <AnMaster> (in 2.6)
22:55:42 <pikhq> Which is what it does.
22:55:51 <AnMaster> pikhq, what? 1-indexed? ;P
22:56:00 <AnMaster> it should do zero-indexed of course ;P
22:56:03 <pikhq> Yes.
22:56:09 <pikhq> I've looked at the resulting assembly. ;)
22:56:15 <AnMaster> hah
22:56:24 <AnMaster> 1-indexed would be pretty strange though
22:57:15 <AnMaster> fizzie, why did you do it as a function pointer btw?
22:57:31 <AnMaster> surely using a custom calling convention would have had less overhead?
22:57:50 <AnMaster> well I guess less messing with storing registers in other ways...
22:58:45 <fizzie> Though it'd be the cleanest way to interface with the C code. There might have been some calls inside the generated code that used a non-standard convention, though.
22:59:49 <AnMaster> ah
23:00:36 <pikhq> AnMaster: C calling conventions have very low overhead.
23:00:52 <pikhq> Particularly in x86_64, where passing in the registers is the norm.
23:01:17 <fizzie> The Scheme compiler I wrote for a course recently didn't use the C calling conventions, but that's perhaps more reasonable.
23:02:07 <pikhq> x86 tends to handle all the stack-handling stuff quickly. ;)
23:02:07 <AnMaster> heh
23:02:07 <AnMaster> fizzie, oh, how comes?
23:02:15 <AnMaster> fizzie, and did you implement call/cc?
23:02:26 <pikhq> AnMaster: C calling conventions clash with most Scheme implementation methods.
23:02:39 <AnMaster> right
23:03:03 <fizzie> Yes, it did continuations; there's not much point otherwise.
23:03:40 <fizzie> Used the ridiculously trivial way of just putting the "stack" under garbage collection, I think.
23:03:51 <AnMaster> hah
23:04:09 <AnMaster> fizzie, own gc?
23:04:46 -!- jcp has joined.
23:06:59 <fizzie> Yes, a very simple one. I think it was a copying/compacting one. Didn't have much time to twiddle with that.
23:07:44 <AnMaster> fizzie, why not reuse an existing one?
23:07:49 <AnMaster> NIH NIH
23:08:10 <fizzie> call/cc implementation: http://pastebin.com/fsT5KaRn
23:08:23 <fizzie> That's not very many instructions.
23:09:39 <AnMaster> heh
23:09:48 -!- oerjan has joined.
23:09:52 <AnMaster> oerjan, hi
23:09:57 <oerjan> hi AnMaster
23:10:17 <oerjan> bah oklopol isn't here
23:11:01 <oerjan> i had another comment on defining tuples in toi
23:11:43 -!- augur has joined.
23:13:11 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.2/20100316074819]).
23:14:30 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:18:13 <oerjan> <fizzie> It's documented with the typical sort of warnings; "You may not use this mechanism to jump to code in a different function. If you do that, totally unpredictable things will happen."
23:18:30 <oerjan> can you use it in a different invocation of the same function?
23:19:42 <AnMaster> probably it will work, but imagine this is in a dlopen()ed library. then you unload and reload the library
23:19:48 <AnMaster> using it then would be stupid
23:20:06 <oerjan> well i was really asking whether it was guaranteed to work
23:20:18 <AnMaster> no idea
23:20:26 <AnMaster> probably not
23:20:43 <fizzie> oerjan: It doesn't seem to say, explicitly, but the example there is: "One way of using these constants is in initializing a static array that will serve as a jump table: static void *array[] = { &&foo, &&bar, &&hack };"
23:21:00 <AnMaster> fizzie, yes but that is quite different
23:21:15 <AnMaster> since it would be re-initialised on dlopen()
23:21:30 <AnMaster> as opposed to saving it in a variable outside the library
23:21:48 <fizzie> There's also the "alternate way":
23:22:03 <fizzie> "An alternate way to write the above example is
23:22:03 <fizzie> static const int array[] = { &&foo - &&foo, &&bar - &&foo,
23:22:03 <fizzie> &&hack - &&foo };
23:22:03 <fizzie> goto *(&&foo + array[i]);"
23:22:22 <fizzie> "This is more friendly to code living in shared libraries, as it reduces the number of dynamic relocations that are needed, and by consequence, allows the data to be read-only."
23:22:46 <AnMaster> ah
23:23:08 <AnMaster> &&foo - &&foo would be 0?
23:23:22 <oerjan> this seems to imply you can use pointer arithmetic on labels in the same function, then
23:23:49 -!- FireFly has quit (Quit: Hey! Listen!).
23:26:01 <AnMaster> hm
23:26:47 <pikhq> oerjan: Yes, it is in fact a valid void*.
23:27:23 <pikhq> The only thing that will break is going to a label in a different function.
23:27:23 <Sgeo> http://www.google.com/search?rlz=1C1CHNR_enUS321US321&sourceid=chrome&ie=UTF-8&q=BF-RLE
23:27:32 <AnMaster> would dlopen()ing libpthreads instead of linking to it result in mayhem do you think?
23:27:39 <AnMaster> same question goes for libm and libc
23:27:43 <Sgeo> :( at people pirating my bf-isomorphic esolang :(
23:27:45 <Sgeo> lol
23:28:02 <pikhq> Also, the pointer in question is not necessarily an actual numerical address. But, this is never guaranteed by C *ever*.
23:28:03 <AnMaster> Sgeo, ?
23:28:11 <Sgeo> AnMaster, my link
23:28:15 <Sgeo> Look at the first result
23:28:21 <oerjan> pikhq: well from the discussion so far it seems like saving a label outside the function is dubious if it can be reloaded
23:28:34 <AnMaster> "Fmin.v ((Rle min r) /\ ((f:float) (Fbounded b f) -> (Rle f r) ->(Rle f min))). (* Min is a projector *) Theorem ProjectMin: (ProjectorP isMin). ... www-sop.inria.fr/lemme/AOC/coq/Fmin.html - Cached - Filter"?
23:28:37 <AnMaster> Sgeo, that one?
23:28:42 -!- BeholdMyGlory has joined.
23:28:48 <Sgeo> AnMaster, no
23:28:50 <pikhq> oerjan: Only dubious because you might be able to jump to the label from outside the function.
23:28:50 <AnMaster> or do you mean the second one? which seems to fit better with what you said
23:28:57 <AnMaster> Sgeo, the second one is kazaa
23:29:01 <pikhq> Which will *usually* break the stack frame.
23:29:01 <AnMaster> which seems pretty strange
23:29:05 <Sgeo> That's what I was referring to
23:29:08 <pikhq> In very unusual ways, no less.
23:29:14 <Sgeo> For me, it's the top result *shrug*
23:29:18 <AnMaster> Sgeo, yeah, do no assume the results are in the same order for everyone
23:29:21 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:29:33 <pikhq> And of course, in pre-2.7 LLVM, it'll just have the compiler kick you in the balls.
23:29:36 <oerjan> pikhq: hm this means the label _cannot_ be implemented as the actual code address pointer
23:29:44 <Sgeo> The Fmin one is the 7th down for me
23:29:46 <pikhq> Yes it can.
23:29:57 <AnMaster> Sgeo, well I'm logged in for gmail
23:30:02 <AnMaster> that would probably affect stuff
23:30:10 * Sgeo is also logged in
23:30:13 <pikhq> It's just undefined behavior if you jump to it when you're not in the function.
23:30:14 <oerjan> pikhq: if the function can be reloaded, that would break it
23:30:20 <AnMaster> and that would also personalise the results
23:30:22 <AnMaster> differently
23:30:23 <pikhq> "Can be reloaded" wha?
23:30:41 <Sgeo> When I'm not logged in, Kazaa does NOT appear in the first page of results
23:30:46 <pikhq> You mean... Uh... Linked in at a different address?
23:30:46 <oerjan> pikhq: AnMaster was pointing out functions from shared libraries
23:30:48 <Sgeo> Does Google think I'm a pirate? lol
23:30:50 <oerjan> yes
23:30:52 <pikhq> Oh, yes.
23:31:03 <AnMaster> oerjan, that only applies if you reload the shared library
23:31:14 <AnMaster> since most likely the library will end up elsewhere
23:31:25 <Sgeo> Just logged back in, but it's not appearing anymore
23:31:27 <AnMaster> the DS9K llvm-2.6 implementation *would* have worked there
23:31:33 <AnMaster> mhm
23:31:49 <AnMaster> Sgeo, see, it is unreliable to depend on the order
23:32:03 <pikhq> If you are reloading a shared library into the same program's address space, but a different address, you are doing nasty things with the shared linker and deserve all the breaking you get.
23:32:25 <AnMaster> <pikhq> If you are reloading a shared library into the same program's address space, but a different address, you are doing nasty things with the shared linker and deserve all the breaking you get. <-- eh?
23:32:33 <AnMaster> pikhq, I meant *unloading* and *reloading*
23:32:37 <Sgeo> Was GrainFimple ever implemented?
23:32:39 <pikhq> Yes.
23:33:01 <AnMaster> pikhq, due to ASLR it will most likely end up elsewhere
23:33:04 <pikhq> If you retain a pointer to *anything* in the shared library, you get to keep both pieces.
23:34:35 <oerjan> hm i guess it's unreasonable to consider a reloaded library function to _be_ the same function in all respects
23:35:22 <pikhq> oerjan: Any stored pointers to anything in a reloaded library will break, this is just fact. :)
23:35:29 -!- Asztal has quit (Ping timeout: 245 seconds).
23:35:53 <AnMaster> indeed
23:35:55 <pikhq> It's not just the stored labels, it's any global or static variable.
23:36:12 <oerjan> pikhq: although fizzie's "alternative method" quote seems to imply it could be safe to save _differences_ of label pointers. or maybe that's just an implementation convenience.
23:36:12 <pikhq> (including function pointers)
23:36:13 <AnMaster> or function pointer
23:36:24 <pikhq> oerjan: Yes, that is.
23:36:42 <AnMaster> oerjan, only difference in the same function
23:36:50 <pikhq> Because then, you're just encoding the offset from a different label.
23:36:55 <oerjan> AnMaster: well duh
23:37:11 <pikhq> So long as the actual *data* isn't changing, you're good.
23:37:45 -!- Asztal has joined.
23:37:49 <oerjan> mhm
23:38:01 <pikhq> If the dynamic library has changed between loads, well, you still geet to keep both pieces.
23:38:05 -!- Mathnerd314 has joined.
23:39:00 <AnMaster> I wonder if with PIE it would be possible to do a "user space kexec()" basically?
23:39:11 <AnMaster> loading a new binary and jumping to it
23:39:22 -!- coppro has joined.
23:39:30 <oerjan> i don't think that's legal proto-indoeuropean
23:39:31 <pikhq> That's... What exec does. And you can actually do it in userspace.
23:39:40 <AnMaster> oerjan, ?
23:39:53 <pikhq> You just need to implement the ELF loading manually.
23:39:55 <AnMaster> pikhq, no exec() would free the old address space
23:39:57 * oerjan swats AnMaster's pun detector into place -----###
23:40:04 <pikhq> AnMaster: Ah, yes.
23:40:05 <Gregor> AnMaster: http://codu.org/projects/gelfload/ :P
23:40:05 <AnMaster> I want to keep the values in static variables and such
23:40:11 <AnMaster> and all malloc()ed data
23:40:14 <pikhq> Still. You can do it without PIE just fine.
23:40:19 <pikhq> Erm.
23:40:23 <AnMaster> pikhq, well then you need to load it in the same place
23:40:30 <AnMaster> with PIE you can load it anywhere you want
23:40:43 <pikhq> You actually can relocate ELF files without it being PIE.
23:40:46 <AnMaster> Gregor, g for gnome or g for gnu?
23:40:59 <Gregor> AnMaster: No.
23:41:05 <AnMaster> pikhq, yes but that is a PITA
23:41:09 <AnMaster> Gregor, well what then?
23:41:22 <Gregor> AnMaster: Read that line again.
23:41:26 <pikhq> PIE is actually only used so the relocation can be done without modifying any memory.
23:41:27 <Gregor> AnMaster: Your own line that is.
23:41:33 <pikhq> Same for PIC.
23:41:51 <AnMaster> "4 months Gregor Richards Initial import.default tip" <-- 1) didn't use vcs from the start? 2) no longer working on it?
23:42:09 <AnMaster> Gregor, which one of them?
23:42:29 <pikhq> AnMaster: You're... Dense.
23:42:40 <AnMaster> pikhq, I'm sleep deprived
23:42:40 <Gregor> AnMaster: EVERY SINGLE ONE in which you asked one _G_regor Richards what the GEE in gelfload stands for.
23:42:41 <oerjan> practically a black hole, there
23:42:50 <AnMaster> Gregor, oh thanks
23:42:52 <AnMaster> right
23:43:10 <AnMaster> oerjan, I still don't get your pun
23:43:12 <Gregor> AnMaster: I developed it as part of a defunct project called crosslibc, then split it out a while ago.
23:43:13 -!- Oranjer has joined.
23:43:24 <AnMaster> Gregor, I know what it does
23:43:31 <oerjan> AnMaster: PIE = proto-indoeuropean, common linguist abbreviation
23:43:32 <AnMaster> you told us before
23:43:51 <Gregor> AnMaster: That was my answer to your question about VCS X_X
23:43:52 <AnMaster> oerjan, oh, never heard that. to me PIE = position independent executable
23:44:09 <AnMaster> oerjan, alternatively (but that is seldom all caps) it is something you can eat
23:44:19 -!- Asztal has quit (Ping timeout: 258 seconds).
23:44:20 <AnMaster> Gregor, oh right thanks
23:44:50 <oerjan> AnMaster: still, all the pieces for the pun were right there in the channel
23:44:58 <AnMaster> oerjan, mhm
23:46:10 <nooga> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
23:46:12 <oerjan> AnMaster: with that and the gelfload i think we can conclude you are acronymically challenged :)
23:46:14 <nooga> I MUST CODE
23:46:21 <AnMaster> oerjan, okay
23:46:37 <AnMaster> oerjan, OPASFF
23:46:48 <oerjan> (disclosure: i didn't get g = Gregor either)
23:46:53 <AnMaster> oerjan, :D
23:46:55 <AnMaster> Gregor, ^
23:46:55 <oerjan> argh!
23:47:08 <AnMaster> oerjan, why "argh"?
23:47:15 <oerjan> OPASFF
23:47:38 <AnMaster> oerjan, oh but MPAAFFS, WALITC
23:48:00 <oerjan> AnMaster: can we just agree to forget this ever happened
23:48:10 <AnMaster> oerjan, forget what happened?
23:48:16 <oerjan> i dunno
23:48:20 <pikhq> nooga: THOU SHALT CODE A FUNGE
23:48:42 <pikhq> 0"EGNUF A EDOC TLAHS OUHT"
23:48:52 <AnMaster> oerjan, anyway, I don't think I should explain what it was due to YWGMAMFMSABP
23:48:55 <nooga> parallel, supercomputer funge
23:49:19 <oerjan> you realize i'm not even trying to decode you at this point?
23:49:24 <AnMaster> oerjan, hah
23:49:50 <AnMaster> oerjan, well it was "Oerjan's Puns Are Sometimes FarFetched" in the first one ;P
23:50:12 <oerjan> oh, but that was obvious
23:50:18 * oerjan ducks
23:50:21 <AnMaster> :P
23:50:50 <oerjan> "my puns are also far-fetched sometimes"
23:51:08 <AnMaster> oerjan, yes
23:51:36 <AnMaster> oerjan, but when you say it you can remove the "also"
23:51:37 <AnMaster> :P
23:51:51 <AnMaster> since you *are* oerjan
23:52:01 <oerjan> the one and almost only
23:52:15 <AnMaster> what?
23:52:19 <oerjan> TOAAOO
23:52:27 <AnMaster> yes you said that
23:52:49 <oerjan> "the one and only" is a cliche phrase
23:52:57 <AnMaster> ah
23:52:59 <AnMaster> right
23:53:22 <AnMaster> WALITC == "well, at least in this case"
23:53:50 <AnMaster> I keep reading that as "waltic"
23:53:55 <AnMaster> rather than "walitc"
23:57:40 <AnMaster> " This specifies the alignment for an integer type of a given bit size. The value of size must be in the range [1,2^23)."
23:57:47 <AnMaster> what a strange range
23:58:30 -!- coppro has quit (Ping timeout: 258 seconds).
23:59:01 -!- Asztal has joined.
2010-04-23
00:08:48 <fizzie> Positive side of a signed 32-bit int with 8 bits stolen for type tag or flags or some such. 2^23-1 is also maximum bit width for a LLVM integer type in the IR. (That's pretty wide already.)
00:10:35 <AnMaster> fizzie, well yes, it is more than enough
00:10:40 <AnMaster> and yeah I guess type tag explains it
00:10:54 <fizzie> i8388607, presumably mapped to C as "signed very very long long int".
00:11:26 <olsner> if each "long" doubles the size - signed long^23 int?
00:13:53 <AnMaster> olsner, now type that out in a pastebin
00:14:13 <AnMaster> olsner, anway, that seems too many? no?
00:14:27 <AnMaster> or did you mean long*23?
00:25:30 -!- cheater2 has quit (Ping timeout: 240 seconds).
00:37:34 <nooga> blah
00:43:01 -!- cheater2 has joined.
00:48:24 -!- Mathnerd314 has quit (Ping timeout: 245 seconds).
00:50:37 <AnMaster> night
00:53:25 -!- Asztal has quit (Ping timeout: 245 seconds).
00:54:21 <Sgeo> Protip: If you have a disability, and mind others with disabilities finding out, don't go to my school
00:59:42 <pikhq> ?
01:00:20 -!- Mathnerd314 has joined.
01:00:31 <oerjan> pikhq: don't ask, he doesn't want us to find out
01:00:32 <Sgeo> My school just sent an email from the students with disabilities office
01:00:43 <oerjan> ah Cc: ?
01:00:47 <Sgeo> They did it by putting each email address in the To: field, apparently
01:01:03 <pikhq> oerjan: Find out about... Wha?
01:01:51 * oerjan leaps gracefully from conclusion to conclusion
01:01:54 <Sgeo> pikhq, he's suggesting that everyone here has a disabilty, and since it sounded like I don't want people with disabilities finding out..
01:02:08 <pikhq> Sgeo: Alaas.
01:02:17 <Mathnerd314> Sgeo: can I have the list? ;-)
01:02:20 <Mathnerd314> no, I just have a few shady friends who like lists of email addresses
01:03:52 * Sgeo gives Mathnerd314 a list
01:03:56 <Mathnerd314> heh
01:04:19 <Mathnerd314> well, I'd need to track my "friends" down first
01:04:34 <oerjan> i guess they don't want you to find them either?
01:05:15 <Mathnerd314> something like that
01:07:48 <Mathnerd314> hmm... an esolang with email addresses :-)
01:08:37 <Mathnerd314> TLD's are commands, usernames are variables, and domains get ignored
01:09:45 <Mathnerd314> not certain what actual language to embed, though
01:10:00 <Sgeo> Don't embed a pre-existing esolang!
01:10:18 <Sgeo> Make one up from scratch!
01:10:26 <Mathnerd314> I was thinking Haskell, actualy
01:10:30 <Mathnerd314> *actually
01:10:35 <Sgeo> That
01:10:41 <Sgeo> That's a .. fairly big thing to embed
01:10:48 <Sgeo> test
01:11:14 <Mathnerd314> well, it's more like a DSL
01:11:56 <oerjan> Simple Programming And Mail
01:12:50 <Mathnerd314> I could go small and just do some lambda calculus
01:13:10 <Sgeo> oerjan, when thinking the ancronym, I ommitted "And" at first
01:13:51 <oerjan> well i tried with Address, but it didn't sound good
01:14:12 <nooga> no shii
01:14:24 <oerjan> completely out of shii
01:16:00 <Mathnerd314> Slightly Pedantic ActiveMail™
01:17:34 <Mathnerd314> Hello.World@print.com
01:18:31 <Mathnerd314> one+two@add.com
01:18:47 <Mathnerd314> something like that
01:19:38 <Mathnerd314> not certain what to do with abuse@ webmaster@ etc.
01:19:59 <Mathnerd314> and I doubt I'll implement it :-/
01:20:05 <nooga> send@mail.com
01:20:17 <oerjan> abuse would halt the program, i think. it would mean it got caught, after all
01:20:39 <Mathnerd314> heh
01:20:48 <Mathnerd314> maybe it should accept actual emails ;-)
01:21:07 <Mathnerd314> and look at the "To" field to see what to execute
01:21:36 <Mathnerd314> so if you put it on a mail server, you have to spam to send it messages :D
01:21:42 <nooga> i'm thinking about lazy grid that uses HTTP as an IPC protocol
01:21:59 <oerjan> Cc too
01:22:00 <nooga> maybe it should be coded in php for extra slowness
01:22:14 -!- Gregor has quit (Read error: No route to host).
01:23:27 -!- Gregor has joined.
01:23:52 <Mathnerd314> no... too close to actual usefulness
01:26:32 <nooga> ale jest dobry
01:26:35 <nooga> ooops
01:26:39 <nooga> wrong window
01:30:49 <oerjan> `translate ale jest dobry
01:31:29 <HackEgo> but it is good
01:32:44 <oerjan> ale is no jest
01:33:42 <pikhq> And yet, it is.
01:34:03 <oerjan> it is, however, yeast
01:37:18 <Mathnerd314> a bot?
01:37:20 <Mathnerd314> `help
01:37:21 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
01:37:42 <Mathnerd314> wow
01:37:50 <Mathnerd314> `sudo
01:37:51 <HackEgo> No output.
01:38:00 <Mathnerd314> heh
01:38:16 <pikhq> Root cannot be had on that system.
01:38:27 <Mathnerd314> oh?
01:38:29 <pikhq> libc won't let you.
01:38:32 <oerjan> famous last words
01:38:34 <Mathnerd314> `ls
01:38:36 <HackEgo> bin \ cube2.base64 \ cube2.jpg \ hack_gregor \ hello.txt \ help.txt \ huh \ netcat-0.7.1 \ netcat-0.7.1.tar.gz \ paste \ poetry.txt \ quotes \ share \ test.sh \ tmpdir.22913 \ wunderbar_emporium \ wunderbar_emporium-3.tgz \ wunderbar_emporium-3.tgz.1
01:38:53 <Mathnerd314> `ls /
01:38:54 <HackEgo> bin \ dev \ etc \ home \ lib \ lib64 \ proc \ tmp \ usr
01:39:04 <Mathnerd314> `sudo ls /
01:39:05 <HackEgo> No output.
01:39:53 <Mathnerd314> `gcc -v
01:39:55 <HackEgo> No output.
01:40:49 <oerjan> `run which gcc
01:40:50 <HackEgo> /usr/bin/gcc
01:41:08 <oerjan> `run gcc -v
01:41:09 <HackEgo> No output.
01:41:46 <Mathnerd314> I don't see really see the point of hacking it
01:42:16 <oerjan> heh
01:43:17 <Sgeo> Does it have backups?
01:43:40 <Mathnerd314> probably
01:48:10 <Mathnerd314> `run sudo 2> out.txt
01:48:12 <HackEgo> No output.
01:48:33 <Sgeo> `cat out.txt
01:48:35 <HackEgo> /bin/bash: line 1: sudo: command not found
01:48:50 <Mathnerd314> heh. no wonder it was failing ;-)
01:49:19 <Mathnerd314> `uname
01:49:21 <HackEgo> Linux
01:52:06 <Sgeo> `uname -a
01:52:08 <HackEgo> Linux codu.org 2.6.26-1-xen-amd64 #1 SMP Sat Jan 10 20:39:26 UTC 2009 x86_64 GNU/Linux
01:52:43 <Mathnerd314> that xen looks unpromising :-|
01:55:03 <oerjan> i've sort of been guessing that the reason HackEgo is so dog slow at the first command you run is because it's booting up a virtual machine somewhere...
01:55:40 <oerjan> Gregor: is that right?
01:56:32 <oerjan> (mind you i don't really know what i'm talking about)
01:57:01 <Gregor> `uname -a
01:57:02 <HackEgo> Linux codu.org 2.6.26-1-xen-amd64 #1 SMP Sat Jan 10 20:39:26 UTC 2009 x86_64 GNU/Linux
01:57:10 <Gregor> oerjan: No, that's not right.
01:57:14 <oerjan> we already did that
01:57:18 <Gregor> oerjan: I think it's just caching.
01:57:23 <Gregor> File caching.
01:57:28 <oerjan> ok
01:57:50 <oerjan> is it your own physical machine?
02:01:32 -!- Oranjer1 has joined.
02:04:15 -!- Oranjer has quit (Ping timeout: 246 seconds).
02:04:27 -!- Oranjer1 has changed nick to Oranjer.
02:23:07 <Gregor> I have rxvt on my DR800SG 8-D
02:23:14 <Gregor> Which I just got today and isn't even fully charged yet :P
02:24:34 <Sgeo> DR800SG?
02:31:46 -!- augur has quit (Ping timeout: 248 seconds).
02:35:50 <Gregor> Sgeo: eInk-based reader.
02:36:06 <Sgeo> Ah
02:36:14 * Sgeo misread that as elink for a few seconds
02:41:46 <oerjan> elk oink
02:48:35 <nooga> b ad pun
02:53:12 <oerjan> are you saying it was b-grade?
02:53:46 -!- calamari has joined.
02:54:02 <oerjan> eek, a squid
02:54:04 <nooga> imho
02:54:14 <nooga> omg, it's calamari
02:54:46 <calamari> hi nooga
02:55:05 <nooga> hello, what's up?
03:01:51 <nooga> oh, in that case i'm probably going to sleep
03:01:59 <nooga> gnight
03:09:09 <pikhq> Yo
03:17:06 -!- nooga has quit (Ping timeout: 248 seconds).
03:25:35 -!- augur has joined.
03:29:04 -!- lament has joined.
03:48:59 -!- poiuy_qwert has joined.
04:13:04 -!- Oranjer has left (?).
04:14:39 -!- augur has quit (Ping timeout: 245 seconds).
04:26:34 -!- Oranjer has joined.
04:38:32 -!- MizardX has quit (Ping timeout: 276 seconds).
04:40:15 -!- augur has joined.
05:26:49 -!- calamari has quit (Quit: Leaving).
05:32:20 -!- oerjan has quit (Quit: leaving).
05:33:20 -!- jcp has quit (Read error: Connection reset by peer).
05:33:49 -!- augur has quit (Ping timeout: 245 seconds).
05:34:33 -!- jcp has joined.
05:40:01 -!- jcp has quit (Ping timeout: 240 seconds).
05:46:27 -!- zzo38 has joined.
05:46:49 <zzo38> Where do spider webs normally emanate from the spider's body?
05:47:01 <Oranjer> the end of the abdomen?
05:47:09 <zzo38> I can see you changed the 332 topic line again
05:47:20 <zzo38> Oranjer: OK, thanks.
05:49:08 -!- oerjan has joined.
06:01:56 -!- Oranjer has left (?).
06:08:41 -!- augur has joined.
06:12:53 <zzo38> What exactly is the "end of the abdomen"
06:13:16 <zzo38> I am making more of my Wikipedia userpage now
06:14:31 <oerjan> zzo38: http://en.wikipedia.org/wiki/Spider_anatomy
06:14:45 <zzo38> Thanks
06:15:04 <zzo38> Now I have three Wikipedia pages open in three buffers
06:15:28 <oerjan> there's a nice diagram in the Internal anatomy section
06:15:48 <zzo38> Thanks, that helped
06:16:06 <oerjan> i guess you are looking for the spinnerets
06:16:10 <zzo38> Yes
06:16:17 <zzo38> You are correct
06:16:45 <zzo38> Sometimes I have a lot of wikipedia pages open at once
06:17:44 <oerjan> that's a common thing
06:17:59 <oerjan> although i've found it's much worse with tvtropes
06:19:00 <oerjan> but then that's an individual thing, some people don't get lost in tvtropes at all, or so they say
06:19:24 <zzo38> Actually the reason I have a lot of Wikipedia pages open at once is not that reason.
06:19:42 <oerjan> i recall xkcd has made comics for both sites about that problem :D
06:19:56 <oerjan> well i guess if you are actually doing _research_...
06:20:17 <zzo38> What number?
06:20:23 <zzo38> (I mean on xkcd)
06:20:33 <oerjan> i don't recall that, a sec
06:21:35 <oerjan> http://xkcd.com/214/ and http://xkcd.com/609/
06:23:02 -!- jcp has joined.
06:23:44 <zzo38> I just played D&D today. Now I selected http://zzo38computer.cjb.net/dnd/options/Make_Food.s and http://zzo38computer.cjb.net/dnd/options/Remove_Hand.s as new spells, and yes the question about spiders is relevant here.
06:25:46 <oerjan> well spider silk isn't really food, although i _think_ spiders eat the old web when rebuilding
06:26:53 <oerjan> or did i just contradict myself there
06:27:10 <zzo38> That isn't what the relevance is, however.
06:27:40 -!- poiuy_qwert has quit (Quit: Leaving).
06:28:29 <zzo38> But thanks anyways.
06:29:43 <oerjan> wait, why would you want to cast "Remove Hand"...
06:34:44 <zzo38> I played D&D today. I used up all the webs unfortunately. But I increased experience level today and good thing I have more than 400 XP remaining because I need that much to cast a spell. Next time: I have to make Diplomacy to the beholder, and then Riichi, and also Zwischenzug.....
06:36:45 <zzo38> Do you like this??
06:37:11 <zzo38> Do you like Riichi and/or Zwischenzug?
06:37:21 <oerjan> i don't play D&D
06:37:52 <oerjan> i have only played a single session of it in my life
06:39:20 <zzo38> Elaborate
06:39:43 <oerjan> it was at the local gamer convention once
06:40:08 <oerjan> a dungeon crawl, i played a paladin i think
06:41:04 <zzo38> What version?
06:41:11 <oerjan> i have no idea
06:41:25 <oerjan> it was > 10 years ago, though
06:41:57 <oerjan> possibly > 15
06:42:14 <zzo38> Did you have any spells/item?
06:42:23 <zzo38> How many eyes does your character have?
06:42:36 <zzo38> What other classes were the other player characters?
06:42:41 <oerjan> i am pretty sure it was a human, i don't remember that much else
06:42:48 <zzo38> OK
06:44:39 <zzo38> I have heard of a Paladin variant class called "DM's Paladin".
06:44:45 <pikhq> 15 years ago implies AD&D. So... There's a whole lot of stuff that could've been.
06:45:02 <zzo38> In the "DM's Paladin" variant, you replace the picture of the paladin with Mother Theresa.
06:45:20 <oerjan> heh
06:45:41 <zzo38> The "Smite Evil" ability is replaced with "Hug Evil".
06:46:04 <zzo38> At high levels, the DM's Paladin even gains the ability to rip the universe a bit sometimes, whether you are meaning to or not.
06:47:38 <zzo38> I would likely not play a paladin character unless it was the DM's Paladin variant.
06:47:58 -!- FireFly has joined.
06:49:46 <zzo38> Also, maybe you didn't know, Riichi and Zwischenzug are not terms in D&D actually, anyways, but I try to do it in D&D anyways!
06:49:58 <zzo38> Riichi is in mahjong, and Zwischenzug in chess.
06:50:30 <oerjan> i don't know german chess terms
06:51:18 * oerjan googles
06:52:16 <zzo38> Do you know Japanese mahjong terms?
06:52:36 <oerjan> not at all
06:52:47 <oerjan> i considered that too obvious to comment on :D
06:53:20 * oerjan realizes doesn't know the norwegian term for zwischenzug either
06:53:24 <oerjan> *he
06:53:48 <oerjan> wikipedia has no norwegian link for it
06:56:44 <oerjan> hm seems the direct translation "mellomtrekk" is used, although i don't recall it
06:57:13 <zzo38> Do you understand what it is, however? And how I might try to use in D&D?
06:57:27 <oerjan> more or less
06:58:27 <zzo38> Do you understand anything about mahjong at all?
06:59:28 <oerjan> not the real came, which iirc you have already told is not the same as the simple pair matching solitaire i've seen on pc's
06:59:33 <oerjan> *real game
06:59:36 -!- tombom has joined.
07:00:33 <zzo38> OK.
07:01:03 <oerjan> (well simple and simple, i guess that can be hard too, because of hidden pieces if nothing else)
07:01:47 <zzo38> "Riichi" is something you can call if you have closed hand, you have to bet 1000 extra points and your hand is locked, so you can no longer adjust it. If you win, you earn +1 han for riichi, unless you also make "ippatsu riichi" or "ura dora" in which case you earn more than +1 han.
07:02:35 <oerjan> oh it's a betting game
07:03:09 -!- coppro has joined.
07:03:43 <zzo38> Actually, mahjong is not really a betting game, although you do bet sometimes.
07:04:54 <zzo38> What you have to do mostly, is make a hand with four sets and one pair, and avoid the other players doing the same. You can choose which one to discard on each turn. However, if you discard the tile someone else needed the last one for their hand, you have to pay them a lot.
07:06:04 <oerjan> ok
07:07:13 <oerjan> i don't really like games where i have to pay careful attention to what everyone else has
07:07:26 <oerjan> or even worse, might have
07:10:27 <zzo38> In Washizu Mahjong it is different, because you can see some of the tiles belonging to other players, if those tiles are transparent. (Washizu Mahjong uses both transparent tiles and opaque tiles. I have a Washizu Mahjong set.) Washizu Mahjong was invented by the fictional character Wahsizu Iwao, which was invented by Nobuyuki Fukumoto, who writes mahjong comics.
07:11:57 <oerjan> i think i'm going to bed
07:12:10 -!- oerjan has quit (Quit: Good night).
07:12:52 -!- zzo38 has quit (Remote host closed the connection).
07:24:10 -!- kar8nga has joined.
07:51:38 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:12:04 -!- lament has quit (Quit: lament).
08:27:45 -!- FireFly has quit (Quit: Hey! Listen!).
08:40:40 -!- lament has joined.
08:49:26 -!- kar8nga has quit (Remote host closed the connection).
09:12:53 -!- lament has quit (Quit: lament).
10:12:38 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
10:17:35 -!- lereah_ has joined.
10:21:33 -!- Axtens has joined.
10:22:19 <Axtens> just wandered over from #rosettacode to see what happens here
10:23:06 <Axtens> there are very few esolans represented on RC ... BF, Befunge ... maybe a couple others
10:24:53 <Axtens> oh .. there's FALSE
10:59:40 <fizzie> The place has been mentioned on this channel a couple of times, but no-one seems to have been inspired enough to start mass-adding "our" languages there.
11:00:17 <fizzie> There's HQ9+, though that's bit of a joke.
11:01:02 <fizzie> Chef's an esolang too.
11:02:47 <fizzie> And SNUSP.
11:03:50 <fizzie> But not very many. Didn't check especially thoroughly there.
11:20:26 -!- wooby has joined.
11:25:37 <wooby> hio
11:30:30 -!- Asztal has joined.
11:34:05 -!- oklopol has joined.
11:39:59 -!- ais523 has joined.
11:48:58 <Axtens> did anyone get any further with the MSG language as per http://esoteric.voxelperfect.net/wiki/MSG ?
11:53:29 <oklopol> a wire connects two objects, but <object> '<message>' <wire> sends to <object> using <wire>.. so what does connecting two objects mean?
11:53:37 <oklopol> nothing?
11:54:11 <oklopol> and then you can just use passon to send stuff to an object without a wire
11:54:31 -!- Tritonio_GR has joined.
11:56:23 <oklopol> also what's the use of creating any new objects? do they do something with the messages you send them?
11:56:38 <oklopol> we should talk about Toi instead, if you ask me
11:57:50 -!- oklopol has changed nick to oklopod.
11:59:07 -!- cheater2 has quit (Ping timeout: 240 seconds).
11:59:09 <oklopod> have you seen rain fall on the surface of water?
11:59:26 <oklopod> that's just fucking awesome i stared at it for hours
11:59:30 <oklopod> maybe more like 3 minutes
12:02:10 -!- Axtens has quit (Quit: insanity).
12:04:43 -!- cheater2 has joined.
12:12:12 -!- FireFly has joined.
12:13:15 -!- nooga has joined.
12:14:16 -!- coppro has quit (Ping timeout: 246 seconds).
12:29:28 <ais523> oklopod: yes, I have
12:36:13 <oklopod> cool
12:36:20 <oklopod> the people on the street didn't seem to see it
12:37:14 <ais523> oklopod: do you mean, onto puddles, or onto lakes? I've seen both, but the puddles more often
12:37:20 <ais523> the UK is really rainy compared to most countries...
12:37:48 <oklopod> it was a river of some sort
12:38:30 <oklopod> there were these small waves or more like ripples due to wind already, and then circles where rain fell
12:38:34 <Sgeo> http://www.youtube.com/watch?v=C0c5yClip4o
12:38:39 <Sgeo> Warning: Brain cells WILL die
12:38:56 <oklopod> so all sorts of stuff going on
12:39:15 <oklopod> that's the first warning about a link i ever took seriously
12:41:09 <oklopod> i'm learning all sorts of stuff
12:41:36 <oklopod> funny e=mc^2 joke in the beginning
12:41:42 <oklopod> not sure i get it
12:42:44 <Sgeo> oklopod, I don't think it's a joke to her
12:47:45 <oklopod> so okay what she's saying is homeopathy works by curing diseases
12:48:11 <oklopod> and that physical models of the world have this concept of energy
12:51:24 <oklopod> chemistry background helpful :P
12:52:01 <oklopod> but i guess you can't argue with results
12:52:37 <oklopod> the guy's knee stopped squeaking
13:40:21 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
14:12:43 -!- nooga has quit (Quit: Lost terminal).
14:57:31 <AnMaster> argh, this is a bad cold...
14:58:31 <oklopod> you should do something about your energy state
14:58:49 <oklopod> your vibrations are totally off sync
15:00:47 <AnMaster> oklopod, if that is the pun I think it is: AUGH
15:02:18 * Sgeo doesn't get it, except in reference to the video
15:02:34 <AnMaster> Sgeo, you know what heat is physically right?
15:02:52 <Deewiant> awib 0.2 is cute: http://awib.googlecode.com/svn/builds/awib-0.2.b (announcement at http://awibiswritteninbrainfuck.blogspot.com/2010/04/announcing-awib-02.html )
15:02:55 <AnMaster> (btw I meant "a cold" as in "sick")
15:02:58 <Sgeo> AnMaster, oh
15:03:20 <AnMaster> Deewiant, literate brainfuck?
15:03:45 <AnMaster> or wait
15:03:45 <AnMaster> no
15:04:10 <AnMaster> wth is that? a polygot?
15:04:35 <AnMaster> ah indeed
15:06:02 <Sgeo> "Loops known to never be entered are removed."
15:06:11 <Sgeo> It should remove all loops that are never entered
15:06:17 <Sgeo> >.>
15:06:17 <AnMaster> Sgeo, how?
15:06:43 <AnMaster> Sgeo, I'm pretty sure that would be the same as solving the halting problem
15:07:07 * Sgeo knows that
15:07:12 * Sgeo was trying to be funny
15:07:19 <AnMaster> oh, it wasn't very obvious
15:07:33 <oklopod> yeah i meant it as a reference
15:08:22 <AnMaster> oklopod, reference to what?
15:08:58 <oklopod> well try grepping for reference, what could i be responding to
15:09:16 <oklopod> for "reference"
15:09:30 -!- BeholdMyGlory has joined.
15:09:53 <oklopod> i don't know why i have to be so mysterious, reference to the vid,
15:09:58 <oklopod> that Sgeo linked
15:10:11 <AnMaster> oh that. didn't look at it
15:10:21 <oklopod> i know that
15:23:31 -!- nooga has joined.
15:39:24 -!- lereah_ has quit (Quit: Leaving).
15:40:56 -!- MizardX has joined.
15:43:09 -!- nooga has quit (Ping timeout: 260 seconds).
15:46:28 -!- zzo38 has joined.
15:46:30 <zzo38> I have fixed this spell: http://zzo38computer.cjb.net/dnd/options/Object_Mirrored.s
15:49:25 -!- kar8nga has joined.
15:50:15 <Sgeo> It's here!
15:51:03 <ais523> Sgeo: wtf?
15:51:17 <ais523> you said that in three chanels for no good reason
15:51:18 <Sgeo> ais523, my Nexus One
15:51:22 <Sgeo> >.>
15:51:36 <pikhq> Hmm. Yup, 3 is the count.
15:51:49 * Sgeo didn an amsg
15:51:56 <pikhq> No, 4.
15:52:04 <pikhq> 3 on this server.
15:56:09 <oklopod> i watched a few of those bush is an idiot videos so i figured it'd be fair to give obama a try too, politics is fun
15:56:27 <pikhq> It's a bit harder with Obama.
15:56:33 <pikhq> You actually have to search.
15:56:55 <pikhq> Unlike Bush, who has given the following line in a speech: "Hey, you want a taco?"
15:57:10 <pikhq> Meant it literally. He interrupted his own speech to ask that question of someone.
15:57:13 <oklopod> i dunno but these are really funny
15:58:24 <oklopod> there are fewer tho, most are just him stuttering, which isn't really surprising if you work 24/7
15:59:03 <oklopod> at least i assume presidents don't have that much free time, i have never actually been one
15:59:16 <pikhq> Bush had a lot of it.
15:59:29 <pikhq> He spent half his time in office on vacation.
16:07:39 -!- oerjan has joined.
16:09:40 <oklopod> also many of these are fun mixes and not whole speeches, they don't seem to be so much about comedy as they are about mocking the stupid nigger
16:10:05 <oklopod> fun mixes being when you repeat a stupid contradictory sentence 50 times
16:10:47 <oklopod> i need to find something else to waste time on
16:13:55 -!- nooga has joined.
16:14:01 <oklopod> party, nooga!
16:14:53 <oerjan> oklopod: seen the additions i made to the Toi page?
16:15:25 <oklopod> nnno
16:15:49 <oerjan> mainly what we talked about
16:16:40 -!- BeholdMyGlory has quit (Remote host closed the connection).
16:18:02 <oklopod> uuueua-e is pretty :)
16:18:16 <oerjan> yeah
16:18:44 <oerjan> i chose the tuple representation (how much to nest x and y in {}'s) specifically for that
16:19:08 <oerjan> otherwise it would have needed to use an adjustment with one of the other algorithms
16:19:22 <oklopod> okay cool stuff, i'll have to fix the interp as soon as possible
16:19:35 <oklopod> right after i've wasted some more time
16:23:18 <oklopod> should all commands be changed to vowels?
16:23:23 <oklopod> :P
16:23:34 <oklopod> it's not like there are programs out there that would suffer
16:23:47 <oerjan> eek
16:24:11 <oerjan> reading is bad enough with those ('s...
16:24:16 -!- charlls has joined.
16:24:54 <oerjan> (btw i convinced myself you cannot have [A]B) commands too without ambiguity)
16:25:21 <oerjan> ([])[]([])[] can parse in two ways
16:25:54 <oklopod> hmm, yes
16:26:38 <oklopod> now when exactly is it ambiguous, you could just disallow those cases
16:26:44 <oklopod> and that would be sweet
16:27:24 <oerjan> well you need the right combination of ('s and )'s so a [] can match in either direction
16:28:33 <oerjan> hm strictly speaking that first []) is redundant
16:29:00 <oerjan> ([]([])[] should also be ambiguous
16:29:10 <oklopod> it is
16:29:21 <oerjan> (redundant because it can only parse that way)
16:29:53 <oklopod> but are ([]([])[] and []([])[]) the patterns that characterize it
16:30:07 <oklopod> and what would that mean exactly, for their usability
16:30:53 <oklopod> if those patterns are anywhere in a program, with anything in between that parses, then parsing is ambiguous
16:31:10 <oklopod> err
16:31:24 <oklopod> yeah okay the sentence was correct, but i misparsed it after typing it
16:31:55 <oerjan> well ignoring (or treating as independent) things inside the []'s and also {}'s
16:32:23 <oklopod> now what does {}) mean exactly...
16:32:37 <oerjan> i wasn't going for that :D
16:32:41 <oklopod> it's the for-each OOPS NOT THAT ONE loop
16:33:04 <oerjan> heh
16:33:15 <oklopod> okay i'll start fixing the interp now
16:33:49 <oklopod> oh
16:33:53 <oklopod> by all commands to vowels
16:33:58 <oklopod> i mean all the commands except nesting
16:34:02 <oerjan> ok
16:34:04 <oklopod> and -<>
16:34:09 <oerjan> sounds more reasonable
16:34:56 <oklopod> r => y, p => o, and possibly i for input and p to have better semantics
16:35:19 <oklopod> and maybe n could be n still
16:35:24 <oklopod> and maybe i could buy a parrot
16:35:25 <oerjan> well except you have more that five (or sometimes six)
16:35:52 <oklopod> what do you mean
16:36:01 <oerjan> aeiou(y)
16:36:13 <oerjan> you're going to need finnish vowels too :D
16:36:37 <oerjan> you didn't mention . and :
16:36:58 <oklopod> oh well i thought those could be . and : too, because they print themselves so...
16:37:08 <oklopod> actually i originally thought just those two for output
16:37:18 <oklopod> but if i add bf complete output, then they become sort of
16:37:49 <oerjan> re-dun-dant
16:38:15 <oerjan> ok
16:38:38 <oklopod> ah there it is
16:39:06 <oklopod> i love how the example program only prints like 6 numbers
16:39:13 <oklopod> it always makes me smile
16:39:52 <oerjan> that inefficient huh
16:40:24 <oklopod> my sets are implemented unbelievably badly
16:40:54 <oklopod> would be easy to fix by for instance using python's set :P
16:41:17 <oklopod> but i didn't feel like it because i'm gonna make some sort of optimization (the hashing thing) anyway
16:41:26 <oklopod> in the next 5 years or so.
16:41:35 <oerjan> in good time.
16:41:47 <oklopod> nah won't take that long, i just added like 7 characters to toi.py
16:42:05 <oklopod> commented some stuff out
16:46:40 -!- charlls has quit (Quit: Saliendo).
16:47:48 -!- charlls has joined.
16:47:54 <oerjan> hm both of your patterns above contain []([])[]
16:48:22 <oerjan> i _think_ anything containing that may be ambiguous
16:48:52 <oerjan> ([]) is sort of a dual to [], it can match with a [] in either direction
16:49:29 -!- charlls has quit (Read error: Connection reset by peer).
16:49:49 <oerjan> except it can still happen that that ([]) doesn't match either neighboring [], but something farther away
16:49:50 -!- charlls has joined.
16:50:10 <oklopod> ...wanna write a program to actually add together two concrete numbers and print the result?
16:50:27 <oklopod> i'd like to test this thing and i'm you know a bit lazy
16:50:59 <oklopod> err
16:51:13 <oklopod> actually at least making a tuple is pretty easy since i can just... make it
16:51:14 <oerjan> well there's an addition program right there on the wiki, just prepend a tuple of your numbers and append a p (or o)
16:52:02 <oklopod> actually i'll upload it first, and ask questions later, so to speak
16:52:43 <oklopod> in the sense that i first do it and then start wondering if i should've
16:52:54 <oklopod> nm
16:56:11 -!- Oranjer has joined.
16:56:22 <oklopod> yay new version is dl'ble
16:56:35 <oklopod> now let's see if it works
16:56:40 <oklopod> and if the example program works
16:57:01 <oklopod> not that i don't trust your magical powers
16:57:20 <oerjan> good, good, then i don't have to
16:57:47 <oklopod> :)
16:58:08 <oklopod> i actually don't have -e yet, i considered adding -e as a separate command, and not letting you use it in the <> notation otherwise
16:58:25 <oklopod> feels impure to let just one letter in there
16:58:26 <oerjan> ok
16:58:51 <oklopod> if there was also E or something else, say if numbers are added, then definitely
16:59:41 <oklopod> btw often when i say i've thought about doing something i'm just coming up with it on the fly
16:59:53 <oklopod> i don't always realize this until i've said it
17:00:16 <oklopod> sometimes i do but who cares it's more convincing than hey my brain wants to tell us something
17:00:35 <oklopod> i don't know what it is yet but it's confident about it
17:00:36 <oerjan> my brain says that's ok
17:00:47 <oklopod> ok
17:01:09 <oerjan> that's intuition
17:02:50 <oklopod> hey my intuition wants to share something with us let's listen
17:03:03 <oklopod> that sounds a bit less than professional
17:04:49 <oerjan> anyway, see you later
17:05:14 -!- oerjan has quit (Quit: Alligator).
17:08:12 <oklopod> aaand time to debug two programs at once
17:08:17 <oklopod> the addition does not work
17:08:19 <oklopod> :P
17:10:18 <oklopod> this language is a bit hard to read, it's as if my brain was used to thinking ('s need a matching )
17:19:38 -!- tombom has joined.
17:31:17 -!- nooga has quit (Read error: Operation timed out).
17:45:23 <AnMaster> wow HUGE hail
17:45:55 <AnMaster> like almost a cm in diameter
17:57:13 <oklopod> oerjan: there was no error really, i just didn't have S be the tuple, but had S contain the tuple
18:01:00 <oklopod> p, which is called d now, has updated semantics that make it nice for debugging, d as in debug prints stuff in the future format for adding sets in code, which is the <> notation plus numbers, <<0>> gets printed like <1>
18:01:32 <oklopod> it's quite beautiful to watch it calculate 3+2 for like 6 seconds
18:01:44 <oklopod> i dunno why i love slowness so much
18:01:47 <oklopod> slowth
18:06:26 -!- seph1 has joined.
18:06:45 -!- augur has quit (Ping timeout: 246 seconds).
18:08:52 * seph1 looks around
18:11:49 <zzo38> Why does the gopher protocol handler I wrote in my browser sometimes break and it reverts to the built-in Mozilla handler until I restart the browser?
18:18:23 <zzo38> Hay! Someone changed one of the userboxes, it now says: "This user thinks in bytecode and dreams of electric sheep."
18:18:38 <zzo38> Here is another one which used to be different when I added it: "This user thinks that the communists ruined the beauty of Chinese characters by simplifying them."
18:21:12 <zzo38> I don't like it much when someone says "this software is for PC" but it really meant it requires Windows. To me, "this software is for PC" should mean that it runs on IBM PC, and does not require an operating system.
18:23:35 -!- nooga has joined.
18:27:44 <zzo38> Knowledge is knowing that tomato is a fruit. Wisdom is knowing that you don't put tomatoes in fruit salad.
18:29:32 <zzo38> Please don' t cross any railings lest suddenness happens!
18:29:39 <zzo38> If they don't have a scientific name for the spider, they don't know what they're doing.
18:30:04 <zzo38> Autocomplete me: "black people ca" --> "black people can secretly levitate"
18:30:30 <oklopod> interesting
18:31:14 -!- augur has joined.
18:31:19 -!- Phantom_Hoover has joined.
18:31:45 <oklopod> <<> << 2 >>> << 3 >>
18:31:46 <oklopod> ( ( ({([r]u}-<<>> { ([r] } rrr
18:31:46 <oklopod> [ ( ({([r]u}-<<>> { rrr ua uuue }
18:31:46 <oklopod> -( ({([r]u}-<<>> { rr r uu } ]
18:31:46 <oklopod> -( ({([r]u}-<<>> { ([r] } rrrr d
18:32:06 <oklopod> err i actually meant to paste just the first line... i think
18:32:11 <nooga> {}{}{}[']
18:32:21 <oklopod> maybe i didn't think
18:32:24 <Phantom_Hoover> On the same lines as what I was talking about last night, can I just load some x86 machine code (not an exec format like ELF) and execute it?
18:32:39 <nooga> Phantom_Hoover: where?
18:32:43 <oklopod> oerjan: numbers now implemented
18:33:01 <Phantom_Hoover> nooga: Soory; into memory.
18:33:11 <Phantom_Hoover> s/Soory/Sorry/
18:33:45 <nooga> under what OS?
18:34:10 <Phantom_Hoover> Linux.
18:34:11 <zzo38> Phantom_Hoover: You can emulate it using Bochs
18:34:14 <nooga> you can
18:34:29 <nooga> it's a bit tricky but sure, possible
18:34:42 <Phantom_Hoover> zzo38: I could, but I'm not doing this for practical reasons.
18:35:08 <nooga> try mmap
18:35:14 <Phantom_Hoover> nooga: I've tried a simple mmap-jmp thing in assembly, but it segfaullts.
18:35:22 <nooga> it shouldn't
18:35:34 <nooga> hmm
18:35:35 <Phantom_Hoover> strace suggests that it's segfaulting at or after the jump.
18:35:51 <nooga> let me check my old code, i've got this implemented somewhere
18:35:52 <zzo38> You can't do it in protected mode, because it requires the kernel to know the format so that it can be loaded.
18:36:16 <Phantom_Hoover> So you can't put some machine code in memory and jump to it?
18:36:50 <nooga> i did that, let me think
18:36:59 <zzo38> Yes you could, but if you are in protected mode, you are still in protected mode. In addition, you can't just do that without a loader. Protected mode requires the kernel to load it at first.
18:37:00 <fizzie> You might need to call mprotect, to make the region executable.
18:37:36 <fizzie> Or use anonymous mmap() with the right protection flags; either-or.
18:38:09 <zzo38> I now have the quote about tomatoes in fruit salad on my Wikipedia userpage.
18:38:15 <fizzie> Maybe not necessarily anonymous either if you're loading from a file, I guess.
18:38:51 <nooga> PROT_EXEC|PROT_READ|PROT_WRITE
18:38:55 <nooga> for mmap
18:39:37 <nooga> zzo38: if you've got a running process, you can omit kernel's loader and exec
18:40:35 <fizzie> gdb'ing a breakpoint at the address you jump into is also always a possibility.
18:41:40 <Phantom_Hoover> nooga: Tried that. fizzie: It's written in assembly (inline drives me mad), so there isn't any debugging information.
18:41:55 <nooga> just uh
18:42:25 <fizzie> If you wrote it in assembly, you shouldn't need debugging information; just use the disassemble command.
18:43:06 <nooga> maybe the code has some adresses that need to be shifted
18:45:23 <Phantom_Hoover> It might be because mmap doesn't return in eax.
18:45:49 <nooga> http://stackoverflow.com/questions/2019923/executing-machine-code-in-memory
18:47:55 <Phantom_Hoover> I tried that.
18:48:04 <Phantom_Hoover> Didn't work.
18:48:05 <nooga> 18:35 < Phantom_Hoover> strace suggests that it's segfaulting at or after the jump.
18:51:17 <nooga> what
18:51:28 <nooga> i didn't paste that
19:11:14 -!- oklopod has quit (Ping timeout: 248 seconds).
19:12:48 -!- oklopod has joined.
19:26:41 -!- nooga has quit (Ping timeout: 260 seconds).
19:34:08 <AnMaster> ais523, strange thing from gcc configure (you might find it funny):
19:34:12 <AnMaster> checking for x86_64-linux-gnu-ar... no
19:34:12 <AnMaster> checking for ar... ar
19:34:12 <AnMaster> checking for ar... no
19:34:12 <AnMaster> checking for x86_64-linux-gnu-ar... no
19:34:12 <AnMaster> checking for ar... ar
19:34:17 <ais523> gcc configure is broken
19:34:27 <ais523> and the only issue there is it isn't showing the paths
19:34:29 <AnMaster> first it find ar, then it doesn't, then it finds it again
19:34:34 <AnMaster> ais523, ah
19:34:38 <AnMaster> it looks funny though
19:35:41 -!- kar8nga has quit (Read error: Connection reset by peer).
19:36:39 <AnMaster> ais523, also I found out that to actually get gcc to build with a specific rpath I need something like:
19:36:40 <AnMaster> LDFLAGS=-Wl,-rpath,/home/arvid/local/llvm/2.7/lib ../gcc-source/configure [...]
19:36:40 <AnMaster> make LDFLAGS=-Wl,-rpath,/home/arvid/local/llvm/2.7/lib LDFLAGS_FOR_TARGET=-Wl,-rpath,/home/arvid/local/llvm/2.7/lib BOOT_LDFLAGS=-Wl,-rpath,/home/arvid/local/llvm/2.7/lib -j2
19:36:49 <AnMaster> as in, all of those LDFLAGS are required
19:37:26 <AnMaster> ais523, that I find really wth
19:37:28 <AnMaster> wtf*
19:41:00 -!- alise has joined.
19:41:30 <alise> A confusion of notions
19:41:47 -!- nooga has joined.
19:42:14 <ais523> hi alise
19:43:19 <AnMaster> ais523, any progress at with feather btw? (It was weeks since I asked last time!)
19:43:30 <ais523> no, why would you expect me to have done?
19:43:34 <ais523> given that I'm pretty RL-busy atm
19:43:42 <AnMaster> ah
19:43:56 <AnMaster> ais523, I have been RL-busy too, so wouldn't have noticed
19:45:09 <alise> Unit news update! Nothing much. At all. Like, barely anything. I discovered there's a /b/tard there. So you can imagine how quite boring my week has been in general if that is big news.
19:46:14 -!- seph2 has joined.
19:46:43 <oklopod> what's a good prime?
19:46:45 -!- seph1 has quit (Read error: Connection reset by peer).
19:47:01 <oklopod> alise: i made a language called toi and i've been advertising it all winter
19:47:10 <alise> oklopod: I heard.
19:47:13 <oklopod> :<
19:47:18 -!- zzo38 has quit (Remote host closed the connection).
19:47:18 <alise> A good prime for what?
19:47:20 <alise> Generally anything "really big" is nice.
19:47:31 <oklopod> give me something relatively big
19:47:37 <oklopod> but not *that* big
19:47:48 <alise> How many decimal digits, approximately, are we going for?
19:47:53 <alise> Want to fit it into a 32-bit integer?
19:47:54 <oklopod> ~7
19:47:57 <oklopod> i don't care
19:48:08 <oklopod> but ~7
19:48:25 <alise> lemme look
19:48:34 <oklopod> oh you heard in the logs?
19:48:46 <oklopod> not really a question
19:48:49 <alise> I just saw today's and you said "toi".
19:48:53 <alise> So.
19:49:14 <AnMaster> oklopod, a good prime? what about 3?
19:49:26 <nooga> optimus prime, apparently
19:49:29 <alise> does 1299827 sound nice to you?
19:49:31 <AnMaster> oh
19:49:38 <AnMaster> (whatever that is)
19:49:41 <alise> there are a lot of others at http://primes.utm.edu/lists/small/100000.txt, but 1299827 is nice because it is the last one.
19:49:45 <oklopod> anyway it's neat, currently trying to optimize the interpreter so that you can manipulate numbers greater than (ridiculously small number)
19:50:21 <nooga> alise: how far from edinburgh are you?
19:50:21 <alise> if 6 is ok and you've suddenly become a decimal fan, 888887 is nice because it has a lot of 8s in it
19:50:24 <oklopod> actually the current interp can barely handle operations on numbers of size 7, but you could easily go to 20 with simple optimizations
19:50:32 <alise> also 1000003
19:50:34 <alise> that's 7
19:50:40 <alise> nooga: why?
19:50:43 <alise> wanna visit?
19:50:51 <nooga> no
19:50:59 <alise> why then
19:51:34 <alise> My Oracle (name of Maps, Google) tells me that road separates me and Edinburgh by 95.8 miles.
19:51:41 <nooga> i'm just trying to make myself sure that the distance is big enough
19:51:42 <alise> It may be less if you count, say, lakes as being passable.
19:51:45 <nooga> uuuuffff
19:51:53 <alise> I'm not going to murder you.
19:51:59 <nooga> still
19:52:07 <alise> I'm imprisoned Monday-to-Friday; too tired on Friday; and hurriedly doing more interesting things the other two days.
19:52:30 <pikhq> Good afternoon, madame alise.
19:52:46 * alise wonders if "madame" is correct for this nick's customised gender structure..
19:53:03 <alise> I think so.
19:53:03 <alise> *...; .. is definitely not correct anywhere.
19:53:46 <nooga> i think i'm going to dring with scots
19:53:49 <nooga> drink* ffs
19:53:55 <pikhq> So. Unit has been motherfucking boring. Got it.
19:54:18 <pikhq> Though a bad idea, you *could* make it much more interesting by feigning various mental disorders.
19:54:45 <pikhq> Hallucinations are ever-popular.
19:54:47 <alise> "I can't go to class today... the /other beings/ are there."
19:55:04 <alise> "Ford^WNurse, you're turning into a penguin. Stop it."
19:55:56 <Phantom_Hoover> What's this about Edinburgh?
19:56:19 <nooga> http://www.youtube.com/watch?v=TeOvMhkK5pI CTO
19:56:28 <nooga> Phantom_Hoover: i'm in EDI
19:56:30 <alise> Presumably, nooga arrives there sometime.
19:56:33 <alise> ...Or in the past.
19:56:50 <alise> nooga: You know, if you visited me I'd only slightly murder you.
19:56:53 <nooga> I'm stuck here till monday
19:57:05 <nooga> alise: bah, i don't want to
19:57:13 <AnMaster> oklopod, what do you mean "of size"?
19:57:28 <Phantom_Hoover> alise: Why do you want to kill nooga?
19:57:30 <alise> "Stuck"; a nice word to describe Britain.
19:57:33 <alise> Phantom_Hoover: He's irritating!
19:57:47 <Phantom_Hoover> *runs like hell*
19:57:47 <nooga> i prefer scots... i can't understand their blabbering and they're too drunk to laugh at me ;]
19:58:10 <Phantom_Hoover> They all think I'm English...
19:58:23 <pikhq> nooga: You just need to reverse the Great Vowel Shift. ;)
19:58:32 <nooga> ;p
19:58:42 <AnMaster> pikhq, huh?
19:58:50 <alise> The Great Vowel Shift of 1822.
19:58:51 <Phantom_Hoover> And, depending on your accent, strip out ~half the "r"s.
19:59:00 <alise> A war in the land of linguistics!
19:59:03 <nooga> RRRRRRRRRRRRRRRRRRRAIT
19:59:04 <pikhq> alise: XD
19:59:08 <Phantom_Hoover> alise: I thought it was a drawn-out thing.
19:59:09 <alise> Lo, prescriptivist blood did spill!
19:59:10 <nooga> MAIT
19:59:18 <alise> http://en.wikipedia.org/wiki/Great_Vowel_Shift
19:59:21 <alise> THE TIMES THERE ARE ALL LIES
19:59:22 <alise> ALL LIES
19:59:26 <alise> WRITTEN BY THE ENEMY
19:59:29 <AnMaster> also I think the Scottish accent isn't too hard to understand. With the exception for the odd strange phrase. But much less so than Australian I find
19:59:38 <alise> E before I except in a few rare cases.
19:59:57 <nooga> beh, i've been in oysralia an it was okay
20:00:02 <pikhq> AnMaster: One of the most notable bits about the Scots *language* is that it retains a large number of vowels from before the Great Vowel Shift, IIRC.
20:00:06 <Phantom_Hoover> Trying to rationalise English spelling is pointless.
20:00:11 <Phantom_Hoover> It's just insane.
20:00:22 <AnMaster> pikhq, remind me, what was the Great Vowel Shift now again?
20:00:30 <alise> http://en.wikipedia.org/wiki/Great_Vowel_Shift
20:00:35 <alise> Oh, I forgot; still ignored.
20:00:37 <alise> Child.
20:00:47 <alise> (I actually did forget, for once.)
20:00:49 <nooga> i think scottish should write english using danish alphabet ;p
20:00:55 <pikhq> All the vowels shifted in Middle English over some 100 years.
20:00:58 <nooga> or something like that
20:01:02 <pikhq> This produced Early Modern English.
20:01:08 <AnMaster> nooga, what? with ø and æ?
20:01:12 <nooga> uhum
20:01:26 <nooga> and other weird vowels
20:02:19 <nooga> oh, btw. i've went to a museum and saw a book written in older english with all that f-like characters we used to use here some time ago
20:02:21 <Phantom_Hoover> AAAARRRGH! I stumbled into a Party Political Broadcast!
20:02:24 <pikhq> It was technically also occuring well into the 1700s, but it's the initial shift into Early Modern English that's actually interesting.
20:03:24 <AnMaster> Phantom_Hoover, what is that?
20:03:42 <AnMaster> pikhq, right
20:03:59 <alise> Hmm, MathJax = jsMath's next version. I thought it was a ripoff.
20:04:02 <Phantom_Hoover> AnMaster: "Vote for me" stuff.
20:04:17 <pikhq> Also, the *degree* of the shift produces a large amount of the variance in English dialects in the UK.
20:04:25 <AnMaster> Phantom_Hoover, as in, an ad?
20:04:29 <alise> Phantom_Hoover: Which party?
20:04:31 -!- jcp has joined.
20:04:35 <alise> AnMaster: An ad that lasts five years, sure...
20:04:48 <AnMaster> pikhq, heh
20:04:50 <pikhq> (not so much in the US. We forked from a few dialects and had a decent number of our own vowel and consonant shifts)
20:05:11 <Phantom_Hoover> alise: Tories.
20:05:21 <alise> Phantom_Hoover: RUN! RUUUUUN!
20:05:29 <nooga> hrm
20:05:32 <alise> You are not safe!
20:05:34 <nooga> food
20:05:35 <alise> NOBODY IS SAFE
20:06:15 <Phantom_Hoover> alise: I tried, but by the time I realised I had been listening to Cameron it was over.
20:06:24 <pikhq> If only the Great Vowel Shift hadn't coincided with the printing press being introduced in Britain.
20:06:25 <nooga> in scootland
20:06:27 <alise> The rapture is at hand.
20:06:38 <alise> Woe, oh woe.
20:06:57 <Phantom_Hoover> Really? I haven't noticed any Christians disappearing...
20:07:12 <Phantom_Hoover> Though I try to dissociate with the strongly-religious...
20:07:13 <alise> The... non-Conservative rapture!!!
20:07:16 <pikhq> (this is the reason for much of our bloody bizarre orthography)
20:07:23 <alise> Every non-Conservative shall be sent to a land of pain and torture!
20:07:32 <alise> It is the singularly most unrealistic rapture possible, which is EXACTLY WHY IT'S HAPPENING!
20:07:36 <nooga> rapture rapture
20:07:58 <alise> Note: the land of pain and torture is more commonly known as "a Britain governed by the Tories".
20:08:44 <Phantom_Hoover> At least it could be worse.
20:10:17 <alise> All I can think of is the BNP.
20:10:17 <alise> Well, and UKIP.
20:10:17 <alise> And a dozen other parties.
20:10:17 <alise> But they're not exactly at risk of running the country. :-)
20:11:14 <Phantom_Hoover> Or the Tories might not have decided that moving somewhat to the left was a good idea.
20:11:57 -!- nooga has quit (Ping timeout: 260 seconds).
20:12:17 <Sgeo> Hi alise
20:12:32 <alise> Somewhat; but that's still not nearly left enough. Maybe a few more minutes 'til meltdown, but what could we do except come more to the sickening reality of our imminent demise?
20:12:43 <alise> Or, you know, maybe I'm overly melodramatic.
20:13:03 * Sgeo has his Nexus One in his hand
20:13:10 -!- wooby has left (?).
20:13:24 <alise> Sgeo: Good boy.
20:13:24 <Phantom_Hoover> Sgeo: Where else?
20:13:28 <alise> Phantom_Hoover: HIS PANTS
20:13:40 <Phantom_Hoover> Thanks for that image...
20:14:03 <AnMaster> very strange thing happened
20:14:11 <Sgeo> I'm not allowed to put the SIM card in it though, and I don't have the password for the wireless with me
20:14:14 <AnMaster> booted an old dell computer with an usb keyboard attached
20:14:18 <Sgeo> But I did put the SIM in anyway earlier
20:14:19 <AnMaster> know what BIOS told me?
20:14:21 <Sgeo> So I got to play a bit
20:14:31 <AnMaster> "Please attach USB keyboard to port at the back of computer"
20:14:31 <Sgeo> Right now, using it as a VERY expensive MP3 player
20:14:45 <AnMaster> I had connected it to one at the front
20:14:48 <AnMaster> very strange
20:15:07 <AnMaster> <Sgeo> I'm not allowed to put the SIM card in it though, and I don't have the password for the wireless with me <-- why aren't you allowed to do that?
20:15:33 <Sgeo> My dad wants to hide the fact that he bought a new phone for me from my step-mother
20:15:53 <Sgeo> When my step-mother's mom comes back, I'm just supposed to say it's a PDA
20:15:58 <AnMaster> Sgeo, so, you won't ever be able to use it as a phone?
20:16:00 <Sgeo> Eventually, we'll get a new line for it
20:16:05 <AnMaster> huh
20:16:16 <alise> Sgeo: Your family is crazy. :-)
20:16:28 <Sgeo> And in the process, costing money, because my dad's worried about my step-mother being upset about spending money
20:16:29 <Sgeo> alise, yes
20:16:46 <alise> Sgeo: How about this for a line: "It's my dad's; I'm borrowing it".
20:16:53 <AnMaster> bbl
20:17:05 <Phantom_Hoover> Is there anyone in a position to upgrade the wiki? It's using a 2-year-old version of the wiki software.
20:17:10 <Sgeo> alise, when my step-mother's mom sees me around with it all the time?
20:17:28 <alise> Well, then there is no real line you can take.
20:17:49 <alise> Phantom_Hoover: Only graue, and disturbing him usually leads to Monstrous Things. Not really, but we're all pretty content.
20:18:02 <alise> Sgeo: It's a phone, it was bought. Hiding these terribly obvious things is impossible.
20:18:23 <Phantom_Hoover> I seem to recall thinking that there was something useful that the wiki didn't have, but I forget.
20:18:24 <Sgeo> alise, it's temporarily being hidden, not permanently
20:18:26 <Sgeo> But I agree
20:18:55 <Sgeo> The controls for Frozen Bubble on Android are a bit unintuitive
20:18:58 <alise> "It's fine that money was spent and hid it from me. If you'd just spent it and /not/ hid it... well, then there'd be trouble!"
20:20:30 <alise> I like big numbers.
20:20:35 <AnMaster> Phantom_Hoover, probably less security issues ;)
20:21:43 <alise> Phantom_Hoover: There is; probably lots.
20:21:46 <alise> But eh.
20:22:03 * Sgeo hasn't followed MediaWiki updates since.. 2004, maybe?
20:22:05 <Sgeo> 2006?
20:29:32 <alise> hi
20:29:43 <Sgeo> hi again
20:30:42 -!- charlesq__ has joined.
20:32:52 <pikhq> Sgeo: Your family is freaking crazy.
20:33:55 -!- charlls has quit (Read error: Connection reset by peer).
20:34:23 * Sgeo decides that the trackball is useful for something: Playing Frozen Bubble
20:36:27 <alise> So, /me has a long term project.
20:37:20 <Sgeo> Oh?
20:37:32 <AnMaster> Sgeo, your phone has a track ball?
20:37:39 <alise> Sure.
20:37:57 <alise> Sgeo: A computer algebra system/dependently-typed programming language: two for the price of one.
20:38:21 <AnMaster> pikhq, no it is a fairy tail. It is a classical motif. Step mother and that ;)
20:38:21 <Sgeo> Sounds fun
20:38:21 <alise> This will be the basis of my OS. Plus, a large database of constructions of mathematical objects in this language, from the empty set to the (computable) reals and beyond.
20:38:31 <Sgeo> I should probably learn what dependent typing is.
20:38:36 <alise> Sgeo: Oh, /theorem prover, too.
20:38:45 <alise> Dependently-typed programming languages <=> theorem verifiers.
20:38:57 <alise> Add lots and lots of sugar and automated tactics and you get a full-blooded theorem provers.
20:38:58 <alise> *prover
20:39:08 <pikhq> AnMaster: But where's the fairy godmother?
20:39:53 <AnMaster> pikhq, you have to to move with the times. Gender equality is all the rage these days. I would say "whoever bought you a Nexus One"
20:40:20 <pikhq> That's his father, not his godfather.
20:40:26 <pikhq> And still not a fairy.
20:40:57 <alise> Did you know that 11^11 = 285311670611?
20:40:58 * Sgeo takes a pointless video of IRC with his phone
20:41:00 <alise> I bet you didn't.
20:41:16 <pikhq> alise: No, but my computer could soon discover it.
20:41:24 <alise> Indeed it could.
20:41:27 <Sgeo> The video mode doesn't have auto-focus :(
20:41:27 <alise> And that is the beauty of computers!
20:41:33 <pikhq> :)
20:41:33 <AnMaster> <pikhq> That's his father, not his godfather. <-- hm true
20:41:52 <AnMaster> but wrt. fairy: in disguise of course
20:42:03 <pikhq> That makes Sgeo fae.
20:42:14 <AnMaster> pikhq, sure it is inherited?
20:42:44 <AnMaster> pikhq, I thought it was more a job description (or maybe that is a unique feature of Discworld faeries?)
20:43:07 <pikhq> That's a unique feature of Discworld.
20:43:15 <pikhq> You fail at the good folk.
20:43:27 <AnMaster> pikhq, sure, but I prefer the Discworld variant
20:43:42 <AnMaster> pikhq, plus we don't have this in Swedish folk lore
20:43:46 <AnMaster> we have different stuff
20:44:01 <pikhq> I prefer the good and proper folklore variant.
20:44:18 <pikhq> Before they got to be all nice, pretty, shiny, and nice.
20:44:42 <alise> pikhq: Also, n^n = pi, where n = e^{W(\log{\pi})} ~ 1.85411.
20:44:59 <alise> Self-exponentiation is fun.
20:45:03 <AnMaster> pikhq, hm in the folklore, are elves == faeries?
20:45:08 <alise> AnMaster: no
20:45:15 <Phantom_Hoover> What is "?
20:45:17 <Phantom_Hoover> W?
20:45:31 <alise> http://mathworld.wolfram.com/LambertW-Function.html
20:45:46 <pikhq> AnMaster: No, different folklore.
20:46:08 <AnMaster> pikhq, huh
20:46:21 <Phantom_Hoover> Is log(0) just undefined?
20:46:40 <AnMaster> Phantom_Hoover, yes?
20:46:48 <alise> yes
20:46:51 <Phantom_Hoover> OK.
20:47:32 <pikhq> Though it's hard to say, as what exactly constitutes a "fairy" changes from tale to tale.
20:47:38 <pikhq> Sometimes, it will include any magical being.
20:47:39 <alise> Indeed for any m, n^n = m is solved by n = e^W(log(m)), so long as e^W(log(m)) - 1 != 0, and log(m) != 0.
20:47:55 <alise> How do I know this? The oracle of Wolfram Alpha, naturally.
20:47:56 <AnMaster> Phantom_Hoover, remember what log actually means. y=log_a(x) <=> a^y = x
20:48:02 <alise> How to win: CHEAT
20:48:07 <AnMaster> Phantom_Hoover, you can't get 0 there. a^0 = 1
20:48:28 <alise> ^echo a^0 is undefined.
20:48:28 <fungot> a^0 is undefined. a^0 is undefined.
20:48:32 <alise> oh wait it's ignored
20:48:35 <alise> ]oi a^0 is undefined.
20:48:38 <alise> aw, it's gone
20:48:47 <alise> !sh echo a^0 is undefined.
20:48:51 <EgoBot> a^0 is undefined.
20:48:55 <alise> hooray
20:48:59 <alise> another bot for AnMaster to ignore
20:49:13 <AnMaster> huh why are the bots spamming
20:49:19 <pikhq> Big thing, though: elves are Germanic folklore. Fairies are Celtic.
20:49:31 <alise> spamming truth, yeah
20:49:36 <AnMaster> also, a^0 = 1
20:49:42 <AnMaster> not undefined
20:49:47 <alise> pikhq: please correct AnMaster's error
20:50:13 <pikhq> AnMaster: The bots are not spamming, alise is making use of the botten.
20:50:26 <AnMaster> pikhq, well he is incorrect. a^0 = 1 for all a
20:50:28 <AnMaster> well
20:50:33 <AnMaster> not for 0^0 iirc
20:50:42 <AnMaster> but for all a != 0
20:50:55 <AnMaster> http://en.wikipedia.org/wiki/Exponentiation#Exponents_one_and_zero
20:50:59 <AnMaster> see there
20:51:01 <pikhq> alise: He's right.
20:51:08 <AnMaster> just checked on my calculator too
20:51:12 <AnMaster> it does what I said
20:51:20 <AnMaster> (TI-83+)
20:51:34 <pikhq> I'm not sure what that property made convenient, though.
20:51:58 <pikhq> (I can only presume that was defined for convenience's sake somewhere)
20:52:10 <alise> a^0 is /not/ defined
20:52:17 <alise> a^0 is just most conveniently 1 most of the time
20:52:27 <alise> er wait
20:52:32 <alise> i thought he said 0^0...
20:52:42 <alise> holy shit, i've mistyped it all the way above
20:52:45 <AnMaster> pikhq, wikipedia seems to try to explain that
20:52:51 <alise> ... :|, forgive me i've just come back from hell
20:52:56 <AnMaster> but I can't paste it since the math is rendered as images here
20:52:59 <pikhq> alise: forall a where a != 0, a^0 = 1;forall a where a = 0, a^0 is undefined. :)
20:53:03 <alise> yeah
20:53:06 <pikhq> AnMaster: Is a thinko apparently.
20:53:08 <alise> although using a TI-83+ calculator to verify mathematical things is lunacy
20:53:16 <AnMaster> pikhq, hm?
20:53:23 <pikhq> Pretty damned bad one, but hell. I've done worse.
20:53:30 <pikhq> AnMaster: He's been thinking you were discussing 0^0.
20:53:38 <AnMaster> oh, well I said I didn't
20:53:44 <pikhq> Yes.
20:53:50 <pikhq> Like I said. Thinko.
20:53:51 <AnMaster> anyway
20:53:57 <AnMaster> a log_0() doesn't make sense
20:54:08 <AnMaster> thus a = 0 would make no sense whatsoever in this context
20:54:22 <pikhq> log_0 is... Probably stupid.
20:54:40 <AnMaster> pikhq, is log_0 even definable?
20:55:22 <pikhq> AnMaster: Not as a function.
20:55:52 <AnMaster> lets see, log_a(x) = ln(x)/ln(a) right?
20:55:56 <AnMaster> or was it the other order?
20:55:59 <oklopod> 0^0 = 1 by knuth
20:56:01 <alise> log_0(x) = nullity
20:56:08 <AnMaster> in which case log_0() is not defined yeah
20:56:12 <alise> oklopod: of course, for almost all purposes 0^0=1
20:56:13 <AnMaster> pikhq, then how else could you define it?
20:56:16 <AnMaster> oklopod, huh?
20:56:29 <pikhq> Hmm. Actually, yeah, log_0(x) is most definitely a function. log_0(x) = _|_
20:56:30 <pikhq> >:D
20:56:37 <oklopod> he said it should be 1
20:56:48 <AnMaster> pikhq, yes it is undefined for all values
20:56:56 <alise> well ln(0) is only undefined if log_e(0) is undefined
20:56:58 <alise> circularity! :-D
20:57:00 <AnMaster> oklopod, huh
20:58:40 <pikhq> alise: Well, lim x->0 log_e(x) = -oo... Which makes lim a->0 log_a(x) = 0, I think... Not useful, though. :)
20:59:45 <alise> who let you define x/-oo = 0 EH
20:59:46 <alise> EH EH
21:00:05 <pikhq> MY ASS
21:00:19 <alise> don't get no mo lim x->-oo n/x on me beyotch
21:02:03 <AnMaster> pikhq, heh
21:03:10 <AnMaster> oh btw from logs: "12:53:08 <alise> although using a TI-83+ calculator to verify mathematical things is lunacy" <-- sure, I didn't actually need it to know I was correct.
21:03:20 <AnMaster> were*
21:03:27 <alise> More like a TI-83+ is not a paragon of mathematical precision.
21:03:36 <alise> And if you are to read logs for the purpose of conversing with me, unignore me.
21:03:37 -!- Slereah has quit (Ping timeout: 240 seconds).
21:04:38 <pikhq> 15:03 < alise> And if you are to read logs for the purpose of conversing with me, unignore me.
21:04:46 <pikhq> Smartest thing I've heard said all week.
21:05:14 <alise> Using bots to make snarky comments, on the other hand, is A-OK.
21:05:14 <AnMaster> I only read it because I wanted to see how alise reacted to noticing he was wrong
21:05:15 <AnMaster> :P
21:05:41 <alise> AnMaster is doing a very bad job of attempting to trod on a dog with a bullet in its chest.
21:05:49 <alise> Like with socks.
21:05:52 <AnMaster> I don't plan to continue to read the logs further
21:06:00 <pikhq> AnMaster: Dude, seriously, /unignore him or *actually ignore him*.
21:06:17 <AnMaster> pikhq, yes I closed the log now.
21:06:23 <pikhq> Your ignoring thing is like "LALALALA IM NOT LISTENING", except somewhat less infantile.
21:06:38 <pikhq> alise: Hah.
21:06:53 <alise> AnMaster? --Less infantile?
21:07:06 <alise> I'm actually somewhat infantile in a quite literal sense, at least I have an excuse!
21:07:40 <pikhq> alise: Vi vejnas unan Interneton.
21:07:55 <alise> Ixnay on the Esperanto. Ay.
21:08:10 <pikhq> 日本語が良いか。
21:08:25 <alise> Your caret is a carrot.
21:08:32 <alise> (THAT WOULD BE AN AMAZING FONT)
21:09:00 <pikhq> Wouldst thou prefer a more Anglo-Frisian tongue?
21:09:39 <pikhq> If so, then thou hast won one Internet.
21:09:42 <oklopod> okay i have utterly failed to optimize this thing to handle numbers without adding special code for them :(
21:09:45 <alise> Very Modern English would work, but -- not too modern.
21:09:57 <alise> oklopod: tell me how it goes and i'll sprinkle magic on it
21:10:37 -!- Slereah has joined.
21:10:51 <alise> Photographic jesus
21:13:10 <alise> The reproach.
21:14:25 <oklopod> code is linked on the page
21:14:58 <alise> oklopod: link the page
21:15:02 <oklopod> the basic idea of mine fails because even though i got memory usage down, turns out constructing the numbers takes about the same amount of time
21:15:06 <alise> I am a genius and a prodigy; you do the banal work.
21:15:16 <alise> I even get computers to do most of my arithmetic for me.
21:15:17 <oklopod> http://www.esolangs.org/wiki/Toi
21:15:19 <alise> :P
21:15:46 <alise> "There is no set called the error set."
21:15:51 <alise> is there a set called the purple banana set?
21:15:51 <oklopod> well there isn't
21:15:58 <oklopod> no, why would you think that
21:16:10 -!- pikhq_ has joined.
21:16:27 <alise> well i wouldn't think there is a set called the error set either
21:17:09 <AnMaster> <pikhq> Your ignoring thing is like "LALALALA IM NOT LISTENING", except somewhat less infantile. <-- iirc alise said that phrase a few times
21:17:22 <oklopod> good point, anyway the point of the language was to make something where all operations are "global" in some sense
21:17:43 <oklopod> it's a rather new paradigm, afaik
21:17:53 <alise> oklopod: well optimising numbers here ~= optimising von neumann ordinals basically yeah?
21:18:04 <alise> ~= optimising certain sets
21:18:13 <oklopod> absolutely horrible paradigm implemented with a language with a horrible syntax that's inherently horribly slow
21:18:14 -!- pikhq has quit (Ping timeout: 276 seconds).
21:18:14 <oklopod> but anyway
21:18:17 <alise> so compress sets. that's my amazing prodigal discovery
21:18:19 <oklopod> yes
21:18:24 <alise> pay me now
21:18:26 <alise> (in money)
21:18:29 <oklopod> yeah but operations on the sets...........................
21:18:37 <oklopod> i suppose everything's solvable
21:18:39 <alise> optimise them also
21:18:42 <oklopod> but it's not trivial :-(
21:18:55 <alise> how slow is constructing a 7-digit number exactly?
21:19:03 <oklopod> well i can get up to the number 12
21:19:04 <alise> well, roughly
21:19:06 <oklopod> then it hangs
21:19:12 <alise> are we talking on the order of years here?
21:19:17 <alise> millennia?
21:19:17 <oklopod> 12 takes a few minutes
21:19:19 <alise> days?
21:19:23 <oklopod> exponential grown
21:19:25 <oklopod> *growth
21:19:25 <Sgeo> alise, http://www.youtube.com/watch?v=C0c5yClip4o
21:19:30 <alise> oklopod: I was about to ask about the growth
21:19:32 <oklopod> so infinite time
21:19:41 <oklopod> given some rounding error
21:19:42 <alise> oklopod: I don't think exponentials work like that
21:19:44 <alise> :P
21:19:45 <oklopod> i do.
21:19:52 <alise> Sgeo: old
21:19:54 <alise> n^huge = infinity
21:19:54 <oklopod> learn ur math dud
21:19:55 -!- pikhq_ has changed nick to pikhq.
21:20:39 <alise> oklopod: anyway so what's the basic issue, like what construction operation takes too long
21:20:47 <alise> is it
21:20:47 <alise> # 'a' changes S to S ∪ {t | t ∈ s, s ∈ S}.
21:21:01 <alise> or # 'r' changes S to {t | t ∈ s, s ∈ S} (this is decrement if S is an ordinal).
21:21:12 <oklopod> the basic issue is you can never create a number of any considerable size
21:21:20 <alise> right right
21:21:32 <alise> but which operation blocks this, or is it just the sheer size of operations
21:21:33 <oklopod> i now have a data structure for *having* big numbers tho
21:21:39 <oklopod> so yeah just construction
21:21:41 <oklopod> now
21:21:45 -!- Asztal has quit (Ping timeout: 265 seconds).
21:21:50 <oklopod> because of my geniustructure
21:22:03 <alise> like wrt a/r, I'd consider storing a set as X \cup {t | t \in s, s \in Y}
21:22:06 <alise> so you just store X,Y
21:22:11 <alise> along with whatever else you need for general sets...
21:22:19 <alise> but maybe it is just the sheer manifoldosity of operations
21:22:25 <alise> in which case just optimise some loops :P
21:22:44 <oklopod> is that set representation really closed under set operations?
21:23:01 <alise> probably not, just add enough variables until it works
21:23:09 <alise> but it sure would make a/r O(1)...
21:23:14 <oklopod> i mean yeah sure i could just do everything lazily
21:23:49 -!- Asztal has joined.
21:24:03 <oklopod> actually i think what i have now might give me O(n^2) construction of numbers, that's what i originally hoped for
21:24:06 <alise> imo it's a very pretty representation of sets :P
21:24:08 <oklopod> i have to think about it
21:24:45 <alise> X \cup {t | t \in s, s \in Y} <-- i think this can obviously do anything a set can
21:24:57 <alise> ofc it's not very usefu
21:24:57 <alise> l
21:25:11 <oklopod> so if you do a on it, what do you get?
21:25:32 <oklopod> what's a(X \cup {t | t \in s, s \in Y})
21:25:40 <alise> let [[X,Y]] := X \cup {t | t \in s, s \in Y}
21:25:48 <alise> then a([[X,Y]]) := hmm
21:26:06 <alise> a([[X,Y]]) := [[ [[X,Y]], [[X,Y]] ]]
21:26:12 <alise> easy
21:26:17 <alise> a(S) := [[S,S]]
21:26:21 <oklopod> umm
21:26:27 <alise> r(S) := [[{}, S]]
21:26:29 <alise> or what do you mean
21:26:43 <oklopod> that's not of the same form
21:26:50 <oklopod> because [[X, Y]] is not a set
21:26:57 <alise> yeah it is, I defined it to be so :P
21:27:00 <alise> <alise> let [[X,Y]] := X \cup {t | t \in s, s \in Y}
21:27:13 <oklopod> or if it's considered one, then you just have a tree, you're just storing the operation
21:27:25 <alise> true, but it avoids a loop in r/a
21:27:29 <alise> but fair enough, lemme try it the other way
21:27:48 <alise> meh, you're right
21:27:53 <oklopod> i'm sometimes right
21:28:01 <alise> sometimes.
21:28:04 <alise> or areyou an oracle
21:28:29 <oklopod> it'd be kinda cool to code a bf interpreter in toi when no interpreter could even run a hello world in a million years
21:28:32 <oklopod> i mean currently
21:28:58 <oklopod> and i doubt anyone other than me is interested in trying
21:29:07 <AnMaster> oklopod, heh
21:29:50 <oklopod> one thing i could do is just switch to <^n >^n ordinals... but that'd be kinda boring
21:30:41 <oklopod> then if you'd store sets as (depth, "leaf element"), you'd have optimized numbers completely
21:32:41 <oklopod> should be really trivial to make a bf interp actually, just make a stack out of tuples
21:33:26 <alise> well do that :P
21:33:32 <alise> kinda boring but c'mon, big numbers are nice
21:33:33 <oklopod> i might!
21:33:53 <oklopod> well i'm still weighing my options
21:34:51 <oklopod> maybe i'll optimize numbers first for funsies
21:36:33 <AnMaster> arch/x86/kernel/head_32.S: Assembler messages:
21:36:33 <AnMaster> arch/x86/kernel/head_32.S:64: Warning: shift count out of range (32 is not between 0 and 31)
21:36:34 <AnMaster> hum
21:36:44 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
21:41:10 -!- coppro has joined.
21:53:10 <Sgeo> My phone just fell
21:53:24 <Sgeo> Fortunately, it was an inch or so above the ground before it fell
22:00:02 <coppro> meh
22:13:02 -!- tombom_ has joined.
22:15:11 -!- tombom has quit (Ping timeout: 258 seconds).
22:21:01 <alise> Sgeo: Wow, you do drop it a lot.
22:25:19 -!- seph2 has quit (Read error: Connection reset by peer).
22:29:52 <AnMaster> Sgeo, You *do* need a rugged phone
22:38:07 -!- wareya has changed nick to warey.
22:38:07 -!- warey has changed nick to wareya.
22:38:30 <wareya> Fuck, it doesn't reset identification when you do that on freenode?
22:43:08 <oklopod> alise: i just calculated 20+20!
22:43:14 <alise> oklopod: AWESOME
22:43:14 <oklopod> huge improvement! :P
22:43:47 <Sgeo> How many digits is 20+20!?
22:44:20 <oklopod> ?
22:44:22 <coppro> wareya: no
22:44:32 <oklopod> 40 needs 2 digits
22:44:42 <coppro> is this an INTERCAL library or something?
22:44:46 <Sgeo> 40 seems too small to be 20+20!
22:44:58 <oklopod> no turns out it's just rigt
22:45:01 <oklopod> *right
22:45:13 <oklopod> coppro: this addition thing? is intercal slow?
22:45:21 <oklopod> this is about MY LANGUAGE TOI
22:45:23 <ais523> oklopod: yes, INTERCAL is relatively slow
22:45:34 <oklopod> ais523
22:45:34 <oklopod> : is it 20+20 slow?
22:45:41 <Sgeo> Given that 20+20 = 40, how can 20+19*20, which is < 20+20!, be <40?
22:45:51 <coppro> ah
22:45:53 <oklopod> 30+30 still takes forever with my current sets
22:45:54 <ais523> oklopod: let me find the shortest known INTERCAL addition statement that doesn't resort to an external library
22:45:56 <alise> Sgeo: you know what he meant
22:45:58 <alise> stop being pedantic
22:46:02 <oklopod> :P
22:46:05 <coppro> oklopod: it's not that it's slow. It's that it invovles implementing shift-and-add
22:46:05 <alise> oklopod: now define *
22:46:14 <alise> how much overhead will 20*2 have over 20+20?
22:46:38 <Sgeo> WHat's oklopod's project?
22:46:45 <oklopod> Sgeo: oh finally i get what you meant
22:46:46 <ais523> (1)DOCOMEFROM!2~.2'~#1WHILE:1<-"'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"
22:46:48 <oklopod> lul
22:46:51 <alise> http://esolangs.org/wiki/Toi
22:47:01 <ais523> but the INTERCAL version is probably faster
22:47:02 <oklopod> interp should be updated
22:47:16 <ais523> OK, it's multithreaded, but it's O(log n), rather than Toi presumably being O(n)
22:47:29 <oklopod> well it's a low-level language, isn't it, you don't easily get an exponentixplotion
22:47:37 <ais523> (and if you're wondering wtf addition is shorter multithreaded, welcome to INTERCAL)
22:47:59 <oklopod> used to be O(2^n), now it might be polynomial, but perhaps not
22:48:05 * Sgeo disses Toi syntactic sugar
22:48:13 <coppro> ah, CLC-INTERCAL
22:48:14 <oklopod> :(
22:48:30 <ais523> (there are two threads in the above; one of which does the addition in a loop, the other of which checks to see when the loop terminates)
22:48:33 <ais523> coppro: actually, that's C-INTERCAL
22:48:38 <coppro> it is?
22:48:40 <ais523> the two have borrowed quite a few features from the others
22:48:44 <coppro> ah
22:48:51 <coppro> in any case, it's taking a horrible language and making it truly disingenuous
22:48:57 <oklopod> ais523: O(log n) wrt what n?
22:48:58 <ais523> e.g. the / operator exists in C-INTERCAL, but it isn't as general
22:49:14 <oklopod> n's value i guess
22:49:15 <ais523> oklopod: that's worst case, where n is the large of the numbers being added
22:49:34 <ais523> the great thing about that addition algorithm is that it actually does long addition
22:49:39 <ais523> like you might implement with pencil and paper
22:49:43 <ais523> add, work out the carries, add those on, etc
22:50:29 <alise> Ooh, do long division!
22:50:31 <alise> Worst algorithm ever.
22:50:37 <oklopod> yeah the toi version is far from linear, but i imagine with enough work numbers could be hacked to be pretty fast
22:51:36 <ais523> alise: fun fact: the original INTERCAL division implementation was described as a "slick trick" by Don Knuth
22:52:02 <ais523> although I think it operates using iterated subtraction
22:52:12 <alise> Why do people call him Don?
22:52:18 <ais523> he called himself Don in the program in question
22:52:20 <alise> "Don Knuth" just feels wrong.
22:52:22 <alise> Fair enough.
22:52:44 <ais523> (29733) DON KNUTH'S IMPLEMENTATION OF TPK IN INTERCAL
22:52:49 <alise> Hmm, and his homepage uses Don Knuth too.
22:53:24 * oklopod wishes he was more interested in intercal so his conscience would allow him to expect ais523 to be interested in toi
22:53:37 <ais523> he used the 5-bit Baudo format in order to create meaningful variable numbers
22:53:48 <ais523> you can fit three characters into a 16-bit label or variable number that way
22:53:49 <ais523> *Baudot
22:54:01 <ais523> oklopod: I am vaguely interested in Toi, but have to expend my mental effort on other things atm
22:54:24 <ais523> I may look at it again if I ever end up with significantly more free time
22:55:18 <oklopod> don't worry, see i'm currently not very interested in intercal, so i'm not expecting you to be interested in toi.
22:55:34 <oklopod> i'm tired.
22:55:46 <ais523> some day someone should make a less insane version of INTERCAL
22:55:52 <ais523> there are a lot of good ideas in it
22:56:02 <oklopod> but yes you should definitely look at it, your brain will love it
22:56:12 <oklopod> god the syntax is horrible <3
22:56:22 <ais523> what order does it iterate over sets in?
22:56:30 <ais523> arbitrary order, given that sets are inherently unordered anyway?
22:56:32 <oklopod> any
22:56:35 <oklopod> but umm
22:56:48 <oklopod> there aren't any loops where the order is visible
22:57:18 <ais523> can't you produce output inside a loop?
22:57:28 <ais523> it would be visible then by observing the order of the side-effects
22:57:28 <oklopod> yes, right, that's ordered
22:57:29 <oklopod> randomly
22:57:38 <AnMaster> wth is going on with openssh
22:57:52 <AnMaster> "recent" entries in ~/.ssh/known_hosts look so strange
22:57:56 <AnMaster> no ips any more
22:58:07 <AnMaster> they look like:
22:58:10 <AnMaster> |1|lMQmHP/IGoqcEp49WRP0fmQYcZk=|/hwTECkVnXFM3gnraIRiHbEZ+/8=
22:58:16 <AnMaster> where there was previously an IP
22:59:20 <oklopod> but it's not good practise to rely on the order of a given interp obviously
22:59:51 <oklopod> you can do io in sensible order by just using it in while loops
23:00:04 <oklopod> and not in for-each loops
23:00:28 <oklopod> i could even disallow io in for-each loops that loop over multiple elements
23:02:53 -!- Phantom_Hoover has joined.
23:10:49 <alise> anyone know that dijkstra paper (handwritten) talking about equality, leibniz's law, and calculation/computation proofs as opposed to deductive ones?
23:10:54 <alise> i need a link :(
23:15:31 <Phantom_Hoover> Google?
23:19:46 <pikhq> awib made itself a polyglot in perhaps the cheapest way possible.
23:20:16 <pikhq> It's got a prettyprinter. Said prettyprinter attaches a C and Bash Brainfuck implementation to the code.
23:20:32 <pikhq> (the prettyprinter is *also* a fairly simple Brainfuck preprocessor)
23:23:26 <alise> Phantom_Hoover: tried
23:23:59 * Mathnerd314 looks at the Toi wiki page
23:24:07 <ais523> AnMaster: looks vaguely like a pubkey signature
23:24:13 -!- augur has quit (Remote host closed the connection).
23:24:24 <ais523> trusting pubkeys makes more sense than trusting IPs, if you think about it
23:24:29 <Mathnerd314> oklopod: "useful algorithms"!
23:24:37 -!- augur has joined.
23:27:13 <Mathnerd314> oklopod: my preprocessor looks even more useful now...
23:27:33 -!- augur has quit (Remote host closed the connection).
23:27:53 <pikhq> ais523: The .ssh/known_hosts thing is supposed to be a mapping between pubkeys and IPs, though.
23:28:05 <ais523> hmm
23:28:11 <pikhq> So that ssh can scream bloody murder if the pubkey of a server has changed.
23:28:14 <ais523> yes
23:28:22 -!- augur has joined.
23:28:30 <ais523> perhaps it's encrypting the IPs in order to prevent people working out where you've been connecting
23:28:36 <ais523> one-way hash would work
23:29:49 <pikhq> Perhaps.
23:29:59 <pikhq> That would, in fact, make sense.
23:30:04 <pikhq> The format actually fits, too.
23:30:26 <Phantom_Hoover> It always used to irk me that the random numbers people put at the end of their screen names weren't sequential.
23:31:51 <ais523> mine is, just sequential with a data source you're probably unaware of
23:31:57 <alise> Mathnerd314 falls under "trying too hard".
23:32:11 <Mathnerd314> alise: ?
23:32:13 -!- tombom_ has quit (Quit: Leaving).
23:32:24 <alise> Look guys, I'm totally hot for mathematics! I can prove this because I have the first three decimal digits of pi without the decimal point after this assertion.
23:32:27 <alise> No offence :P
23:32:27 <Mathnerd314> you mean my nick? :p
23:33:03 <alise> yar
23:33:47 <Mathnerd314> well, it started as a joke :-)
23:33:59 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:34:10 -!- oklopod has quit (Ping timeout: 265 seconds).
23:34:26 <Mathnerd314> I needed a nick for a quick registration or two...
23:35:14 -!- charlls has joined.
23:37:59 -!- charlesq__ has quit (Ping timeout: 258 seconds).
23:41:26 -!- charlls has quit (Ping timeout: 258 seconds).
23:42:44 -!- oklopod has joined.
23:44:47 <oklopod> when i saw Mathnerd314 i thought "what a coincidence, pi starts that way too"
23:45:14 <Mathnerd314> heh
23:45:28 <oklopod> well at first i didn
23:45:31 <oklopod> 't even notice the number
23:45:42 <oklopod> but after phantom's sequential numbers comment
23:45:43 <oklopod> i did
23:46:02 <oklopod> before that i saw Mathnerd<clutter>
23:46:32 -!- oerjan has joined.
23:47:00 <oklopod> HI OERJAN HAEV YOU HERD NWE NEWS
23:47:09 <oklopod> *TOI NEWS
23:47:48 <oerjan> give me a little time to read the logs, okay?
23:48:18 <oerjan> <oklopod> this language is a bit hard to read, it's as if my brain was used to thinking ('s need a matching )
23:48:21 <oerjan> you don't SAY
23:48:30 <oklopod> i willl
23:48:42 <oerjan> the tuple algorithms remind me of Haskell Arrows
23:49:01 <oerjan> it essentially implements their fundamental methods, i think
23:49:01 <oklopod> everything becomes tons clearer if i just add ) before a [/{ :D
23:49:12 <oklopod> huh
23:49:24 <oklopod> thaz cool mann.
23:50:14 <oklopod> you're gonna shit bricks when you hear i managed to add 20+20 with the current interp
23:50:19 <oklopod> that only took like 5 minutes
23:50:28 <oklopod> or maybe significantly less but anyway
23:51:05 <oerjan> yay
23:51:53 -!- FireFly has quit (Quit: Hey! Listen!).
23:52:03 <oerjan> the first algorithm uuueua-e is id &&& id
23:52:21 <oerjan> then first a, and second b
23:52:38 <oerjan> arr fst and arr snd
23:53:03 <AnMaster> <ais523> perhaps it's encrypting the IPs in order to prevent people working out where you've been connecting <-- yes it is
23:53:09 <AnMaster> it is a "new" feature
23:53:10 <AnMaster> however
23:53:20 <AnMaster> it makes pruning out old dead entries impossible
23:53:24 <oerjan> >>> is just composition
23:53:27 <AnMaster> so I turned it off on desktop
23:53:53 <AnMaster> ais523, I had over 200 lines before pruning dead entries, now I have less than 100
23:54:15 <pikhq> Y'know, I have half a mind to extend Brainfuck to support Linux system calls.
23:54:30 <AnMaster> pikhq, using what syntax?
23:54:32 <oerjan> and *** can be built with >>>, first and second, while a &&& b = (id &&& id) >>> (a *** b)
23:54:37 <pikhq> AnMaster: Dunno.
23:54:46 <pikhq> I'm just thinking that it would actually be a useful extension.
23:54:58 <pikhq> And let me write coreutils in Brainfuck.
23:55:02 <pikhq> >:D
23:56:10 <pikhq> The main issue is that that would probably require 32-bit Brainfuck, or at least peek, poke, and malloc...
23:57:20 <oklopod> oerjan: i'd have to look up arrays
23:57:26 <oklopod> just heard the name
23:57:28 <oerjan> oklopod: _arrows_
23:57:44 <oerjan> Control.Arrow is the module
23:57:49 <oklopod> err right
23:57:53 <oklopod> that was a mental typo
23:57:54 <pikhq> Or, alternately, just represent pointers as 4 Brainfuck chars. XD
23:58:59 <oerjan> btw i was just outside looking at the sky, i had this eerie feeling that there were northern lights up there but that the sky was just too light to be entirely sure
23:59:37 <oerjan> as if something was swiftly moving, almost but not quite imperceptibly
2010-04-24
00:00:05 <alise> oerjan: dear diary
00:00:32 <oerjan> and i really cannot quite decide whether it was an illusion or not
00:01:15 <oerjan> well this was mostly to oklopod, we were talking about northern lights a day before
00:02:00 <oerjan> the nights are swiftly getting lighter up here, so the northern lights are supposed to become invisible around this time or so
00:03:05 <oerjan> back to the logs ->
00:06:28 <oklopod> my raindrops feel a bit boring compared to northern lightning :<
00:07:55 <oerjan> rain is boring. that's what it _does_.
00:08:07 <oerjan> its purpose of existing, almost.
00:08:26 <oerjan> with the occasional flood exception
00:08:43 <oerjan> oh, and rainbows
00:11:11 <alise> drizzle
00:11:30 -!- augur has quit (Ping timeout: 252 seconds).
00:16:33 <oerjan> <oklopod> what's a good prime? <-- http://en.wikipedia.org/wiki/Good_prime
00:16:58 * oerjan cackles maniacally
00:17:08 <ais523> strange name
00:18:09 <oerjan> well with perfect, abundant, friend etc. around, it was only a matter of time
00:18:11 <alise> ais523: no more strange than "perfect number"
00:18:19 <alise> I should define, say, an "awesome real"
00:18:25 <ais523> go for it
00:18:34 <ais523> so long as all instances of it are over 9000
00:18:59 <alise> :|
00:19:23 * oerjan regretfully concludes that is probably not a known term
00:23:27 <alise> ais523: I'm trying to make it something computers can actually find instances for
00:23:34 <alise> so that we can maintain, say, a list of known awesome reals
00:23:40 <ais523> yes
00:23:50 <oerjan> <oklopod> actually the current interp can barely handle operations on numbers of size 7, but you could easily go to 20 with simple optimizations
00:23:53 <ais523> either that, or something that's undecidable in general but decidable in specific cases
00:23:58 <ais523> which would have a similar effect
00:24:27 <alise> trying to do something with the riemann zeta function cuz I HEAR IT'S MYSTICAL
00:24:30 <oerjan> i think with hash consing done properly, the basic operations of toi should be at most O(n log n) or thereabouts...
00:24:49 <oerjan> oh hm
00:24:56 -!- ais523 has quit (Remote host closed the connection).
00:25:10 <oerjan> n would be the number of elements of elements of S, or something
00:25:17 <alise> http://pastie.org/private/5esc4wqvtk2uzrkqfvpkw series expansion of zeta(1/x)^-x at x=oo
00:25:40 <alise> More fun in image form, where it's 7465x37 pixels.
00:25:42 <oerjan> anyway the point would be that no primitive operation looks very deep at the set
00:25:49 <alise> It has rather large tops of fractions.
00:25:55 <alise> And it's all in a fucking exponent!
00:26:00 <alise> The wonders of computers.
00:27:39 <oerjan> it might also be an idea to optimize ([r], i think
00:31:06 <oerjan> * alise wonders if "madame" is correct for this nick's customised gender structure.. <-- mademoiselle, surely?
00:31:14 <alise> lol
00:31:30 <oerjan> unless you're customizing as an old married woman
00:33:02 <oklopod> oerjan: i mostly just meant simple optimizations to what i had
00:33:20 <oerjan> <alise> "Stuck"; a nice word to describe Britain.
00:33:32 <alise> Well; being in Britain.
00:34:02 <oklopod> currently emptying with ([r] takes O(n^2) time or something, i think
00:34:17 <oerjan> the media here (well at least the largest paper) have for recent obvious reasons invented the word "askefast", which means "ash-stuck" and which they use all the f*ing time
00:35:26 <oerjan> oklopod: well it repeats r depth(S) times...
00:35:49 <alise> oerjan: Oh, I didn't mean it in that way.
00:35:58 <alise> I don't care about Iceland's volcanoes, much. I just don't like this island.
00:36:00 <oerjan> oklopod: oh, you haven't implemented hash consing yet?
00:36:00 <oklopod> currently i have numbers stored as python numbers which are converted to sets and back to numbers at every step
00:36:06 <alise> Particularly its government.
00:36:06 <oerjan> alise: i just found it apropos
00:36:10 <alise> oerjan: Yes.
00:36:11 <oklopod> i have, but that didn't help, maybe i did it wrong somehow.
00:36:12 <alise> oerjan: It is that.
00:36:18 <oklopod> so now i special case numbers
00:36:26 <oklopod> currently in a pretty stupid way
00:36:35 <oklopod> i've had a headache all day
00:37:17 <oerjan> oklopod: as i implied, the thing is that no basic operations should recurse. so comparing two already cached sets should be constant time
00:37:38 <oerjan> pointer comparison, presumably
00:37:39 <oklopod> comparing was constant time
00:37:47 <oklopod> but building numbers was not
00:37:56 <oklopod> yes it was pointer comparison
00:38:03 <oklopod> sort of
00:38:06 <oerjan> including for ordering?
00:38:17 <oklopod> what do you mean?
00:38:37 <oerjan> ordering is nice for building sets quickly, since you can sort the list of subsets
00:38:54 <oerjan> *elements
00:39:14 <oerjan> it doesn't matter _what_ ordering, it's just so you have a unique sorting
00:39:23 <oklopod> oh hmm actually i did have that
00:39:35 <oerjan> ok
00:39:35 <oklopod> but i'm not sure i used it?!?
00:39:41 <oerjan> oh
00:39:44 <oklopod> anyway the point is it was still exponential to build a numbre.
00:39:48 <oklopod> *nombre
00:39:55 <oerjan> ah that would be bad
00:40:04 <oerjan> building a number shouldn't be exponential
00:40:12 <oklopod> now it's constant time
00:40:24 <oerjan> i mean, even without special casing on numbers
00:40:47 <oklopod> why don't you implement this thing if it's so fucking easy :D
00:40:53 <oerjan> well i guess it could still end up O(n^4) or something like that
00:40:59 <oerjan> because i'm lazy, of course
00:41:11 <oklopod> or i could once i get a good night sleep
00:41:52 <oerjan> especially r and a would benefit from using ordering, i guess
00:42:14 <oklopod> hmm why?
00:42:20 <oklopod> oh
00:42:31 <oerjan> since you combine a lot of elements at the end
00:42:55 <oklopod> combine?
00:43:06 <oerjan> union
00:43:19 <oerjan> r is taking the union of all subsets
00:43:34 <oerjan> and a does that + one more element
00:43:44 <oerjan> *of all elements
00:43:44 <oklopod> so you'd have like a merge
00:43:52 <oklopod> of all subsets
00:44:00 <alise> I'm having a hard time defining an awesome real :(
00:44:18 <oerjan> all the awesome reals have been invented already
00:44:46 <Oranjer> go for it, alise
00:44:55 <oklopod> are the awesome reals dense on R
00:45:00 <oklopod> *in
00:45:03 <alise> I'm trying! But all the instances must be above 9000.
00:45:07 <oklopod> oh
00:45:08 <alise> Preferably there should be infinitely many of them.
00:45:09 <oklopod> then i guess not
00:45:15 <alise> oklopod: ais dictated.
00:45:20 <alise> Also the equation must be suitably long and ridiculous.
00:45:25 <oklopod> or otherwise you have one crazy ass topology
00:45:34 <alise> I do have one crazy ass-topology
00:46:32 <pineapple> only one?
00:46:52 <alise> well. many
00:46:53 <oerjan> to be crazy, an ass-topology must have at least two holes
00:47:09 <oerjan> just so you know
00:47:15 <pineapple> alise: there's a note to you in the logs from this week, btw
00:47:17 <oerjan> well i guess none could also work
00:47:39 <alise> pineapple: Do you know what day?
00:47:47 <oerjan> alise: oh and we were supposed to remind you about the link you put in the topic just before you left
00:47:49 <pineapple> monday i think, although grep by your name
00:47:58 <alise> oerjan: yeah i found that
00:47:58 <oerjan> whatever it was ;D
00:47:59 <alise> pineapple: no downloaded logs
00:48:18 <pineapple> umm...
00:48:34 <pineapple> i _think_ it was monday
00:48:44 <pineapple> but i don't remmeber
00:48:45 <alise> 04:52:12 <ais523> alise for the logs: the iPhone developer contract is getting even crazier, see http://www.wired.com/epicenter/2010/04/with-new-developer-agreement-apple-unlevels-the-iad-playing-field/
00:48:46 <alise> was that it?
00:48:49 <pineapple> yes
00:49:13 <oklopod> alise: did you find that interesting
00:49:15 <alise> ok, thanks
00:49:16 <alise> oklopod: no
00:49:33 <oklopod> alise: did i tell you about toi yet ?!?
00:49:38 <alise> oklopod: OMG#
00:49:51 <oklopod> HI PINEAPPLE WANNA HEAR SOMETHING INTERESTING
00:49:58 <oklopod> i should really stop this
00:50:28 <alise> did you know that (Z, .-., Pos) where Pos(x) = x > 0 expresses the relation greater-than??
00:50:32 <alise> AMAZING AMIRITE
00:50:49 <oklopod> i did not
00:51:15 <oklopod> because i don't know what that means
00:52:00 <oklopod> well unless it means "use the things in this tuple in a sensible way"
00:52:14 <alise> we say (S,F,T) expresses a binary relation R on A where F : A -> A -> S and T is an unary relation on S, if
00:52:26 <alise> T (Fxy) <=> xRy
00:52:31 <alise> we say this for no particular reason
00:53:14 <oklopod> parti cular
00:55:02 <alise> a partyious cular
00:55:45 <oklopod> i wanna make another esolang
00:56:14 <oklopod> unfortunately i'm out of awesome ideas
00:56:24 <oklopod> maybe i could base a language on awesome reals
00:56:44 <oklopod> i'm gonna go away now
00:57:18 <alise> oklopod: make an esolang based on type theory
00:57:21 <alise> or, you know, awesome reals
00:57:26 <alise> make a real computation language
00:57:31 <alise> uncomputable, so just approximate!
00:58:36 <oklopod> yes a bit of topology and ergodic theory
00:59:36 <alise> maybe i'll do real computation
01:00:12 <alise> oklopod: how can you /not/ implement somethingcalled the blum-shub-smale machine
01:00:39 <alise> *something called
01:00:59 <alise> http://en.wikipedia.org/wiki/Blum-Shub-Smale_machine ;; only three operations so clearly the perfect tarpit
01:03:40 <alise> 16:18:15 <pikhq> Gregor: Well, yeah. I think if the President gave a blowjob, the entire right wing would just have a heart attack and die.
01:03:43 <alise> Please make this happen quickly.
01:04:02 <pikhq> alise: Hah.
01:04:23 <alise> What if the President performed autofellatio?
01:04:44 <alise> He'd be giving /and/ receiving a blowjob; he'd be Lewinsky and Clinton simultaneously, in a sort of quantum construction.
01:04:47 <pikhq> I do believe their heads would asplode.
01:05:26 <pikhq> I should note, though: the key to this is the President not being a Republican.
01:05:46 <pikhq> If he's a Republican, they will gladly back him banning heterosexuality.
01:05:56 <pikhq> (there's a funny thought)
01:09:35 -!- Rugxulo has joined.
01:09:52 <Rugxulo> <pikhq> alise: Vi vejnas unan Interneton.
01:09:57 <alise> uh oh
01:09:58 <Rugxulo> s/Interneton/Interreton/
01:10:03 <alise> phew
01:10:08 <Rugxulo> <AnMaster> arch/x86/kernel/head_32.S:64: Warning: shift count out of range (32 is not between 0 and 31)
01:10:22 <Rugxulo> you can't shift by 32 (anymore), that would be a effectively a NOP
01:10:41 <Rugxulo> 8086 allowed it, but 386+ masks to lower five bits (e.g. 32 or less value)
01:10:44 <alise> which is why he quoted it.
01:11:29 <Rugxulo> BinUtils' GAS does allow ".arch" nowadays, presumably to tighten up such sub-architectural differences
01:15:08 <AnMaster> Rugxulo, that was from the kernel
01:15:12 <AnMaster> which was pretty strange
01:15:22 <AnMaster> night →
01:24:18 <Rugxulo> hmmm, awib don't work for me
01:24:53 <oklopod> o
01:26:22 <oklopod> "<Rugxulo> <pikhq> alise: Vi vejnas unan Interneton." "<alise> uh oh" "<Rugxulo> s/Interneton/Interreton/" "<alise> phew"
01:26:28 <oklopod> classic alise
01:26:56 <oklopod> am i having a dream?
01:27:09 <alise> nope
01:27:21 <uorygl> Nope, you're not.
01:27:29 <uorygl> But don't take my word for it.
01:27:36 <oklopod> why not?
01:27:52 <uorygl> Because you don't know whether you're dreaming or not, meaning I'm not a reliable source.
01:28:13 <uorygl> Try cutting the mushroom; if anything around is orange, that will heal the tortilla wounds.
01:28:25 <uorygl> If that made any sense, you're dreaming.
01:28:47 <oklopod> but my brain doesn't lie to me
01:29:01 <uorygl> Uh oh, we've lost him.
01:29:05 * uorygl mourns.
01:29:20 <oklopod> well it dunnot!
01:29:30 <oklopod> good brain mine one
01:30:24 <uorygl> Mourning the lost is more difficult when they're still standing around and saying stuff.
01:30:32 <uorygl> The walking dead.
01:30:53 <oklopod> yes that's the worst kind of death
01:31:25 * uorygl builds a wall in front of oklopod.
01:31:34 * uorygl builds a wall to the left of oklopod.
01:31:42 * uorygl builds a wall to the right of oklopod.
01:31:49 * uorygl builds a wall behind oklopod.
01:31:57 <uorygl> There, now we can't see you, so we can mourn properly.
01:31:59 <oklopod> :o
01:32:06 <oklopod> \o/
01:32:06 <myndzi\> |
01:32:06 <myndzi\> >\
01:32:08 * oerjan sneaks oklopod out through an underground tunnel
01:32:13 <oklopod> stuff ->
01:32:14 <oklopod> yay
01:32:16 <oklopod> ->
01:32:35 <uorygl> Darn, I knew I should have built a wall below oklopod and above oklopod.
01:32:42 <uorygl> Now I have to start all over.
01:32:45 * Rugxulo uses the wand of digging to go through the wall ... an orc wizard appears!
01:33:32 * uorygl builds a wall in front of oklopod and builds a wall to the left of oklopod and builds a wall to the right of oklopod and builds a wall behind oklopod and builds a wall under oklopod and builds a wall above oklopod.
01:33:52 * oerjan uses zzo38's Zwischenzug on the orc wizard
01:34:04 <oerjan> uorygl: oklopod already left, pay attention
01:34:17 <uorygl> I'm building a wall around his new position.
01:34:23 * Rugxulo gives oerjan a scroll of recharging but needs scroll of identify to understand "Zwischenzug"
01:35:05 * Rugxulo uses a wand of teleportation to secretly follow from far away ...
01:35:10 <oerjan> Rugxulo: i think you'll have to ask zzo38 for that, at your own risk
01:35:31 * Rugxulo sacrifices zzo38 to Trog ... Trog is greatly pleased
01:36:26 <oerjan> would you like fries with that
01:36:45 * Rugxulo eats a snozzcumber
01:36:55 * Rugxulo thought it was bland
01:37:43 * oerjan throws a critical failure on his Recognize Reference skill
01:39:37 * oerjan uses one google point to reroll
01:43:35 <Rugxulo> http://crawl.develz.org ;-)
01:55:52 <alise> "Real" is such a bad name for the real numbers.
01:56:08 <alise> Considering how many of them are quite thoroughly not real, and in fact their whole existence can be questioned.
01:59:06 <Sgeo> In what sense can any mathematical construct be said to exist?
01:59:13 <pikhq> They're certainly no *more* real than, say, the natural numbers.
01:59:34 <pikhq> Or even the natural numbers mod a convenient power of 2.
01:59:39 <alise> a hamster is something that hams
01:59:59 <alise> Ah but the reals are much, much more questionable than the naturals.
02:00:12 <alise> Even if you accept reals as a whole, some things are as unreal as you can get -- in fact, bordering on the impossible.
02:00:25 <pikhq> The reals are a fairly non-obvious construction, yes.
02:00:31 <alise> For instance, http://en.wikipedia.org/wiki/Chaitin%27s_constant, the probability that a random program will halt in a given language.
02:00:42 <pikhq> The non-computable reals in particular make you go "WTF".
02:00:46 <alise> Totally uncomputable; lets you solve the halting problem; and yet still, a bona-fide real.
02:00:49 <alise> And then consider this.
02:00:51 <oklopod> *hamsts
02:01:00 <alise> Almost all reals -- mathematically -- are uncomputable.
02:01:10 <Rugxulo> o rly? (couldn't resist)
02:01:13 <alise> So really there are not many reals that are real, and many reals that are not real at all!
02:01:31 <pikhq> "Almost all"? Hmm. ... Actually, yeah.
02:01:39 <oerjan> oklopod: is http://www.vjn.fi/oklopol/toi.py your current implementation?
02:01:45 <oklopod> almost all with the lebesque measure
02:01:47 <oklopod> oerjan: yes
02:01:48 <pikhq> Any non-computable real plus a computable real is itself non-computable...
02:02:07 <alise> pikhq: it's been proved yeah
02:02:07 * Sgeo reviews an app on the Market
02:02:09 <oklopod> i think i uploaded the most recentest of changes
02:02:11 <pikhq> Which I *think* makes the set of non-computable reals larger than the set of computable reals.
02:02:18 <alise> it is
02:02:22 <alise> the computable reals are countable
02:02:24 <pikhq> Mmkay then.
02:02:27 <alise> computable = computable by a turing machine
02:02:32 <pikhq> ... Oh, *duh*.
02:02:36 <alise> consider a brainfuck algorithm as a list of naturals mod 8
02:02:39 <Sgeo> Didn't show up on AppBrain
02:02:40 <alise> sum up appropriately
02:02:41 <alise> Q.E.D.
02:02:42 <pikhq> The computable reals have a Godel numbering.
02:02:44 <alise> yeah
02:03:04 <alise> the computable reals are harder to prove results about though :(
02:03:13 <alise> like the cauchy-sequence definition doesn't even let you prove the trichotomy of the reals
02:03:17 <oklopod> a zero real times a nonzero real is a zero real, this makes the zero reals a larger set than the nonzero reals
02:03:18 <pikhq> Yeah, but they most *certainly* exist.
02:03:24 <alise> definitely
02:03:26 <alise> as real as the naturals
02:03:39 <pikhq> You can point at the programs that produce them. "See, there it is."
02:03:43 <alise> and i'm pretty strong on my faith in naturals
02:03:48 <alise> though it /has/ wavered once or twice
02:04:18 <alise> also constructivism has greener grass
02:04:22 <alise> it's more satisfying
02:04:23 <pikhq> Whereas the non-computable reals are pretty much an arbitrary, abstract construct, which exists pretty much because the definition was easy (near as I can tell).
02:04:32 <alise> classical bozos, they define a bunch of constraints that their reals have to satisfy
02:04:36 <alise> and say "there's only one. that's ours"
02:04:38 <alise> you don't see it, feel it
02:04:43 <alise> it's all symbol manipulation
02:04:52 <alise> us constructivsts get actual concrete code and functions we can compute with
02:04:57 <alise> actual, well, constructions
02:05:27 <pikhq> I just care about what lets me do interesting things, myself. :P
02:05:41 <oerjan> oklopod: it looks like you are reimplementing the one thing which iirc python already does _extremely_ well built in, namely hash table dictionaries
02:06:08 <oklopod> constructivism is so goddamn boring
02:06:16 <alise> oklopod: yeah well so's your mom
02:06:18 <oklopod> oerjan: i'm not using the hash thingie
02:06:28 <alise> pikhq: btw if you disagree with the uncomputable reals then you're half-way to rejecting forall P, P \/ ~P anyway
02:06:46 <pikhq> alise: I don't care if something's an abstract construct.
02:06:52 <pikhq> I'm just noting that it is one. ;)
02:07:05 <alise> since the computer-age rejection of that is that, since propositions:types and proofs:values,
02:07:06 <alise> forall P, P \/ ~P
02:07:18 <alise> would have to be a decision procedure that can formulate a proof or disproof of any proposition you hand it!
02:07:49 <alise> and indeed in some cases we can prove that some propositions cannot be proved or disproved... and then the law of the excluded middle conjurs up one anyway! (not that we know /which/, but if we know it cannot prove /either/...)
02:08:21 <alise> i'm not a constructivist in that i reject abstract constructions... everything's abstract
02:08:41 <alise> I just don't accept magical decision procedures :p
02:08:44 <oklopod> i would've thunk p v ~p just says in any model of the system one is true, if we can't prove either then it depends on the model which one is true
02:08:59 <alise> yeah but the curry-howard interpretation is
02:09:09 <alise> (P:Prop) -> P \/ ~P
02:09:11 <alise> where ~P = P -> Void
02:09:17 <alise> and \/ is just a disjoint union type
02:09:19 <alise> i.e. Either
02:09:23 <alise> now if P:Prop
02:09:29 <alise> then p:P means "p is a proof of P"
02:09:54 <oerjan> oklopod: oh.
02:09:54 <alise> so L.E.M. takes an arbitrary proposition -- even a statement independent of the axioms -- and conjurs up "either a proof or a disproof"
02:10:02 <alise> we can't inspect which it is computationally; but that's the sematncis
02:10:03 <alise> *semantics
02:10:21 <oklopod> oerjan: and the code is not exactly my best work, i just wanted to quickly hack some half-working shit up
02:10:34 <pikhq> I'm pretty sure that p \/ ~p just implies that the veracity of p is a Bool, not True | False | FileNotFound or some shit. :P
02:10:35 <oklopod> ...and then i've hacked optimizations in on top of each other all day
02:10:47 <alise> pikhq: yeah but this is a fundamental misunderstanding of the entirety of curry howard
02:10:51 <alise> it's got nothing to do with booleans at all
02:10:55 <oklopod> which isn't a very fruitful approach always
02:11:06 <alise> relating logic to booleans is presupposing the law of the excluded middle which is the whole thing i'm arguing against
02:11:18 -!- Rugxulo has quit (Quit: gone back to Befunge ...).
02:11:43 <alise> oklopod: if i implement toi will you love me
02:11:47 <pikhq> Yes, well, fuck you and your system of logic that I can't reason about.
02:11:50 <alise> thought so; implementing
02:11:55 <alise> pikhq: <3
02:12:01 <alise> type theory is here when you want it
02:12:19 <pikhq> Screw that, we're forcing all of math into C.
02:12:29 <oklopod> the problem with constructivism is it's not at all interesting
02:12:29 <pikhq> If it doesn't fit into the system memory it doesn't exist.
02:12:34 <oklopod> it's really boring and stupid
02:12:43 <oklopod> i hate it
02:12:47 <oklopod> and i hate everyone around it
02:12:51 <pikhq> And for the sake of pain, 8-bit system.
02:13:10 <oklopod> in fact i'm gonna convert to destructivism
02:13:23 <pikhq> oklopod: You are become Shiva?
02:13:32 <oklopod> alise: yes, i will love you despite your constructivist doctrine
02:13:54 <oklopod> pikhq: not just my mathlosophy
02:13:58 <oklopod> *no
02:14:14 <oklopod> oerjan: i didn't know you actually read code
02:14:22 <oklopod> i figured mathematicians aren't allowed
02:15:01 <oklopod> alise: just kidding though, constructivism is kind of sexy too
02:15:16 * alise realises that
02:15:19 <alise> data Set = Empty -- ∅
02:15:20 <alise> | Cons Set Set -- X ∪ {t | t ∈ s, s ∈ S}
02:15:22 <alise> needs a singleton :P
02:15:49 <alise> data Set = Empty -- ∅
02:15:49 <alise> | Singleton Set -- {A}
02:15:49 <alise> | Cons Set Set -- A ∪ {t | t ∈ s, s ∈ B}
02:15:50 <alise> that's better
02:15:56 <alise> hey it's worth a try :P
02:16:11 <alise> succS :: Set -> Set
02:16:11 <alise> succS n = Cons n (Singleton (Singleton n))
02:16:19 <alise> oklopod: why exactly do you use ordinals?
02:16:20 <oklopod> is it ready soon?
02:16:49 <oklopod> mostly because they're exponential in size i guess
02:16:54 <Sgeo> The Android browser feels jumpy
02:16:57 <oklopod> von neumanns
02:17:27 <alise> oklopod: yeah but do you actually use any infiniteness?
02:17:34 <oklopod> no
02:18:42 <alise> right
02:18:56 * Sgeo hopes he doesn't fill up his SD card too soon
02:20:52 <oklopod> what's the trichotomy of the reals?
02:21:06 <alise> forall n, n<0 \/ n=0 \/ n>0
02:21:08 <alise> exactly one is true
02:21:15 <alise> substitute 0 for arbitrary m, etc.
02:21:32 <alise> or at least fax says you can't prove it on the cauchy sequence computable reals
02:21:49 <alise> oklopod: you will be pleased to know that my set representation works
02:21:59 <oerjan> yeah because a sequence could -> 0 without there being a proof of it
02:22:01 <alise> any more lovely infrastructure before the boring lang?
02:22:14 <alise> oerjan: yeah
02:22:38 <uorygl> alise: now express omega_1 in your representation!
02:22:54 <alise> see oklopod promised me it was all finite :P
02:23:01 <uorygl> Oh.
02:23:25 <alise> let s r = Cons r (s (succO r)) in s zeroO
02:23:26 <alise> that works though
02:23:28 <uorygl> What's the smallest ordinal you can't express?
02:23:37 <alise> enumeration doesn't yield anything though :P
02:23:37 <oerjan> alise: i notice you are not using hash consing (somewhat tricky in haskell i should think) so you'll have the same exponential blowup problem
02:23:48 <alise> oerjan: well... foo to you
02:23:57 <alise> maybe i should just do it as {elem:true, ...} in python
02:23:59 <alise> that would work :P
02:24:16 <oklopod> python has sets
02:24:18 <oklopod> too
02:24:26 <alise> yeah
02:24:29 <alise> they're represented by that
02:24:47 <oklopod> well if that's so then i'll complain about you writing true as True
02:24:49 <oklopod> err
02:24:51 <oklopod> the other way around
02:25:10 <oerjan> i'm almost tempted to write my own version, but i would have to download python and relearn some things first...
02:25:13 <oklopod> and if you say both are okay in the new python then i'll complain about your mother
02:25:33 <oklopod> yay competition
02:26:11 <oklopod> well okay oerjan can't really be competition since he either does nothing or owns me completely
02:26:18 <oerjan> :D
02:26:58 <alise> sdfjsdfsdf python's add method of sets is destructive
02:27:15 <oklopod> yeah there's a separate immutable set
02:27:33 <alise> hmm could mutability work
02:27:35 <alise> I mean S is global
02:27:41 <oklopod> i used it at first
02:27:56 <oklopod> but had to change it when i started sharing
02:28:10 <Sgeo> "Do not manipulate this application while driving. Traffic data is not real-time, and directions may be wrong, dangerous, prohibited, or involve ferries."
02:28:23 <alise> sharing, just like a polygamist
02:28:30 <alise> oklopod: so what did you just use immutable sets
02:28:43 <oklopod> no
02:28:49 <alise> meh, you still have to union with a singleton with frozenset
02:28:51 <oklopod> i used something really weird
02:29:01 <oklopod> i think i now use lists
02:29:41 <alise> heh
02:29:46 <alise> sets have to contain hashable things
02:29:48 <alise> sets aren't hashable
02:29:51 <oklopod> yes
02:29:54 <alise> need frozenset
02:30:11 <oklopod> i think that's why i didn't use sets, didn't want to use frozensets
02:30:16 <oklopod> because their name sounds scare
02:30:18 <oklopod> *y
02:32:26 <alise> def a(S): return S.union(frozenset(S))
02:32:29 <alise> can't be this easy can it
02:32:48 <oklopod> that's a, yes
02:32:49 <alise> nope it isn't
02:32:59 <oklopod> why not?
02:33:08 <alise> cuz it returns wrong results.
02:33:28 <oklopod> oh well umm
02:33:34 <oklopod> yes i suppose it makes absolutely no sense
02:33:53 <oklopod> you need to go one deeper
02:34:11 <oklopod> but it is definitely that simple
02:34:26 <oklopod> it's 0 on simpleness scale
02:35:27 <oklopod> or is it hardness scale
02:38:13 <oklopod> the only nontrivial part of implementing the thing is implementing the sets and numbers
02:38:14 <alise> having to detect ordinals is way too boring
02:38:25 <alise> [[# 'E' does not add the error set to S. ]] i see
02:39:41 -!- Asztal has quit (Ping timeout: 258 seconds).
02:42:32 <alise> oklopod: what does (A{B do
02:42:38 <alise> seeing as only brackets must be balanced
02:42:40 <alise> (AB}?
02:48:53 <oerjan> that should be (A{B}
02:49:18 <oerjan> ...oh
02:52:09 <alise> HA HA HA
02:52:16 <alise> i should make my own wonderful language
02:52:22 <alise> based on the natural numbers
02:52:37 <alise> like the whole thing is an induction over an infinite amount of natural variables
02:57:03 <oklopod> the problem is every language after this day will just be a bad copy of toi
02:57:34 <oklopod> oh dear it's like 5 am
02:57:59 <alise> who cares
02:58:04 <alise> you're too interesting to leave
02:58:06 <oklopod> <- this dude
02:58:24 <alise> oklopod: what
02:58:40 <alise> hmm how about a language where the computation is solving an infinite number of polynomials...
02:59:21 <oklopod> by hilbert's basis theorem any infinite set of diophantine equations is equivalent to its finite subset
02:59:39 <oklopod> oh
02:59:46 <oklopod> you're a constructivist, right
02:59:48 <oklopod> then nm
03:00:04 <alise> bastard :)
03:00:23 <alise> constructivism =/= finitism
03:00:36 <alise> yeah but i meant
03:00:42 <alise> hmm
03:00:42 <Oranjer> so constructivism allows for infinity?
03:00:49 <oklopod> what i meant is it requires aoc afaik
03:00:50 <alise> define infinity
03:00:53 <alise> oklopod: sure
03:00:56 <alise> constructivists accept that
03:01:12 <oklopod> i haven't actually read the proof, i've just bumped into the theorem when it's been used
03:01:12 <alise> oklopod: it's probably a much less radical position than you imagine.
03:01:41 <alise> oklopod: for every R : A -> B -> Prop, (forall a, exists b, R a b) -> (exists f : A ->B, forall a, R a (f a))
03:01:54 <alise> since the exists is already a bundling of a value, it's basically just unwrapping the exists and returning the value
03:01:58 <alise> *oklopod: for every R : A -> B -> Prop, (forall a, exists b, R a b) -> (exists f : A -> B, forall a, R a (f a))
03:01:59 <alise> missed a space
03:02:03 <alise> the AoC is provable in type theory.
03:02:32 <oklopod> so i hear
03:03:04 <alise> so there.
03:03:22 <oklopod> i guess you win this round, constructivist bear
03:05:18 <alise> oklopod: implement http://en.wikipedia.org/wiki/Blum-Shub-Smale_machine
03:05:19 <alise> nao!
03:09:31 <oklopod> nnno!
03:10:03 <alise> :(
03:10:16 <alise> you're made of upset.
03:10:58 <alise> oklopod: write a toi selfinterp
03:11:02 <alise> actually shouldn't be so hard.
03:38:39 <alise> there is ~no documentation of plain tex without latex
03:41:40 <pikhq> Sure there is.
03:42:58 <pikhq> The TeXbook, by Donald Knuth.
03:43:27 -!- Alex3012 has joined.
03:44:02 <alise> yeah yeah
03:44:06 <alise> if it's not online easily it doesn't exist
03:44:27 <pikhq> http://www.ctan.org/tex-archive/systems/knuth/dist/tex/texbook.tex
03:45:12 <alise> heh it is so primitive you even have to do all sizings yorsuelf
03:45:25 -!- Alex3012 has quit (Read error: Connection reset by peer).
03:46:11 <alise> i kinda like it though
03:46:13 <alise> latex is so heavy
03:46:47 <pikhq> Yeah, LaTeX is a pretty meaty set of macros.
03:47:03 <alise> and if it's good enough for knuth..
03:47:53 <alise> \loop\iftrue
03:47:54 <alise> \errmessage{This manual is copyrighted and should not be TeXed}\repeat
03:47:57 <alise> that's some amazing copyright protection
03:48:12 <pikhq> Quite.
03:48:33 <alise> removed, but then
03:48:35 <alise> % Macros for The TeXbook=>
03:48:39 <alise> it wants the what now
03:48:52 <pikhq> Oh. Sorry. ftp://tug.ctan.org/pub/tex-archive/systems/knuth/dist/lib/manmac.tex
03:49:02 <pikhq> It comes with its own macro set. XD
03:50:11 <alise> % Macros for The TeXbook=>manmac.tex
03:50:12 <alise> =>
03:50:12 <alise> \catcode`@=11 % borrow the private macros of PLAIN (with care)=>
03:50:13 <alise> WHAT DO I DO :P
03:50:23 <alise> oh god it's running thorugh every line with me
03:50:54 <alise> should i just cat the files together
03:51:01 <pikhq> I dunno.
03:53:11 <Sgeo> Raise your hand if you knew that Android had built-in MIDI support
03:53:16 * Sgeo did not
03:54:02 <alise> jane@jane-desktop:~/texbook$ pdftex -interaction batchmode texbook.tex
03:54:03 <alise> This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6)
03:54:03 <alise> %&-line parsing enabled.
03:54:03 <alise> entering extended mode
03:54:03 <alise> % The log file now contains lines like these; I copied them=>
03:54:04 <alise> whattt
03:54:54 <alise> Output written on texbook.dvi (90 pages, 300556 bytes).
03:54:56 <alise> no idea what i did wrong
03:56:35 <alise> We all oughta rewrite typesetting from scratch.
03:57:39 -!- Alex3012_ has joined.
03:58:33 <alise> Output written on texbook.pdf (408 pages, 1822989 bytes).
03:58:33 <alise> Sounds about right
03:58:48 <alise> nope
03:58:54 <alise> Oh well
04:02:02 <alise> So, failing the TeXbook, I must unreliably google about.
04:05:19 <alise> pikhq: What? It seems that you even have to set paragraph spacing yourself.
04:07:22 <alise> \def\\{\par\hangindent 20pt\noindent\ignorespaces}
04:07:24 <alise> --Knuth's CV
04:07:32 <alise> Honestly.
04:08:43 <alise> Mind, it is pretty: http://www-cs-faculty.stanford.edu/~knuth/vita.pdf
04:20:34 -!- augur has joined.
04:36:17 <alise> 4:35; start bugging me to embed myself soon.
04:39:51 <oerjan> alise: go to bed!
04:39:56 <alise> no!
04:39:59 <alise> (keep going)
04:40:01 <oerjan> but thou must!
04:40:19 <oerjan> no wait, don't google that
04:40:48 <oerjan> and _certainly_ don't click on the first google hit. go to bed instead.
04:41:09 <alise> and so the google machine fires up
04:41:13 <alise> FUCK
04:41:18 <oerjan> MWAHAHA
04:41:43 <alise> i'm going to cry now
04:42:25 <oerjan> just close the tab. how hard can it be?
04:43:28 <alise> yeah i did so
04:43:31 <alise> i'm just hardcore like that
04:43:34 <oerjan> wow
04:43:44 <alise> clicked one or two links, you know, got bored, closed all the tabs
04:43:50 <oerjan> now i just need to follow my own advice. except the going to bed part.
04:43:51 <alise> nothing special huh eh
04:44:24 <oerjan> it just proves you're really an alien.
04:44:41 <Sgeo> The Brainfuck for Android app only allocates 300 bytes for the array
04:46:07 <alise> lol
04:46:13 <alise> Sgeo: so, your android verdict?
04:46:42 <oerjan> completely worthless for your enterprise brainfuck solutions
04:47:50 <Sgeo> Not the best out-of-the-box experience, especially keyboardwise. Pinch-to-zoom in the browser has a "feature" that I really don't like, that makes the browser seem jumpy.
04:48:20 <Sgeo> With the N1, you have to be very careful that your palm doesn't end up resting on the touchscreen, but that's presumably due to multitouch issues
04:48:50 <Sgeo> It should be noted that my only basis for comparision is having typed on an iPhone keyboard yesterday.
04:49:05 <alise> Apart from that?
04:49:34 <Sgeo> The Music app seems to have strange BACK semantics
04:49:49 <alise> Apart from that?
04:49:58 <Sgeo> You want me to say good things/
04:51:31 <alise> I'm wondering if there are any good things.
04:52:09 <Sgeo> I can browse the web on it. I can make phone calls from it [if I had a SIM card in it]. Things like the calendar app don't waste screen space on a Menu button.
04:52:24 <Sgeo> Apart from that, I'd need to have tried another smartphone in order to be able to make any comparision
04:52:24 <alise> So it's good, right?
04:52:27 <alise> On the whole?
04:52:48 <Sgeo> alise, you'd need to try it
04:52:54 <alise> kay :P
04:53:09 <Sgeo> Either that, or I need to really try an iPhone
04:53:42 <Sgeo> Oh, I liked how the Reddit app integrates with, say, apps that let you share things. You can share through Reddit
04:53:57 <Sgeo> Not that the reddit app is that great [it's a bit crashy]
04:55:35 <Sgeo> Can Last.fm scrobbers work on iPhone? Somehow, I doubt it
04:55:56 <Sgeo> [I'm assuming scrobber == app that reports to last.fm what music you're listening to]
04:56:37 <Sgeo> http://github.com/talklittle/reddit-is-fun/issues#issue/43 bug report on Reddit app
05:01:04 -!- Oranjer has left (?).
05:04:17 <alise> 5:03; now I've reached my threshold of snaity.
05:07:28 <oerjan> `define snaity
05:07:30 <HackEgo> No output.
05:07:52 <oerjan> YOU BASTARD YOU ARE MAKING UP WORDS
05:07:58 <oerjan> ALSO, GO TO BED
05:09:21 <alise> wow, snaity
05:09:26 <alise> my new <3ourite word
05:09:30 <alise> <3 pronounced fav
05:09:56 <oerjan> NOW YOU ARE MAKING UP PRONUNCIATIONS
05:10:46 <alise> i'm hysterically accurate
05:11:40 <oerjan> VADE IN FULCRUM
05:13:08 <Sgeo> Another bad point: The trackball FEELS as though a minute movement should equal one movement of the cursor, but it doesn't
05:13:16 <Sgeo> [mild point, really]
05:13:41 <alise> 5:13 it is light outside
05:13:42 <Sgeo> Would probably be unusable
05:13:46 <Sgeo> alise, go to sleep!
05:13:48 <alise> where is my motivation at
05:13:51 <alise> ok what do i need to do... many things
05:14:00 <alise> ok ok there are many steps involved in that process
05:14:03 <alise> firstly, i will close curtains
05:14:25 <alise> FAILURE
05:14:30 <alise> curtain turns out to actually be blanket
05:14:35 * alise hangs up blanket
05:14:56 <alise> i'll do that last
05:15:36 <alise> so i
05:15:38 <alise> i
05:15:41 <alise> i guess i should go
05:15:53 <alise> but... you know, I'll stay logged in until I actually go to bed >_>
05:16:08 <alise> but let this be bye until tomorrow!
05:16:46 <oerjan> sweet dreams
05:19:45 -!- augur has quit (Ping timeout: 265 seconds).
05:24:11 -!- alise has quit (Remote host closed the connection).
05:25:05 <oklopod> hi e veryone
05:25:15 <oklopod> i shouod sleep soon
05:25:17 <oklopod>
05:28:25 <oerjan> slëëp
05:28:50 <oerjan> ïs rëgülärlÿ rëcömmëndëd
05:29:01 <oklopod> yrs
05:29:03 <oklopod> ->>
05:37:40 -!- augur has joined.
05:58:06 <Gregor> Today, I wrote a PDF viewer :P
06:05:19 * oerjan assumes there are some qualifications
06:05:30 <oerjan> besides genius, that is
06:27:53 -!- oerjan has quit (Quit: leaving).
06:29:41 <pikhq> Gregor: Oh?
06:30:50 <Gregor> pikhq: http://www.mobileread.com/forums/attachment.php?attachmentid=50406&d=1272083550
06:34:33 <pikhq> Not bad. I presume you linked against a PDF rendering library?
06:34:43 <pikhq> Seems like writing a full PDF implementation would take a *bit* more than a day.
06:35:13 -!- augur has quit (Ping timeout: 240 seconds).
06:42:25 * Gregor reappears.
06:42:29 <Gregor> pikhq: poppler
06:43:00 <pikhq> Yup.
06:43:03 <Gregor> pikhq: It's just meant to pseudo-reflow by cutting up two-column documents such that you can read a page in two half-page views instead of four.
06:43:04 <pikhq> Figured.
06:43:10 <pikhq> Mmmm.
06:43:22 <Gregor> Which is important when you're on an eInk-based reader :P
06:53:16 -!- augur has joined.
07:10:10 -!- coppro has quit (Ping timeout: 248 seconds).
07:13:53 -!- kar8nga has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:26 <augur> Gregor: if you were on a mac, you could write a million in a day
08:03:26 <augur> :D
08:05:31 <pikhq> augur: Or he could just install GNUstep and write the same code.
08:05:46 <augur> ;)
08:17:21 -!- augur has quit (Remote host closed the connection).
08:17:45 -!- augur has joined.
08:25:44 -!- jcp has quit (Read error: Operation timed out).
08:36:44 -!- kar8nga has quit (Remote host closed the connection).
09:53:29 -!- Rugxulo has joined.
10:15:38 <Rugxulo> new BEFI.COM, faster but still only 1014 bytes -> http://board.flatassembler.net/topic.php?t=10810
10:17:11 -!- MizardX has quit (Ping timeout: 276 seconds).
10:19:04 * Rugxulo is trying in vain to write a Befunge93 interpreter in REXX
10:19:17 <Rugxulo> I'm too dumb, I guess, too inexperienced
10:38:53 <Rugxulo> weird quirk, fixed it, now for the rest of the bugs and lacks :-/
10:40:03 -!- oklopod has quit (Ping timeout: 246 seconds).
10:43:46 -!- tombom has joined.
10:58:41 -!- oklopod has joined.
11:03:41 -!- Rugxulo has quit (Quit: ERC Version 5.3 (IRC client for Emacs)).
11:15:42 -!- kar8nga has joined.
11:34:01 -!- FireFly has joined.
12:07:44 -!- nooga has joined.
12:31:46 -!- Asztal has joined.
12:37:48 -!- tombom has quit (Quit: Leaving).
13:57:02 -!- Alex3012_ has quit (Read error: Connection reset by peer).
14:00:00 -!- Alex3012_ has joined.
14:24:31 <uorygl> Kokous jatkuu, mutta älä välitä aikaa
14:30:18 <uorygl> En halua ihmisten elää, tiedän, Internet saippua!
14:31:12 <Deewiant> I'm having trouble untranslating the latter
14:32:57 <uorygl> Joten, kaikki kanit melko emotionaalinen kidutus - kyllä!
14:37:15 <olsner> something about internet soap?
14:38:15 <uorygl> Yeah, a bad translation of "I don't want anybody in real life knowing I have soap from the Internet!".
14:38:19 <uorygl> Using a special bad translator.
14:39:11 <Deewiant> Darn, I thought the soap was just something random
14:39:41 <uorygl> Raskauteen liittyvät tulkinnat ultraääni raskaana presidentti Oklahoma.
14:39:44 <Deewiant> Hence the trouble; I was trying to figure out what could cause it
14:40:03 <uorygl> I would appreciate these more if I actually know Finnish.
14:40:08 <uorygl> s/know/knew/
14:40:09 <Deewiant> What're you using, intertran or something? :-P
14:40:18 <uorygl> Something like that, yes!
14:40:22 <uorygl> http://www.conveythis.com/translation.php
14:40:43 -!- aschueler has quit (Ping timeout: 240 seconds).
14:41:51 -!- Alex3012_ has quit (Read error: Connection reset by peer).
14:42:04 <Deewiant> Doesn't allow setting the source lang, meh
14:42:35 <uorygl> You can always enter something in Finnish and wait for it to get translated from Finnish, and then put the resulting English back in.
14:42:43 <uorygl> And see what the Finnish is.
14:42:45 <Deewiant> Except that it detected my Finnish as Afrikaans :-P
14:42:53 -!- aschueler has joined.
14:43:08 <Deewiant> Or does it always start from there
14:43:14 <uorygl> Yeah, it does.
14:43:25 <Deewiant> Anyway, that uses Google's translator, which is fine
14:43:54 <Deewiant> Bad Translator!: "I am happy about this" -> "Olen erittäin onnellinen."
14:44:03 <Deewiant> InterTran: "I am happy about this" -> "I-KIRJAIN olen iloinen jokseenkin nyt kuluva."
14:44:56 <uorygl> Huh, apparently Google Translate thinks that the Portuguese word "Oklahoma" means Texas.
14:45:00 <Deewiant> BT turned it into en:"I am very happy", InterTran came up with en:"THE LETTER I I am happy somewhat now ongoing"
14:45:39 <Deewiant> I love how InterTran turns "I" into "THE LETTER I"
14:46:09 <uorygl> Since, you know, that's what I usually means.
14:46:30 <uorygl> Sherman, Texas, 24 raskaana olevia työntekijöitä.
14:46:48 <Deewiant> Except that it usually doesn't mean that.
14:47:16 <Deewiant> And never when followed by "am".
14:47:56 <uorygl> Devil ja slithy Zhimbl pehmeä ja mieto kylmä-kuin: Misebiles borogoves outgrabe nyt ja rotilla.
14:57:41 <fizzie> For what that particular translation sounds like, there are four possibly more reasonable ones at http://fi.wikipedia.org/wiki/Pekoraali
15:03:20 <Asztal> try using InterTran to translate a page from English to English. It's amusing.
15:11:46 -!- aschuele1 has joined.
15:13:15 -!- aschueler has quit (Ping timeout: 276 seconds).
15:20:27 -!- Alex3012_ has joined.
15:25:57 -!- cheater2 has quit (Ping timeout: 264 seconds).
15:31:56 -!- cheater2 has joined.
16:05:06 -!- nooga has quit (Ping timeout: 248 seconds).
16:18:15 -!- nooga has joined.
16:19:44 -!- pikhq has quit (Read error: Connection reset by peer).
16:24:09 <nooga> ooooo, that's the goddamn scottish hangover i suppose
16:24:47 -!- pikhq has joined.
16:53:59 -!- BeholdMyGlory has joined.
17:06:44 -!- Sgeo has quit (Ping timeout: 245 seconds).
17:06:45 -!- Sgeo_ has joined.
17:13:13 -!- anil has joined.
17:13:20 -!- anil has quit (Client Quit).
17:22:08 -!- Sgeo has joined.
17:22:59 -!- Sgeo_ has quit (Ping timeout: 245 seconds).
17:41:30 -!- alise has joined.
17:46:18 <alise> Amazing unamazing.
17:47:02 <alise> I had a dream where I was playing with an iPad
17:47:06 <alise> it was a lot smaller than I imagined
17:47:15 <alise> and the aspect ratio made it either too tall to be useful or too wide
17:47:22 <alise> nothing looked quite as impressive as it should
17:47:26 <alise> these are the kind of dreams i get
17:47:34 <alise> ones about the mediocrity of hyped technology
17:48:33 <Mathnerd314> I wish I could dream about the awesomeness of unhyped unpopular technology :-(
17:48:45 <alise> hehe yeah
17:48:58 <alise> ais523 log reading: now Apple are denying apps that don't have enough features; http://yourhead.tumblr.com/post/539227006/apple-wont-give-you-the-time-of-day
17:49:05 <alise> this is the most hilarious slippery slope ever
17:49:21 <alise> soon you'll only be able to submit an app if Jobs himself can't tell it from one of Apple's own!
17:51:20 <Gregor> alise: Are you sure this was a dream, and not ... y'know, the actual iPad?
17:51:34 <alise> I have a feeling the iPad is significantly larger in real life.
17:51:53 <alise> I mean, all my complaints were aesthetic concerns; my subconscious can't quite handle intellectual complaints.
17:51:56 <alise> And the iPad certainly has the looks :P
17:52:21 <alise> www.mobileread.com/forums/attachment.php?attachmentid=50406&d=1272083550
17:52:22 <alise> erm
17:52:25 <alise> 22:43:03 <Gregor> pikhq: It's just meant to pseudo-reflow by cutting up two-column documents such that you can read a page in two half-page views instead of four.
17:52:28 <alise> Nice; port it to Android. :P
17:52:53 <Gregor> Changing source language and all libraries hardly counts as a port :P
17:53:53 <alise> Hey, poppler works on Android. Probably. :P
17:54:13 <alise> 08:24:09 <nooga> ooooo, that's the goddamn scottish hangover i suppose
17:54:19 <Gregor> Android = Java dev platform
17:54:21 <alise> The only cure is not drinking ridiculous amounts of alcohol the night before.
17:54:27 <alise> It's such a sad illness.
17:54:31 <alise> Gregor: I know
17:54:37 <alise> But you can use JNI
17:54:42 <Gregor> Feh
17:54:45 <alise> Also, you /can/ use C, just only if you like interfacing with the APIs in a secret world of pain.
17:54:52 <alise> Not only a world of pain. A secret world of pain.
17:55:39 <Gregor> The IREX = X11 + GTK+ :)
17:55:42 <alise> "Microsoft stealth launches F#" --El Reg
17:55:44 <alise> Er
17:56:01 <alise> iRex; isn't that the one ereader that costs several organs?
17:56:10 <alise> And looks like shit?
17:56:10 <alise> yep
17:56:37 <alise> [[What hope is there for F#, the new language that Microsoft has sneaked into Visual Studio 2010, launched this month?]]
17:56:39 <fizzie> Gregor: Port it to Maemo, that's X11 + still-GTK+-a-for-a-while-before-going-Qt, and poppler's pre-packaged in the repository. Except that I have no idea what that program of yours does.
17:56:43 <alise> Man, I love the Register; they're so silly.
17:57:06 <fizzie> What is silly is this:
17:57:07 <fizzie> $ dot -Tpng -otest.png test.dot
17:57:07 <fizzie> dot: height (51515 >= 32768) is too large.
17:57:07 <fizzie> Segmentation fault
17:57:09 <alise> Gregor: btw your link was an invalid attachment
17:57:12 <alise> bitch
17:57:17 <alise> fizzie: That's modern, man.
17:57:32 <alise> fizzie: his program reformats + views pdfs
17:57:56 <Gregor> alise: It is now, I uploaded a new screenshot :P
17:58:04 <alise> Fucking forums.
17:58:11 <Gregor> http://www.mobileread.com/forums/attachment.php?attachmentid=50424&d=1272126494
17:58:13 <alise> Breaking links, often requiring you to log in, using shitty interfaces...
17:58:24 <alise> Pieces of crap.
17:58:40 <alise> Gregor: I don't quite dig the Windows 2-style top UI controls
17:58:51 <alise> Or does the eInk magically smooth them out perfectly?
17:58:59 <alise> If so, disabling antialiasing in poppler, too.
17:59:37 <Gregor> Are you referring to the shape, or the placement?
18:00:00 <alise> Well, the raggedness, mostly.
18:00:09 <alise> But yes, the controls are too close together.
18:00:19 <alise> "Theres an array of integers, of odd size N (N%2 == 1)." ;; thanks for defining what "odd" means
18:00:21 <Gregor> Yeah, that's smoothed out on the screen.
18:00:36 <alise> "Same array, this time its size is even (N%2 == 0)." how is it the SAME array...
18:00:41 <Gregor> Hm, maybe I should disable antialiasing and see how the eInk fares ...
18:00:45 <alise> Yeah.
18:00:47 <alise> That'd be interesting. :P
18:00:53 <alise> I wonder if the built-in book reader antialiases.
18:00:58 <alise> Probably, for the levels-of-grey stuff. But who knows.
18:01:08 <Gregor> Hard to say, it's proprietary Adobe shit >_<
18:01:16 <Gregor> It's the only non-F/OSS part of the stack.
18:01:53 <alise> I wanted a Kindle but it doesn't have the nice free internet over in the UK.
18:02:11 <alise> Writing a little minimalist Javascript IRC client was pretty much the main use I had in mind for it.
18:02:17 <Gregor> Hah
18:02:29 <alise> Wow, arcanesentiment is #2 on /r/programming.
18:02:32 <alise> I almost forgot about that blog.
18:02:47 <alise> The Kindle does have the nicest form factor & looks of all the readers, I think.
18:02:51 <alise> The Sonys second.
18:03:04 <alise> The Sony touch ones seem a gimmick, though; I don't think I'd like poking at eink for no particular reason.
18:03:14 <Gregor> You're referring to the DX?
18:03:28 <Gregor> Or the Kindle 2?
18:03:31 <alise> No, just the 2. Why; is the DX better?
18:03:35 <Gregor> Just bigger.
18:03:36 <alise> I thought the DX would be too big for regular booky books.
18:03:51 <Gregor> The IREX is about the same size as a Kindle 2, but has a (much) bigger screen.
18:04:12 <alise> The black plastic looks so tacky, though. :P
18:04:17 <alise> Also, the IREX costs so, so much money.
18:04:21 <alise> It's ridiculous.
18:04:34 <alise> iRex iLiad 2nd Edition Digital Reader
18:04:34 <alise> 590.95 new - Purelygadgets.co.uk
18:04:34 <alise> IREX iLiad Book Edition Electronic Book
18:04:34 <alise> 491.00 new - Pixmania.com
18:04:34 <alise> IREX Digital Reader 800S E-book Reader + 4 GB Micro SDHC Memory Card +
18:04:35 -!- Tritonio_GR has joined.
18:04:36 <alise> 532.82 new - D2 LEISURE GROUP
18:04:41 <alise> I am not paying 500 pounds for an ebook reader.
18:04:52 <Gregor> iLiad = dead, DR800 is cheap in the US.
18:04:55 <alise> (= $768; you uncouth guy)
18:05:05 <alise> Since when is the iLiad dead?
18:05:08 <alise> Wikipedia doesn't say so
18:05:10 <Gregor> But yeah, for some reason they're crazy-expensive in Europe ... where they're manufactured.
18:05:15 <alise> Also googling it gets stuff about bikes
18:05:22 <Gregor> alise: Well, the DR800 is roughly the same form factor but newer :p
18:05:31 <alise> Oh, that is prettier.
18:05:34 <alise> I like the look of that.
18:05:45 <alise> Uh, why the pen though?
18:05:56 <alise> Oh, http://www.techwall.org/wp-content/uploads/2009/09/irex-dr-800.jpg must be the prettiest ebook reader now.
18:05:58 <Gregor> Just for search and such, onscreen keyboard.
18:06:01 <Gregor> Usually I don't use it.
18:06:01 <alise> The Kindle loses :P
18:06:08 <alise> Gregor: Doesn't work with touch?
18:06:16 <alise> Then how am I to IRC? :(
18:06:16 <Gregor> No, it's a wacom.
18:06:25 <Gregor> Wait, WTF is with that enormous pen X-D
18:06:33 <Gregor> The image you have has a custom stylus, not the small one that comes with it.
18:07:23 <alise> All the other images I saw had it :P
18:07:29 <Gregor> *confused*
18:07:34 <alise> Anyway, my enormous pen is entirely my own business, thank you very much.
18:07:49 <Gregor> :P
18:08:01 <fizzie> Fungot, as seen by dot: http://zem.fi/~fis/test.png (resized to tiny 852x6439 from the original readable 5109x38636 pixels)
18:08:01 <alise> Also, the new iPhone is going to have a >300dpi, wtf apple stop it, please start sucking at /everything/
18:08:04 <alise> then I can FORGET YOU
18:08:11 <Gregor> Anywho, I actually wanted an ereader /primarily/ for reading. For anything else it wouldn't be worthwhile.
18:08:35 <alise> Yeah, I just don't read on the go... at all.
18:08:45 <alise> Books I read almost exclusively before going to sleep, papers I almost always read on a computer...
18:08:54 <alise> Gregor: Does it allow free copying of your books around?
18:09:10 <alise> fizzie: What's that squashed onion thing over half way down?
18:09:27 <Gregor> alise: Yeah, they just download to the SD card. Idonno how all the DRM garbage applies to the different formats though ...
18:09:31 <alise> fizzie: Also, make it lay it out to heavily optimise for short lines; wideness is fine. That'd be interesting.
18:10:02 <alise> Gregor: What we /really/ need is a computer screen that can switch to eink-style mode on the fly.
18:10:09 <alise> And is, say, OLED the rest of the time.
18:10:15 <fizzie> alise: I think it's the jump table for punctuation tokens.
18:10:18 <Gregor> That would be SWEET.
18:10:18 <alise> Then you could have an iPad-ish thing that's actually usable for reading books on.
18:10:32 <Gregor> Have an OLED over an eInk screen that can be set "transparent"
18:10:32 <alise> Gregor: Well, they are doing it!
18:10:37 <alise> Pixel Qi. But I don't know how well they are doing with it.
18:10:39 <alise> http://www.google.co.uk/search?q=pixel+qi&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-GB:unofficial&client=firefox-a
18:11:00 <alise> From the part of the team that brought you the screen of the XO laptop -- not so impressive, I know.
18:11:10 <alise> It's not perfect right now though
18:11:29 <alise> http://www.pixelqi.com/products ;; some photos
18:11:49 <alise> [[While Pixel Qi has said that it believes a $75 laptop will be ready in 2010. However Pixel Qi isn't making a $75 laptop. We are making the screens.]]
18:11:50 <alise> How pointless
18:12:36 <fizzie> http://zem.fi/~fis/test_neato.png -- neato's default don't-avoid-overlaps mode is always so useful for large graphs.
18:13:31 <alise> Looks like an organism of sorts.
18:13:38 <alise> fizzie: Ooh, I have an amazing idea.
18:13:55 <alise> Do an animated one, where something like: the center of the screen is where the IP is now; and cells change accordingly.
18:14:00 <alise> So it'd be relayouting a bit like a flow.
18:16:48 * alise considers writing a little ditty library for C for doing arbitrary-precision real computatio
18:16:50 <alise> n
18:17:24 <fizzie> Hrm, I don't think graphviz is very good for animation; but different sorts of real-time funge-code visualization would be nice to have.
18:17:51 <alise> fizzie: I just think the constant-relayouting would look like an organism flowing through the program, so to speak.
18:19:19 <fizzie> That particular graph is actually from a static compiler of a non-self-modifying Funge-98 subset; it traces all code paths in advance, compiles to a register-based intermediate form, outputs a single LLVM function for the program. The graph is the basic block graph for the intermediate form.
18:19:38 <alise> Wow.
18:19:43 <alise> Can it actually run fungot?
18:19:44 <fungot> alise: " expression" instead of with /foo... i know......
18:19:47 <alise> Like, at all?
18:20:48 <alise> Hmm, I could do a real as simply taking an int for a precision argument... so that, e.g. it could be passed as the upper bound for infinite sums.
18:20:50 <alise> Yeah, I'll do that.
18:21:18 <fizzie> Not yet, no. But fungot is the target I'm aiming at, since I can't ever run mycology with it. It does run that rule110.bf benchmark I made a while ago, and rot13.bf too.
18:21:19 <fungot> fizzie: very few schemes even come close
18:21:33 <alise> This also means I need bignums, for numerators and denominators of rationals. Groan.
18:21:49 <alise> I hate gmp.
18:22:45 -!- nooga has quit (Ping timeout: 246 seconds).
18:24:49 <alise> I guess if I want to write the ultimate CAS/dependently-typed programming language/theorem prover, I ought to write my own bignum library. After all, everybody else will get it Wrong. :P
18:29:06 -!- oerjan has joined.
18:29:20 <alise> hi oerjan
18:29:28 -!- ais523 has joined.
18:29:34 <oerjan> hello alise
18:30:15 <oerjan> also ais523, who nearly caused an embarassing tab expansion error there
18:32:28 <ais523> hi
18:32:40 <ais523> oerjan: you could have said hello in the other order, and nobody would have noticed or cared
18:32:53 <oerjan> well i aren't that clever, you know
18:33:15 <oerjan> ais523: except alise had already said hi
18:33:22 <ais523> ah
18:33:27 <ais523> hi alise, btw
18:39:23 <uorygl> You're not a LIFO greeter, I see.
18:39:41 <uorygl> Hi, ais523. Hi, oerjan.
18:39:56 <oerjan> hi uorygl
18:40:08 <ais523> hi uorygl
18:40:36 * alise runs a tactic in Coq while forgetting it's turing-complete
18:40:42 * alise 's proof hangs
18:41:01 <alise> proving "forall x, Y * = x * (Y * x)" will /not/ proceed by computation.
18:41:41 <uorygl> What is * here?
18:41:46 -!- HackEgo has quit (Ping timeout: 260 seconds).
18:42:17 <alise> application
18:42:27 <alise> I'm carrying on from fax's http://muaddibspace.blogspot.com/2009/10/short-note-on-semantics.html
18:42:52 <alise> http://pastie.org/933123.txt?key=rsxttmof1dxsmaxf4iegg
18:43:00 <uorygl> Is Y * an abbreviation of Y * x?
18:43:01 <alise> we can reason about this forever but there's no actual model
18:43:13 <alise> i.e. we can't actually give concrete values to the SK, app, S and K sets
18:43:17 <alise> because coq always terminates
18:43:19 <alise> but this is good enough
18:43:22 <alise> uorygl: no; just a typo.
18:43:31 <Sgeo> The Nexus One trackball is more useful than it appears
18:45:03 <alise> Theorem Y_prop : Y * I = I * (Y * I).
18:45:04 <alise> unfold Y.
18:45:04 <alise> rewrite I_prop.
18:45:04 <alise> reflexivity.
18:45:04 <alise> Qed.
18:45:09 <alise> easy, but not as general as I'd like :P
18:45:29 <alise> maybe some other fixed-point combinator would make this easier.
18:46:50 <alise> if anyone manages to prove the polymorphic case of that, you get a cookie
18:46:54 <alise> also for
18:46:55 <alise> Definition Y :=
18:46:56 <alise> S * (K * M) * (S * (S * (K * S) * K)) * (K * M).
18:46:57 <alise> or, you know
18:46:59 <alise> any fixed-point combinator
18:47:29 <uorygl> What is M?
18:47:42 <alise> Definition M := S * I * I.
18:47:42 <alise> Theorem M_prop : forall x, M * x = x * x.
18:47:42 <alise> intro.
18:47:42 <alise> unfold M; ski.
18:47:42 <alise> reflexivity.
18:47:42 <alise> Qed.
18:47:44 <alise> Ltac skim := repeat (ski || rewrite M_prop).
18:47:46 <alise> RTFpastie :P
18:47:48 <alise> http://pastie.org/933123.txt?key=rsxttmof1dxsmaxf4iegg
18:48:25 <alise> just using "sk(i(m)?)?" doesn't halt because of course Y diverges
18:48:32 -!- jcp has joined.
18:48:34 <alise> so we need to be more careful and come up iwth a more analytic proof
18:49:29 -!- augur has quit (Ping timeout: 260 seconds).
18:49:48 <alise> Actually if we used setoid equality I think fax is saying that we could define an undecidable == to mean "computes to at some point".
18:49:51 <alise> Which I think would be possible.
18:49:56 <alise> But you couldn't use it for much, I don't think.
18:51:37 -!- pikhq has quit (Read error: Connection reset by peer).
18:56:02 <oerjan> well "reduces to the same thing at some point" is what beta-equivalence boils down to, once you've proved church-rosser for it
18:56:02 <alise> ais523: Here, you prove it. I hear you proved some thingymajic about turing-complete things, so this is clearly perfect for you to do.
18:56:09 <alise> oerjan: of course.
18:56:20 <ais523> alise: what do you want me to prove?
18:56:21 <alise> oerjan: point is that since coq terminates, we can never satisfy:
18:56:23 <alise> Parameter SK : Set.
18:56:24 <alise> Parameter app : SK -> SK -> SK.
18:56:24 <alise> Infix "*" := app.
18:56:24 <alise> Parameter S : SK.
18:56:24 <alise> Parameter K : SK.
18:56:25 <alise> Axiom S_prop : forall a b c, S * a * b * c = (a * c) * (b * c).
18:56:26 <alise> Axiom K_prop : forall a b, K * a * b = a.
18:56:28 <alise> Axiom SK_prop : S <> K.
18:56:44 <ais523> hmm, this is combinatory logic, presumably
18:56:48 <alise> oerjan: we can define stuff using it, and using S_prop and K_prop prove "equalities" (reductions) with it, and "compute" it by having a tactic that repeatedly applies these
18:56:55 <alise> but we can never actually implement a model in Coq
18:57:04 <alise> ais523: http://pastie.org/933123.txt?key=rsxttmof1dxsmaxf4iegg
18:57:07 <alise> prove Y_prop
18:57:07 <oerjan> mhm
18:57:10 <alise> in Coq
18:57:11 <alise> :P
18:57:23 <alise> you can't compute with skim to do it because (Y x) always diverges
18:57:31 <alise> so skim never terminates (proof tactics can be turing-complete)
18:58:27 <alise> "The Brain Editor and Fucker, or Brainfuck for TECO. (esolangs.org)" -- #13 on /r/programming
18:58:36 <alise> posted by the author, even
18:58:40 <alise> Note that I wrote that using Tom Almy's excellent TECOC so I can't guarantee it'll work on just any old TECO version. In theory, it should work on anything that's compatible with TECO-11 v40.
18:58:40 <alise> Edit: usage instructions! For the lazy: Start TECO up in the directory where you saved the .tec file, and when you get its prompt (a *), type eiBEFstarObf.tec$$ ($$ means <ESC><ESC>, ie. press the ESC key 2 times)
18:58:43 <alise> http://www.esolangs.org/files/brainfuck/impl/BEFstar.txt
18:58:44 <oerjan> so presumably you need to emulate step-by-step evaluation somehow
18:59:00 <alise> oerjan: easy
18:59:06 <alise> rewrite S_prop will reduce a full S_application
18:59:11 <alise> ditto for K, I, and M (M is SII)
18:59:25 <alise> skim just repeatedly does "rewrite [SKIM]_prop", basically
18:59:28 <alise> until it doesn't change
18:59:30 <alise> of course, with Y this diverges
18:59:31 <alise> the problem is
18:59:33 <alise> we can unfold everything
18:59:37 <alise> but it still essentially boils down to
18:59:47 <alise> CRAP WITH X IN IT = x * CRAP WITH X IN IT
18:59:51 <alise> so I'm not sure where to proceed from here
19:00:24 <oerjan> alise: well my point is you _should't_ repeat, you should do the exact sequence of s,k,i and m reductions necessary, which i assume you can do by hand somehow...
19:00:31 <oerjan> *shouldn't
19:00:36 <alise> well, yes
19:00:43 <alise> but I ran them for a while and nothing seemed to help
19:00:54 -!- EgoBot has quit (Ping timeout: 260 seconds).
19:01:05 <alise> try S_prop; try K_prop.
19:01:11 <alise> running this over and over again until you want to stop should work
19:01:16 <alise> but will it ever actually get into the form of x = x?
19:01:31 <oerjan> well do it on paper first
19:01:35 <alise> hmm, try isn't working
19:01:38 <alise> oerjan: that won't really help
19:01:48 <oerjan> it will tell you the exact sequence you need
19:02:02 <alise> try (rewrite S_prop || rewrite K_prop); try reflexivity.
19:02:04 * alise repeatedly does this
19:02:07 <alise> oerjan: so will messing around in Coq
19:02:24 <alise> x *
19:02:25 <alise> (x *
19:02:25 <alise> (S * S * (S * (S * S * K)) * (K * x) *
19:02:25 <alise> (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x))) =
19:02:25 <alise> x *
19:02:26 <alise> (x *
19:02:27 <alise> (x *
19:02:29 <alise> (S * S * (S * (S * S * K)) * (K * x) *
19:02:31 <alise> (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x))))
19:02:35 <alise> I think we need some sort of induction here
19:04:04 <alise> it just keeps expanding
19:04:10 <alise> hmm... I wonder if I can do some sort of fix-point proof here.
19:06:33 <oerjan> alise: the thing is you want Y * x = x * (Y * x). once you have shown Y * x = x * _something_, show that _something_ reduces to Y * x
19:06:58 <alise> reduces to ->
19:07:02 <oerjan> where you quite likely need to do equations backwards, btw
19:07:04 <alise> once you have shown Y * x = x * something
19:07:08 <alise> show that something = Y * x
19:07:12 <alise> yeah, that's just the original problem.
19:07:15 <alise> with an extra variable.
19:07:29 <alise> I don't know if you can do equations backwards
19:07:30 <alise> oh, you can
19:07:32 <alise> using symmetry
19:07:38 <oerjan> "something" was a turn of phrase
19:08:26 <oerjan> although since you _do_ have church-rosser backwards shouldn't really be necessary. assuming M doesn't ruin something.
19:08:28 <alise> there, after 9 rewrite S_prop ||| rewrite K_props, I have some sort of result
19:08:32 <alise> x *
19:08:33 <alise> (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x * x *
19:08:33 <alise> (K * (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x) * x)) =
19:08:33 <alise> x *
19:08:33 <alise> (x *
19:08:33 <alise> (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x * x *
19:08:36 <alise> (K * (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x) * x)))
19:08:38 <alise> grr
19:08:40 <alise> I really want to just rewrite on the LHS
19:08:42 <alise> so I'll do it as an assertion
19:08:46 <alise> no wait, I can't
19:08:48 <alise> how annoying!
19:09:18 <oerjan> do all the K reductions. they are sure not to make things more complicated after all, so _will_ terminate.
19:09:26 <alise> assert (x * (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x * x *
19:09:27 -!- comex has quit (Ping timeout: 252 seconds).
19:09:27 <alise> (K * (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x) * x)) =
19:09:28 <alise> Y * x).
19:09:28 <alise> ^ ouch
19:09:35 <alise> oerjan: good point
19:09:50 <alise> done; but there are still Ks, just unevaluated ones ofc
19:10:16 <alise> x : SK
19:10:17 <alise> ============================
19:10:18 <alise> x *
19:10:18 <alise> (S * (K * (S * S * (S * (S * S * K)))) * K * x *
19:10:18 <alise> (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x)) =
19:10:18 <alise> Y * x
19:10:18 <alise> oh, the pain
19:10:32 <alise> I wonder how to do a reverse rewrite
19:10:54 <oerjan> (same with I, btw)
19:11:03 <alise> oerjan: no I in this combinator
19:11:06 <alise> assert (porp_WHATEVER : y = x). symmetry. apply WHATEVER_prop.
19:11:09 <alise> rewrite porp_WHATEVER.
19:11:11 <alise> but that is gross...
19:11:19 <oerjan> ok
19:11:27 <alise> and I can't tactic it up, I think
19:11:56 <alise> # rewrite <- term
19:11:57 <alise> Uses the equality term1=term2 from right to left
19:11:57 <alise> there
19:12:20 <oerjan> alise: anyway those x * (x * ... up there tell me you've already done too much, you _should_ be able to get just one x * ... outside
19:12:51 <alise> yeah good point
19:12:51 <alise> ok then
19:12:53 -!- comex has joined.
19:12:56 <oerjan> basically, hm, whatever you do don't do more than _one_ M reduction, i think
19:13:11 <alise> no M, dammit
19:13:15 <alise> Definition Y :=
19:13:15 <alise> S * S * K * (S * (K * (S * S * (S * (S * S * K)))) * K).
19:13:17 <oerjan> unless you really need it
19:13:20 <alise> K * x * (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x) *
19:13:21 <alise> (S * (S * S * K) * (K * x) *
19:13:21 <alise> (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x)) =
19:13:21 <alise> x *
19:13:21 <alise> (K * x * (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x) *
19:13:22 <alise> (S * (S * S * K) * (K * x) *
19:13:23 <alise> (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x)))
19:13:26 <alise> this is the first step where I can get x *
19:13:28 <oerjan> oh so it was just an abbreviation
19:13:31 <alise> so I should stop there right?
19:13:39 <alise> and not rewrite any more Ks?
19:13:43 <alise> if I do, it turns into x * (x * ...
19:13:52 <oerjan> whoops
19:14:02 <oerjan> rewriting K's shouldn't hurt anything
19:14:02 <alise> why whoops
19:14:11 <alise> so stop whining about my x * x *! :-)
19:14:24 <oerjan> if that does something wrong, you have _already_ done something wrong
19:14:36 <alise> meh
19:14:39 <alise> I'll keep trying this
19:14:40 <oerjan> suggestion: reduce K between everything else
19:14:45 <alise> okay
19:15:08 <alise> sorry, it does not work.
19:15:13 <alise> rewrite S_prop; repeat (rewrite K_prop).
19:15:13 <alise> rewrite S_prop; repeat (rewrite K_prop).
19:15:13 <alise> rewrite S_prop; repeat (rewrite K_prop).
19:15:13 <alise> rewrite S_prop; repeat (rewrite K_prop).
19:15:13 <alise> rewrite S_prop; repeat (rewrite K_prop).
19:15:19 <alise> this is simply due to the definition of Y -- it is unavoidable!
19:15:25 <alise> it is rewriting on the right hand side of the equality
19:15:27 <alise> I cannot help that
19:16:41 <alise> x : SK
19:16:42 <alise> H : S * (K * (S * S * (S * (S * S * K)))) * K * x *
19:16:42 <alise> (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x) =
19:16:42 <alise> Y * x
19:16:42 <alise> ============================
19:16:42 <alise> x *
19:16:43 <alise> (S * (S * S * K) * (K * x) * (S * (K * (S * S * (S * (S * S * K)))) * K)) =
19:16:45 <alise> x *
19:16:47 <alise> (x *
19:16:49 <alise> (S * (S * S * K) * (K * x) * (S * (K * (S * S * (S * (S * S * K)))) * K)))
19:16:51 <alise> I can do that, at least
19:17:41 <oerjan> ssk(s(k(ss(s(ssk))))k) is a strange combinator
19:17:52 <oerjan> what does ssk do, hm
19:17:54 <alise> yes, and your advice with rewriting Ks broke that proof!
19:18:07 <oerjan> *sigh*
19:18:26 <oerjan> oh well ignore me then
19:18:30 <alise> oh wait
19:18:33 <alise> I can get just x *
19:18:40 <alise> S * (K * x) * (S * (S * S * K) * (K * x)) *
19:18:41 <alise> (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x) =
19:18:42 <alise> x *
19:18:42 <alise> (S * (K * x) * (S * (S * S * K) * (K * x)) *
19:18:42 <alise> (K * (S * (K * (S * S * (S * (S * S * K)))) * K) * x))
19:18:42 <alise> is that good?
19:19:18 <oerjan> that's something = x * something afaict
19:19:25 <oerjan> or wait
19:19:35 <oerjan> duh
19:19:41 <alise> but proving
19:19:45 <alise> assert ((S * (K * (S * S * (S * (S * S * K)))) * K * x *
19:19:46 <alise> (S * (K * (S * S * (S * (S * S * K)))) * K)) = Y * x).
19:19:47 <alise> is difficult
19:19:52 <alise> x : SK
19:19:52 <alise> ============================
19:19:53 <alise> S * (K * (S * S * (S * (S * S * K)))) * K * x *
19:19:53 <alise> (S * (K * (S * S * (S * (S * S * K)))) * K) =
19:19:53 <alise> S * (S * S) * (S * (K * (S * S * (S * (S * S * K))))) * K * x
19:20:00 <oerjan> x * ... * ... isn't useful
19:20:15 <alise> maybe i really should do some sort of induction hypothesis
19:20:16 <alise> like
19:20:28 <oerjan> x should not be applied to two things _ever_. in fact that ought to be impossible to get i think
19:20:33 <alise> Y * x = x * (Y * y) -> y = x
19:20:34 <alise> or something
19:21:22 <alise> oerjan: i /think/ this computational approach can never work
19:21:30 <alise> oerjan: shall I explain why?
19:21:35 <oerjan> is your Y combinator a well-known one?
19:21:37 <oerjan> ok
19:21:45 <alise> John Tromp's; I can also substitute the direct translation of Y
19:21:48 <alise> we can never do any computation of the form x * foo
19:21:51 <alise> because we have no such axiom of proof
19:21:56 <alise> so it will ALWAYS be
19:22:06 <alise> (partial evaluation of (Y x)) = x * (partial evaluation of (Y x))
19:22:12 <oerjan> um leibnitz rule?
19:22:34 <alise> what are you referring to?
19:23:07 <alise> and the problem is
19:23:12 <alise> I don't think I can rewrite just on the left hand side
19:23:20 <alise> so it will always turn into x * x on the rhs at the same time
19:23:27 <oerjan> x = y implies f(x) = f(y) for all functions f
19:23:34 <alise> duh yes
19:23:43 <alise> but can I prove this?
19:23:50 <alise> like, as far as this lc goes
19:23:53 <oerjan> or even P(x) <=> P(y) for all predicates P
19:23:53 <alise> I'll try
19:24:09 <alise> yes, this is how Coq's equality is defined... but we don't have f(x)
19:24:10 <alise> we have f*x
19:24:26 <oerjan> alise: if that's not put into your = automatically, you may get by with adding it for left and right application with a constant
19:24:33 <alise> yes, I can prove it
19:24:44 <alise> Theorem SK_leibniz : forall f x y, x = y -> f * x = f * y.
19:24:45 <alise> intros.
19:24:45 <alise> subst.
19:24:45 <alise> reflexivity.
19:24:45 <alise> Qed.
19:24:49 <alise> but I'm not sure how this will help
19:25:09 <alise> in fact I am not even sure I can prove this
19:25:10 <oerjan> _now_ you can do any reduction you want on the right side of an application
19:25:16 <alise> hooray
19:25:35 * alise tries Admitting Y_prop first (adding it as an axiom), just to check that it doesn't lead to horrible things if it's proven (which would imply it's impossible to prove)
19:26:07 -!- augur has joined.
19:26:25 <alise> like I can prove
19:26:26 <alise> Theorem YY_prop : Y * Y = Y * (Y * Y).
19:26:33 <alise> so I wonder if I can use equality induction
19:26:37 <alise> to do infinite computation with this
19:27:52 <alise> Theorem YY_prop : Y * Y = Y * (Y * (Y * Y)).
19:27:53 <alise> rewrite <- Y_prop.
19:27:53 <alise> rewrite <- Y_prop.
19:27:53 <alise> reflexivity.
19:27:53 <alise> Qed.
19:28:09 <alise> we can actually simplify expressions by using the evaluation rules backwards to introduce combinators
19:28:11 <alise> spooky...
19:28:35 <oerjan> anyway, see you later
19:28:43 -!- oerjan has quit (Quit: leaving).
19:30:26 -!- Oranjer has joined.
19:31:00 -!- alise_ has joined.
19:31:13 <alise_> ais523: the nice thing about my reduction rules
19:31:19 <alise_> is that instead of combinator -> result
19:31:22 <alise_> they're combinator <-> result
19:31:38 <ais523> yes
19:31:41 <alise_> so we can prove that the results of messy combinators like, say, plus that might return a lot of wrapping in their result
19:31:46 <alise_> still equal simple things
19:31:49 <alise_> like plus two two = four
19:32:28 <alise_> I wonder if I could prove eta-reduction
19:33:36 -!- alise has quit (Ping timeout: 258 seconds).
19:34:32 <alise_> ais523: I love how we can prove all these reasonable results about a theory that can absolutely have no possible model in Coq
19:34:45 <ais523> yes
19:36:26 <alise_> incidentally, you can translate any recursive data type into the lambda calculus in the same manner as church numerals
19:36:31 <alise_> with as many constructors as you want
19:36:36 <alise_> although using them gets a bit unwieldy
19:36:43 <alise_> basically you encode a type as its induction combinator
19:36:46 <alise_> aka the recursion combinator
19:36:56 <alise_> O | S nat's is X -> (X -> X) -> X
19:36:56 <alise_> erm
19:36:58 <alise_> O | S nat's is X -> (X -> X) -> nat -> X
19:37:34 <alise_> wow, succ is just S(S(KS)K) in SK
19:38:23 <alise_> Theorem succ_one_is_two : succ * one = two.
19:38:23 <alise_> compute.
19:38:23 <alise_> reflexivity.
19:38:23 <alise_> Qed.
19:38:26 <alise_> hells yeah
19:39:03 <alise_> Theorem ss1_is_s2 : succ * (succ * one) = succ * two.
19:39:03 <alise_> compute.
19:39:04 <alise_> reflexivity.
19:39:04 <alise_> Qed.
19:39:05 <alise_> so easy.
19:40:02 <alise_> Theorem exp2_2_is_ss2 : two * two = succ * (succ * two).
19:40:03 <alise_> this is harder to prove!
19:40:25 -!- pikhq has joined.
19:40:39 <alise_> in fact I can't do it :)
19:40:41 <alise_> hi pikhq
19:40:45 <alise_> I'm proving things about SKI in Coq
19:40:48 <pikhq> INTERNET RETURNS
19:40:53 <pikhq> Delicious.
19:42:34 <alise_> pikhq: I can't prove that Y*x = x*(Y*x) though, so I just added it as an axiom for now
19:42:39 <alise_> I did prove that succ*one=two, though!
19:43:01 <pikhq> :)
19:43:34 <alise_> In fact, I should physically coerce you into proving that Y*x=x*(Y*x) for me!
19:43:40 <alise_> It has dependent types...
19:48:41 -!- lament_ has joined.
19:49:13 <pikhq> COFFEE
19:49:25 <pikhq> It is 2 in the afternoon and I have not caffeinated. Coffee taim
19:49:47 -!- lament_ has changed nick to lament.
19:51:35 -!- Gracenotes has quit (Quit: Leaving).
19:56:57 <alise_> Is coffee taim nao
19:59:06 <Sgeo> alise_, nice things about N1 [although these are Android things]: The notification system. The ability to see a QR code to an app on a web page on your comp and just scan it in to the phone
19:59:38 <Sgeo> I usually just search for apps on the computer, and scan in the QR code to the N1 if I want it
20:00:34 <Sgeo> Bad things about N1: explorer.exe crashed. Oh wait, that WinXP
20:01:05 <alise_> lol
20:01:35 <Sgeo> Bad thing: The included headphone things hurt your ears
20:01:41 <Sgeo> Maybe I'm putting them in wrong
20:01:41 <alise_> Coq's "tauto" tactic shouldn't be called that. A tactic called "tauto" should prove any provable proposition. :-)
20:05:59 -!- zzo38 has joined.
20:08:52 <Sgeo> N1 seems to play MIDIs nicely
20:12:01 -!- lament has quit (Quit: lament).
20:12:19 <Sgeo> Hm
20:12:26 <Sgeo> Actually, I played the wrong file
20:12:53 -!- lament has joined.
20:16:33 <Sgeo> Are earbuds supposed to hurt?
20:17:40 <pikhq> No.
20:17:48 <pikhq> They are supposed to remove your ears.
20:18:04 * alise_ is doing reals in haskell
20:18:07 * alise_ tries to implement http://en.wikipedia.org/wiki/Chudnovsky_algorithm
20:20:10 <alise_> wtf, Haskell's Rational type doesn't have /
20:20:34 <Sgeo> alise_, do iPhones have MIDI support?
20:20:43 <alise_> dunno
20:22:18 -!- pikhq has quit (Read error: Connection reset by peer).
20:36:24 -!- MizardX has joined.
20:38:43 -!- pikhq has joined.
20:39:37 -!- sebbu has quit (Ping timeout: 240 seconds).
20:45:08 -!- oklopod has changed nick to oklopol.
20:45:21 -!- sebbu has joined.
20:48:58 -!- nooga has joined.
20:58:58 -!- tombom has joined.
21:21:17 <pikhq> Gregor: I've got a segfault from Egobfi.
21:21:31 <Gregor> AWESOME
21:22:06 <pikhq> Program: awib.b. Cause: dereferencing mptr, mptr out of bounds.
21:22:36 <pikhq> In bf_interpret, "if (*mptr) {", line 56...
21:24:19 <pikhq> So. Memory somehow out of bounds.
21:25:28 <pikhq> I know you don't exactly maintain that much any more, but... Yeah. That seems like a bit of a bug. ;)
21:30:15 <pikhq> And then I tried building egobfc's output and remembered that egobfc is broken. XD
21:32:34 <pikhq> I think I'm just going to blame awib's frontend-backend design.
21:35:08 <pikhq> No, that appears to segfault *every* written-in-Brainfuck compiler.
21:35:18 <pikhq> On pretty much every implementation I've got.
21:35:47 <nooga> wow
21:36:00 <pikhq> LostKng is hard. :P
21:45:46 <ais523> I never got past the first few rooms of the cave
21:46:16 <ais523> pikhq: segfault probably implies going < off the start of the tape
21:46:25 <ais523> or possibly > off the end, if the tape's finitely long for some reason
21:46:42 <pikhq> ais523: Shouldn't be > off the end in egobfi8.
21:47:16 <pikhq> It *does* have a memory-limited tape there.
21:47:37 <pikhq> As for < off the start of the tape? I'm not sure why it would do that, though that is the only way for that to *happen*.
21:58:33 <AnMaster> pikhq, egobfi?
21:59:37 <pikhq> Gregor's Brainfuck interpreter.
21:59:44 <AnMaster> written in bf?
21:59:50 <pikhq> No, in C.
21:59:51 <AnMaster> ah
22:00:00 <pikhq> Not the fastest, but it's fairly complete.
22:00:13 <AnMaster> pikhq, what was it that segfaulted pretty much everything? awib?
22:00:25 <AnMaster> link?
22:00:30 <pikhq> awib compiling LostKng *on* nearly everything.
22:00:34 <pikhq> Esolang archive.
22:00:34 <AnMaster> ah
22:00:41 <AnMaster> pikhq, lostkng is huge.
22:00:50 <AnMaster> you could pretty easily run over the end of the tape
22:00:59 <pikhq> "Unbounded tape"
22:01:05 <AnMaster> hm okay
22:01:12 <pikhq> If it's running over the end of my memory, I'm scared.
22:01:18 <AnMaster> pikhq, does awib on awib segfault on lostkng?
22:01:26 <pikhq> Yes.
22:01:29 <AnMaster> heh
22:01:59 <AnMaster> pikhq, anyway, does awib output as it go, or does it try to read the whole thing in first and do some optimisation?
22:02:25 <pikhq> Read the whole thing in, optimise, pass it to the selected backend.
22:02:28 <AnMaster> if the latter I wouldn't be surprised if it hit some bug easily. Heck you might even run into issues with counters overflowing
22:03:16 <pikhq> Hmm. Actually... Yeah, it probably *is* an overflowing counter.
22:03:29 <pikhq> To egobfi64!
22:03:32 <AnMaster> like current pointer position or even "number of > in a row" issue
22:03:38 <AnMaster> pikhq, heh?
22:03:46 <pikhq> 64-bit cells.
22:03:49 <AnMaster> well sure
22:04:11 <AnMaster> but if awib tries to do multiple cells to track the number that is going to cause issues
22:04:25 <AnMaster> like it does a 2 cell number
22:04:32 <AnMaster> like if it*
22:04:52 <pikhq> awib is designed to work on Brainfuck interpreters with 8-bit *or greater* cells.
22:05:08 <AnMaster> bbl, switching monitor to other computer (need to do some BIOS stuff on a normally headless computer)
22:05:35 <pikhq> I'm strongly suspecting this segfaulted when it was checking for loop balance, actually.
22:18:45 <AnMaster> pikhq, quite plausible in lostkng
22:20:38 <Sgeo> My not-quite-completed interpreter in Haskell doesn't check for loop balance
22:21:02 -!- jcp has quit (Ping timeout: 276 seconds).
22:21:07 <Sgeo> If there's an extra ], it truncates, if there are extra [, it assumes there are the needed ] at the end
22:21:11 <pikhq> Segfaults on larger clles, though.
22:21:32 <pikhq> Cells, even.
22:22:08 <pikhq> My semi-functional Brainfuck interpreter inserts a QUIT command at the end of the program buffer.
22:22:30 <pikhq> So, if you happen to have not done loop balance right, you get an exit.
22:23:14 <pikhq> Oh, yeah, and it ends up setting the jump address for the loop to that QUIT command, as well.
22:23:22 -!- Gracenotes has joined.
22:24:01 <Mathnerd314> Sgeo: all that matters is that it's consistent.
22:24:30 <Mathnerd314> so consider extra ] to have needed [ at the beginning ;-)
22:25:24 <AnMaster> pikhq, what about two unclosed ones?
22:25:35 <pikhq> AnMaster: Same behavior.
22:25:36 -!- kar8nga has quit (Remote host closed the connection).
22:26:03 <AnMaster> pikhq, also, checking loop balance isn't very hard. You will get it for "free" when parsing it into <data structure of choice>
22:26:16 <AnMaster> at least if you do the parser the usual way
22:26:30 <AnMaster> (with that I mean a recursive parser)
22:27:03 <pikhq> AnMaster: It's getting parsed into a single array of pointers to goto addresses.
22:27:17 <AnMaster> you just love those...
22:27:18 <pikhq> With arguments coming after the pointer if necessary.
22:27:32 <pikhq> I've done it twice. Twice!
22:27:46 <pikhq> And it's a very clean fit for Brainfuck.
22:27:49 <AnMaster> pikhq, I assume you fold >>> into >3 or such?
22:27:54 <pikhq> Yeah.
22:27:57 <AnMaster> even for an interpreter that is a good idea
22:28:16 <AnMaster> (some of the more expensive optimisations might only be a good idea for compilers though)
22:28:22 <pikhq> The +-><[] commands all take arguments.
22:28:33 <AnMaster> pikhq, why not ,?
22:28:41 <AnMaster> err, . I mean
22:28:42 <pikhq> Too lazy. :P
22:28:43 <AnMaster> probably
22:28:55 <AnMaster> which one was which in bf?
22:28:59 <AnMaster> I always mix them up
22:29:05 <pikhq> . is output, , is input.
22:29:11 <AnMaster> ah then I meant .
22:29:12 <AnMaster> well
22:29:14 <pikhq> Not a massive benefit to folding either, really.
22:29:22 <AnMaster> . could take "constant value found by optimising"
22:29:35 <AnMaster> esotope and in-between did that kind of stuff
22:29:40 <AnMaster> well, does I guess
22:29:48 <pikhq> But that requires non-peephole optimisations. :)
22:30:01 <AnMaster> pikhq, true, they are both very slow on lostkng
22:30:12 <pikhq> Produce good output though.
22:30:15 <AnMaster> well yes
22:30:36 <AnMaster> pikhq, but building dependency graphs for each section between unbalanced loops takes a while
22:31:00 <AnMaster> especially if you are re-running all optimisation passes until nothing changes any more
22:31:02 -!- jcp has joined.
22:31:07 <pikhq> Yuh.
22:31:26 <AnMaster> not sure if esotope did that
22:32:12 <AnMaster> pikhq, anyway, I think what is more interesting is in which ways you can optimise unbalanced loops
22:32:39 <AnMaster> well obviously you can optimise them internally like merging ++ in [++>] but I mean into some higher level thingy
22:32:41 <pikhq> Yeah, there really is a lot you can do with them if you bother.
22:32:52 <AnMaster> possibly optimising common idioms with them and such
22:33:07 <pikhq> Brainfuck really has a lot of optimisations you can do.
22:33:25 <AnMaster> pikhq, consider turning [>] into something like strlen() plus moving the pointer
22:33:49 <pikhq> Not quite the same, but I'm still kinda proud of PEBBLE's C output.
22:34:08 <pikhq> (cheats by having C macro implementations. >:D)
22:34:17 <AnMaster> iirc libc strlen() tend to be crazily optimised "word at a time" thingies
22:34:21 <AnMaster> so that could be a win
22:34:31 <AnMaster> pikhq, I thought PEBBLE compiled to C?
22:34:39 <AnMaster> also: link to pebble, I forgot where it was
22:34:45 <AnMaster> err
22:34:49 <pikhq> I no longer have a host.
22:34:50 <AnMaster> compiled to bf not C*
22:34:53 <AnMaster> ah
22:34:55 <fizzie> AnMaster: Remember that befunge "benchmark" we played with a moment ago that basically does -100 until the cell wraps around?
22:34:58 <pikhq> PEBBLE has a C backend.
22:35:06 <AnMaster> fizzie, a moment ago?
22:35:07 <AnMaster> what?
22:35:12 * AnMaster looks up in scrollback
22:35:15 <fizzie> AnMaster: Well, where moment == few days.
22:35:21 <AnMaster> hah
22:35:25 <AnMaster> pikhq, heh
22:35:28 <fizzie> AnMaster: I think I was going to say "while" there, but typoed "moment".
22:35:29 <AnMaster> pikhq, I'm sure it is faster?
22:35:46 <pikhq> AnMaster: Yeah, the C backend produces some fairly swift code.
22:35:50 <zzo38> Do you mean like: ptr+=strlen(ptr);
22:35:54 <AnMaster> fizzie, and yes I remember it
22:35:55 <AnMaster> what about it
22:36:05 <fizzie> AnMaster: Anyhow, the static Funge-98 compiler I have here that I got sidetracked with compiles it to the following LLVM code:
22:36:08 <fizzie> Code1.i: ; preds = %Code1.i, %0
22:36:08 <fizzie> br label %Code1.i
22:36:10 <pikhq> Though it gets to do some nice stuff like "replacing a division with an actual division".
22:36:23 <AnMaster> zzo38, possibly. It depends on how you implement it I guess
22:36:24 <AnMaster> fizzie, wow
22:36:31 <pikhq> fizzie: Man.
22:36:32 <AnMaster> fizzie, that is, like cheating or something
22:36:56 <AnMaster> if I read it correctly
22:37:04 <fizzie> It also fails to terminate.
22:37:08 <AnMaster> oh
22:37:12 <AnMaster> then I didn't read it correctly
22:37:17 <AnMaster> fizzie, I thought it constant folded the loop
22:37:20 <fizzie> It's just "foo: goto foo;"
22:37:31 <AnMaster> fizzie, oh wait I know. it thinks signed integer can't wrap around
22:37:34 <pikhq> LLVM is assuming that you won't overflow. :)
22:37:36 <AnMaster> probably
22:37:51 <AnMaster> pikhq, underflow in this case I think
22:38:02 <pikhq> Fair enough.
22:38:24 <AnMaster> hopefully there is a way to tell it that is incorrect
22:39:35 <AnMaster> zzo38, anyway it would be a win since strlen() these days check the memory one word at a time, for "does any byte in this word contain a zero" with some bitmask stuff
22:39:57 <AnMaster> and when it found one, it checks which byte in said word was the zero
22:40:49 <AnMaster> sure it goes over the end of the array in theory, but that is safe since it is doing aligned reads, and that will never go over the end of a page
22:41:47 <AnMaster> and that is one of the reasons why valgrind prints "ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 7 from 7)".
22:42:06 <AnMaster> it suppresses stuff in libc and such, like strlen() doing that
22:42:08 <AnMaster> iirc
22:42:21 <AnMaster> unless it provides it's own strlen()
22:42:22 <fizzie> AnMaster: I'm not quite sure how to tell it to not assume that. But if I use just "-std-compile-opts" and not "-std-link-opts" too for 'opt', it compiles to what's basically in C "for (i = 0; x-i*100 < 0; i++);" where x comes from the stack.
22:42:35 <AnMaster> fizzie, mhm
22:43:04 <AnMaster> fizzie, surely llvm can't assume signed overflow/underflow is undefined. After all llvm is supposed to work for other languages than C
22:43:09 <fizzie> Probably because it doesn't inline the generated code into main where the stack is initialized, and therefore can't know x = 0 at start.
22:43:52 <AnMaster> fizzie, http://llvm.org/docs/LangRef.html#i_add
22:44:06 <AnMaster> "nuw and nsw stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw and/or nsw keywords are present, the result value of the add is a trap value if unsigned and/or signed overflow, respectively, occurs."
22:44:08 <AnMaster> relevant?
22:44:47 <fizzie> I'm not sure. I don't use either of those words, so I think it should do the two's-complement modulo arithmetic by default.
22:45:15 <AnMaster> fizzie, a bug maybe?
22:45:58 <fizzie> I might not just be using it right. I'll try to make a minimal testcase of that loop.
22:46:26 <AnMaster> fizzie, you might want to find out what exact optimisation pass breaks it
22:46:47 <AnMaster> iirc there is some way to list what -std-compile-opts and such actually do
22:52:01 <fizzie> Yes, adding -debug-pass=Arguments prints them out.
22:52:19 <fizzie> It is not a short list.
22:54:43 <AnMaster> fizzie, diff the two lists
22:55:08 <AnMaster> fizzie, that should give you some hint of what ones might be more probable causes
22:55:23 <AnMaster> (of course, if you are unlucky, it is causing by two or more passes interacting)
22:55:44 <AnMaster> fizzie, but yes, a test case and ask mailing list/submit bug might be best
22:55:47 <fizzie> The -std-link-opts seems to add: -internalize -ipsccp -globalopt -constmerge -deadargelim -instcombine -basiccg -inline -prune-eh -globalopt -globaldce -basiccg -argpromotion -instcombine -jump-threading -domtree -domfrontier -scalarrepl -basiccg -functionattrs -globalsmodref-aa -domtree -loops -loopsimplify -domfrontier -loopsimplify -licm -memdep -gvn -memdep -memcpyopt -dse -instcombine -jump-threading -simplifycfg -globaldce -preverify -domtree -verify
22:56:03 <fizzie> I guess I could just start removing passes one by one.
22:57:00 <AnMaster> fizzie, -preverify/-verify should not be removed
22:57:08 <AnMaster> they are sanity checks
22:57:15 <AnMaster> on the current ast or whatever
22:57:29 <AnMaster> so they don't remove anything
22:57:39 <AnMaster> fizzie, I'm pretty sure also that some of those are run more than once
22:57:53 <AnMaster> yeah
22:57:58 <AnMaster> you have memdep several times there
22:58:20 <fizzie> Sure, there's a lot of duplication; that's not so surprising.
22:58:37 <AnMaster> well, remove -preverify/-verify if you remove all the passes between them
22:58:53 <fizzie> Removing "-jump-threading -simplifycfg -globaldce" from near the end turns the loop into:
22:58:54 <fizzie> Code1.i: ; preds = %Code1.i, %space_init.exit
22:58:54 <fizzie> br i1 false, label %funcot.exit, label %Code1.i
22:59:06 <AnMaster> that doesn't look quite right?
22:59:14 <AnMaster> fizzie, iirc llvm has some tool to automatically find these
22:59:20 <AnMaster> bugpoint I think the name was
22:59:31 <fizzie> Well, it's "foo: if (0) return; else goto foo;" now.
22:59:32 <AnMaster> I might misremember
22:59:42 <AnMaster> fizzie, that is still incorrect though
22:59:57 <fizzie> Sure.
23:00:10 <AnMaster> fizzie, anyway http://llvm.org/docs/Bugpoint.html might help
23:01:21 <fizzie> Yes, the miscompilation debugger sounds sensible, though I'm a bit uncertain how well it works with a non-terminating program, since it's based on comparing outputs.
23:01:33 <AnMaster> oh good point
23:02:04 <fizzie> I'll see if I can manage a testcase myself. I still think it could be just my own misuse of llvm somewhere; that's usually the case.
23:02:23 <AnMaster> possibly
23:03:29 <fizzie> Removing that -instcombine just before the three others I removed makes for a sensible-looking loop.
23:03:49 <AnMaster> hm
23:05:45 <fizzie> Hrm, well, the optimization is in fact legal, given what is before the loop.
23:05:53 <AnMaster> fizzie, eh?
23:06:04 <fizzie> It starts the loop with: %tmp1.i = add i32 undef, -100
23:06:13 <AnMaster> fizzie, undef?
23:06:30 <fizzie> Right. It's legal to do a lot of stuff to computations involving undef values.
23:06:42 <AnMaster> fizzie, sounds like it shouldn't be undef then?
23:07:07 -!- augur has quit (Remote host closed the connection).
23:07:08 <fizzie> Right. Or, well, wait.
23:07:28 -!- augur has joined.
23:07:56 * AnMaster waits
23:08:02 <fizzie> Actually! While the runtime has a proper stack-pop macro, I think the codegen still has the version that does not check for stack underflow, and the benchmark indeed starts from the value that's below the start of the stack, which is undef.
23:08:15 <AnMaster> heh
23:12:38 <AnMaster> fizzie, you mean you stopped doing the sigsegv trick?
23:13:29 <fizzie> This is not jitfunge, this is another thing. And in any case jitfunge's current LLVM backend doesn't do it either. I haven't yet quite figured out how to, since you can't really predict what sort of assembly LLVM decides to spew out for accessing the stack.
23:13:46 <fizzie> I'm sure it's doable, it might just need some more twiddling with the LLVM side.
23:13:58 <AnMaster> fizzie, wait? not jitfunge?
23:14:00 <AnMaster> then what?
23:14:04 <AnMaster> is doing befunge and llvm
23:14:07 <pikhq> Some sort of static compiler.
23:14:11 <fizzie> I got sidetracked with a static compiler, yes.
23:14:12 <AnMaster> huh
23:14:19 <AnMaster> fizzie, static compiler for befunge?!
23:14:23 <AnMaster> you are mad
23:14:33 <pikhq> No support for "p" modifying actual code I presume?
23:14:36 <fizzie> Well, the subset of it I use personally in fungot. :p
23:14:36 <fungot> fizzie: to the person executing the program makes sense ( a script, so i have a favorite sushi, but that seems much saner to me.
23:14:43 <AnMaster> fizzie, really isane
23:14:44 <pikhq> *Ah*.
23:14:57 <fizzie> Yes, a boring non-self-modifying sort of befunge.
23:15:01 <pikhq> Might be fun to define a compilable subset of Befunge.
23:15:03 <AnMaster> fizzie, so fungot never uses p to self modify?
23:15:03 <fungot> AnMaster: here is one that surrounds me", etc
23:15:07 <AnMaster> that should be fixed then
23:15:18 <AnMaster> wait, it does
23:15:22 <AnMaster> it loads the file
23:15:23 <fizzie> AnMaster: Well, there's the ^reload command, but I don't remember when I've used it last.
23:15:25 <pikhq> Bit of a boring language to implement, but could be handy for some programs that could be done quickly.
23:15:33 <pikhq> Erm.
23:15:35 <AnMaster> fizzie, the loader loads the main file
23:15:37 <pikhq> Could do with running
23:15:49 <fizzie> And yes, the loader/program split is there, but that's just a matter of concatenating the two files.
23:16:07 <AnMaster> pikhq, I prefer the "no 93" subset of 98 then
23:16:10 <AnMaster> it is a crazy language
23:16:34 <AnMaster> there was a bit of an argument if there should be a hole in the 98-funge space where the 93 funge space was
23:16:36 <ais523> AnMaster: you have to use abcdef just to push constants? and x and [] to change direction?
23:16:43 <AnMaster> but I think the conclusion was "only commands are removed"
23:16:46 <pikhq> AnMaster: Hahahah.
23:16:52 <AnMaster> otherwise we would end up with stack stack but no stack
23:16:53 <fizzie> The underload interp seems to work with this compiler; haven't tested full fungot yet, there's a lack of fingerprints and such.
23:16:54 <fungot> fizzie: sarahbot eval ( map display ' ( 2 1 0
23:17:11 <AnMaster> ais523, well yes and you have no - and + for example
23:17:38 <AnMaster> I did think we figured out a way to get constants with y
23:18:00 <AnMaster> and then comparing stuff, you have w but not ` _ or |
23:18:05 <AnMaster> nor do you have #
23:18:12 <AnMaster> oh and space is gone too
23:18:18 <AnMaster> so you need to z-fill
23:18:53 <AnMaster> ais523, I think we concluded that befunge-98s is *probably* TC but unefunge-98s probably isn't
23:19:08 <ais523> interesting
23:19:24 <AnMaster> ais523, you can grep the logs for this. I think me Deewiant and ehird were involved in the discussion
23:19:27 <AnMaster> some months ago
23:19:39 <AnMaster> last half of 2009 or during 2010
23:20:01 <AnMaster> before cpressy reappeared
23:20:07 <AnMaster> he seems gone again though(?)
23:20:14 <ais523> yes, maybe
23:20:23 <AnMaster> ais523, to what? that he is gone?
23:20:29 <ais523> yes
23:20:37 <AnMaster> right
23:21:22 -!- tombom has quit (Quit: Leaving).
23:22:02 <alise_> he'll be busy with work.
23:22:22 <AnMaster> right
23:22:38 * AnMaster fixes the ignore to include the underscore version as well
23:24:12 <alise_> you know, calling me childish will stop working soon enough as you'll have definitively proved yourself to be even more childish than me.
23:24:23 -!- sebbu2 has joined.
23:24:38 <alise_> "don't fucking mention your ignores every time you can" is, like, rule #3 of not being a huge, annoying asshole on IRC
23:24:59 <alise_> "don't read logs to talk to someone you're ignoring while simultaneously reacting harshly when they evade your ignore to talk to you" is rule #4.
23:25:37 -!- sebbu has quit (Ping timeout: 240 seconds).
23:25:38 -!- sebbu2 has changed nick to sebbu.
23:31:23 -!- Oranjer has quit (Quit: Leaving.).
23:32:31 <Mathnerd314> ignore? what's that?
23:33:53 <ais523> Mathnerd314: you can do, say, "/ignore ais523"; then you wouldn't be able to see anything I said
23:34:14 <ais523> normally used against people who annoy you, or who are spamming a channel
23:34:51 <AnMaster> ais523, actually I need to tell it what type of ignore to apply. Just /ignore <nick> gives me syntax help
23:35:07 <ais523> depends on client, then
23:35:19 <AnMaster> I need to tell it something like "chan" or "priv" or "all" (there are a few more variants)
23:35:19 <pikhq> 17:24 < alise_> "don't fucking mention your ignores every time you can" is, like, rule #3 of not being a huge, annoying asshole on IRC
23:35:22 <pikhq> Quoted for truth.
23:35:58 <AnMaster> ais523, there is also a "unignore" flag, to override other ignores for a more specific mask
23:36:02 <pikhq> BY THE WAY HAVE I MENTIONED THAT I HAVE AN IGNORE LIST
23:36:19 <AnMaster> ais523, like I ignore DCC from *!*@*, and then allow it from egobot
23:36:35 <alise_> HAVE I MENTIONED, I DISLIKE ALISE TO THE POINT THAT I WISH TO NOT SEE HIS MESSAGES TO THIS CHANNEL; ALTHOUGH I SHALL COMPLAIN ABOUT THE ADVERSE EFFECTS OF THIS, SUCH AS WHEN I ONLY SEE ONE HALF OF A CONVERSATION
23:36:41 <alise_> ARE YOU INTERESTED?
23:36:41 <AnMaster> by the way
23:36:44 <AnMaster> where *is* egobot?
23:36:49 * AnMaster pokes Gregor
23:36:54 <AnMaster> get egobot and hackego back
23:36:57 <pikhq> Doomy doomy doom doom
23:37:09 <AnMaster> pikhq, ?
23:37:21 <pikhq> That's the location.
23:37:26 <AnMaster> hah
23:39:48 <Mathnerd314> hmmm... what would /ignore Mathnerd314 do?
23:40:16 -!- oerjan has joined.
23:40:19 <AnMaster> Mathnerd314, depending on client, either filter out all the lines you said or give syntax help
23:40:23 <AnMaster> oerjan, hi
23:40:28 <oerjan> hi AnMaster
23:40:44 <AnMaster> btw, http://llvm.org/pubs/ is quite an interesting list
23:41:15 <AnMaster> there are some truly fascinating things there
23:41:26 <Mathnerd314> AnMaster: how many channels are you on on freenode?
23:41:31 <AnMaster> Mathnerd314, why?
23:41:45 <Mathnerd314> just want to see if I've found them all :p
23:41:47 <oerjan> _all_ of them, obviously
23:41:53 <AnMaster> Mathnerd314, some 70+ or so
23:41:57 <AnMaster> don't know exact number
23:42:04 <Mathnerd314> ok
23:42:11 <AnMaster> Mathnerd314, I doubt you found all
23:42:15 <Mathnerd314> yeah
23:42:47 <oerjan> #catlicking is hard to find, after all
23:42:52 <AnMaster> Mathnerd314, how many did you find? /whois on you show three channels. If you like me have that "hide channel list" mode set then that is the subset we are both in
23:42:59 <AnMaster> oerjan, haha
23:43:08 <AnMaster> oerjan, I wonder if you is there ;P
23:43:10 <AnMaster> are*
23:43:15 -!- alise_ has quit (Read error: Connection reset by peer).
23:43:19 <Mathnerd314> yeah, just the 3 so far
23:43:30 <oerjan> alas, since it doesn't exist. at least on freenode.
23:44:02 <oerjan> or maybe it's so secret even i cannot find it
23:44:21 <AnMaster> a sure test to see if it is there is trying to join it
23:44:40 <AnMaster> another possibly less embarrassing way to check it is /mode #channelname
23:44:40 <oerjan> well that's what they want you to think
23:44:53 <oerjan> i just used /list
23:45:04 <AnMaster> oerjan, that won't list +s channels
23:45:14 -!- Oranjer has joined.
23:45:23 <oerjan> 00:42 #catlicking: No such nick/channel
23:45:57 <oerjan> oh? you mean the message would be fake?
23:46:17 -!- alise has joined.
23:46:22 <AnMaster> oerjan, from /mode? then it doesn't exist
23:46:30 <oerjan> no, from /list
23:46:42 <AnMaster> oerjan, well as I said, /list doesn't include +s channels
23:46:51 <oerjan> /mode gives a similar answer
23:46:53 <AnMaster> unless you are on those channel
23:46:58 <AnMaster> oerjan, /mode is trustable
23:47:03 <oerjan> it was /list #catlicking, of course
23:47:21 <AnMaster> oerjan, I think +s would be hidden from that too. At least on some IRCDs
23:47:47 <oerjan> ok, not sure if it makes sense to hide it from only _some_ commands
23:47:51 * Mathnerd314 finds #crossfire
23:48:04 <AnMaster> oerjan, sure it does. You can't hide it from /join for example
23:48:39 <oerjan> well true, that would require a very fiendish deception
23:48:40 <AnMaster> oerjan, oh and +s also hides the channel from /whois, unless that person doing the /whois is also in that channel
23:48:52 <oerjan> not _impossible_, mind you
23:49:25 <AnMaster> oerjan, basically it hides it from everywhere where you wouldn't have to know about the channel already
23:49:26 <oerjan> well that's pretty obvious it has to hide that
23:49:47 <AnMaster> oerjan, and I guess special casing the "full match" variant of /list was too much work
23:49:56 <oerjan> AnMaster: yeah, but that still leaves /list with exact name as a dubious case
23:50:07 <oerjan> mhm
23:50:08 <AnMaster> oerjan, see line above
23:53:54 <zzo38> This channel is mode +cn
23:54:14 <AnMaster> zzo38, yes, what about it?
23:54:44 <oerjan> hm what's +n again
23:54:54 <AnMaster> oerjan, no message to channel without being in it
23:54:58 <oerjan> ah
23:55:18 <AnMaster> I don't know why it is a mode
23:55:27 <AnMaster> I mean, it is the only sane variant
23:55:28 <zzo38> Enter HELP CMODE for help
23:55:35 <oerjan> presumably so you can turn it off
23:55:44 <AnMaster> zzo38, you mean /quote help cmode probably
23:55:53 <AnMaster> most clients do it that way
23:56:04 <AnMaster> most clients have their own /help
23:56:08 <zzo38> This client doesn't do it that way
23:56:12 <AnMaster> sure
23:56:17 <AnMaster> but that is a special case
23:56:34 <AnMaster> oerjan, yes but I can't see why anyone would want to turn it off
23:56:50 <oerjan> zzo38: like when you said (iirc) that we had changed the 332 TOPIC - almost no one else would see the 332
23:56:52 <zzo38> This client has no /HELP or /QUOTE command, it just generates an error message "UNKNOWN SLASH COMMAND"
23:57:01 <AnMaster> hah
23:57:12 <zzo38> oerjan: Why not? Does someone turn it off?
23:57:16 <AnMaster> zzo38, so you need to type /msg or such for every line you write to irc?
23:57:34 <oerjan> zzo38: the client formats topics in their own way
23:57:35 <AnMaster> zzo38, are you intentionally being silly?
23:57:37 <zzo38> No, I just prefix it with the spacebar and it automatically types PRIVMSG and the current channel name and a colon
23:57:39 <AnMaster> and yes what oerjan said
23:57:55 <AnMaster> ...
23:57:58 <zzo38> That's what happens in my client when I start a line with space, it will type in that command instead of a space.
23:58:13 <AnMaster> zzo38, isn't almost every line you type one starting with space?
23:58:29 <zzo38> About half of them are
23:58:42 <alise> zzo38: you are awesome
23:58:43 <alise> never forget that
23:58:43 <oerjan> zzo38: like in irssi when i joined the channel, it said: 00:39 Topic for #esoteric: #esoteric, the international hub for esoteric programming language design and deployment - #esoteric is not associated with the joke language Perl, please visit www.perl.org - logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D
23:58:47 <AnMaster> zzo38, really? You do so many other things except chatting on irc?
23:59:04 -!- Azstal has joined.
23:59:11 <zzo38> Sometimes
23:59:12 <oerjan> irssi prepends the time to most things
23:59:26 <AnMaster> zzo38, wouldn't it make more sense to make message to the current channel the default?
23:59:30 <Mathnerd314> zzo38: which client is this? :p
23:59:37 <alise> Mathnerd314: his own
23:59:39 <zzo38> This client will also prepend the time to *all* things, but only if you type in /SET SHOWTIME +
23:59:40 <AnMaster> Mathnerd314, his own
23:59:43 <alise> rule of thumb; if zzo38 is using some software, he wrot it
23:59:44 <alise> *wrote
23:59:49 <Mathnerd314> *oh*
2010-04-25
00:00:03 <AnMaster> oerjan, mine also shows the line for who set the topic
00:00:12 <AnMaster> Mathnerd314, iirc he used to use netcat or such before he wrote it
00:00:12 <oerjan> zzo38: ok
00:00:13 <Mathnerd314> is it online somewhere?
00:00:18 <alise> probably
00:00:19 <oerjan> AnMaster: well yeah here too
00:00:25 <AnMaster> or maybe telnet
00:00:27 <AnMaster> don't remember
00:00:36 <pikhq> I think the exception remains his OS.
00:00:40 <pikhq> And possibly his editor.
00:00:44 <AnMaster> pikhq, ?
00:00:48 <pikhq> zzo38.
00:00:56 <AnMaster> pikhq, exception to what?
00:01:03 <pikhq> Software he wrote.
00:01:03 -!- Asztal has quit (Ping timeout: 265 seconds).
00:01:10 <AnMaster> ah
00:01:13 -!- Azstal has changed nick to Asztal.
00:01:16 <pikhq> By the way, unignore alise.
00:01:24 <pikhq> I hate having to explain what he says.
00:01:43 <AnMaster> pikhq, "the NIH is string in the zzo38"
00:01:54 <AnMaster> meh that didn't work out well as a star wars parody
00:02:13 <zzo38> http://zzo38computer.cjb.net/prog/PHIRC/phirc.zip (Note I didn't copy the newest version yet, it will be soon)
00:02:19 <AnMaster> pikhq, oh forget he was in here
00:02:21 <alise> pikhq: Just stop doing it; then he'll get all annoyed.
00:02:23 <AnMaster> forgot*
00:02:25 <alise> Yeah right. You did not.
00:02:34 <alise> You were blabbing about ignoring me just before; this is just more of that childishness.
00:02:38 -!- Oranjer has left (?).
00:02:41 <AnMaster> zzo38, in php!?
00:02:47 <pikhq> AnMaster: /unignore
00:02:55 <alise> Gasp! PHP can access stdio/stdout!
00:02:57 <alise> And the network!
00:02:58 <AnMaster> pikhq, thanks but no
00:03:01 <alise> How is this possible!
00:03:05 <pikhq> Or else next time you go "LAWL IM IGNORING ALISE" I ignore you.
00:03:11 <alise> !sh echo then stop asking pikhq to explain for you ~
00:03:13 <pikhq> Because frankly it's just getting ridiculous.
00:03:15 <alise> aww
00:03:15 <AnMaster> pikhq, I didn't say that
00:03:16 <AnMaster> ...
00:03:17 <alise> i forgot egobot is gone
00:03:18 <alise> :-)
00:03:22 <zzo38> Yes it is written in PHP, mostly because I know how to socket access in it even cross-platform
00:03:30 <pikhq> You have been fairly often.
00:03:51 <zzo38> Add-ons can also be written in PHP, or in CRISC.
00:03:52 <AnMaster> pikhq, I just replied to your mention of having to repeat what he said that I forgot he was in here, thus I forgot to filter out the "half discussions"
00:03:58 <AnMaster> that was all...
00:04:00 <Mathnerd314> zzo38: this client? gopher://zzo38computer.cjb.net/0fossproj/irc_client/help
00:04:18 <zzo38> Yes, same client. That is an alternate URL
00:04:35 <AnMaster> Mathnerd314, how comes you checked gopher://?
00:04:42 <AnMaster> I mean, who would think doing that
00:04:45 <AnMaster> think about*
00:04:58 <Mathnerd314> somehow I find it easier to browse his site with gopher :p
00:05:06 <AnMaster> Mathnerd314, sure okay
00:05:12 <alise> that much is true :P
00:05:14 <pikhq> His website is gopher-proxied, I'm pretty sure.
00:05:27 <alise> nope
00:05:28 <alise> afaik
00:05:29 <AnMaster> pikhq, yes I think so too
00:05:30 <oerjan> i have been wondering if we need a stricter ignore policy. (1) no trying to get around ignores (2) no taunting people you are ignoring
00:05:31 <Mathnerd314> it's right on the user page: http://esoteric.voxelperfect.net/wiki/User:Zzo38
00:05:46 <alise> oerjan: we have basically no policies though!
00:05:47 <alise> don't ruin that! :P
00:06:03 <alise> ...anyway AnMaster is the only one who does the latter and i've only done the former to actually tell AnMaster helpful things
00:06:06 <alise> (gave up on that; realised he's not worth it)
00:06:26 <AnMaster> pikhq, actually the http and gopher versions don't match
00:06:29 <oerjan> alise: yeah, i wouldn't do it unless people start getting seriously annoyed - i guess pikhq is the one who comes closest
00:06:31 <zzo38> Actually my HTTP and gopher are two separate sites although they share many files in common. Eventually it is planned to share additional files in common, although some things will be exclusive to one or the other because they are only useful on one
00:06:33 <pikhq> Alas.
00:06:35 <AnMaster> gopher://zzo38computer.cjb.net/ vs. http://zzo38computer.cjb.net/
00:07:04 <pikhq> oerjan: I'm only annoyed because I tend to talk to both AnMaster and alise a lot.
00:07:34 <oerjan> well who doesn't, they _are_ the most talkative people on the channel, or close to it
00:07:37 <zzo38> For example, the weather reports and movie times will stay on gopher only. In addition, the dynamic images service will stay HTTP only. (There are others too)
00:07:40 <AnMaster> pikhq, well that isn't really my problem. Nor alise's problem. Nor your.
00:07:45 <oerjan> (when they're here)
00:07:53 <alise> oerjan: Interesting how that's the smartest and dumbest people!
00:07:55 <alise> :-P
00:07:56 <alise> I kid, I kid.
00:08:11 <alise> Well, AnMaster /is/ the dumbest but you're probably the smartest.
00:08:15 <AnMaster> oerjan, I think fizzie did some graphs showing we were the most talkative persons
00:08:17 <alise> For one, you run away whenever I sling you into doing something.
00:08:21 <pikhq> oerjan: True.
00:08:24 <AnMaster> I think ehird beat me with a bit
00:08:49 <alise> Of course I will not be that high now being absent 4.5/7 of the week.
00:09:08 <AnMaster> zzo38, dynamic images?
00:09:18 <alise> Which is suspiciously close to the golden ratio minus one!!!!!!!!
00:09:36 <alise> !1112123
00:09:45 -!- benuphoenix has joined.
00:10:34 -!- benuphoenix has left (?).
00:10:49 <AnMaster> ais523, is a.l.i dead?
00:11:07 <ais523> my guess is that quite a few people still read it
00:11:08 <oerjan> AnMaster: yeah i recall those, but not the results
00:11:09 <ais523> but nobody's posted in ages
00:11:10 <AnMaster> ais523, there doesn't even seem to be spam on it nowdays
00:11:13 <ais523> I still read it
00:11:26 <AnMaster> ais523, that is easy, since no one posts on it ;P
00:11:27 <ais523> at least, I have email notifications
00:11:28 <ais523> does that count?
00:11:32 <zzo38> Dynamic images are such as: http://zzo38computer.cjb.net/dynamic_images/cellular_automata.php http://zzo38computer.cjb.net/dynamic_images/clock.php
00:11:40 <AnMaster> ais523, I use a usenet client to check it
00:11:42 <zzo38> I also use it for dynamic avatars on some forums
00:12:51 <zzo38> I also have SMTP but I only run the SMTP program when I am expecting a message (to confirm registration and so on), I won't receive any unwanted messages this way
00:12:56 <AnMaster> ais523, ugh I hate this cold (not temperature, the other type)
00:13:04 <oerjan> <alise_> wtf, Haskell's Rational type doesn't have /
00:13:08 <oerjan> um sure it does
00:13:12 -!- FireFly has quit (Quit: Hey! Listen!).
00:13:27 * AnMaster throws the previous paper handkerchief in the bin
00:15:40 <oerjan> instance Integral a => Fractional (Ratio a)
00:16:18 <alise> right right
00:16:20 <alise> I was merely confused
00:16:30 <oerjan> ok
00:17:22 -!- nooga has quit (Ping timeout: 248 seconds).
00:18:07 <fizzie> AnMaster: In case you missed it, as a side effect of this compiler here's yet another (unreadable) fungot graph: http://zem.fi/~fis/test.png
00:18:07 <fungot> fizzie: what's oou? vs eq?.
00:23:11 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
00:25:35 <zzo38> One day I will write operating system stuff, too, when I get another computer
00:30:47 <zzo38> Question: How do you format Icoruma codes as a printable format including page-numbers, cross-references replaced by the chapter/table/page number, index, so that it can be printed to make a book?
00:32:29 <Mathnerd314> Answer: use latex
00:33:02 <zzo38> OK
00:33:55 * oerjan realizes that zzo38 is strictly following the "Don't ask to ask" principle
00:34:02 <Mathnerd314> though what is Icoruma?
00:34:36 <oerjan> and it freaks me out, despite being recommended
00:34:38 <zzo38> Mathnerd314: Icoruma is a markup language specifically for typing the rules for role-playing-games.
00:34:50 <pikhq> oerjan: Most people don't follow it, sadly.
00:34:55 <Mathnerd314> is it documented anywhere?
00:35:30 <Mathnerd314> (Icoruma's syntax)
00:35:34 <zzo38> Mathnerd314: Not very well. But just wait a minute I will copy the files and documentation I have so far. I can post examples too, if you want.
00:35:57 <oerjan> pikhq: well it _does_ frequently leave me with a "how can he possibly assume anyone knows this" feeling, then i remember this is #esoteric.
00:36:04 <alise> I ask to ask... but that's only so that I know to not take seriously the advice of people who didn't confirm that they know about what I'm talking about
00:36:05 <Mathnerd314> ok. see you after lunch.
00:36:11 <alise> (often they give a general, simpler answer to a more specific question)
00:36:13 <zzo38> It will only take a minute
00:36:15 <alise> Mathnerd314: bye
00:36:38 <alise> <zzo38> Question: How do you format Icoruma codes as a printable format including page-numbers, cross-references replaced by the chapter/table/page number, index, so that it can be printed to make a book?
00:36:45 <alise> Do you want it to be nicely typesetted?
00:36:49 <alise> Or do you want to print a book in monospace?
00:36:52 <pikhq> alise: Asking to ask is only really useful if you're really asking if anyone has relevant knowledge, yeah.
00:37:01 <pikhq> zzo38: By the way, TeX it up.
00:37:17 <alise> Just TeX; not LaTeX.
00:37:18 <zzo38> Typesetted, of course. Now I did find some instructions for LaTeX so hopefully I can figure it out
00:37:20 <alise> zzo38 would like TeX.
00:37:23 <zzo38> Or just TeX
00:37:25 <alise> He wouldn't like LaTeX.
00:37:39 <pikhq> I don't care if you use some crazy shit to generate the TeX, it's just that, well. TeX does typesetting right.
00:37:40 <alise> TeX is not very documented at all, has not many commands, and is quite low level. LaTeX is a huge mass of macros and structure.
00:37:48 <alise> And TeX gives you much more control over formatting.
00:37:53 <alise> So I think zzo38 will probably like TeX more.
00:38:01 <pikhq> TeX is actually fairly well-documented. The source code is also a book.
00:38:08 <alise> Isn't that internal workings?
00:38:13 <alise> zzo38: TeX automatically numbers pages by default, so you won't need to worry about that.
00:38:20 <alise> Table of contents -- does LaTeX do this or TeX? I have no idea.
00:38:21 <pikhq> Yeah, and?
00:38:34 <zzo38> alise: OK I found TeX now
00:38:51 <alise> zzo38: LaTeX will format a table of contents wonderfully for you, if you don't mind having not-so-much control over formatting.
00:38:52 <pikhq> Pretty sure that's TeX.
00:38:59 <alise> You can change font, and indenting, and stuff, and even make your own title page.
00:39:03 -!- jcp has joined.
00:39:03 <alise> But some things are a bit iffy to control.
00:39:10 <alise> pikhq: TeX doesn't even do title-making for you...
00:39:21 <pikhq> Well. Do you mean the TeX primitives, or Pure TeX, which is the default macro package?
00:39:36 <zzo38> I can look at both TeX and LaTeX and I can see what codes are available
00:39:38 <alise> Pure TeX, I guess... I've only used TeX primitives, I think.
00:39:49 <alise> zzo38: Oh, you can use TeX in LaTeX of course.
00:39:54 <pikhq> There's only some 300 primitives.
00:40:03 <alise> LaTeX is just a [huge, advanced] set of macros [turing complete] for TeX.
00:40:07 <pikhq> zzo38: LaTeX is just a macro package for TeX.
00:40:10 <alise> zzo38: http://miktex.org/ is TeX for Windows.
00:40:17 <zzo38> O, OK, it is a macro package for TeX.
00:40:19 <pikhq> Very large, as alise said, but just some macros.
00:40:27 <alise> It can output as PDF among other things, which would be ideal for printing as a book.
00:40:35 <alise> You could even get it self-published, say on lulu.com.
00:41:00 <zzo38> I will look at http://miktex.org/ hopefully it can still be cross-platform however I don't want it to be restricted to Windows or to any other operating system
00:41:06 <alise> zzo38: TeX is totally cross-platform.
00:41:18 <alise> MiKTeX is just TeX/LaTeX/pdfTeX compiled for Windows,
00:41:20 <zzo38> alise: Thanks, that is what I thought anyways
00:41:30 <alise> plus tons and tons of macro packages (you need them; core TeX is very small).
00:41:35 <pikhq> It's written by freaking Knuth.
00:41:39 -!- Alex3012_ has quit (Ping timeout: 265 seconds).
00:41:45 <pikhq> Knuth is a bit of a stickler for writing things right. :)
00:41:54 <alise> zzo38: You'd like TeX's actual source code. It's literate programming -- of course, Knuth invented that --
00:42:04 <alise> so it's written in TeX itself, with snippets of 70s Pascal in between.
00:42:20 <pikhq> Actually, TeX the program is actually in literate C.
00:42:22 <alise> His WEB system is used to extract and rearrange the Pascal from this document/code, and then that Pascal is translated into C for compilation for modern systems.
00:42:25 <pikhq> (now)
00:42:29 <alise> pikhq: Oh... that's sad.
00:42:31 <alise> Well, still.
00:42:36 <pikhq> CWEB.
00:42:46 <alise> It used to be compiled to C from 70s Pascal, though!
00:42:57 <pikhq> Yeah; it got ported.
00:43:04 <alise> THAT'S NOT FAIR
00:43:12 <zzo38> I currently have Icoruma->HTML so now if I can write Icoruma->TeX as well, it can work
00:43:21 <pikhq> It's still literate code.
00:43:35 <pikhq> And the idea of literate C amuses me.
00:43:38 <alise> ftp://ftp.tex.ac.uk/tex-archive/systems/knuth/dist/tex/tex.web ;; the Pascal TeX
00:43:45 <pikhq> Just seems so... Anathema to most of C.
00:43:51 <alise> Looks like zzo38's code, actually.
00:43:59 <alise> pikhq: GHC includes Literate Perl...
00:44:15 <pikhq> alise: Which seems less odd... *Somehow*.
00:44:21 <alise> zzo38: Your Icoruma is actually very similar to TeX!
00:44:32 <alise> zzo38: It has an embedded turing-complete language for defining macros -- just like TeX.
00:44:35 <pikhq> Also, isn't Literate Perl implemented via Perl... "macros"?
00:44:45 <alise> It evaluates these macros then typesets the document to an output format -- just like TeX.
00:44:55 <alise> A lot of it is built up from simple primitives -- just like TeX.
00:44:58 <alise> pikhq: No, it's preprocessed.
00:45:03 <oerjan> i am not entirely sure but i think the cross-reference handling bits of LaTeX are not TeX, so if you want those you'll have to use LaTeX.
00:45:07 <pikhq> Aaaaw.
00:45:11 -!- Azstal has joined.
00:45:16 <alise> oerjan: you mean bibtex?
00:45:19 <alise> he won't want that; it's just for papers.
00:45:21 <alise> mostly
00:45:25 <alise> not really books unless you're Hofstadter :-)
00:45:34 <pikhq> Also, Bibtex isn't LaTeX.
00:45:34 <oerjan> alise: no, just intra-book references
00:45:35 <alise> ==Define AddLinkedContents
00:45:36 <alise> =.=Copy Leader =Argument
00:45:36 <alise> =.=Set Separator ">
00:45:36 <alise> =.=Calc @Name @Separator Concatenate @Leader @Heading Concatenate Concatenate !=Value
00:45:36 <alise> =.=Command =Quote <A HREF="main.html#\?</A><BR>
00:45:36 <alise> =.=Copy AddContents AddNormalContents
00:45:38 <alise> =.=Suppress
00:45:41 <oerjan> he did say he wanted that
00:45:41 <alise> ==End
00:45:43 <alise> ==Define ==2
00:45:46 <alise> =.=Copy Heading =Argument
00:45:47 <pikhq> It's a bunch of crazy TeX processing.
00:45:48 <alise> =.AddContents ....
00:45:49 <alise> ==End
00:45:52 <alise> It's so similar to TeX!
00:46:05 <oerjan> um does intra- mean what i think
00:46:20 <zzo38> It is? Well, I didn't know that. Either way, it can be done, I think.
00:46:44 -!- augur has quit (Ping timeout: 245 seconds).
00:46:55 <oerjan> "cross-references replaced by the chapter/table/page number
00:46:58 -!- Asztal has quit (Ping timeout: 265 seconds).
00:47:03 <alise> oerjan: you mean inter-
00:47:05 <alise> intra- is within
00:47:05 -!- Azstal has changed nick to Asztal.
00:47:11 <alise> intra-net; a network within an organisation
00:47:14 <alise> inter-net; a global network
00:47:23 <alise> the Internet; the most common inter-net
00:47:25 <oerjan> alise: i definitely did _not_ mean inter-, then
00:47:28 <zzo38> And the "AddLinkedContents" you gave is specific to HTML, it cannot be used in all Icoruma codes. All the other files except for the html_contents.irm are generic Icoruma files, though (since they don't use ==Quote command)
00:47:31 <oerjan> i meant within the book
00:47:37 <alise> oerjan: right, then you mean intra-
00:47:52 <alise> zzo38: Yes. I'm just saying that it's actually very similar!
00:48:02 <zzo38> alise: OK
00:48:02 <alise> So do icoruma files often have links?
00:48:11 <alise> You may want to replace them with footnotes saying "See p.#N".
00:48:13 -!- Alex3012_ has joined.
00:48:16 <alise> (in the TeXifier)
00:48:46 <zzo38> alise: Icoruma files can have cross-references to other places within the document (although they could be in another file, as long as they are joined together using ==Include command)
00:48:50 <alise> One thing's for sure; if it's typeset with (La)TeX it's going to look very, very good.
00:48:55 <alise> Knuth is a master of typesetting & typography.
00:48:58 <zzo38> Icoruma documents cannot contain any other kind of links.
00:49:40 <zzo38> They cannot contain links with text, however. The cross-reference *is* where the page-number goes.
00:49:50 <alise> Then that will work nicely.
00:50:11 <zzo38> html_contents.irm makes real links simply because it is HTML-specific and uses the ==Quote command for that.
00:51:37 <alise> I ought to make a typesetting system.
00:51:44 <alise> Or at least a document-authoring system.
00:53:07 <alise> pikhq: Wow; Knuth is so obsessive he gives Euler's name in Cyrillic because "Also, Leonhard Euler spent most of his life in St. Petersburg, and published hundreds of works there, so I give his name also in Cyrillic, both old style and new."
00:53:22 <oerjan> zzo38: LaTeX's \ref and \pageref commands to put in cross-references iirc. how to define the key for pointing to depends on what you want to point to (chapter, section, subsection or something else - you can define your own numbered subdivisions).
00:53:25 <alise> Could he be any more precise?
00:53:27 <pikhq> alise: :)
00:53:31 <alise> Only Dijkstra was so.
00:53:40 <oerjan> *can even define
00:54:02 <alise> So, my current project is defining simple algebraic structures in Coq.
00:54:15 <alise> I have got everything up to abelian groups working /perfectly/; but am having troubles with pseudorings.
00:54:22 <zzo38> oerjan: OK, thanks that helps
00:54:28 <alise> Specifically, my AbelianGroup and Semigroup types are not paramaterised at all: so I need to include an extra field,
00:54:31 <alise> prAg_Sg : (prAg:Type) = (prSg:Type);
00:54:34 <alise> to ensure that they are on the same type.
00:54:41 <alise> Then every property about them most involve lots and lots of casts.
00:54:57 <alise> This means that I cannot use properties of lower structures on them, because they do not recognise the operations, buried as they are underneath so many casts.
00:55:11 <alise> What should I do? Should I parameterise the structures? That has its own problems...
00:55:49 -!- Rugxulo has joined.
00:56:09 <Rugxulo> well, I (basically) finished my B93 interpreter in Rexx
00:56:24 <Rugxulo> doesn't pop zero on underflow yet, but most semi-complex examples work
00:56:38 <Rugxulo> I'll have to tweak and test it more later
00:57:15 <Rugxulo> so if anybody wants to take a look, feel free to ask
00:57:29 <Rugxulo> welp, that's all for now, bye! :-P
00:57:33 -!- Rugxulo has quit (Client Quit).
00:59:39 <alise> "If there is a set of infinite numbers, for instance: set of Natural numbers N, what is the probability of occurrence of a particular number say x belonging to N? Is it zero as probability is 1/infinity so does it mean all the numbers do not exist?
00:59:39 <alise> "
00:59:40 <alise> --/r/math
01:01:54 <oerjan> that's actually a somewhat subtle problem
01:02:27 <oerjan> you have no uniform probability measure on the naturals, but there are various approximations
01:02:35 <alise> yes
01:02:39 <alise> i just thought the question was funny
01:02:45 <alise> the guy sounds really scared that the natural numbers might not exist
01:03:48 <pikhq> The most obvious form of number.
01:04:43 <alise> natural numbers; numbers untainted by malevolent human hands
01:04:47 <alise> in tune with nature. organic numbers.
01:04:52 <oerjan> and for an _uncountable_ set like the interval [0,1], it's just the usual "every number has probability 0" "paradox" (resolved by having only countable additivity of probabilities.)
01:04:53 <alise> organic numbers; those produced by organs.
01:04:54 <Mathnerd314> you could do prob(x) = 1/x^2
01:05:01 <alise> organs; parts of the human body. played in churches.
01:05:17 <pikhq> Oh, also, I was wrong. TeX is still written in WEB, not CWEB.
01:05:20 <Mathnerd314> (suitably scaled)
01:05:55 <alise> pikhq: WOOT!
01:05:58 <pikhq> It's normally compiled via web2c, which directly compiles the subset of Pascal that WEB allows to C.
01:06:08 <alise> See, /this/ is why Knuth is awesome.
01:06:16 <alise> He maintains a progam written in a hybrid of TeX and 70s Pascal.
01:06:30 <pikhq> And does it competently.
01:06:44 <alise> More than competently.
01:07:02 <pikhq> I'm sad that he stopped handing out *actual* Knuth checks.
01:07:05 <alise> He barely maintains it anyway; the version change to π will not change affairs much.
01:07:12 <oerjan> Mathnerd314: well yeah. that doesn't work for [0,1] though.
01:07:14 <alise> It is very stable code.
01:07:31 <alise> TeX π's release -- the silliest way to say "Knuth dying".
01:07:50 <pikhq> Also METAFONT's e release.
01:08:08 <zzo38> Icoruma was not even based on TeX, it was mostly idea from MediaWiki and pod, actually. And Icoruma is best for rules of role plaing games, so it isn't really the best thing to use for anything else (although it still can be -- I have written a beer program in Icoruma, just to see if it can be done). If you want to type rules for a role playing game, though, Icoruma is not such a bad thing to use.
01:09:17 <alise> zzo38: But you inadvertently ended up taking inspiration from TeX, even having not been exposed to it!
01:09:28 <alise> You invented the most-formatting-commands-are-simply-turing-complete-macros-over-primitives idea.
01:09:48 <alise> You invented the collates-documents-runs-macros-then-spits-out-output-based-on-primitives idea.
01:10:00 <alise> Independently reinventing the core of TeX is something to be proud of; it took Knuth to do it the first time.
01:10:05 <zzo38> Mathnerd314: http://zzo38computer.cjb.net/prog/Icoruma.zip this might be what you were looking for
01:10:17 <zzo38> alise: OK, I understand now
01:10:45 <alise> What language is Icoruma coded in?
01:10:52 <pikhq> Also, it's evidence that you're going about this *the right way*.
01:10:57 <zzo38> Icoruma is coded in PHP actually
01:11:04 <pikhq> TeX *defines* how you do typesetting.
01:11:32 <zzo38> Since it in PHP it might be usable even in a wiki, if someone wants to do so
01:11:39 <alise> zzo38: See, Knuth maintains TeX in 70s Pascal, a mammoth task considering how limited and arcane the language is.
01:11:47 <alise> You maintain Icoruma in PHP, a mammoth task considering how limited and arcane the language is.
01:11:57 * alise puts on sunglasses retroactively
01:11:59 <alise> YEAAAAAAAAAAAAAAAAAAHHHHH
01:12:03 <alise> [the who plays]
01:12:44 <pikhq> alise: :)
01:13:16 <zzo38> Of course, TeX and Icoruma have somewhat different purposes
01:13:37 <oerjan> so does Pascal and PHP. i think.
01:13:44 <alise> I wonder what the simplest, most theoretical Pascal-like you can define is. Not PL/I... some other thing with a similar name; that thing has to be close.
01:13:46 <alise> oerjan: *do
01:13:53 <zzo38> Well, yes.
01:14:03 <alise> Oberon is very minimalist.
01:14:24 * oerjan merges Pascal and PHP to avoid correcting his grammar
01:14:28 <oerjan> MWAHAHA
01:14:30 <alise> Here's the entire definition of Oberon-2:
01:14:31 <alise> http://www.statlab.uni-heidelberg.de/projects/oberon/kurs/www/Oberon2.Report.html
01:14:33 <pikhq> :D
01:14:36 <alise> pikhq will like that, I bet.
01:14:44 <alise> He seems to be a fan of tiny definitions.
01:14:47 <alise> Or, that may just be my heuristics.
01:14:54 <pikhq> alise: I am quite often.
01:14:56 <alise> It's even shorter than R5RS.
01:15:04 <alise> And there's an entire, full-featured, minimalist operating system written in it.
01:15:11 <alise> That fits on a floppy. With a GUI, and a TCP/IP stack.
01:15:11 <pikhq> Oh, Oberon.
01:15:17 <alise> It's 16 pages long.
01:15:20 <alise> (The language spec.)
01:15:24 <pikhq> I remember that sucker.
01:15:28 <pikhq> :)(
01:15:42 <alise> :)(:
01:15:50 * alise looks for the exact quote
01:15:52 <alise> "The Oberon OS is available for several other hardware platforms, generally in no cost versions. It is typically extremely compact. Even with an Oberon compiler, assorted utilities including a web browser, TCP/IP networking, and a GUI, the entire package fits on a single 3.5" floppy disk. The version which runs on bare PC hardware is called Native Oberon."
01:16:00 <pikhq> Yeah, decent thing.
01:16:05 <alise> zzo38: that zip is not loading for me
01:16:33 <zzo38> alise: What is it doing if it is not loading?
01:16:47 <alise> Just loading indefinitely without result.
01:16:48 <zzo38> What errors do you get?
01:16:58 <alise> Ah, now it works.
01:17:00 <alise> My connection is sporadic.
01:17:17 <alise> zzo38: Holy crap, icoruma is small!
01:17:33 <alise> icoruma.php is just 284 lines... icoruma_html.php 128 lines.
01:17:46 <alise> It's only a few functions. I was expecting it to be far bigger
01:17:49 <alise> s/$/./
01:18:10 <alise> This thing typesets the entire RPG documentation thing?
01:18:49 <zzo38> Yes, it does that. (icoruma.php just parses and interprets it, icoruma_html.php converts it to HTML)
01:19:01 <AnMaster> * oerjan merges Pascal and PHP to avoid correcting his grammar <- aaaaaaaargh
01:19:17 <alise> zzo38: Good code.
01:19:23 <alise> pikhq: Does TeX's Pascal even have enumerations?
01:19:28 * pikhq tries to find icomura
01:19:31 <pikhq> alise: Don't think so.
01:19:34 <alise> Or the subrange type thing like 1..10?
01:19:39 <alise> http://zzo38computer.cjb.net/prog/Icoruma.zip
01:19:40 <alise> pikhq: ^
01:19:44 <alise> And it's Icoruma, not Icomura :P
01:19:56 <pikhq> He wrote it in a subset of Pascal meant to be very, very portable.
01:20:05 <pikhq> alise: Ah, Japanese phonology strikes again
01:20:06 <alise> icoruma.php and icoruma_html.php are the files actually used; icoruma_raw.php is just a testing file, and icoruma.txt is a command reference.
01:20:22 <alise> Note how tiny both these files are.
01:20:30 <alise> Note how untouched by PHP's amazing suckiness.
01:20:53 <alise> pikhq: Does it even have definition of types?
01:21:02 <pikhq> Beats me.
01:21:14 <alise> I'll take a look.
01:21:19 <alise> ftp://ftp.tex.ac.uk/tex-archive/systems/knuth/dist/tex/tex.web
01:21:24 <alise> % A reward of $327.68 will be paid to the first finder of any remaining bug.
01:21:34 <alise> Wow, he's released as recently as February 2008.
01:21:51 <pikhq> alise: Sadly, no more proper Knuth checks.
01:21:51 <alise> \def\PASCAL{Pascal}
01:21:56 <alise> Wat :P
01:22:07 <alise> pikhq: That's for book errors.
01:22:12 <alise> That's only 0x$1.00, too.
01:22:26 <alise> I imagine if you found a bug in /TeX/, he'd actually pay you the $327.68 -- a rather larger sum.
01:22:47 <alise> Correction: TeX is written in 1982 Pascal (and TeX).
01:22:49 <pikhq> Instead, you get a certificate of deposit to the Bank of San Serriffe.
01:22:52 <AnMaster> * oerjan realizes that zzo38 is strictly following the "Don't ask to ask" principle <-- I make sure to follow that too
01:23:17 <alise> pikhq: ...TeX doesn't use pointers.
01:23:24 <alise> Or set types, or enumerated scala types. Or "with", or "new".
01:23:33 <pikhq> If you would like to make a withdrawal, one can talk to Knuth.
01:23:36 <alise> Or "var" parameters, apart from files (I think var means call-by-name or something).
01:23:41 <pikhq> alise: Wow.
01:23:45 <alise> It doesn't assign real:=integer, either.
01:23:49 <alise> in any case
01:23:56 <oerjan> alise: call by reference, more
01:23:56 <alise> "No procedures are declared local to other procedures"
01:24:00 <alise> oerjan: right
01:24:11 <alise> pikhq: No pointers; I think I've read that before. iirc he stores everything in "sufficiently large" static buffers.
01:24:12 <alise> Everything.
01:24:21 <pikhq> alise: The thing is, Knuth is no longer issuing personal checks.
01:24:28 <pikhq> For security issues.
01:24:29 <alise> pikhq: For errors in his books.
01:24:37 <pikhq> This is "in general".
01:24:44 <oerjan> mostly equivalent to adding * to everything in C, i think
01:24:49 <alise> I'm sure he'd be "kinder" with TeX...
01:24:58 <oerjan> oh and &
01:25:09 <AnMaster> <pikhq> Very large, as alise said, but just some macros. <-- larger than that even
01:25:36 <alise> Why do Pascal programs have program declarations?
01:25:40 <alise> Does the name actually matter?
01:25:43 <pikhq> alise: Still no checks.
01:26:14 <pikhq> Literally none at all.
01:26:22 <alise> Fine.
01:26:34 <AnMaster> <pikhq> It's a bunch of crazy TeX processing. <-- most of latex and other high level stuff such as bibtex is
01:26:48 <alise> "Since we are assuming 32-bit integers" Tut tut tut.
01:26:55 <pikhq> http://sunburn.stanford.edu/~knuth/boss.html I doubt that 0x$466.60 comes from 0x$1.00 sums. :)
01:26:55 -!- sebbu has quit (Ping timeout: 246 seconds).
01:26:56 -!- sebbu has joined.
01:27:51 <oerjan> alise: well it declares the files the program uses, iirc, originally
01:28:23 <alise> Thorsten Dahlheimer is pretty well off.
01:28:43 <alise> That's ~$1126.
01:29:56 <pikhq> Yes.
01:30:06 <pikhq> I note that he has not withdrawn that.
01:30:18 <pikhq> And thus, that's about $1126 of non-existent money.
01:30:36 <ais523> why are they using hexadecimal dollars anyway?
01:30:42 <alise> ais523: Because it's Knuth errors, dude!
01:30:49 <alise> You get one hexadecimal dollar for finding an error in his book.
01:30:56 <ais523> ah...
01:31:02 <alise> This gets deposited for you into the Bank of San Serriffe.
01:31:08 <alise> ais523: you didn't know that? o_O
01:31:19 <alise> Getting a cheque from Knuth is one of CS' greatest medals.
01:31:20 <ais523> alise: I knew he gave money, and I knew it was no longer in the form of checks
01:31:26 <ais523> I didn't know what form it took nowadays
01:31:33 <alise> He stopped because people tried to fuck with his accounts.
01:31:39 <pikhq> The Bank of San Serrife, of course, has branches on the planet Pincus.
01:31:48 <alise> "To request early withdrawals, please contact D. E. Knuth at Stanford University." -- doing so would be a bit rude of course
01:31:58 <ais523> alise: I thought nobody actually tried, but he did it as a precuation
01:32:02 <pikhq> (Knuth may perform such withdrawals for you)
01:32:13 <pikhq> ais523: No, he went through 3 bank accounts.
01:32:14 <ais523> because it was possible to fuck with someone's accounts if they wrote you a check, or something
01:32:16 <ais523> ah,
01:32:20 <ais523> ('twould be a cheque in the UK)
01:32:38 <pikhq> The electronic banking system is all sorts of fucked up.
01:32:48 <alise> ais523 saying fuck? rare occasion
01:33:00 <alise> So are cheques not really safe? I don't really know about this stuff, but I like cheques.
01:33:05 <ais523> alise: I was semi-quoting
01:33:15 <zzo38> I prefer to use cash, mostly
01:33:15 <ais523> I'm much more likely to use swearwords for htat reason than any other
01:33:17 <alise> "Soon people will learn that it is equally dangerous to reveal the numbers that are printed in plain sight on every check. Forget signatures; banks have no time to verify them. The once venerable system of checking accounts is irretrievably broken. Before long, companies will find it impossible to give out paychecks without exposing themselves to unacceptable risk. "
01:33:21 <pikhq> The world should consider itself glad that someone with a lot of computer knowledge does not have a grudge against human civilization.
01:33:28 <alise> [[Instead of writing personal checks, I'll write personal certificates of deposit to each awardee's account at the Bank of San Serriffe, which is an offshore institution that has branches in Blefuscu and Elbonia on the planet Pincus. ]]
01:33:32 <alise> so you still get a tangible reward
01:33:51 <oerjan> ais523: i vaguely recall something about the problem being people putting up _photos_ of their (uncashed) checks on the web, which _others_ could use to fuck with knuth's accounts
01:33:51 -!- Alex3012_ has quit (Ping timeout: 265 seconds).
01:33:53 <alise> So what is the simplest, portable way of transferring money?
01:34:01 <ais523> oerjan: ah
01:34:08 <pikhq> alise: Cash.
01:34:19 <alise> pikhq: What, in an envelope?
01:34:28 <alise> Even hidden in a birthday card it's still going to get stolen.
01:34:36 <alise> And transferring larger sums of money as cash is a bit hefty.
01:34:46 <alise> Besides, converting currency sucks.
01:34:48 <pikhq> Ah, that. Yeah, go for debit card, or direct money transfer.
01:34:52 -!- ais523 has quit (Remote host closed the connection).
01:35:06 <pikhq> Neither of which is all that secure.
01:35:24 <alise> "It is absolutely idiotic to have 64-bit pointers when I compile a program that uses less than 4 gigabytes of RAM. When such pointer values appear inside a struct, they not only waste half the memory, they effectively throw away half of the cache."
01:35:25 <alise> Knuth gonna flame
01:35:28 <pikhq> Let's just face it: the only reason that money continues to exist is that one of us does not want to destroy everything.
01:35:38 <alise> *none of us
01:35:42 <alise> *wants to destroy
01:35:47 <alise> -does not
01:35:48 <pikhq> Yes. That.
01:36:06 <alise> Ripple, anyone?
01:36:09 <alise> http://ripple.sourceforge.net/
01:36:24 * oerjan gets the Blefuscu and Elbonia references, but what is Pincus?
01:36:27 <pikhq> Also, WTF Knuth. Surely you know the benefits of having mmap'd file IO. :P
01:36:50 <zzo38> Perhaps this could be one way: Both people phone each-other to synchronize their accounts for the specific amount of money, and then the sender gets a magnetic ink pad and uses something like a date-stamp to stamp the information onto the cheque.
01:36:53 <alise> mmap? That's not portable.
01:36:57 * pikhq likes his 64-bit pointers
01:38:04 * alise is going to spec out uber-Pascal; a version of Pascal designed to be as uber as it can possibly be.
01:38:07 <alise> No pointers, of course...
01:38:54 <oerjan> Pascal pointers are safer than C ones, anyhow, iirc no pointer arithmetic
01:38:58 <alise> "Read is introduced such that read(f, x) is the same as x:=f^; get(f);. Write is introduced such that write(f, x) is the same as f^ := x; put(f);"
01:39:02 <alise> Well that is useless!
01:39:04 * Sgeo is in love with this Wesnoth song
01:39:11 <Sgeo> Elvish theme
01:39:12 <pikhq> http://sunburn.stanford.edu/~knuth/iaq.html
01:39:39 <AnMaster> <pikhq> The Bank of San Serrife, of course, has branches on the planet Pincus. <-- pincus?
01:39:45 <AnMaster> google turns up nothing useful
01:39:53 <AnMaster> as to where the name would come from
01:39:54 <pikhq> AnMaster: Is humor.
01:39:57 <pikhq> Laugh now.
01:40:07 <oerjan> AnMaster: darn i was just about to google it
01:40:11 <AnMaster> pikhq, yes I understand that, but I don't see what the humor is in it.
01:40:33 <AnMaster> pikhq, I googled san seriffe and found the origin of that (heh), but no luck with pincus
01:40:36 <oerjan> pikhq: the other strange names there _do_ have references, though
01:40:47 <AnMaster> oh, is it supposed to be "pink"?
01:40:53 <alise> hahahahaha
01:41:04 <alise> Oh, AnMaster...
01:41:20 * Sgeo looks for a song with lyrics "Maybe a mathematician"
01:41:34 <Sgeo> Clip from such a song came with Freespire
01:41:35 <oerjan> um "pink" is not a humorous reference. or maybe it is.
01:41:47 <zzo38> Pointers are very useful in C (even three-star pointers), but less so in higher-level program languages. In other programming languages you can do stuff like pointers in some ways in case you need it, I guess. For example, in PHP you can do the following: $ptr=array(&$x);
01:43:05 <AnMaster> zzo38, I prefer five star ones. From the Michelin guide to pointers
01:43:26 <alise> A pointer is just a single-length array!
01:43:36 <alise> Not that you can pass it by reference, of course!
01:44:05 <zzo38> AnMaster: Well, you can use any number of stars depending on what you are doing. Mostly one-star pointers are useful, but sometimes it is useful with three-star pointers or five-star pointers. (See c2 wiki)
01:44:20 <AnMaster> zzo38, .... that was a joke
01:44:24 <AnMaster> did you not get it?
01:44:36 <AnMaster> http://en.wikipedia.org/wiki/Michelin_Guide
01:44:43 <AnMaster> I thought that was common knowledge
01:44:51 <zzo38> Thanks
01:44:54 <alise> huh, "Embarcadero" bought out Delphi
01:44:56 <AnMaster> ...?
01:45:07 <zzo38> I didn't know what it was at first, now I can see on Wikipedia, thanks
01:45:25 <alise> EUROPEAN guide.
01:45:31 <alise> zzo38 is ... american or canadian; I forget.
01:45:33 <alise> I think american.
01:46:24 <oerjan> the five-star thing is for hotels, not restaurants though
01:46:45 <AnMaster> oerjan, right, 3 stars for restaurants iirc
01:46:56 <alise> program TEX; {all file names are defined dynamically}
01:47:01 <alise> I see.
01:47:02 <alise> So the syntax is
01:47:06 <AnMaster> oerjan, but then there would have been no joke
01:47:07 <alise> program foo(files, that, are, used)?
01:47:14 <zzo38> alise: I live in Canada, as you should be able to check by my IP address
01:47:29 <alise> Canada's a nice place.
01:47:40 <alise> But if files can be declared dynamically why does program exist?
01:48:25 <oerjan> alise: yeah. input and output for stdin and stdout iirc
01:48:42 <oerjan> alise: i guess they couldn't in original pascal
01:48:48 <alise> oerjan: I see.
01:48:55 <alise> I wonder how they are defined dynamically.
01:48:57 <alise> I should typeset tex.web.
01:50:17 <alise> noweb - A WEB-like literate-programming tool
01:50:18 <alise> nowebm - A WEB-like literate-programming tool - transitional package
01:50:18 <alise> cwebx - C/C++ literate programming system (Marc van Leeuwen's version)
01:50:18 <alise> funnelweb - A literate-programming tool
01:50:18 <alise> fweb - A literate-programming tool for C/C++/Fortran/Ratfor
01:50:21 <alise> Debian doesn't include WEB; hmph!
01:50:44 <oerjan> our first semester programming course back when was in turbo pascal. iirc that didn't need "program"
01:51:03 <zzo38> I thought Debian includes a lot of stuff, doesn't it? Perhaps some things are missing because nobody is submitting a package for it
01:52:03 <AnMaster> oerjan, unit?
01:52:14 <AnMaster> that is all I remember from pascal nowdays
01:52:16 <AnMaster> unit foo;
01:52:24 <alise> @!alpha_file=packed file of text_char; {files that contain textual data}
01:52:24 <alise> @!byte_file=packed file of eight_bits; {files that contain binary data}
01:52:29 <AnMaster> oh wait program foo; or such was used for the program file
01:52:32 <oerjan> hm it had that, its own module system iirc. but that was not for main programs i think
01:52:35 <AnMaster> that was delphi not pascal though
01:53:01 <AnMaster> oerjan, delphi used units mostly with a single program file for starting the main program code in some unit
01:53:04 <oerjan> i don't think we ever got to unit in that course though :D
01:53:43 <oerjan> oh. i just vaguely recall turbo pascal had something like it.
01:53:46 <alise> I don't think we need packed.
01:53:53 <alise> packed is just performance stuff.
01:54:02 <alise> I am sure uber-Pascal does not require it.
01:54:20 <oerjan> alise: remainder from way back in memory-starved days, i assume
01:54:44 <oerjan> wasn't string = packed array of char
01:56:15 <alise> " string = packed array [1..255] of char;"
01:56:16 <alise> or something
01:56:22 <alise> I think you have to choose the size in the type declaration.
01:56:55 <oerjan> oh, hm. well now i'm getting _really_ vague.
01:57:13 <alise> lol, having to choose a certain length of all strings
01:57:16 <alise> amazing, I love this language
01:57:20 <Sgeo> I think Astro File Manager installed something without my permission somehow
01:58:05 <Sgeo> My N1 came with some religious song :/
01:58:05 <oerjan> turbo pascal had its own dynamical string type, i think
01:58:14 <Sgeo> Generic religiousiy, nothing specific
01:58:18 <Sgeo> Just a song singing about Heaven
01:58:28 <AnMaster> <oerjan> wasn't string = packed array of char
01:58:32 <AnMaster> pascal strings are iirc:
01:58:36 <AnMaster> <length><data>
01:58:37 <alise> Sgeo: so remove the app
01:58:46 <AnMaster> I forgot if length was 1 or 2 bytes
01:59:02 <AnMaster> delphi had: <length:4 bytes><pointer to string data>
01:59:08 <alise> apparently dynamically opening files was an extension to Pascal in Knuth's compiler!
01:59:10 <oerjan> AnMaster: i think that is an extension, and what turbo pascal did
01:59:31 <AnMaster> oerjan, heh, but even older pascal didn't use \0 terminated strings iirc
01:59:47 <Sgeo> But I _like_ the app that got installed without my permission
02:00:05 <AnMaster> Sgeo, what app was that?
02:00:10 <Sgeo> Quickoffice
02:00:10 <alise> pikhq: Knuth did not even use structures.
02:00:12 <oerjan> older pascal iirc you had to declare all strings as fixed-length arrays, like alise said (oh _right_...)
02:00:13 <AnMaster> huh
02:00:27 <alise> oerjan: the realisation dawns :)
02:00:45 <oerjan> although you didn't have to use a common length type for them, i think
02:00:49 <AnMaster> oerjan, what if you had a shorter string?
02:00:59 <oerjan> AnMaster: different type
02:00:59 <AnMaster> oerjan, space padding?
02:00:59 <alise> right, but if you made a type "string"...
02:01:02 <Sgeo> Or maybe it's just builtin Quickoffice functionality, rather than an explicitely-installed App
02:01:03 <alise> AnMaster: space padding.
02:01:07 <alise> or \0 padding or something
02:01:14 <alise> Sgeo: probably the former, and *explicitly
02:01:14 <AnMaster> oerjan, well what if you needed to work with unknown string length in some function
02:01:18 <alise> you didn't
02:01:36 <oerjan> AnMaster: dammit now i'm also tempted to quote alise to you
02:01:40 <AnMaster> oerjan, lets say, 0-32 chars
02:01:43 <AnMaster> or such
02:01:53 <alise> then you ignored all the ones after some length parameter
02:01:58 <alise> or looked for some sort of padding character
02:02:00 <AnMaster> oerjan, plagiera icke! ;P
02:02:23 <oerjan> AnMaster: well the point is he clearly knows this stuff at least as well as i do
02:02:56 <AnMaster> I see
02:03:31 <alise> @p function new_null_box:pointer; {creates a new box node}
02:03:33 <alise> eh?
02:03:36 <alise> Pascal didn't have a function keyword...
02:03:40 <alise> ugh; WEB source is so confusing.
02:03:45 <pikhq> WEB does.
02:03:48 <pikhq> :)
02:04:46 <alise> pikhq: hah; TeX /does/ use pointers
02:04:51 <pikhq> Hah.
02:04:52 <alise> @!pool_pointer = 0..pool_size; {for variables that point into |str_pool|}
02:04:54 <alise> @!str_pool:packed array[pool_pointer] of packed_ASCII_code; {the characters}
02:04:55 <AnMaster> oerjan, btw could you parse that Swedish?
02:05:02 <alise> it just uses integers and a big array
02:05:06 <oerjan> AnMaster: given that he started the pascal discussion...
02:05:10 <oerjan> AnMaster: sure
02:05:17 <AnMaster> oerjan, ?
02:05:28 <oerjan> alise did
02:05:28 <AnMaster> what does the pascal discussion has to do with reading Swedish
02:05:50 <oerjan> AnMaster: it was an addition to my previous comment
02:05:54 <AnMaster> ah
02:06:22 <alise> Perhaps if I define uber-Pascal properly and write a compiler to some uncouth language like C then I can stop myself coding anything but amazingly pure algorithms :P
02:06:30 <oerjan> alise: um i'm pretty sure pascal had function
02:06:34 <AnMaster> btw I found a new addicting game. It is KDE though
02:06:37 <AnMaster> knetwalk
02:06:39 <alise> oerjan: procedure yes, but function?
02:06:42 <AnMaster> part of kdegames
02:06:52 <AnMaster> (well, new to me)
02:06:53 <oerjan> alise: procedure was like void functions in C
02:06:59 <oerjan> function was the rest
02:07:10 <alise> Yes, you are right.
02:07:16 <alise> Why on earth would you need output?
02:07:46 <AnMaster> oerjan, ah yes I remember that
02:08:39 <alise> @ Here is a procedure that asks the user to type a line of input,
02:08:39 <oerjan> AnMaster: the "sure" was about your swedish though
02:08:40 <alise> assuming that the |selector| setting is either |term_only| or |term_and_log|.
02:08:40 <alise> The input is placed into locations |first| through |last-1| of the
02:08:40 <alise> |buffer| array, and echoed on the transcript file if appropriate.
02:08:40 <alise> This procedure is never called when |interaction<scroll_mode|.
02:08:40 <alise> @d prompt_input(#)==begin wake_up_terminal; print(#); term_input;
02:08:41 <alise> end {prints a string and gets a line of input}
02:08:47 <alise> @d /must/ mean "WEB ish stuff".
02:08:50 <alise> That is certainly not Pascal.
02:08:52 <alise> A macro maybe?
02:08:57 <alise> No; it looks like it desugars into a procedure.
02:09:09 <alise> Bizarre. Anyone have WEB?
02:09:19 <alise> I'd love it if they just typeset and untangled this code so I could know what's what :P
02:09:39 <zzo38> AnMaster: I could probably write something like KNetwalk in QBASIC, which is something I might do one day
02:10:43 <AnMaster> zzo38, you played knetwalk?
02:10:49 <pikhq> Volume 4A of TAoCP is coming out this year.
02:10:59 <AnMaster> zzo38, also why would I want to play a QBASIC variant?
02:11:01 <pikhq> Man, we're actually getting a volume of TAoCP.
02:11:03 <AnMaster> zzo38, I like the KDE one
02:11:18 <zzo38> AnMaster: No, I have never played it. However I have look on Google and easily found the rules
02:11:24 <AnMaster> zzo38, okay a GTK+ one would be better, but a QBASIC one would not
02:11:49 <AnMaster> zzo38, oh btw on high difficulty levels the play field wraps
02:11:59 <AnMaster> so you can, and have to, connect over the edges
02:12:01 <AnMaster> to make it work
02:12:19 <AnMaster> not on the easier difficulty settings though
02:12:32 <zzo38> OK thanks now I can understand that it can wrap at some settings
02:12:34 <oerjan> alise: um didn't someone say that tex could be turned into a book? that seems like the point of literate programming...
02:12:43 <oerjan> so you _could_ typeset it
02:12:46 <alise> oerjan: yes; of course
02:12:49 <alise> that is what I was asking
02:12:57 <alise> WEB is two programs; one typesets the documentation and code with TeX
02:13:04 <alise> the other spits out Pascal source after fucking with it
02:13:07 <alise> I want the output of both
02:13:11 <oerjan> oh you asked for someone to do it
02:13:14 <alise> but I bet WEB is written in Pascal...
02:13:18 <alise> and Ubuntu doesn't have it
02:13:21 <alise> so I suspect it's a bitch to get
02:13:27 <AnMaster> zzo38, oh and every piece must be connected, not just all the computers
02:13:31 <oerjan> i thought you just meant you'd love if someone had done it
02:13:33 <AnMaster> but all pieces too
02:13:38 <AnMaster> with no loose end
02:14:46 <zzo38> AnMaster: Yes, I almost assumed that at first, actually
02:15:02 <pikhq> There's a few implementations, IIRC.
02:15:10 <AnMaster> pikhq, of the game?
02:15:11 <AnMaster> probably
02:15:15 <AnMaster> it is quite a simple idea
02:15:22 <pikhq> AnMaster: You. Unignore alise.
02:15:36 <AnMaster> pikhq, hey who is it now who is talking about the ignore
02:15:48 <alise> pikhq: oh just ignore the idiot... as in mentally
02:15:56 <alise> waste of time
02:16:09 <pikhq> Conversation's just going on with you basically shouting non sequiturs. :)
02:16:40 <AnMaster> pikhq, I checked log, and the context looked like it did from my POV there too. So I would have been equally confused even without /ignore
02:16:44 <pikhq> alise: You want WEAVE.
02:16:46 * oerjan is wondering if he should add (3) don't insult people who are ignoring you behind their backs, to his previous list
02:16:49 <alise> pikhq: but also TANGLE
02:16:54 -!- coppro has joined.
02:16:54 <Sgeo> AndChat doesn't seem to be autojoining channels
02:17:03 <alise> oerjan: is anyone being offended?
02:17:05 <AnMaster> oerjan, interesting
02:17:09 <alise> AnMaster has done his fair share of annoying me too.
02:17:21 <alise> and some of his insults have been pretty bad
02:17:23 -!- SgeoN1 has joined.
02:17:25 <alise> "idiot" is not much.
02:17:31 <SgeoN1> Here we go
02:17:56 <oerjan> alise: yes. if one of you had actually been reasonable, then a request to ban the other could quite possibly have been granted.
02:18:23 <oerjan> well, in theory.
02:18:24 <AnMaster> oerjan, I don't think either of us should be banned
02:18:40 <alise> oerjan: I doubt that.
02:18:52 <oerjan> AnMaster: well it would require one of you to actually be annoyed enough to request it
02:19:03 <alise> Nobody would ban me because I'm awesome; AnMaster wouldn't be banned because he hasn't committed an offence more egregious than being an idiot and a fuckwit.
02:19:14 <alise> Besides, everyone brushes it off as "oh they always argue" anyway. :)
02:19:31 <AnMaster> oerjan, if alise does that then consider me doing an automated counter request. But only at that point.
02:19:36 <alise> It is quite pleasant not to have him challenging and mocking everything I say, though. If he'd stop mentioning it and stopped talking to me I wouldn't mind him ignoring me.
02:19:44 <AnMaster> anyway, I don't have an issue with him being here
02:19:48 <oerjan> AnMaster: yay, M.A.D.
02:19:52 <alise> AnMaster: Nice passive-aggressivity.
02:19:54 <AnMaster> and lets *not* talk about the ignore for a while?
02:19:55 <AnMaster> okay?
02:20:08 <alise> Like that will happen with you in here.
02:20:09 <oerjan> o kay
02:20:12 <Sgeo> 1 2 3 4 this is how we IRC war
02:20:18 <alise> oerjan: for the record, I formally request a ban of AnMaster; this should be fun.
02:20:25 <AnMaster> oerjan, MAD? As in the the magazine?
02:20:28 -!- Asztal has quit (Ping timeout: 246 seconds).
02:20:31 <alise> anyway it's precedent that you can't platonically time actions
02:20:33 <alise> see some CFJ
02:20:36 <zzo38> I don't think we need to ban anyone
02:20:43 <alise> zzo38: LET'S BAN YOU
02:20:52 <oerjan> alise: both requests denied
02:21:07 <alise> What about AnMaster's? Uh oh...
02:21:18 <oerjan> alise: i said _both_
02:21:27 <alise> What about my request to ban zzo38?
02:22:12 <oerjan> alise: i'm not a bot, i don't need to apply logic or pretend to play a game of nomic
02:22:18 <oerjan> if i don't want to
02:22:27 <alise> Oh yes you do.
02:22:28 <pikhq> Hooray, whims of oerjan.
02:22:30 <alise> Anyway, what about my request to ban zzo38? :)
02:22:34 <pikhq> Best government system *ever*.
02:22:36 <AnMaster> oerjan, if he is insulting me behind my back I however formally requests you banning him until he stops doing that. I only ask this because of what you said about adding (3) above
02:22:45 <alise> AnMaster sucks donkey cocks!
02:23:04 <alise> Oh, I felt the pang in his upsetness organ just from the metaphysical knowledge that I said something nasty about him there
02:23:05 <oerjan> AnMaster: that was the second request i denied, silly. you said it was automated.
02:23:11 <oerjan> well, essentially.
02:23:21 <AnMaster> oerjan, huh?
02:23:55 <alise> HUH??? HUH???
02:24:14 -!- Mathnerd314 has quit (Ping timeout: 245 seconds).
02:24:42 <AnMaster> night →
02:26:01 <oerjan> ah peace and quiet
02:26:06 <oerjan> also, food ->
02:26:40 <alise> http://www-cs-faculty.stanford.edu/~knuth/cweb.html
02:26:42 <alise> wtf where is web
02:26:47 <alise> how do i shot web
02:26:52 <alise> I CANNOT FIND IT
02:28:03 <alise> http://en.wikipedia.org/wiki/Jensen%27s_Device this is awesome
02:30:38 <coppro> it is?
02:31:13 <alise> yes
02:31:13 <alise> read it
02:31:22 <alise> it exploits call by name to do "symbolic" parameters
02:31:42 <Sgeo> Knuth made an incorrect conjecture once?
02:31:54 <Sgeo> [Looking at the Man or boy test thing]
02:32:19 <coppro> ah, I get it
02:32:21 <coppro> epic
02:32:23 <alise> Sgeo: yes
02:32:28 <alise> even the greats make mistakes
02:32:35 <alise> function factorial(n:integer):integer;
02:32:35 <alise> begin
02:32:36 <alise> factorial:=1;
02:32:36 <alise> for k:=1 to n do factorial:=factorial*k
02:32:36 <alise> end;
02:32:36 <Sgeo> Blasphemer! ;)
02:32:41 <alise> using the function name as the return value
02:32:46 <alise> pascal you one crazy bitch
02:32:54 <coppro> this is Algol
02:32:56 <coppro> which is even worse
02:33:00 <alise> no i coded that
02:33:01 <alise> factorial
02:33:04 <alise> yeah algol is crazier
02:33:05 <alise> but cooler also
02:33:10 <Sgeo> Scala has call-by-name
02:33:18 <alise> note that algol 60
02:33:21 <alise> is relatively conventional
02:33:26 <alise> algol 68 is the uber-crazy one
02:33:28 <alise> but nobody used it
02:33:30 <alise> and algol means 60
02:33:42 <alise> http://en.wikipedia.org/wiki/ALGOL_68 it has a longer article because wikitards like craziness :P
02:36:35 <oerjan> huh, you can include Special:RecentChanges on a wiki page?
02:37:19 <alise> ha
02:40:15 <oerjan> i guess this change might help our wiki look more alive
02:41:24 <alise> what change?
02:41:35 <alise> oh wow; that's ugly
02:41:41 <alise> someone get rid of it
02:41:50 <Sgeo> On esolang wiki?
02:42:00 <oerjan> main page
02:44:15 <oerjan> alise: it's true that the old page looks static, though
02:45:01 <oerjan> if you only looked at it you _could_ get the impression the wiki was dead
02:45:11 <alise> yeah right
02:45:26 <fizzie> oerjan: Perhaps if you embedded a (randomly chosen on each page-load) javascript esolang interpreter on the main page. Can't call that static!
02:45:36 <oerjan> *facepalm*
02:45:43 <oerjan> a literal one
02:47:03 -!- lament has quit (Quit: lament).
02:53:33 <Sgeo> Someone's face is growing out of a phone?
02:53:54 * oerjan swats Sgeo -----###
02:54:45 <oerjan> not literally, mind
02:57:00 -!- Mathnerd314 has joined.
02:57:09 * alise decides to write an uber-Pascal compiler before specifying it; a path to certain failure, of course.
02:58:08 <alise> Never mind that clearly uber-Pascal is the only acceptable language to write an uber-Pascal compiler in.
02:58:18 <oerjan> there are certain failures you want to avoid
02:58:55 <alise> There are certain certain failures that you are certain to be unable to avoid, certainly.
03:00:50 * alise has written an -- almost certainly incorrect -- uber-Pascal program to print out Collatz sequences, so let's see if we can compile it to C.
03:01:05 <alise> It worries me that writeln() is a polymorphic, variadic function: something patently impossible in Pascal.
03:03:48 <alise> Well, actually, the program enumerates one specific Collatz sequence (the one starting at n=12345).
03:04:01 -!- coppro has quit (Ping timeout: 258 seconds).
03:05:11 <oerjan> spoiler: it ends up at 1
03:05:40 <alise> You don't say.
03:08:14 <alise> In 51 steps.
03:08:20 <alise> Well; 50, if you don't count the base case.
03:08:42 -!- SgeoN1 has quit (Quit: Bye).
03:12:09 -!- lament has joined.
03:12:54 <alise> [[Entries in the The On-Line Encyclopedia of Integer Sequences give at most three lines of terms
03:12:55 <alise> (about 200 characters - a carry-over from the days when the database was on punched cards).]]
03:12:59 <alise> I didn't know the OEIS was that old.
03:16:05 <Mathnerd314> oerjan: how do you know? ;-)
03:17:16 <Mathnerd314> maybe 1267650600228229401496703205376 doesn't ever repeat :-)
03:17:53 <oerjan> well it does
03:18:38 <oerjan> also, technically i think it's still unknown if there are cycles other that 4,2,1
03:18:51 <oerjan> so it might have repeated somewhere else
03:19:24 <Mathnerd314> just read http://en.wikipedia.org/wiki/Collatz_conjecture
03:19:39 <oerjan> you did?
03:19:46 * oerjan whistles innocently
03:20:49 <oerjan> "Simons/deWeger in 2003 extended their own proof up to "68-cycles": there is no m-cycle up to m=68 a=T(a;(1)L1,A1,(1)L2,A2,...,(1)L68,A68). Whatever number of steps in L1 to L68 and whatever exponents A1 to A68 one may choose, there is no positive odd integer number a satisfying the cycle condition. Steiner claimed in a usenet discussion he could extend this up to m=71.[citation needed]"
03:21:18 <alise> Mathnerd314: 1267650600228229401496703205376 < 20 * 2^58
03:21:27 <Mathnerd314> oops
03:21:36 <alise> so it does terminate in 1, by computer exhaustion
03:21:58 <Mathnerd314> wait, 20*2^58?
03:22:11 <oerjan> "It is also known that {4,2,1} is the only repeating cycle possible with fewer than 35400 terms."
03:22:24 <Mathnerd314> that's only 5764607523034234880
03:22:34 <alise> hmm, you're right
03:22:52 <alise> i'd quickly check it with computer but I don't have a calculator/CAS with that much precision atm
03:23:00 <oerjan> oh m-cycle isn't the same as cycle of length m there
03:23:06 <alise> but what oerjan said :P
03:23:20 * alise writes a crazy parser by hand
03:23:44 <Mathnerd314> no need; my earlier number was just 2^100 :-)
03:23:58 <alise> case 'b':
03:23:58 <alise> NEXT; IS('e',go1);
03:23:58 <alise> NEXT; IS('g',go1);
03:23:58 <alise> NEXT; IS('i',go1);
03:23:58 <alise> NEXT; IS('n',go1);
03:23:59 <alise> WHITESPACE;
03:23:59 <alise> given
03:24:00 <alise> #define GET old=c; c=getc(f); if(c==EOF) goto eof
03:24:00 <alise> #define FORGET ungetc(c,f); c=old
03:24:01 <alise> #define IS(d,g) if(tolower(c)!=d){FORGET; goto g;}
03:24:02 <alise> #define WHITESPACE GET; while(isspace(c)){GET;} FORGET
03:24:09 <oerjan> Mathnerd314: d'oh
03:24:15 <alise> ah
03:24:15 <alise> :P
03:24:48 <Mathnerd314> lambdabot is just so nice for these sorts of computations...
03:25:11 <oerjan> alise: i checked his number in haskell btw, i have a Collatz.hs module from before
03:25:59 <oerjan> (i did _not_ check before my "spoiler" above, though)
03:28:39 <oerjan> alise: that parser would have trouble with identifiers like beef, wouldn't it
03:29:39 <oerjan> since you are discarding all but the mismatched character
03:30:24 <oerjan> and ungetc can only do one char in a row, can't it
03:33:32 -!- alise has quit (Ping timeout: 258 seconds).
03:42:22 <Mathnerd314> hmmm... is Pure an esoteric programming language?
03:42:54 <oerjan> what is pure
03:43:11 <zzo38> There are other ways to write stuff using C preprocessor, too, especially if you are using GNU C. GNU C has some additional things that help a bit. Including typeof operator, ({ }) blocks inside of expressions, some __builtin_ commands, are useful when writing preprocessor macros
03:43:43 <zzo38> It might also be what __attribute__((unused)) is meant for.
03:43:47 -!- alise has joined.
03:43:47 <pikhq> GNU C should just add hygienic macros and call it a day, honestly.
03:43:51 <alise> Mathnerd314: pure the rewrite language?
03:43:51 <oerjan> oh that
03:43:59 <Mathnerd314> yeah
03:43:59 <zzo38> What are hygienic macros?
03:44:02 <alise> <alise> oerjan: i could store all chars read so far in a buffer
03:44:03 <alise> <alise> of a certain fixed size; and specify that identifiers need only be handled up to N long
03:44:08 <alise> Mathnerd314: it is pretty but not really esoteric
03:44:11 <Mathnerd314> this one: http://en.wikipedia.org/wiki/Pure_%28programming_language%29
03:44:12 <alise> the paradigm is esotericish; see Defcalc
03:44:14 -!- fax has joined.
03:44:19 <alise> http://www.esolangs.org/wiki/Defcalc
03:44:27 <alise> but Pure is basically the core of most computer algebra systems
03:44:29 <alise> so not really esoteric
03:44:32 <oerjan> alise: well sure, just your code didn't
03:44:34 <fax> is there an unlambda interpreter in brainfuck?
03:44:37 <alise> oerjan: yeah but it will now!
03:44:38 <alise> fax: yes iirc
03:44:39 <fax> or brainfuck to unlambda
03:44:42 <fax> where?
03:44:46 <pikhq> zzo38: Macros whose expansion is guaranteed not to cause collisions with existing symbol definitions.
03:44:48 <alise> see http://www.esolangs.org/wiki/EsoInterpreters
03:44:58 <alise> so no
03:45:15 <fax> alise it's not there :/
03:45:23 <fax> maybe I can get there in a couple steps
03:45:25 <alise> yeah :/
03:45:35 <fax> is ther any program which finds the shortest path in that matrix?
03:45:35 <alise> fax: heh!
03:45:42 <alise> no, but you could write a general one
03:45:48 <alise> ooh now that calls for some super algorithm
03:45:50 <alise> :P
03:45:58 <alise> apply A* to the esointerpreters page.
03:46:35 <oerjan> fax: it's not that hard, _most_ things there are either just implemented, just implemented, or are brainfuck
03:46:47 <Mathnerd314> alise: so why is defcalc esoteric but pure not? :p
03:46:55 <oerjan> and i haven't heard of any unlambda - brainfuck connection
03:47:05 <alise> Mathnerd314: for some paradigm P, tarpit(P) = esoteric; fully-developed language(P) = not esoteric
03:47:12 <pikhq> Though, C already has something *kinda-sorta* like hygienic macros... static functions are *like* them, for some purposes.
03:47:12 <alise> strangestrange instance of(P) = esoteric
03:47:15 <pikhq> Just not as general. :(
03:47:22 <alise> "just implemented, just implemented, or are brainfuck"
03:47:26 <alise> just implementors, you mean
03:47:30 <oerjan> er right
03:48:10 <alise> well to interpret unlambda in brainfuck
03:48:19 <alise> we need to have either an intercal in brainfuck -- not happening
03:48:25 <alise> or a lazy k in brainfuck, which we have
03:48:36 <pikhq> Hmm. Why *is* Brainfuck so popular, anyways?
03:48:38 <alise> wait no
03:48:39 <zzo38> See line 66 of http://pastebin.com/U0gRGw6N that's how __attribute__((unused)) is used
03:48:46 <alise> lazy k isn't implemented
03:48:50 <alise> fax: can't interpret unlambda, sorry
03:48:51 <alise> but brainfuck...
03:49:02 <alise> unlambda only has self-interps, sorry
03:49:10 <alise> fax: can't be done
03:49:33 <Mathnerd314> alise: defcalc is purer than Pure :p
03:50:02 <pikhq> alise: lies.
03:50:16 <Mathnerd314> no, pure has too many built-in special forms
03:50:16 <alise> pikhq: can't be done with current state of the art.
03:50:22 <pikhq> I could've *sworn* there was a Brainfuck in unlambda. :(
03:50:30 <alise> Mathnerd314: yeah :P
03:51:03 <zzo38> pikhq: If there isn't one, maybe write one
03:51:28 <alise> oerjan: also my parser is actually a lexer... so I lied when I said it was a parser
03:51:35 <alise> the idea is that the compiler operates directly on the lexing results
03:51:37 <pikhq> GCCBF really needs to be worked on. :P
03:51:38 <alise> with no need for parsing
03:51:41 <zzo38> Although perhaps unlambda should have new commands for input/output by bits
03:51:55 <oerjan> alise: lazy k is rather too complicated to implement. like befunge, it's a language that's relatively easy to implement other things in
03:52:00 <alise> if you have a BEGIN without END, it simply fails to return from do_BEGIN() and errors out
03:52:01 <alise> oerjan: yes
03:52:17 <alise> let's see, what would be easiest to implement in unlambda...
03:52:25 <pikhq> Lazy K, actually.
03:52:32 <alise> would thue be easy to implement in unlambda?
03:52:36 -!- lament has quit (Quit: lament).
03:52:54 <oerjan> so far only brainfuck has hit the sweet spot of being both. you will note that the only _cycle_ in the graph is with it and another almost identical language (Bub iirc)
03:52:58 <alise> the brainfuck thing for lazyk is just a compilerish thing
03:52:59 <alise> (macros)
03:53:10 <alise> yeah bub
03:53:22 <alise> it's not quite identical though
03:53:25 <alise> loops are gotos
03:53:37 <alise> well, for unlambda we want something without much syntax
03:53:43 <alise> underload, maybe?
03:53:56 <alise> bf in underload can't be hard
03:54:02 <alise> http://www.esolangs.org/wiki/Redivider/Underload_Interpreter ;; I forgot how lovely Redivider is.
03:54:14 <alise> A gem of an esolang; why does nobody like it?
03:54:18 <alise> Well, or at least mention it.
03:54:21 <pikhq> Lazy K in Unlambda would probably be pretty easy.
03:54:47 <alise> but there's no bf-in-lazyk
03:54:50 <alise> it's a set of compiler macros
03:54:53 <alise> http://www.esolangs.org/wiki/Redivider/Brainfuck_Interpreter ;; also smexy
03:54:57 <pikhq> Wouldn't be hard, either.
03:54:58 <oerjan> alise: no, thue would be awful in unlambda, because unlambda has a hard time comparing chars
03:55:06 <alise> oerjan: yeah
03:55:11 <alise> Actually the example -- infix to RPN -- on http://esolangs.org/wiki/Redivider -- is actually very nice.
03:55:19 <alise> As in, it'd be nice to write it even in a non-esolang that way.
03:55:39 <oerjan> in fact any brainfuck implementation in unlambda is going to require a full character table of ?x and .x functions
03:55:57 <pikhq> GAH right.
03:56:10 <alise> Brainfuck-in-Thue has the impressive property of containing every 256 ascii character.
03:56:16 <pikhq> Yeah, that's needed for any output in unlambda. :*
03:56:17 <oerjan> (my unlambda in unlambda barely got by with a ?x table, .x could be done with |)
03:56:18 <pikhq> :(, even.
03:56:29 <fax> who was that crazy guy with the blog about smallest possible self interpreters?
03:56:47 <oerjan> alise: brainfuck-in-thue is not really workable without I/O translation
03:57:03 <oerjan> because thue has an input injection problem
03:57:04 <fax> http://eigenratios.blogspot.com/
03:57:27 <pikhq> My God, Redivider is beautiful for parsing.
03:58:18 <alise> pikhq: yep
03:58:20 <oerjan> alise: bf in underload is impossible, because of input lacking
03:58:25 <alise> fax: yeah he's awesome
03:58:26 <alise> fax: it's not smallest
03:58:29 <alise> fax: it's fastest
03:58:33 <fax> oh
03:58:34 <alise> oerjan: yes
03:58:46 <alise> pikhq: I'll have you know I shaped redivider!
03:58:54 <fax> It sucks he's not been bloging
03:58:57 <alise> I nudged Warrigal until he made it how I like.
03:59:01 <alise> fax: I just said that recently!!
03:59:24 <fax> heh
03:59:28 <fax> SYNCRONISITY
03:59:38 <alise> pikhq: There was a really really nice SK interp in it that warrigal did
03:59:39 <pikhq> ORK is probably far too hard to implement in anything... :/
03:59:42 <alise> Lemme try and find it
04:00:01 <pikhq> Except quite possibly Glass.
04:00:03 * alise imagines an esolang designed to minimise the size of its own self-interpreter, while not "cheating" (like say using eval or whatever)
04:00:11 <pikhq> Who wants a Gregorcycle? :P
04:00:14 <alise> Binary lambda-calculus as per John Tromp has a 210 bit self-interpreter.
04:00:19 <oerjan> pikhq> Lazy K in Unlambda would probably be pretty easy. <-- lazy evaluation is hard to emulate if you have neither mutable datastructures nor laziness already
04:00:23 <alise> Which is 26 and 1/4 bytes.
04:00:30 <fax> lambda-calculus is the best possible programming language
04:00:35 <alise> But that's sorta cheating, packing things into one byte.
04:00:40 <fax> coding it in binary is a trick
04:00:46 <pikhq> oerjan: Don't have to be actually lazy, just call-by-need. :)
04:00:49 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
04:01:02 <pikhq> (at least, I don't *think* Lazy K actually mandates laziness)
04:01:21 <fax> hahaha oh wow http://en.wikipedia.org/wiki/Self-interpreter
04:01:25 <fax> "Clive Gifford introduced a measure quality of self-interpreter - eigenratio. Eigenratio is a ratio between computer time spent to run a stack of N self-interpreters and time spent to run a stack of N-1 self-interpreters, when N goes to infinity. This value does not depend on top-level program being run."
04:01:35 <alise> fax: that's the eigenratio blogs
04:01:37 <alise> *blog
04:01:51 <oerjan> pikhq: i think underload in unlambda can be done without a full character table, since it only prints characters previously read
04:01:51 <alise> he conjectures, based on nothing at all but it would be nice, that the best possible ratio is phi :)
04:02:02 <alise> Here's a binary lambda calculus self-interp:
04:02:04 <alise> 01010001101000010000000110000001100001011110011111110000101
04:02:04 <alise> 11001111111000000111100001011011011100111111110000111111110
04:02:04 <alise> 00010111101001110100101100111111000011011000010111111110000
04:02:04 <alise> 11111111000011100110111101110011010000110010001101000011010
04:02:10 <alise> Or in De Bruijn-index lambda calculus:
04:02:11 <alise> (λ11)(λ(λλλ1(λλ1(λ3(6(λ2(6(λλ3(λ123)))(7(λ7(λ31(21))))))(1(5(λ12))(λ7(λ7(λ2(14)))3)))))(11))(λ1((λ11)(λ11)))
04:02:22 <alise> (where 123 is ((1 2) 3))
04:02:26 <fax> yeah I've seen that program before
04:02:43 <alise> It's sweet.
04:02:45 <oerjan> pikhq: you mean call-by-name
04:03:04 <fax> it's just ev(fx)=ev(f)ev(x);ev(\x.m)=\x.ev(m[x]) using scott mogensen encoding
04:03:13 <fax> turning it into binary is stupid
04:03:42 <fax> obfuscation
04:04:00 <alise> fax: it's not about that
04:04:03 <alise> it's for kolgomorov complexity
04:04:06 <alise> http://homepages.cwi.nl/~tromp/cl/cl.html
04:04:10 <alise> tromp is a good friend of ours, not an idiot :)
04:04:22 <alise> for kolgomorov complexity you need some sort of number to denote the "size" of a program
04:04:29 <pikhq> oerjan: Ah, right. That.
04:05:39 <oerjan> alise: i dispute that conjecture, i _suspect_ my unlambda-in-unlambda interpreter actually has ratio 1. otoh some might consider its methode cheating.
04:05:46 <oerjan> *method
04:05:56 <alise> oerjan: how does it work?
04:06:04 <alise> and it surely can't run /exactly as fast/ as the host interp
04:06:21 <oerjan> no, but there is no extra overhead after the second iteration or so
04:06:55 <alise> how?
04:07:08 <alise> and you have to count normal interp to first selfinterp, anyway
04:07:11 <oerjan> because it parses, always, the program into an eta-expanded version of itself, which is the same one after any number of iterations after the first
04:07:32 <oerjan> and then that is directly run by applying it to an exit continuation
04:08:17 <pikhq> That's like using eval, really.
04:08:21 <oerjan> so in some sense after parsing it skips directly down to the first interpreter
04:10:07 <oerjan> pikhq: i said some might consider it cheating. otoh it cheats using a fundamental feature of lambda calculus :D
04:10:15 <pikhq> oerjan: :)
04:11:08 <alise> oerjan: right but what is the ratio of host interp : selfinterp?
04:11:23 <alise> that + some (since there's overhead in your parsing) is your eigenratio
04:11:28 <fax> if it parses it then turns it into 'direct' code, the parsing is O(1)
04:11:32 <fax> compared to running the program
04:11:35 <fax> right?
04:11:40 <fax> so you can ignore the O(1)
04:11:54 <alise> you can't though
04:11:59 <alise> because eigenratios measure actual time ratio
04:12:02 <alise> I think
04:12:08 <fax> over which programs?
04:12:16 <alise> an infinite stack of self-interps
04:12:20 <fax> ohhhh
04:12:22 <alise> if you just measured O()ness, that'd be easy
04:12:25 <fax> that's differentt to what I was thinking
04:12:30 <alise> because most every non-stupid interpreter is O(n) so to speak
04:14:48 <alise> basically
04:14:58 <oerjan> alise: if you chain n programs, then most steps will take the same time t independent on n, i think. so ((n+1)t)/(nt) = (n+1)/n -> 1
04:15:05 <alise> let's say E is the eigenratio of a language L with self-interpreter I
04:15:22 <oerjan> each step just has to parse the next, then run it
04:15:44 <oerjan> that's my reason for believing it has ratio 1, after all
04:15:52 <alise> now let T(f,x) be the time it takes the interpreting-function f to run the program x
04:15:56 <alise> erm
04:16:00 <alise> now let T(f,x,i) be the time it takes the interpreting-function f to run the program x with input i
04:16:37 <alise> and let F(p,i) return an input suitable for passing to I
04:16:42 <alise> that represents run-the-program-p-with-input-i
04:16:55 <alise> now let S(0,p,i)=T(E,p,i); S(n,p,i)=T(E,I,F(p,i))
04:17:25 <alise> now let E'(n) = S(n,nop,"")
04:17:40 <alise> now let E (loosely) = lim n->inf, S(n,nop,"")
04:17:45 <alise> (of course the nop and "" are irrelevant in E)
04:18:12 <alise> erm wait
04:18:19 <alise> now let S(0,p,i)=T(E,p,i); S(1,p,i)=T(E,I,F(p,i))
04:18:20 <alise> but
04:18:33 <alise> eh
04:18:34 <alise> you get it
04:18:37 <alise> S(0) is regular interp
04:18:40 <alise> S(1) is one self interp stack
04:18:43 <alise> S(n) is n nested self-interps
04:18:57 <alise> so E is the limit as n goes to infinity of T(S(n))/T(S(n-1))
04:19:01 <alise> where T measures the time to run
04:19:08 <alise> with some simple base program
04:19:33 <alise> basically you have some simple but not instant base program P, and you do E(P), then E(I(P)), then E(I(I(P))) and eventually they'll tend to some value E.
04:19:36 <alise> i am bad at explaining
04:20:26 <oerjan> alise: note that for my interp chaining is as simple as cat interp interp interp interp botprog botinput | unlambda
04:20:31 <alise> yes
04:20:38 <alise> Also note that eigenratios tend to be very large.
04:20:53 <alise> The fastest BF self-interpreter, cgbfi2.b, has an eigenratio somewhere in the low thousands.
04:21:27 <alise> So as n goes to infinity, Time(Stack(n)) = lowthousands*Time(Stack(n-1))
04:21:29 <oerjan> maybe i should actually time my interpreter :D
04:21:38 <alise> oerjan: Feel free.
04:21:47 <alise> Remember to run the first timing twice due to silly OS caching.
04:21:54 <alise> I'd write a program to keep increasing the nestings.
04:22:00 <alise> Also remember to do one with just the base interp
04:22:08 <alise> and, of course, do the division for you at each step
04:22:10 <oerjan> oh
04:22:13 <alise> what?
04:22:27 <oerjan> why would we want the base interp alone?
04:22:31 <alise> consider n=1, Time(Stack(1)) = something*Time(Stack(0))
04:22:35 <alise> Stack(0) = base interp
04:22:39 <alise> oerjan: it's the "overhead" of your interp
04:22:48 <alise> i.e. literally a measure of how much slower it makes things
04:22:52 <alise> at least i think you include the base interp
04:23:15 <alise> It's 4:22 am but I'm going to write a Redivider interp anyway because I'm not tired.
04:23:25 <oerjan> it's the limit as stack height -> inf, after all
04:24:04 <alise> oerjan: how about running once without base and once with? :P
04:24:11 <alise> whichever is the larger value is likely correct ;-)
04:24:37 <oerjan> what do you mean _without_ base?
04:24:52 <alise> as in start with cat selfinterp foo | unlambda
04:25:21 <alise> But yes, you're right.
04:25:23 <alise> You should omit base.
04:25:33 <alise> But i'd still take sequential samples.
04:25:48 <oerjan> question is what to use for foo. hello.unl perhaps.
04:25:57 <alise> Sure, that would work.
04:26:19 <alise> The self-interps are complex enough that they'll end up spending most of their time running the endless copies of themselves rather than the actual program.
04:26:40 <alise> Reason to take a bunch of higher and higher samples: it could take too-many-to-run interpreters before it starts converging, so at least you can come up with an approximation formula given a bunch of samples
04:27:00 <alise> which you can then numerically evaluate at lots of big points to get a guesstimate
04:27:07 <oerjan> wait that prints 10 lines
04:27:46 <alise> that's okay
04:27:50 <alise> redirect output to /dev/null
04:27:55 <alise> or NUL or whatever you dos folk use
04:28:07 <alise> oerjan: "Furthermore it seemed that the limit value of this ratio didn't change when a different top level program was used (on the very top of the stack)."
04:28:13 <alise> so it doesn't really matter, but i wouldn't use nop
04:28:18 <oerjan> this is on the nvg linux machine
04:28:50 <alise> lol i tried to reverse redivider to get a nicer interp name
04:30:09 <oerjan> you want the user times i guess?
04:30:23 <alise> isn't it usually real?
04:30:55 <alise> e Elapsed real (wall clock) time used by the process, in
04:30:56 <alise> seconds.
04:30:57 <oerjan> well this is a multiuser machine, does this matter?
04:31:13 <oerjan> and a server
04:31:22 <alise> U Total number of CPU-seconds that the process used direct‐
04:31:23 <alise> ly (in user mode), in seconds.
04:31:29 <alise> So basically U is not just you-user.
04:31:39 <alise> You want e, which is how long it actually took according to a stopwatch.
04:32:09 <oerjan> real 0m1.156s
04:32:09 <oerjan> user 0m1.154s
04:32:09 <oerjan> sys 0m0.004s
04:32:15 <oerjan> is what i get
04:32:19 <oerjan> bash builtin
04:32:46 <alise> for what stack?
04:33:04 <alise> run it for only one self-interp, then two, etc.; record these values, then for each value take it divided by the previous one
04:33:07 <oerjan> bash-2.04$ time cat interpreter.unl interpreter.unl interpreter.unl interpreter.unl interpreter.unl interpreter.unl interpreter.unl interpreter.unl unlambda-mirror/CUAN/Hello.unl | unlambda > /dev/null
04:33:14 <oerjan> gave that
04:33:20 <alise> the resulting list of values are sequential approximations of your eigenratio
04:33:21 <oerjan> the last one i tried
04:33:43 <oerjan> well do you want me to use real
04:33:59 <alise> yes
04:35:11 <oerjan> 0m0.003s 0m0.059s 0m1.104s 0m1.137s 0m1.159s 0m1.143s 0m1.108s 0m1.111s 0m1.156s
04:35:45 <alise> for i in $(seq 1 20); do /usr/bin/time -f '%e' cat $(seq 1 $n | awk '{print "interpreter.unl"}') unlambda-mirror/CUAN/Hello.unl | unlambda > /dev/null; done
04:35:47 <alise> run this
04:35:58 <alise> or wait, not enough precision
04:36:12 <alise> eh
04:36:14 <alise> should work fine
04:36:21 <oerjan> that's from running unlambda on just Hello.unl to running it on 8 interps + Hello.unl
04:36:33 <alise> mine starts with one interpreter
04:36:35 <alise> up to 20
04:36:36 <alise> give it a go
04:36:50 <alise> pastebin the results... or just put them here, and i'll calculate the eigenratio approximations
04:37:16 <oerjan> 0.00 all over :D
04:37:49 <alise> what; then how does your 8 stack result in that?
04:37:56 <alise> it can't be
04:38:04 <fax> yo
04:38:13 <alise> oerjan: up it to 100??
04:38:15 <oerjan> probably you have some bug
04:38:33 <oerjan> alise: nonsense, it went far too fast
04:38:43 <alise> yes
04:38:45 <alise> ec
04:38:45 <alise> sec
04:39:07 <alise> oh
04:39:11 <alise> the results of time are being piped to unlambda
04:39:12 <alise> heh
04:39:36 <fax> alise http://www.paultaylor.eu/~pt/prafm/html/c8.html
04:39:45 <alise> oerjan:
04:39:49 <oerjan> oh right only the builtin takes a whole pipeline
04:39:49 <alise> for i in $(seq 1 20); do cat $(seq 1 $n | awk '{print "interpreter.unl"}') unlambda-mirror/CUAN/Hello.unl | /usr/bin/time -f '%e' unlambda > /dev/null; done
04:40:09 <alise> fax: has uninterpreted latex :(
04:40:17 <oerjan> cat: 1: No such file or directory
04:40:35 <alise> ok er...
04:40:35 <alise> run this
04:40:41 <alise> seq 1 10 | awk '{print "hi"}'
04:40:58 <oerjan> 10 lines of hi
04:41:21 <alise> cat $(seq 1 5 | awk '{print "interpreter.unl"}') unlambda-mirror/CUAN/Hello.unl
04:41:25 <alise> you should see a bunch of your interp
04:41:26 <alise> then hellog
04:41:28 <alise> *hello
04:42:47 <alise> oerjan: ok try this:
04:42:55 <oerjan> that did strange things to the terminal. i think printing a program that contains an ascii table may not be a good idea :D
04:43:10 <oerjan> (nothing really bad though)
04:43:25 <alise> for i in $(seq 1 20); do
04:43:26 <alise> cat $(seq 1 $n | awk '{print "interpreter.unl"}') unlambda-mirror/CUAN/Hello.unl |
04:43:26 <alise> (time (unlambda >/dev/null)) 2>&1 | grep real;
04:43:26 <alise> done
04:43:37 <oerjan> argh
04:43:48 <alise> what
04:43:53 <oerjan> can i get that as one line?
04:43:56 <alise> sure
04:44:10 <alise> for i in $(seq 1 20); do cat $(seq 1 $n | awk '{print "interpreter.unl"}') unlambda-mirror/CUAN/Hello.unl | (time (unlambda >/dev/null)) 2>&1 | grep real; done
04:44:34 <alise> pikhq: If you're looking for a project... a http://www.esolangs.org/wiki/Redivider self-interpreter would be very easy, considering the BNF is in a form almost accepted by it already ;-)
04:44:59 <oerjan> now that gave a syntax error rather than continuing the command
04:45:03 <oerjan> *sigh*
04:45:13 <pikhq> alise: I've already got quite a project.
04:45:18 <alise> pikhq: meh :P
04:45:22 <oerjan> i'll fix it with vim
04:45:22 <alise> oerjan: how about just giving me shell access :P
04:45:23 <pikhq> If you'll note, I am hardcore learning-Japanese-ness.
04:45:45 <alise> oerjan: what error did I make?
04:45:50 <alise> oh i see
04:46:09 <alise> pikhq: Teach Redivider Japanese.
04:46:23 <pikhq> Bah.
04:46:43 <oerjan> alise: removing the alise> from your multiline version gave a program that printed a lot and messed up my terminal again
04:47:00 <alise> you know what
04:47:04 <alise> I'm just going to write all the commands out for you
04:47:32 <alise> oh i know
04:47:34 <alise> it's because it says $n
04:47:35 <alise> not $i
04:47:37 <alise> look i'll fix it :P
04:48:57 <oerjan> alise: i changed $n to $i, now it printed even more junk
04:48:57 <alise> oerjan: http://pastie.org/933673.txt?key=pzvxvuz0ddpzg15rgokma
04:49:02 <alise> save this as times.sh
04:49:03 <alise> then do
04:49:05 <alise> chmod +x times.sh
04:49:12 <alise> oh wait that won't work
04:49:12 <alise> sec
04:49:50 <alise> http://pastie.org/933674.txt?key=j0smhs7f2sgaszh9btlmwg
04:49:52 <alise> run this shell script.
04:50:00 <alise> it will print a bunch of lines starting "real some time"
04:50:59 <fax> what should I do right now?
04:51:08 <oerjan> ok more reasonable
04:51:27 <oerjan> except the actual numbers, they decreased at some steps :D
04:52:01 <alise> oerjan: well you said the ratio would be ~1, so...
04:52:18 <alise> sed 's/real/user/' it and maybe you will get better results
04:52:24 <alise> pastebin the timings, anyway
04:52:26 <alise> fax: dance
04:52:36 <oerjan> 0m0.049s 0m1.150s 0m1.117s 0m1.260s 0m1.204s 0m1.113s 0m1.140s 0m1.164s 0m1.120s 0m1.115s 0m1.152s 0m1.127s 0m1.105s 0m1.125s 0m1.110s 0m1.113s 0m1.118s 0m1.106s 0m1.114s 0m1.128s
04:53:17 <alise> those are the user ones?
04:53:21 <oerjan> no real
04:53:23 <alise> ok
04:53:30 <alise> i wish we could have more precision...
04:53:32 * alise calculates eigenratios
04:54:50 <oerjan> 0m0.047s 0m1.107s 0m1.107s 0m1.115s 0m1.119s 0m1.140s 0m1.142s 0m1.147s 0m1.119s 0m1.144s 0m1.102s 0m1.096s 0m1.103s 0m1.101s 0m1.111s 0m1.101s 0m1.114s 0m1.114s 0m1.095s 0m1.105s
04:54:54 <oerjan> (user)
04:55:16 <alise> do those better reflect what you saw?
04:55:35 <alise> http://pastie.org/933678.txt?key=q00ia70tvjxrvxsolqe7gq the eigenratios for the real times; you are right, it is very close to 1
04:55:50 <alise> I'd look for an algebraic expression approximating it but that expression would be "1"
04:55:50 <oerjan> um they are all rather similar, both real and user are a bit > 1 s
04:55:56 <alise> apart from the first term, what's up with that.
04:56:42 <alise> for the user ones, two terms are actually 1.0
04:56:46 <alise> (eigenratios)
04:56:47 <oerjan> it never runs the interpreter.unl from eta expanded version
04:57:00 <alise> well the first one has some overhead
04:57:03 <alise> and that's one interpreter.unl vs two
04:57:23 <oerjan> but the first interpreter.unl is run directly by the C interp
04:57:34 <zzo38> There are no GENUINE solutions to "Calculator" problem on Anarchy Golf, how short can anyone write genuine one in different program language? (Put "(genuine)" after your name if you want to tell the difference)
04:57:37 <oerjan> the second is parsed and eta expanded
04:58:03 <alise> right
04:58:23 <oerjan> still, very little happens from the second on...
04:58:28 <alise> zzo38: oh you mean http://golf.shinh.org/p.rb?Calculator?
04:58:30 <alise> that is my problem!
04:58:36 <oerjan> *after the second one
04:58:46 <alise> /can/ you write a genuine solution?
04:58:50 <fax> I have never been able to solve a single one of these golfs
04:58:51 <alise> you used to be able to modify your own source file iirc
04:58:59 <alise> which is how I intended people to do it
04:59:12 <alise> zzo38: you could try doing that
04:59:34 <alise> i forget what your file ends up being named, but
04:59:57 <zzo38> Yes, I believe you still can modify your own source file. That's how I solved "Regexpr Next Input"
05:00:18 <alise> basically you'd make the program be "open own file; append the input and also append 0 if it's *; print "
05:00:22 <alise> where print would print nothing
05:00:24 <alise> then it'd turn into
05:00:25 <alise> print 50
05:00:26 <alise> oh wait
05:00:30 <alise> and also append /1/ if it's *
05:00:31 <alise> then it'd be
05:00:32 <alise> print
05:00:35 <alise> print 50
05:00:40 <alise> oh wait it has to output 50 at the start...
05:00:40 <alise> meh
05:01:51 <zzo38> It is not completely true that nobody has written a genuine solution to "Calculator" problem: I have done it.
05:02:32 <zzo38> The source file is always called "test." and the extension for the type, and for most languages is the only file in the current directory.
05:03:01 <oerjan> alise: one annoying thing about those timings is that the overhead of the first two interps is clearly swamping out everything else, so it is hard to say if the rest is even growing. hm...
05:03:24 <alise> oerjan: i think it is not growing, as it sometimes goes down
05:03:38 <alise> /but/ I am not sure whether your eigenratio is ~23.5 or 1
05:03:40 <zzo38> Although my genuine solution for "Calculator" does not modify its own source file
05:03:55 <alise> I guess it is 1; email Clive Gifford with your findings
05:04:09 <alise> zzo38: oh, that works
05:04:17 <oerjan> alise: well that just means it's even more swamped.
05:04:34 <oerjan> alise: i'll do something else first
05:04:43 <alise> clive.gifford@gmail.com
05:04:56 <alise> FUCK IT'S 5AM WHY!
05:04:56 <oerjan> actually is that site still alive?
05:05:05 <alise> well last post 2007 but the man is still alive presumably
05:05:14 <alise> I want to stay awake, I'm not tired... but now it'll be really late when I wake up
05:05:31 <pikhq> alise: ACCEPT IT
05:05:39 <pikhq> SLEEP IS OVERRATED
05:05:41 <fax> it says 4 am on my clock
05:05:46 <alise> fax: ??
05:05:49 <alise> is your clock correct?
05:05:52 <oerjan> 6AM MWAHAHAHA
05:06:00 <alise> 5:05am Sunday (BST) - Time in United Kingdom
05:06:08 <alise> fax: adjust your clocks... belatedly
05:06:24 <oerjan> fax is an icelandic, clearly
05:06:45 <zzo38> >>a;<<x>>a;expr `<a`||head -1 a
05:09:25 <alise> oerjan: he's uk :P
05:10:04 <pikhq> alise: Pity you guys decided to split the time zones right down Greenwich. j/k
05:10:22 <zzo38> "Check for brainwave activity" is my problem.
05:10:43 <zzo38> And now I know who made "Calculator" problem, too.
05:12:13 <alise> http://golf.shinh.org/p.rb?RPN+calculator+FIXED+NO+REALLY is also mine though it's broken
05:12:37 <alise> http://golf.shinh.org/p.rb?Encoder+decoder is also mine
05:12:42 <alise> I like that one
05:14:07 <alise> http://golf.shinh.org/reveal.rb?Encoder+decoder/*yuko*_1245746372&bas nice BASIC
05:14:49 <alise> it occurs to me that pascal is a slight extension of what happens when you apply the transformation "remove sigils; replace places where you'd want to use GOTO with blocks" to BASIC.
05:15:11 <alise> zzo38: This is also mine: http://golf.shinh.org/p.rb?Print+out+a+lot+_56K+BEWARE_
05:15:17 <alise> Most problems with that were with interpreters timing out!
05:15:55 <alise> I see you were the runner up
05:17:07 <alise> zzo38: I think Brainfuck's mine too; almost certainly. Yes, it was not really FIXED...
05:17:41 <zzo38> I know; I tried and it is not really FIXED
05:18:00 <alise> yeah
05:18:07 <alise> http://golf.shinh.org/p.rb?Walk+the+line This is mine; I like this one a lot.
05:19:15 <zzo38> I like this one too (although I have not submitted a solution)
05:19:27 <alise> I think anarchy golf shouldn't allow any cheating entries at all.
05:19:28 <alise> It is just boring now.
05:20:56 <zzo38> I think it should still allow cheating entries. But with not endless, so that you can check afterward which are cheating entries
05:21:23 <zzo38> This is one reason why I don't create endless problems
05:21:39 <alise> Well, okay, but they should be discouraged. Hardly anybody submits legit entries any more.
05:23:13 <zzo38> alise: Yes. You are right about that. If you do submit cheating entries I like to put "(cheat)" or something else after my name, some other people do too.
05:23:34 <zzo38> Sometimes when there are many cheating entries, I like to put "(genuine)" afterward to indicate genuine entries.
05:23:45 <alise> There aren't any good golfing languages :( Golf and FlogScript both are too verbose.
05:25:38 <alise> I wonder if we could get anywhere by having a language with aggluntive ops.
05:26:05 <zzo38> What does "aggluntive ops" means?
05:26:07 <alise> Say, if d is double and h is halve, hd and dh would both be nop ops.
05:26:22 <alise> Basically, for operations a and b (that take arguments), ab = composition of a and b.
05:26:29 <alise> Not quite a stack language, because they're operations and after combining take operands.
05:26:35 <alise> If +2 is add two and *2 is double, +2*2 is either double, then add two;
05:26:38 <alise> or add two, then double
05:26:43 <alise> (depending on language; I'd make it add two then double)
05:26:50 <alise> +2*2-2 would be add two, double, take away two.
05:26:51 <alise> So
05:27:17 <alise> 3 +2*2-2 = ((3+2)*2)-2
05:27:24 <alise> 3 +2* 4 = (3+2) * 4
05:27:31 <alise> But this would extend to non-arithmetic too.
05:27:51 <zzo38> Yes, I do understand
05:27:59 <alise> So consider L"abc\ndef" = ["abc","def"], and consider L'["abc","def"]="abc\ndef"
05:28:05 <alise> And consider R[a,b,c]=[c,b,a].
05:28:13 <alise> Then LRL' reverses lines of a string.
05:28:18 <alise> Well, it reverses the order of lines, rather.
05:28:32 <alise> If we have C which is like L but for characters, then CRC' "abcdef" = "fedcba"
05:29:33 <alise> Also, we could have the return ranges of operations depend on the operations you combine them with.
05:30:25 <alise> Consider @ = random number; consider a ? b being "if a then b", where a is a boolean (0 or 1)
05:30:29 <alise> actually
05:30:36 <alise> Consider @ = random number; consider a ? b : c being "if a then b else c", where a is a boolean (0 or 1)
05:30:54 <alise> Then @?"yes":"no" is either yes or no, but @+3 is 3 to (some default random value + 3)
05:31:36 <alise> And consider n@ = random number from [0,n).
05:31:54 <alise> Then @@ would be a random number from [0,n) where n is a random number from [0,rand_max).
05:32:00 <zzo38> Probably a very way is binary code-golf with many commands (some of which might be more than 1 byte long, but mostly 1 byte), including many things from GolfScript, FlogScript, dc, and even things like many shell commands; you could have some commands implied in some cases; and various other things; and interpreter can be written in C (optimize for speed) for faster program.
05:33:07 <alise> L(|@?R)L' ;; this would randomly reverse each line's characters or not, then spit out the result
05:33:20 <alise> (if your progam results in an operator, it's fed the input stream)
05:34:02 <zzo38> I like that idea, and perhaps you can post on esolang wiki, even.
05:34:07 <alise> Yes, I plan to.
05:34:17 <alise> I wonder if "alphabetical" is a useful predicate. I think yes.
05:34:18 <alise> oh, I know.
05:34:28 <alise> We can just have an alphabet, plus "in" operators and "index"
05:34:30 <alise> Then rot13 is
05:34:45 <alise> (given in = < (operator overloading, woo!), and index = #)
05:34:56 <alise> (and given A = alphabet)
05:35:48 <alise> C<x;x<A?A[x#A-13]>C'
05:35:53 <alise> wait, no
05:36:03 <alise> C{x;x<A?A[x#A-13]}C'
05:36:13 <alise> wait I can just have
05:36:13 <alise> C{<A?A[#A-13]}C'
05:36:18 <alise> ^ This rot13's every alphabetical character
05:36:25 <alise> Can you tell how it works?
05:37:24 <alise> Basically, we deconstruct into characters, then map a function over.
05:37:26 <zzo38> Yes, I think so
05:37:32 <alise> <A is x<A, i.e. x in alphabet, because if we have a missing operand, the function variable is substituted
05:37:38 <alise> ? is our conditional, so if x is in the alphabet, we do
05:38:08 <alise> A[...] this indexes into the alphabet, so A[0]="a",A[25]="z"
05:38:17 <alise> #A - this is x#A, i.e. position of x in A
05:38:22 <alise> -13 - take away 13
05:38:32 <alise> #A-13 is always unambiguous because we know that arithmetic cannot apply to arrays
05:38:38 <alise> hmm
05:38:42 <alise> but how can A be both lower and uppercase?
05:38:56 <alise> meh
05:40:21 <oerjan> alise: news just in, there's a bug in my unlambda interpreter chaining that causes it to abort in the middle of the second iteration. no wonder it was not getting slower :D
05:40:33 <alise> *g*
05:40:57 <oerjan> it's probably the NUL bug i already really should know about
05:41:45 <alise> zzo38: what do you think the simplest esolang is
05:41:46 <alise> BCT?
05:41:49 <oerjan> duh i already have an interpreter.unl2 file fixed for just that very purpose...
05:42:14 <zzo38> alise: I'm not really sure. I suppose it depends in what way of simplicity?
05:42:32 <oerjan> oh actually it's EOF = -1 bug (in the C interp btw)
05:42:52 <alise> zzo38: Simplest semantics; where simple is defined by whatever you most prefer. Imperative semantics, maybe, or mathematical function semantics, or whatever.
05:43:18 <zzo38> Iota and Jot are considered simple
05:44:06 <zzo38> Although there are others
05:44:06 <alise> zzo38: iota is not even one rewrite rule, though...
05:44:15 <alise> you need to have unapplied lambdas S and K
05:44:22 <oerjan> alise: ah _now_ the numbers look more reasonable
05:44:25 <alise> so it's not just one simple rewrite rule
05:44:30 <alise> oerjan: goody, show them
05:44:45 <oerjan> well it'll have to finish first (it's _that_ reasonable ;D)
05:45:18 <zzo38> alise: Yes, I did see that
05:45:38 <zzo38> BCT and some brainfuck minimalizations might be a bit
05:46:29 <oerjan> alise: now it is slowing approximately 1 sec per iteration
05:46:46 <alise> well, gimme the numers :)
05:46:47 <oerjan> that still gives ratio 1 in the limit, just not as quickly
05:46:49 <alise> *numbers
05:46:55 <oerjan> one iter left or so
05:48:42 <oerjan> 0m0.027s 0m1.226s 0m2.526s 0m3.656s 0m4.855s 0m6.287s 0m7.282s 0m8.596s 0m10.189s 0m11.309s 0m12.239s 0m13.287s 0m14.976s 0m16.016s 0m17.330s 0m18.475s 0m19.524s 0m21.483s 0m22.508s 0m24.279s
05:48:46 <oerjan> (user)
05:48:54 -!- augur has joined.
05:49:13 <alise> real is better :|
05:50:03 <oerjan> being calculated
05:50:05 <alise> oerjan: mind you, it's still basically 1
05:50:09 <oerjan> yes
05:50:11 <alise> first is 45.407407407407405
05:50:14 <alise> second 2.060358890701468
05:50:21 <alise> then it actually starts /decreasing/
05:50:26 <alise> before stabilising, of a sort
05:50:39 <alise> please, tell the eigenratio guy; you'll crush his dreams
05:50:52 <oerjan> basically, the _difference_ between consecutive iters is approximately constant
05:51:28 <alise> that is the eigenratio
05:51:40 <oerjan> no the ratio is the ratio
05:51:45 <alise> oh right
05:51:47 <alise> well I did division
05:51:56 <alise> Ei(n) = Ti(n)/Ti(n-1)
05:52:09 <alise> which provides an approximation for E = lim(n->inf) Ei(n)
05:53:00 <alise> indeed all terms after the second round to 1
05:53:06 <alise> not even one >=1.5
05:54:20 <oerjan> 0m0.031s 0m1.247s 0m2.451s 0m3.769s 0m5.393s 0m6.052s 0m7.609s 0m8.776s 0m9.804s 0m10.976s 0m12.203s 0m13.869s 0m14.665s 0m15.886s 0m16.971s 0m18.413s 0m19.361s 0m22.003s 0m21.855s 0m23.977s
05:54:24 <oerjan> (real)
05:54:30 -!- zzo38 has quit (Quit: The poor mimic the blind.).
05:56:00 <alise> oh you work it out
05:56:05 <alise> it's just dividing each term by its previous
05:57:09 -!- EgoBot has joined.
05:57:09 -!- HackEgo has joined.
05:58:02 <fax> a lease
05:58:06 <alise> I find myself wanting a language with lots of tuples.
05:58:16 <fax> lisp
05:58:33 <oerjan> alise: toi! you'll have to build them from sets, though :D
05:58:53 <alise> oerjan: something a bit higher level :)
05:59:19 <alise> i just don't feel like haskell :(
05:59:32 <alise> maybe i should write a redivider self-interp
05:59:47 <fax> why is it called redivider
06:00:40 <alise> palindrome
06:00:42 <alise> and it DIVIDES input into bits to parse them
06:04:30 <alise> iiiiiiiiit's bright outside now
06:04:52 <fax> yeah
06:05:03 <fax> I'm staying up to fix my sleep pattern
06:05:29 <alise> ha... i have to be up early on monday
06:05:36 <alise> and i want to get a lot of awake time on sunday
06:05:44 <alise> but i am not tired enough to sleep
06:05:45 <alise> what should I do?
06:05:45 <fax> I need to be up early on truesday
06:06:17 <fax> I'm reading a cool category theory pdf
06:06:53 <alise> dammit why the fuck do i have to go back on monday...
06:09:03 <alise> and why do i have the urge to write a new interpreter with which to write this interpreter in
06:12:56 * alise wonders how on earth the two syntaxes in http://www.esolangs.org/wiki/Redivider relate
06:13:57 <alise> oh the first is a lexer
06:14:49 <fax> I don't get natural transforms
06:16:43 <alise> hmm
06:16:49 <alise> there's no reason redivider couldn't be compiled, is there?
06:22:09 <alise> first person to name a language to implement redivider in gets NOTHING
06:24:34 <fax> thue ?
06:26:04 <alise> no way :)
06:26:07 <alise> redivider is a complex language
06:30:21 <alise> <alise> How do I get Python to shut up about deprecated things in old code?
06:30:21 <alise> <_habnabit> alise, fix the deprecated things.
06:30:25 <alise> <_habnabit> Or, things that are using deprecated things.
06:30:26 <alise> <_habnabit> Or maybe even things that are using things that are using deprecated things.
06:30:27 <alise> "No, fuck you"
06:31:19 <fax> welcome to IRC
06:32:42 <alise> then they just ignored me after I told them it's not my code and I don't know how to fix it
06:33:22 <alise> for the record, "-W ignore::DeprecationWarning"
06:34:41 <alise> $ echo | ./redivider hello.rd
06:34:42 <alise> Hello, world!
06:34:42 <alise> yay.
06:41:49 <alise> fax: fuck it's almost 7am what do i do
06:42:02 <fax> stay
06:42:06 <alise> ok ok but when bed
06:43:11 * alise tries to write an enumerator of fibonaccis in redivider
06:43:25 <fax> im doing category theory
06:46:32 <fax> alise
06:46:32 <alise> fax: my program calculates fib(13)=233!
06:46:38 <fax> is that correct
06:46:41 <alise> it uses regular expressions... but not numbers
06:46:47 <alise> yes it is
06:46:52 <fax> ¡ : 0 -> A
06:46:56 -!- Rugxulo has joined.
06:46:57 <fax> Ring any bells???
06:47:09 <alise> !
06:47:11 <fax> that's False_rect
06:47:16 <alise> that's a morphism isn't it
06:47:25 <fax> but in category theory they call it "GNAB"
06:47:27 <alise> why is everything the same as every other thing!
06:47:29 <alise> lol gnab
06:47:29 <Rugxulo> BTW, alise, log shows that you asked a lot of Pascal questions
06:47:33 <alise> Rugxulo: Yes.
06:47:36 <fax> I am learning the language of the people
06:47:42 <alise> fax: here is my program: http://pastie.org/933749.txt?key=9tvwg1cbh3ydxdiqlq
06:47:46 <Rugxulo> I'm not really a Pascal programmer, but there are various versions
06:47:52 <alise> fax: I had to use fib(n+2) because subtraction is hard :)
06:47:54 <alise> Rugxulo: yeah
06:48:05 <Rugxulo> try GNU Pascal sometime, it supports a lot
06:48:15 <alise> nah I only like Pascal in its most minimal form
06:48:23 <Rugxulo> which is ... ?
06:48:32 <Rugxulo> there is no minimal
06:48:32 <alise> even pointers are suspect imo, if knuth can write TeX without using a single one then that's good enough for everyone :)
06:48:46 <Rugxulo> and pointers aren't single-length arrays, they're addresses
06:48:51 <alise> yes, I know
06:48:52 <alise> that was a joke
06:48:59 <alise> Rugxulo: ftp://ftp.tex.ac.uk/tex-archive/systems/knuth/dist/tex/tex.web
06:49:04 <alise> ignore the bits that look like english and tex
06:49:20 <Rugxulo> ISO 7185 (standard pascal), ISO 10206 (extended pascal), Turbo Pascal, Object Pascal, Delphi
06:49:26 <alise> it's written in 80s-era pascal, without records, or pointers, or more than a few call-by-reference arguments
06:49:29 <alise> or many other things
06:49:47 <alise> yet it's survived 'til today, is trivially translated to C compileable on modern systems, and is responsible for the vast majority of published mathematical and scientific papers
06:50:06 <alise> and it's still maintained, and widely recognised as one of the most reliable programs written... as well as the best typesetter
06:50:07 <Rugxulo> 80s-era doesn't mean anything ... it's either ISO 7185 or TP (or UCSD, unlikely) or VMS or ...
06:50:10 <alise> So who needs pointers?
06:50:21 <alise> @ Different \PASCAL s have slightly different conventions, and the present
06:50:22 <Rugxulo> everybody, you just don't necessarily need to be able to twiddle them
06:50:22 <alise> @!@:PASCAL H}{\ph@>
06:50:22 <alise> program expresses \TeX\ in terms of the \PASCAL\ that was
06:50:22 <alise> available to the author in 1982. Constructions that apply to
06:50:22 <alise> this particular compiler, which we shall call \ph, should help the
06:50:23 <alise> reader see how to make an appropriate interface for other systems
06:50:24 <pikhq> Rugxulo: Trivial subset.
06:50:24 <alise> if necessary. (\ph\ is Charles Hedrick's modification of a compiler
06:50:26 <alise> @^Hedrick, Charles Locke@>
06:50:30 <alise> for the DECsystem-10 that was originally developed at the University of
06:50:32 <alise> Hamburg; cf.\ {\sl SOFTWARE---Practice \AM\ Experience \bf6} (1976),
06:50:34 <alise> Rugxulo: TeX doesn't use a single pointer.
06:50:36 <alise> It has memory pools, sure; of static size.
06:51:00 <Rugxulo> ISO 7185 was from around 1982 or 1983, it was just a formal version of classic Pascal (Jensen and Wirth book, circa 1975)
06:51:59 <Rugxulo> "standard Pascal" didn't officially dictate how to use files, so a lot of stuff was implementation-defined
06:52:42 <Rugxulo> there was no modularization (see Modula-2 or extended Pascal) or units (TP, Delphi)
06:52:51 -!- augur has quit (Ping timeout: 265 seconds).
06:53:39 <Rugxulo> the biggest proponent of "standard" (classic) Pascal these days is Scott Moore (of IP Pascal fame): http://www.standardpascal.org/
06:53:43 <Rugxulo> oh, and before I forget
06:53:49 <Rugxulo> you wanted to know the most limited Pascal
06:54:07 <Rugxulo> no, definitely not PL/I, but PL/0 (from _Algorithms and Data Structures_)
06:54:44 <alise> right i think that is what i meant
06:54:58 <Rugxulo> Scott Moore even has source to the original CDC 6000 Pascal compiler (well, a later revision from '80s, anyways)
06:55:31 <pikhq> Strictly speaking, what alise wants is the bit of PASCAL that WEB uses. Whatever that is.
06:55:49 <Rugxulo> actually, I read somewhere that Cowlishaw meant Rexx to be a easier-to-learn subset of PL/I
06:56:01 <Rugxulo> 1982 means ISO 7185 (standard)
06:56:14 <alise> pikhq: Well, cleaned up a bit.
06:56:17 <Rugxulo> almost definitely, esp. since that was before Turbo Pascal hit
06:56:28 <Rugxulo> TP isn't standard compliant, nor is Delphi
06:56:30 <oerjan> alise: ok i actually mailed cliff gifford
06:56:36 <fax> alise alise alise alise are you there
06:56:38 <fax> this is important
06:56:39 <alise> oerjan: sweet. he'll be devastated
06:56:41 <alise> fax: quite yesly
06:56:47 <fax> Let F be an endofunctor
06:56:55 <alise> okay
06:56:57 <alise> letted
06:57:03 <alise> letted
06:57:06 <fax> An F-algebra is a pair <A,a> with A an object and a : FA --> A.
06:57:11 <Rugxulo> "a standard PASCAL version of TeX" ... probably literally standard Pascal he meant here
06:57:21 <alise> fax: okay
06:57:23 <fax> ?????? dependent pair ??????
06:57:26 <Rugxulo> BTW, I wrote a Befunge-93 interpreter in Rexx yesterday ;-)
06:57:31 <alise> ... you're right
06:57:39 <alise> fax: what the fuck, we've just discovered that type theory is category theory.
06:57:45 <fax> :D
06:57:55 <alise> why does oerjan's theory of synchronicity continually present us with new evidence?
06:57:59 <alise> WHY IS EVERYTHING EVERYTHING ELSE
06:58:04 <alise> WHY CAN'T SOME THINGS BE DEFINITELY NOT OTHER THINGS
06:58:13 <fax> maybe 1 = 0
06:58:18 <alise> TRIVIALISM
06:58:20 <fax> and we just don't know it yet
06:58:27 <oerjan> alise: curry-howard-_lambek_ correspondence?
06:59:03 <Rugxulo> "MESA" ... hmmm, rings a bell, must've inspired some famous language, but I can't remember which one
06:59:11 <alise> oerjan: that's an isomorphism to /one/ category, isn't it?
06:59:20 <Rugxulo> possibly Modula-2 since Wirth spent a sabbatical at Xerox
06:59:21 <alise> we're isomorphing type theory and the actual (meta?)theory of category theory
06:59:52 <oerjan> well, there is a category of categories, and stuff
07:00:25 <oerjan> and different type systems correspond to different logics, so why not to different categories.
07:00:52 <Rugxulo> seems Knuth uses (used?) "ph" compiler from 1976
07:01:01 <oerjan> i have little clue what i'm talking about on the category side, though.
07:01:07 <alise> Rugxulo: ph is 1980s extension of 1976 compiler i think
07:01:11 * Rugxulo seems to be talking to himself and also interrupting the other conversation, bah
07:01:15 <alise> also \ph expands to "PASCAL-h" or something in the typesetted version
07:01:25 <alise> oerjan: yes but consider
07:01:32 <alise> you're saying "oh it's isomorphic to /one category/"
07:01:39 <alise> but you're ignoring category theory itself -- which IS a theory
07:01:43 <alise> we CAN reason about whole categories as objects
07:01:47 <alise> and it turns out this is ~~ type theory!
07:02:03 <alise> fax: gnab is a hilarious name. and is the perfect symbol
07:02:05 <oerjan> alise: and then i'm saying there is a category of _all_ categories (sometimes with a smallness requirement, but still)
07:02:14 <alise> oerjan: yes, but that's still /within/ another theory
07:02:21 <alise> (category theory itself at the "top level")
07:02:49 <Rugxulo> I do think that it sounds like Oberon (which excludes some of the rarer features of Pascal), but that isn't 100% easy to convert to (not that I can code in it either)
07:03:18 <fax> you can define intuitionistic type theory naturally inside category theory
07:03:36 <fax> so maybe we're doing this all backwards?
07:03:50 <Rugxulo> long story short: "standard" Pascal is pretty much ignored in favor of Delphi-ish versions (which let you do anything you want with pointers), extended Pascal is rare, and even ones that partially implement them aren't always fully compliant
07:04:19 <Rugxulo> FPC does not pretend to (want to) support any Pascal besides Borland
07:04:27 <alise> fax: seems so
07:04:44 <alise> Rugxulo: yeah why do people hate purity
07:04:53 <Rugxulo> GNU Pascal is better but tied to specific GCC versions
07:05:04 <Rugxulo> and not included in GCC source tree itself, only as patches
07:05:08 <alise> http://pastie.org/933758.txt?key=lymvolzrld6dwjkryqmtxq
07:05:10 <alise> this calculates 4! = 24
07:06:10 <Rugxulo> "gubed", heh, now I get it ;-)
07:06:34 <Rugxulo> thanks to my Befunge training
07:07:14 <alise> anyone here sufficiently interested in redivider? I'd like to write a binary numbers "library" in it
07:07:18 <alise> since unary is... slow
07:08:19 <Rugxulo> alise, okay it's not really ISO 7185, it claims to only use Jensen and Wirth with some extensions (e.g. default case, which wasn't officially added until extended circa 1988 or so)
07:08:33 <alise> Rugxulo: you mean TeX?
07:08:39 <alise> it also uses dynamic files of some sort
07:09:14 <alise> hmm
07:09:17 <Rugxulo> according to Scott Moore, Wirth always intended the header file names to be mapped to real files, but his CDC machine was so quirky, and they didn't need ten gazillion lines / files back then, so ...
07:09:19 <alise> binary in redivider should be the wrong way around
07:09:28 <alise> as in 001 = 4
07:10:20 -!- augur has joined.
07:10:30 <alise> hmm
07:10:34 <alise> so 101 -> 011
07:10:42 <alise> if the first digit is 0, obviously we flip it to 1 then return the rest untouched
07:10:45 <alise> but if it's 1...
07:10:52 <alise> then obviously it must become 0
07:11:13 <alise> and the rest is incremented
07:11:48 <Rugxulo> hmmm, he's using a few "extensions" that may or may not clash with reserved keywords of most Pascals
07:12:01 <alise> Rugxulo: interestingly enough nobody actually ever compiles the pascal
07:12:05 <alise> Rugxulo: they compile it to C (!)
07:12:11 <alise> but, not a full-blown compiler
07:12:14 <alise> just a simple "translator"
07:12:15 <Rugxulo> GNU --extended-pascal would probably work
07:12:21 <alise> and this stuff is used by tons of people every day...
07:12:35 <Rugxulo> it supports "continue", "halt" (exit), "goto non_numeric_label", etc.
07:12:50 <alise> succ:
07:12:50 <alise> { /0/; "1" + /.*/ }
07:12:50 <alise> | { /1/; "0" + succ[/.*/] }.
07:12:51 <alise> it works!!
07:12:58 <alise> best successor algorithm ever
07:13:21 <Rugxulo> it's just that Extended Pascal is extremely rare, only Prospero fully implemented it, I think, although GNU Pascal mostly supports it
07:13:42 <pikhq> alise: Nice binary successor.
07:13:49 <alise> pikhq: reverse binary!
07:13:53 <alise> you feed it binary digits in /reverse/ order
07:14:01 <pikhq> That's just a form of endianness.
07:14:04 <pikhq> Still binary.
07:14:04 <alise> yep
07:14:05 <pikhq> :)
07:14:06 <alise> but funny
07:14:15 <alise> I like how it actually shows how the carrying works
07:14:29 <pikhq> Yeah, that's fairly nice.
07:14:55 <pikhq> You could quite feasibly extend that to do reverse decimal arithmetic. :P
07:14:57 <Rugxulo> hmmm, assumes ASCII
07:15:18 <Rugxulo> I think Wirth's CDC used EBCDIC, as do many old IBM machines, but it's mostly ignored
07:15:25 <alise> Rugxulo: it doesn't assume ascii
07:15:31 <alise> it translates inputted/outputted text
07:15:40 <alise> it just uses ascii internally... and also its own charset for some things
07:15:43 <alise> pikhq: yeah but why bother?
07:15:44 <pikhq> alise: Pascal, not your thing. :)
07:15:51 <alise> I'm talking about pascal
07:15:58 <pikhq> Ah. Well then.
07:16:10 <pikhq> UTF-EBCDIC is a funny UTF.
07:16:50 <alise> pikhq: If I was writing this for efficiency, I would do base 256.
07:16:58 <alise> Because that's the max I can store in a character.
07:17:06 <Rugxulo> not sure what the CDC supported, but perhaps its keyboard was only 64 keys, can't remember
07:17:10 <oerjan> !slashes /1|/|0//0|/1//|/1/ 100111|
07:17:15 <pikhq> alise: Yeah, that would be the best.
07:17:16 <EgoBot> 101000
07:17:26 * oerjan whistles innocently
07:17:29 <Rugxulo> (you don't have to type keywords in uppercase in Pascal, only Modula-[23] and Oberon-* require that)
07:17:31 <alise> pikhq: But I'd have to hardcode every one.
07:17:43 <alise> oerjan: Wake me up when it does infix->postfix :)
07:17:43 <pikhq> Yes, you'd be writing a byte-based lookup table.
07:17:56 <alise> pred:
07:17:56 <alise> { /0/; "0" }
07:17:56 <alise> | { /1/; "0" + /.*/ }.
07:17:58 <alise> Just realised I can omit the base case
07:18:02 <alise> then it /fails/ if you pass it 0!
07:18:03 <alise> awesome
07:18:42 * alise wonders why
07:18:44 <alise> reverse: { x: /./; reverse[/.*/] + x }.
07:18:45 <alise> fails
07:18:45 <alise> oh
07:18:47 <alise> no "" case :P
07:19:32 <alise> eh? my succ doesn't work any more
07:19:42 <oerjan> now it succs instead
07:19:56 <alise> oh
07:19:58 <alise> no empty string case
07:20:41 <alise> $ echo | ./redivider binary.rd
07:20:41 <alise> 100000000000000
07:20:43 <alise> Hooray!
07:20:51 <alise> Now to do addition and multiplication.. and then sleep it's 720am
07:21:13 <alise> the problem is it has to be called ugly
07:21:15 <alise> add(m)[n]
07:21:20 <alise> because add(m,n) doesn't work so well
07:22:43 <Rugxulo> Extended Pascal also officially supports variable-length arrays, strings, readstr and writestr, etc.
07:23:16 <alise> actually wait, I need to scan both...
07:23:37 <Rugxulo> "packed" (which you mentioned) was apparently to save precious RAM, also because the CDC had some odd word size
07:24:01 <Rugxulo> BTW, in the logs, somebody mentioned Algol
07:24:24 <Rugxulo> mention it to fizzie, he showed me mooz's Befunge-93 interpreter in Algol-60 (check WayBack) !
07:24:55 <alise> sweet
07:25:05 <alise> anyone want to figure out how to write binary addition in redivider?
07:25:43 <Rugxulo> last:=first; {cf.\ Matthew 19\thinspace:\thinspace30}
07:25:43 <Rugxulo>
07:25:47 <Rugxulo> Biblical reference??
07:26:12 <oerjan> the last shall be the first?
07:26:51 <oerjan> "But many that are first shall be last; and the last shall be first."
07:28:12 <fax> yo erjan
07:29:07 <alise> i can't figure out thisx redivider error SO TIRED
07:29:27 <Rugxulo> "Since \PASCAL\ does not have a well-developed string
07:29:27 <Rugxulo> mechanism" ... it has none! (until "extended")
07:29:41 <alise> packed array [1..255] of char
07:29:56 <fax> redevered
07:30:01 <alise> MizardX: ping
07:30:08 <alise> gonna ask him something bout the spec...
07:30:20 <MizardX> ?
07:30:40 <Rugxulo> For example, here is
07:30:40 <Rugxulo> a simple macro that computes the length of a string." ... again, extended Pascal to the rescue
07:30:45 <Rugxulo> built-in
07:30:55 <alise> Rugxulo: not portable enough for knuth
07:30:58 <alise> MizardX: you remember redivider?
07:30:59 <Rugxulo> alise, I mean a real "string" type, keyword
07:31:08 <Rugxulo> alise, I agree, but it does exist!
07:31:11 <alise> MizardX: why does p[q] hard fail if p soft fails?
07:31:16 <alise> add(m,n):
07:31:16 <alise> { /0$/[n]; m }
07:31:16 <alise> | { succ[add(m, pred[n])] }.
07:31:22 <alise> I can't write this because /0$/[n] hard fails
07:31:55 <MizardX> alise: It's been too long. Could you give a link to the spec?
07:32:02 <alise> yeah, http://www.esolangs.org/wiki/Redivider
07:32:17 <alise> i'm just getting re-into it: wrote fibonacci and factorial; now writing a "library" for reverse binary numbers
07:32:26 <alise> succ is really pretty:
07:32:27 <alise> succ:
07:32:27 <alise> { /$/; "1" }
07:32:27 <alise> | { /0/; "1" + /.*/ }
07:32:27 <alise> | { /1/; "0" + succ[/.*/] }.
07:32:31 <alise> but addition is, alas, not so
07:32:36 <alise> for one, i can't see how to make it work
07:33:11 * Rugxulo does have half a mind to (try to) write a Befunge-93 interpreter in Pascal
07:33:37 <Rugxulo> already halfway started, but I was too dumb to finish correctly
07:34:25 <oerjan> it's the one program that doesn't get hurt by pascal's fixed-length strings :D
07:34:39 <Rugxulo> I guess you know Ada is Pascal-ish, included in GCC by default now
07:34:53 <alise> add(m,n):
07:34:54 <alise> { /0/[m]; /0/[n]; "0" + add(m,n) }
07:34:54 <alise> | { /0/[n]; /1/[n]; "1" + add(m,n) }
07:34:54 <alise> | { /1/[m]; /0/[n]; "1" + add(m,n) }
07:34:54 <alise> | { /1/[m]; /1/[n]; "0" + add(m,succ[n]) }.
07:34:59 <alise> if this worked it would be a nice binary adder
07:35:09 <Rugxulo> Ada83 was 7-bit only (from what I hear), hence why he probably couldn't consider it back then (plus expensive compilers)
07:35:11 <alise> Rugxulo: Ada is way more anal-retentive than pascal
07:35:34 <alise> He's Knuth, man; he programs correct MIX without fail.
07:35:39 <alise> And he /made MIX up/!
07:36:43 <pikhq> Just as a rule, Knuth is the man.
07:36:59 <alise> MizardX: and is there any way to coerce hard failures to soft failures?
07:37:01 <alise> if not, what to do?
07:39:20 <alise> hey guys
07:39:26 <alise> I just came up with an argument for the predecessor of 0 being 1
07:40:10 <Rugxulo> didn't the Romans lack understanding of 0? wasn't it a foreign concept?
07:40:19 <alise> something like that
07:40:20 <alise> anywa
07:40:21 <alise> y
07:40:35 <alise> consider reverse binary strings i.e. 4 = 001
07:40:47 <alise> the predecessor of 1, followed by some things, is 0, followed by some things; this is the no-carry case
07:40:50 <fax> "reverse" :(
07:40:59 <alise> yeah yeah
07:41:06 <alise> the predecessor of 0, followed by some things, is 1, followed by the predecessor of some things.
07:41:21 <fax> you're right, that's the reason I'm sad
07:41:23 <Rugxulo> even Hebrew writes numbers left to right (but still pronounced right to left) ... could be wrong, but I think that's what I read
07:41:25 <alise> now
07:41:40 <alise> consider the number "0"
07:41:42 <fax> It makes sense for Hebrews to write that way
07:41:45 <fax> but not Englishes
07:41:49 <alise> the predecessor is "1" plus the predecessor of some things
07:41:53 <alise> some things = ""
07:41:59 <pikhq> "Zero" as an actual number is a rather recent concept.
07:42:04 <alise> obviously the predecessor of an empty number -- considered as a recursive base case -- is the empty number
07:42:08 <alise> so the predecessor of 0 is 1.
07:42:20 <alise> Q.E.D. :P
07:42:40 <pikhq> It shows pretty *heavily* in Chinese numerals.
07:43:14 <oerjan> alise: if you consider the most significant bit of a number to repeat infinitely often from there, then that follows logically
07:43:31 <oerjan> it's just the 2-adic integer representation
07:43:41 <alise> well the predecessor of 0000... would be 1111...
07:43:42 <pikhq> 零 is 0 in Chinese numerals. The next Chinese numeral of similar complexity is 億, 100,000,000...
07:43:44 <alise> which is infinity, zomg!
07:43:53 <oerjan> alise: no, it's -1
07:43:54 <fax> oh man I was reading about p-adics but... forgot it all
07:43:58 <alise> oerjan: howso
07:44:00 <fax> 0.999999999 = 1? LOL
07:44:06 <alise> an infinite number of ones?
07:44:11 <oerjan> alise: 2's complement with infinite no. of bits
07:44:19 <alise> who said 2s complement?
07:44:23 <alise> I never said 2s complement
07:44:26 <alise> pure positive binary, man
07:44:30 <alise> the predecessor of 0 is infinity.
07:44:41 <fax> I don't think 11111111... is infinity
07:44:48 <oerjan> alise: well 2's complement is really just 2-adics cut off at some bit length
07:44:49 <fax> that doesn't make sense to me, at least
07:44:58 <alise> fax: not 11...
07:45:01 <alise> ...1111111
07:45:05 <fax> 1+1+1+1+1+... = -1/2 is a better infinity
07:45:29 <alise> well it's (1 * 2^0) + (1 * 2^1) + ...
07:45:38 <alise> = 2^0 + 2^1 + 2^3 + ...
07:45:46 <fax> In a short period of less than a year, two distinguished physicists, A. Slavnov and F. Yndurain, gave seminars in Barcelona, about different subjects. It was remarkable that, in both presentations, at some point the speaker addressed the audience with these words: 'As everybody knows, 1 + 1 + 1 + · · · = −1⁄2'. Implying maybe: If you do not know this, it is no use to continue listening.[1]
07:46:38 <alise> = infinity
07:47:53 <Rugxulo> so what, didn't two dudes invent calculus? same as two dudes deciphered the Rosetta stone, same as ...
07:48:18 * oerjan didn't know that about the rosetta stone
07:49:28 <Rugxulo> "Some \PASCAL\ compilers do not implement non-local |goto| statements." ... not sure FPC does either
07:51:15 <Rugxulo> "@ Here the author of \TeX\ apologizes" ... "@^Knuth, Donald Ervin@>"
07:52:45 <Rugxulo> "help1("I'm broken. Please show this to someone who can fix can fix");
07:52:45 <Rugxulo> end
07:52:46 <Rugxulo> else begin print_err("I can't go on meeting you like this");
07:52:46 <Rugxulo> @.I can't go on...@>
07:52:48 <Rugxulo> help2("One of your faux pas seems to have wounded me deeply...")@/
07:52:52 <Rugxulo> ("in fact, I'm barely conscious. Please fix it and try again.");"
07:53:36 <alise> hmm... so if infinity=....11111
07:53:37 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:53:45 <alise> by my algorithm its predecessor is .....00000
07:53:50 <alise> so ... the predecessor of infinity.. is 0
07:54:41 <fax> infinity doesn't equal ...11111!!!
07:54:49 <fax> this is blasphemus
07:55:35 <oerjan> alise: successor you mean
07:55:35 <alise> .....1111 = (1*2^0)+(1*2^1)+...
07:55:46 <alise> = sum{n=0,inf} 2^n
07:55:48 <Rugxulo> "with enough 36-bit
07:55:48 <Rugxulo> words you might be able to have |mem_max| as large as 262142, which is
07:55:48 <Rugxulo> eight times as much memory as anybody had during the first four years of
07:55:48 <Rugxulo> \TeX's existence."
07:55:52 <alise> you figure out the riemann sum thing for that
07:55:55 <alise> and i'll accept that
07:56:07 <alise> oerjan: no, because the predecessor of 1something is 0something
07:56:09 <alise> oh wait
07:56:11 <alise> so the predecessor of infinity is
07:56:14 <alise> ....111110
07:56:24 <alise> which is 2^1 + 2^2 + ...
07:56:26 <alise> = infinity
07:56:29 <alise> xD
07:56:30 <fax> 1 + 2 + 4 + 8 + ... = -1
07:56:48 <alise> I DON'T BELIEVE YOU
07:56:52 <fax> ill proe it
07:57:43 <fax> 1 + 2 + 4 + 8 + ... = X so 1 + 2X = X <=> 1 + X = 0 <=> X = -1
07:58:17 <augur> fax
07:58:21 <alise> ... dayum you slick
07:58:22 <fax> hi fax
07:58:26 <augur> HAHA
07:58:29 <augur> x3
07:58:44 <alise> what's sum{n=0,inf} n^(3^n)
07:58:47 <augur> good job fax
07:58:48 <alise> EH EH
07:58:49 <alise> GOT YOU THERE
07:58:51 <augur> greeting yourself and all
07:59:19 <fax> alise, I cant' do finite integral of n^(3^n) :/
07:59:45 <fax> hey augur I am mathing
07:59:46 <fax> whats up
07:59:54 <augur> compling mathing
07:59:54 <augur> :o
07:59:59 <alise> it's 8am i haven't slept what's up
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:09 <fax> my clock says 6:59 am
08:00:38 <augur> 25 years and my life is still
08:00:43 <augur> trying to get up that great big hill
08:00:46 <augur> ooff hope
08:00:52 <augur> for whatever that means
08:01:01 <fax> .??? kate
08:01:02 <augur> oh, no, for a destination
08:01:03 <augur> right
08:01:23 <augur> fax knows what im singing
08:01:25 <fax> CHINA
08:01:25 <augur> shes a faggot
08:01:27 <alise> 0 + 1 + 512 + 7625597484987 = X so 1 + somethingX = X <=> ?
08:01:27 <fax> IN MY HANDS
08:01:37 <augur> shes sat in a group of faggots with a guiter and sang this song
08:01:39 <augur> dont deny it fax
08:01:48 <fax> I wish :x
08:02:02 <augur> :|
08:02:04 <augur> you never went to like
08:02:11 <augur> a glbtqq youth group?
08:02:17 <fax> no maybe I should
08:02:26 <augur> how old are you again?
08:02:29 <fax> 21
08:02:35 <augur> too old
08:02:38 <fax> ;(
08:02:43 <augur> you're in the young adults group
08:02:48 <alise> NEVER TOO OLD FOR PAEDOPHILIA
08:02:58 <augur> 8D
08:03:00 <augur> alise, you might like this song
08:03:00 <fax> lol
08:03:09 <augur> one of the lines is "and i try, oh my god do i try, in this institution"
08:03:10 <fax> implying that alise is a faggot
08:03:20 * alise cuts self
08:03:26 <augur> no, just in an institution
08:03:29 <augur> tomorrow, anyway.
08:03:37 * alise cuts self some more
08:03:41 * augur hugs alise
08:03:54 <alise> :P
08:03:57 <alise> man i am tired
08:04:00 <alise> 8am, haven't slept, should i sleep?
08:04:04 <alise> fuck i have no self control
08:04:07 <Rugxulo> duh, yes ;-)
08:04:08 <fax> alise no we need the finite integral of n^(3^n)
08:04:14 <alise> fax: do it then
08:04:22 <fax> alise, I don't even know if that is expresible in arithmetics...
08:04:34 <pikhq> alise: Dude, I have forgotten to eat before. I think your situation is not quite as bad.
08:04:34 <alise> plug it into your al-jabr thing :-D
08:04:47 <pikhq> At the very least you will *eventually* sleep.
08:04:49 <alise> pikhq: yeah but i hate being tired; also i want to be awake for a while um... today
08:04:51 <alise> not tired
08:04:52 <alise> before going back
08:04:53 <augur> ask alpha!
08:04:54 <alise> so. yeah
08:05:01 <fax> alise just go to bed early
08:05:04 <fax> tommorow
08:05:14 <fax> you'll sleep long and it will get you uppin the morning
08:05:17 <pikhq> (unless you try?)
08:05:53 <augur> http://www.wolframalpha.com/input/?i=integrate+x%5E%283%5Ex%29+dx
08:06:00 <alise> augur: finite integral.
08:06:01 <alise> fax: no, see, /that/ is not an option because i am /tired/ right now
08:06:06 <alise> and i want to be /awake/, for hours, today
08:06:08 <augur> wait what alise
08:06:27 <fax> http://www.wolframalpha.com/input/?i=integrate+floor%28x^%283^x%29%29+dx
08:06:55 <augur> finite integral? what?
08:07:00 <Rugxulo> alise, even taking a small nap (not long, though) will recharge you
08:07:05 <Rugxulo> set your alarm if you're that worried
08:07:13 <alise> fuck recharging; I have to sleep for hours or I fail
08:07:20 <augur> ditto
08:07:30 <augur> if i sleep for even a tiny bit when im really tired im fucked
08:07:32 <augur> just fucked
08:07:34 <augur> forget it man
08:07:49 <fax> recharging is a lie
08:08:04 <fax> the truth is that when you go to sleep you die
08:08:04 <alise> A LIE
08:08:07 <alise> lol
08:08:07 <augur> D:
08:08:10 <alise> FOREVER
08:08:14 <fax> and god rewrites the world to makes things set up correctly
08:08:17 <fax> then revives you
08:08:18 <augur> a little piece of me dies every day
08:08:23 <fax> and it can take a really long time sometimes
08:08:40 <fax> that's why if you try to sleep up a tiny bit when you've been up for a long time, he fucking stomps you
08:09:00 <alise> you have never existed before this moment. all your memories before this very instant have been planted in your head. the universe replaces itself with a random state every single planck time; this was a coincidence. one in billions. trillions. it will go now. you think you have read this whole line but you have actually just finished reading it. the memory of the rest of a line was, again, implanted by chaos. goodbye.
08:09:10 <fax> it's his way of asying: Look I have a LOT of shit to do, and you are fucking it up
08:10:03 <fax> hey
08:10:11 <fax> is there any SCI-FI set in 100 dimensions?
08:10:15 <alise> no
08:10:17 <Rugxulo> alise ... you were wrong:
08:10:18 <Rugxulo> var p:pointer; {the node currently under inspection}
08:10:18 <fax> or any bigger number of dimensions than 3D
08:10:19 <Rugxulo> @!q:pointer; {the node physically after node |p|}
08:10:19 <Rugxulo>
08:10:25 <alise> Rugxulo: aha look up the definition of pointer
08:10:27 <alise> it is not a pascal pointer
08:10:31 <augur> fax: 100 dimensional scifi?!
08:10:32 <augur> WAT
08:10:34 <alise> it is an integer index into a static array
08:10:34 <augur> :|
08:10:35 <fax> i am curious about peoples speculations on large numbers of dimensions
08:10:49 <pikhq> fax: Parts of Fine Structure.
08:10:49 <fax> none of the 4D sci-fi I have read has satisfied me
08:11:00 <pikhq> http://qntm.org/structure
08:11:01 <fax> pikhq oh damn - okay ty
08:11:03 <alise> pikhq: 100 dimensions?
08:11:14 <pikhq> alise: Significantly greater than 3.
08:11:19 <fax> great
08:11:20 <fax> :D
08:11:27 -!- FireFly has joined.
08:12:41 <pikhq> *Man* the intro to that makes more sense after you've read it once.
08:13:41 <fax> alise
08:13:43 <fax> you need to see this
08:13:52 <alise> fine structure?
08:13:54 <alise> i will read it sometime.
08:13:55 <fax> http://i.imgur.com/0eWnm.png
08:14:10 <fax> you know in type theory all data types are introduction/elimination
08:14:14 <pikhq> alise: You haven't read everything by Sam Hughes? D:
08:14:26 -!- augur has quit (Remote host closed the connection).
08:14:35 -!- augur has joined.
08:15:15 <alise> pikhq: Hey, I'm old school. I read the Ed stories.
08:15:20 <alise> fax: yes
08:17:03 <augur> 4urhaskell
08:17:03 <augur> > "sup dawg, we herd u liek Haskell so we put a recurshin in ur recurshin so you can " ++ cycle "recurse while you "
08:17:07 <alise> SO FUCKING TIRED
08:17:08 <alise> sfdlgjs
08:17:20 <alise> WHY DO I DO THIS TO MYSELF
08:17:25 <fax> do what
08:17:32 <alise> stay up like this
08:17:37 <alise> MizardX: ping
08:17:38 <alise> uorygl: ping
08:17:39 -!- oerjan has quit (Quit: Got to sleep, God wants to reboot).
08:17:40 <fax> I would call my version of haskell either:
08:17:45 <fax> Haskell' or Hasceline
08:17:54 <alise> haskell' is taken
08:17:54 <pikhq> alise: Those were awesome.
08:17:59 <fax> Hascaline
08:18:03 <MizardX> alise: Still looking at it, and trying to make it work...
08:18:07 <fax> alise: No it's not
08:18:07 <alise> pikhq: Would make a great movie.
08:18:09 <alise> MizardX: ah :P
08:18:13 <alise> fax: yes, Haskell Prime
08:18:23 <pikhq> alise: When I first got into Sam Hughes, after I had read a few random snippets I went through and read all the stuff on his site in chronological order.
08:18:27 <fax> alise, yeah that project collapsed from it's own weight
08:18:35 <alise> fax: uhh it got released
08:18:36 <alise> as haskell 2010
08:18:37 <pikhq> Well. All the stories.
08:18:44 <pikhq> The other stuff, I have read massive chunks of.
08:18:49 <fax> alise: ... that's called Haskell 2010 :P
08:19:05 <pikhq> fax: Yes, that's the first bit of results of the Haskell Prime process.
08:19:10 <pikhq> :)
08:19:26 <Rugxulo> Haskell++, Haskell 2.0, Haskell-0x, Haskeller, Haskellwilltravel
08:19:49 <alise> You are not alone. Nor are you rare, nor even unusual; you're so common as to be insignificant. You are small, weak, and stupid. Your lives are meaningless and shorter than an eyeblink. You have achieved nothing. On the universal scale you are nothing.
08:19:49 <alise> This much we share already.
08:19:49 <alise> Now let us share the rest.
08:19:58 <alise> ^ one of my favourite quotes; from the Ed stories
08:20:28 <fax> what does it mean "Now let us share the rest."?
08:20:38 <alise> it's a first contact message
08:21:26 <fax> category theory seems too good to be true
08:21:47 <alise> JUST LIKE LOVE.
08:22:05 -!- Rugxulo has quit (Quit: beyond).
08:22:06 <alise> MizardX: imo, the language should be changed so that this works:
08:22:08 <alise> add(m,n):
08:22:08 <alise> { /0/[m]; /0/[n]; "0" + add(m,n) }
08:22:08 <alise> | { /0/[n]; /1/[n]; "1" + add(m,n) }
08:22:08 <alise> | { /1/[m]; /0/[n]; "1" + add(m,n) }
08:22:08 <alise> | { /1/[m]; /1/[n]; "0" + add(m,succ[n]) }.
08:22:22 <alise> i.e., p[q] soft fails if p soft fails; and also, q is modified to be the new input string of p
08:22:31 <alise> I guess "q is modified" can't happen
08:22:32 <alise> :/
08:23:40 * alise yawns; so much
08:27:07 <fax> heh this is a new one
08:27:08 <fax> alise:
08:27:53 <fax> set: sigma/R, intros: [M]_R : sigma/R (for M:sigma), elimination: pick x from P in Q : rho (for P : sigma/R, Q(x):rho where x:sigma)
08:28:28 <fax> oh I think I was reading it wrong and it's less amusing than I'd thought
08:28:34 <alise> i don't get it
08:32:34 <alise> i am so tirred
08:32:43 <alise> fax: tell me more category theory correspondences
08:32:54 <fax> that's all I know so far
08:32:57 <alise> anything relating to Prop/proofs?
08:33:02 <fax> I'm finding out more as I go
08:33:14 <fax> well did you know that STLC corresponds to a CCC
08:33:20 <alise> yes
08:33:24 <alise> but anything relating to Prop/proofs?
08:33:42 <fax> not that i know of yet
08:34:08 <alise> any more fun related functions other than f-algebras and gnab?
08:34:27 <fax> alise, well
08:34:34 <MizardX> alise: http://pastebin.com/k99UVidS
08:34:44 <fax> Category theorists will often think of the ring R and the category R as two different representations of the same thing, so that a particularly perverse category theorist might define a ring as a preadditive category with exactly one object
08:35:05 <fax> remember what I was saying about proving x0 = 0 ==> 0x = 0 using oppposite category
08:35:06 <alise> MizardX: ouch.
08:35:08 <fax> that's how
08:35:12 <alise> add(m,n):
08:35:13 <alise> { /0/[m]; /0/[n]; "0" + add(m,n) }
08:35:13 <alise> | { /0/[n]; /1/[n]; "1" + add(m,n) }
08:35:13 <alise> | { /1/[m]; /0/[n]; "1" + add(m,n) }
08:35:13 <alise> | { /1/[m]; /1/[n]; "0" + add(m,succ[n]) }.
08:35:19 <alise> surely it would be nicer to make this work? ;-)
08:35:33 <alise> also that add hard fails no? [n]
08:35:46 <MizardX> /0/[m] won't work, since the regex isn't allowed to soft fail.
08:35:50 <alise> (and, just a question, why the .* clause in succ?)
08:36:01 <fax> also
08:36:02 <alise> MizardX: even if it did soft fail it'd hard fail
08:36:04 <alise> due to []s definition
08:36:58 <fax> ".. we talked a logic /over/ a category. Categorically this will correspond to one category, capturing the logic, being /fibred over/ another category, captuing the type theory"
08:37:59 <alise> MizardX: so what would be bad about making [] soft fail?
08:39:07 <alise> MizardX: what does mx represent?
08:39:11 <fax> alise http://ncatlab.org/nlab/show/Mitchell-Benabou+language
08:39:34 <MizardX> alise: mx = tail of m
08:39:43 <alise> The N-Category Cafe!
08:39:48 <alise> MizardX: ah. I usually call that rest :P
08:40:04 <alise> MizardX: so, I guess add can not really be defined as a two-argument function
08:40:05 <MizardX> alise: http://pastebin.com/sJe3qDXr <-- little easier to follow
08:40:05 <alise> ?
08:40:11 <alise> actually i think functions in redivider are a wart
08:40:21 <alise> they should just have multiple inputs or something
08:41:26 <MizardX> Last one uses two inputs for add. In the first one, I used the input stream as an input.
08:42:22 <alise> Oh, right you are
08:42:34 <alise> which is more useful do you think? I was just doing two args cuz add(x)[y] looks ugly
08:43:26 <MizardX> add(x)[y] vs add(x,y) and add(x,/.*/) vs add(x)
08:43:44 <alise> yeah
08:43:52 <alise> just asking for your personal opinion :P
08:44:25 -!- FireFly has quit (Quit: Hey! Listen!).
08:44:26 <MizardX> add(x,y) is more readable, and add(x)[y] is more practical.
08:45:17 <alise> add(x)[y] then
08:46:05 <augur> alise: i think you should make a language with strictly monadic functions. :o
08:46:14 <alise> define monadic
08:46:27 <alise> MizardX: hmm... if I'm having functions as ugly as add, I should do more digits
08:46:31 <augur> monadic, unary
08:46:33 <alise> say, 256 :-)
08:46:33 <augur> same thing
08:46:37 <augur> not nomad monads
08:46:40 <alise> augur: that's called the lambda calculus
08:46:48 <augur> no i mean truly strictly monadic
08:46:56 <alise> that is truly strictly monadic
08:46:59 <augur> LC is monadic, but its higher order so you can fact polyadicity
08:47:10 <alise> if you have a tuple type you have already lost
08:47:14 <augur> i mean a language where you dont get higher order enabled polyadicity
08:47:14 <alise> or even the naturals
08:47:22 <augur> no tuples!
08:47:33 <alise> Goedel((x,y)) = ToUnaryOnes(Goedel(x)) ~ 0 ~ ToUnaryOnes(Goedel(y))
08:47:40 <alise> (~ is binary digit concatenation)
08:47:56 <augur> no pattern matching either
08:47:57 <alise> MizardX: are you sure add cannot be prettier?
08:48:26 <alise> I'm dreading implementing subtraction now :-)
08:48:29 <alise> and multiplication... eek
08:48:39 <augur> all user defined functions must be strictly monadic, no pattern matching, and the only non-monadic things are metasyntactic :x
08:48:42 <MizardX> To be able to use { regex; ... } as an if-statement, you have to do it that way.
08:49:30 <alise> MizardX: But, is there an actual reason [] should not soft-fail?
08:49:58 <MizardX> Maybe so that it could work on streams?
08:52:32 <alise> Eh?
08:53:39 <MizardX> Soft fail utilizes a single fallback point. Hard fail, the program would have to back-track to a point before the fallback point.
08:54:27 <MizardX> On a succesful match, the fallback point is moved up.
08:54:38 -!- Alex3012_ has joined.
08:55:06 <alise> fax: so would a category theory programming language allow you to define and use toposes?
08:55:14 <alise> MizardX: Fair enough.
08:55:24 <alise> I'd be happier with that response if your interp actually lazily read input :-)
08:55:44 <MizardX> true
08:57:43 <fax> fuck I am tired
08:58:12 <alise> fax: me too
08:58:17 <alise> MizardX: I dread to define subtraction now...
08:58:25 <alise> and here I thought redivider was the prettiest language I'd ever seen!
08:59:05 <MizardX> It's good at some things...
08:59:20 <MizardX> arithmetic is not one of them
09:01:08 <alise> my mind boggles even just trying to think of how to write subtraction... also i am tired
09:03:26 <fax> why don't you write it by turning 3-2 into +++--
09:03:35 <fax> then get rid of "+-" --> ""
09:03:36 <alise> no :P
09:03:51 <alise> i'm doing binary because unary is slow, that's the point :P
09:05:45 <alise> { m: binary; /\+/; n: binary; reverse[add(m)[n]] }
09:05:46 <alise> | { m: binary; /\-/; n: binary; reverse[sub(m)[n]] }
09:05:50 <alise> MizardX: this hard fails if I do - why :(
09:05:54 <alise> how am i supposed to code it
09:06:52 <MizardX> You have to check one thing at the time, and branch.
09:06:52 <alise> fax: http://ncatlab.org/nlab/show/constructive+mathematics
09:07:03 <alise> MizardX: I'm not sure /how/ you branch
09:07:14 <alise> honestly, why don't blocks soft fail if parts soft fail?
09:08:23 <MizardX> alise: They soft fail if the _first_ line soft fails, otherwise they hard fail.
09:08:24 <MizardX> alise: { m: binary; { /\+/; n: binary; reverse[add(m)[n]] } | { /-/; n: binary; reverse[sub(m)[n]] } }
09:08:46 <alise> why is this restriction there? it looks nothing at all like regular bnf when put under that restriction
09:09:21 <alise> Yeah, yeah, backtracking; but PEG parsers allow a ridiculous amount of that and they work fine.
09:09:53 <alise> damn, my subtracter has a bug!
09:11:35 <alise> Heh; in my now-fixed subtracter, 1-x is the successor of x, and 1-2 is 3.
09:11:49 <alise> 1-3 is 2.
09:12:03 <alise> 1-4 is ... wait, what? 5.
09:12:10 <alise> 1-5 is... 4.
09:12:21 <alise> 1-6 is 7.
09:12:31 <alise> 1-7 is 6.
09:12:45 <alise> So wait, 1-n is n+1 if n is even, and n-1 if n is odd.
09:12:46 <alise> I see.
09:13:10 <alise> MizardX: does your adder ever leave trailing 0s?
09:13:27 <MizardX> alise: only if the input has trailing zeros
09:13:35 <alise> good.
09:13:39 <alise> my subtracter does it sometimes :(
09:15:18 <alise> 2-3 = 1.
09:15:21 <alise> 2-4 = 6.
09:15:31 <alise> 2-5 = 7.
09:15:41 <alise> 2-6 = 4.
09:15:46 <alise> 2-7 = 5.
09:15:54 <alise> Cool, it's "splitting" the naturals.
09:16:34 <alise> 1000-x is x-1000, strangely.
09:16:54 <alise> Except 1000-10000 = 11000.
09:17:19 <alise> So 8 - 16 = 24.
09:20:38 <alise> removing the rule 1x - = 1x fixed it.
09:20:43 <alise> removing the rule 1x - = 1x fixed it.
09:20:44 <alise> oops
09:20:49 <alise> no it didn't
09:21:19 <alise> MizardX: why does your succ function do /.*/ btw? I forgot
09:21:23 -!- lament has joined.
09:22:19 <MizardX> alise: To store the remaining input, before you change it to something else with (...)[n]
09:22:40 * alise runs into a problem
09:23:01 <alise> (reverse binary ahead:) 0x - 1y = 1(x+y)
09:23:06 <alise> that's not right, is it?
09:23:50 <MizardX> x - y = x + (-y) = x + (~y + 1)
09:24:24 <alise> er right
09:25:19 <alise> 0x - 0y = 0(x-y)
09:25:20 <alise> 1x - 0y = 1(x-y)
09:25:20 <alise> 0x - 1y = 1(x-succ(y))?
09:25:20 <alise> 1x - 1y = 0(x-y)
09:28:38 <fax> wait
09:28:41 <fax> 0x = 2*x
09:28:44 <fax> 1x = 1+2*x
09:29:27 <fax> so 2*x - 1+2*y = 2*(x - y) - 1 = 2*(x - y - 1/2)
09:30:07 <alise> yes yes very nice
09:30:55 <fax> it doesn't really help..
09:32:09 <alise> fax: http://ncatlab.org/nlab/show/anafunctor
09:34:48 <fax> that's interesting
09:35:49 <alise> { /0/; rest: /.*/;
09:35:50 <alise> ( { /0/; "0" + sub(/.*/)[rest] }
09:35:50 <alise> | { /1/; "1" + sub(/.*/)[rest] }
09:35:50 <alise> )[n] }
09:35:52 <alise> this is n-0
09:35:55 <alise> this is certainly right.
09:36:05 <alise> but 0-1?
09:36:08 <alise> hmm
09:36:14 <alise> we need to subtract one more than we usually would from the rest
09:36:21 <alise> | { /1/; rest: /.*/;
09:36:21 <alise> ( { /0/; "1" + sub(/.*/)[succ[rest]] }
09:36:22 <alise> | { /1/; "0" + sub(/.*/)[rest] }
09:36:22 <alise> )[n] }
09:36:23 <alise> looks correct to me
09:37:07 <alise> so why does it calculate 10011 - 1101 = 1100? it's 110
09:38:02 <alise> MizardX: wait, HTF is your add correct?
09:38:17 <alise> it has 1x+0y = 1(x+y+1)
09:38:28 <alise> nnnooo it doesn't
09:38:30 <alise> i added that
09:38:30 <alise> lol
09:38:54 <alise> MizardX: your add is interesting; it swaps each time
09:39:03 <alise> 0x+0y = 0(y+x)
09:39:15 <alise> 1x+0y = 1(y+x)
09:39:25 <alise> +0y = 0y
09:39:34 <alise> 0x+1y = 1(y+x)
09:39:48 <alise> 1x+1y = 0(y+x+1)
09:39:52 <alise> 1x+ = 1x
09:40:59 <alise> aha!
09:41:05 * alise fiddles with stuff
09:42:02 -!- kar8nga has joined.
09:42:27 <alise> 0x-0y = 0(x-y)
09:42:28 <alise> 1x-0y = 1(x-y)
09:42:28 <alise> 0x-1y = 1(x-(y+1))
09:42:28 <alise> 1x-1y = 0(x-y)
09:42:28 <alise> x- = x
09:42:28 <alise> 3
09:42:29 <alise> these are correct
09:42:34 <alise> so why do they compute wrongly?
09:43:25 <alise> fax: what type T:*->* has |T A| = Fib(|A|)?
09:44:14 <fax> it's a strange sort of tree
09:45:04 <alise> precisely!
09:45:07 <fax> data Fib n where Leaf :: Fib 1 ; Branch :: Fib a -> Fib b -> Fib (a + b) ...
09:45:19 <fax> I guess that is totally useless because I just repeated what you said
09:45:25 <alise> that's not *->*; that is nat->* :P
09:45:27 <fax> well it's wrong as well
09:45:48 <fax> data Fib n where Leaf :: Fib 1 ; Branch :: Fib n -> Fib n -> Fib (S n)
09:45:53 <alise> consider T := A | B | C | D
09:45:55 <alise> |T| = 4
09:45:57 <fax> no that's still wrong isn\t it
09:46:08 <alise> therefore |FibTree T| = 3 (!)
09:46:24 <fax> ohhhh
09:46:31 <fax> that's different
09:46:45 <alise> T := Fin 12
09:46:48 <alise> |T| = 4
09:46:53 <alise> |FibTree T| = 144
09:47:23 <alise> the question is
09:47:26 <alise> what is FibTree's inductive definition?
09:47:51 <fax> 1 + (1) + (1 + (1)) + (1 + (1) + (1 + (1)))
09:48:07 <alise> no; for general T
09:48:41 <fax> that was powers of two :/
09:48:48 <fax> I can't do this alise
09:49:57 <alise> FibTree 0 == 0
09:49:58 <alise> so all constructors of FibTree require a value of T at some point
09:49:58 <alise> FibTree 1 == 1
09:49:58 <alise> so a non-base-case value requires two distinct values of T
09:49:58 <alise> FibTree (n+2) == FibTree (n+1) + FibTree n
09:49:59 <alise> so ??
09:52:01 <alise> fax: the really hard bit is e.g.
09:52:10 <alise> |FibTree (A | B | C)| = 2
09:52:18 <alise> so we can't have Foo : T -> FibTree T
09:55:51 <fax> (a,b) --> (b,(a,b))
09:55:54 <fax> that's the recurrence
09:56:08 <fax> I don't think it's expressible
09:57:02 <alise> grrrr
09:57:07 <alise> why isn't this binary subtraction working
10:00:15 * alise decides to enslave MizardX to write binary algorithms all day
10:01:20 <alise> or not, but /me just asks MizardX -- the new resident Redivider expert -- how feasible e thinks a self-interpreter would be
10:01:26 <alise> it would have to execute while parsing, right?
10:01:39 <alise> but redivider programs can reference later terms... so I'd have to do some sort of awful AST thing
10:02:31 <alise> "Laurent Vogel complains that handling of newlines is not well defined in the specifications and proposes the following convention: when a string is sent to the output stream, no newline is printed at the end, except if the string is empty, in which case a newline is all that is printed.
10:02:33 <alise> rjan Johansen complains that input is a lousy hack that has no way of handling arbitrary strings (think Wikipedia:code injection here) and no well-defined behavior on end of file. This makes an otherwise powerful language useless for implementing I/O-supporting programs properly in. "
10:05:22 -!- tombom has joined.
10:12:43 <alise> imma implement slashes in redivider
10:12:55 <alise> derivider would be a nice name for a redivider implementation
10:13:00 <alise> quotient a nice name for a self-interp
10:14:38 <alise> Eh, too lazy to do slashes.
10:18:11 <alise> hey fax
10:18:18 <alise> http://www.esolangs.org/wiki/Onoz ;; implement this. it involves proof manipulation
10:20:59 <AnMaster> morning
10:24:49 -!- lament has quit (Quit: lament).
10:28:55 * alise wonders why this doesn't work
10:29:01 <alise> main : { /$/; "" } | /./ + main.
10:31:49 <fax> alise alise wonders why alise
10:31:54 <alise> what
10:36:22 <alise> ah, you need to handle newlines
10:36:23 <alise> MizardX: ping
10:36:57 <MizardX> ?
10:38:30 <alise> MizardX: /.*/ and /./ don't match \n
10:38:35 <alise> so cat has to be
10:38:37 <alise> main:
10:38:37 <alise> { /$/; "\n" }
10:38:37 <alise> | { /./ + main }
10:38:37 <alise> | { /\n/ + main }.
10:38:43 <alise> feature or bug? I think it is inheriting Python's behaviour
10:39:51 <MizardX> Yes. [^\S\s] or (?s). would both match newlines
10:40:25 <alise> So, feature or bug? :P
10:40:43 <MizardX> I don't know. It just is.
10:41:38 <alise> Okay. :P
10:52:44 <fizzie> There's often an option to the regex eggine to make . match newlines too. For Java, the Pattern.DOTALL flag; for Perl, the "s" (single-line) modifier; for Python, the either the re.S or re.DOTALL flag.
10:53:02 <fizzie> But the defaultish behaviour is no-newlines-for-dot for all three.
11:16:53 -!- aschuele1 has quit (Quit: leaving).
11:17:15 -!- aschueler has joined.
11:22:40 -!- augur has quit (Remote host closed the connection).
11:22:48 -!- augur has joined.
11:32:18 <alise> fax: so
11:33:24 <fax> so what
11:33:42 <alise> fax: category theory
11:34:07 <fax> http://www.comlab.ox.ac.uk/ralf.hinze/SSGIP10/Notes.pdf
11:34:37 <alise> what's that?
11:36:09 <fax> catagary thary natas
11:36:13 <alise> wat
11:37:47 <fax> kukuh
11:38:04 <alise> fax: so your summing thing, what's 2^3^4^5^...
11:38:11 <fax> ??????
11:38:25 <fax> I can't do that it's too hard
11:38:31 <alise> :( but i wanna know!
11:38:39 <alise> maybe it's the answer to all dependent category theory magic
11:38:43 <alise> encoded in base 10
11:39:00 <fax> I doubt it
11:39:23 <fax> ^ is weird
11:39:26 <fax> I don't trust it
11:39:31 <alise> it's total though
11:39:33 <alise> whatever you say
11:40:18 <alise> fax: I assume you distrust (n^^m := {n^n^...} m exponentiations) even less then
11:40:19 <alise> erm
11:40:20 <alise> even more then
11:40:30 <fax> yes
11:40:35 <alise> btw http://muaddibspace.blogspot.com/2009/10/cantors-diagonalization-proof-in-coq.html just to check you realise it is /much/ simpler to prove than this
11:40:46 <alise> you don't have to do diagonalisation so literally
11:40:51 <fax> no I don't know a simpler way
11:41:08 <alise> lemme prove it; it's on my other HD
11:41:11 <fax> I just wrote that very quickly because I wanted to have written it
11:42:25 <fax> HD ? is that gordi laughing?
11:42:36 <fax> orr the lazer guy from X-man
11:43:06 <alise> Hard Drive
11:43:07 <alise> :P
11:45:56 <alise> fax: here is the much shorter -- and more general -- proof: http://pastie.org/933892.txt?key=esshdwnk4lab3etv0lehta
11:48:14 <fax> wow
11:48:33 <fax> why is mine so long...
11:49:19 <alise> fax: because you translated cantor way too literally :P
11:49:51 <alise> the actual (\x. !magic x x) construction is due to oerjan; though it's "obvious" once you've seen it
11:50:38 <fax> that's the diagonal
11:50:42 <fax> negated
11:50:50 <fax> how do you think of it?
11:50:57 <alise> be oerjan?
11:51:09 <fax> I mean conceptually
11:51:10 <alise> but actually I think we can explain this proof without making reference to a single "diagonal"
11:51:32 <alise> In fact, it's very similar to Russell's Paradox.
11:51:35 <fax> that IS the diagonal
11:51:41 <alise> magic x x = x in x.
11:51:47 <alise> !(magic x x) = x is not in x.
11:51:58 <alise> Is (\x. !(magic x x)) a member of itself?
11:52:31 <alise> basically the issue is that surj lets us hide unrestricted comprehension like that in a perfectly innocent natural, where we can't "see" it
11:52:35 <alise> of course that's only one view of the proof
11:53:05 <oklopol> i wish there was a button to ignore everyones messages from everyone else when i go to sleep
11:53:09 <oklopol> so i didn't have to read logs
11:53:23 <fax> turn off your computer
11:54:13 <alise> fax: so... I really need to find a way to unify computer algebra systems and dependent type theory
11:54:28 <fax> alise you already know what it is
11:54:36 <alise> do I?
11:54:43 <fax> dependent type theory
11:55:22 <alise> dependent type theory doesn't really let you manipulate expressions structurally with free variables.
11:56:17 <fax> quote them
11:56:39 <alise> fax: define quote
11:57:38 <fax> tttttttttttttttt
11:59:16 <alise> .
11:59:47 <alise> fax: well?
12:00:18 -!- kar8nga has quit (Remote host closed the connection).
12:00:34 <fax> HOW 2 TURn YOUTUBE inTO MP3?
12:01:38 <alise> are you going to answer my question or...
12:01:45 <fax> I just realized
12:01:48 <fax> -1 = 1 mod 2
12:01:52 <fax> HEENCN
12:01:55 <fax> -1 * -1 = -1
12:01:57 <fax> !!!!!!!
12:03:28 <alise> fax: you could just give me a simple answer and i would understand you know
12:06:51 <alise> fax: or not.
12:07:29 <fax> bbl
12:18:57 <alise> awesome, thusly.org isn't registered
12:20:09 <oklopol> "<fax> turn off your computer" the problem isn't that i somehow can't not read the logs, i just don't want you people to have shared conversations i haven't read
12:25:56 <alise> oklopol: it's ok just stay awake forever
12:27:49 <oklopol> but i need my 13 hour beauty sleep
12:27:54 <oklopol> err try more like 15
12:28:16 <oklopol> it was 22:30 - 13:30 or something
12:28:30 <oklopol> or maybe something completely different, who knows
12:29:34 <alise> fax: so what do you mean by quoting
12:30:24 <oklopol> manipulate the expressions as data
12:30:42 <oklopol> encode them in a negative integer
12:34:50 <alise> helpful
12:35:13 -!- hiato has joined.
12:42:45 <alise> hi hiato
12:44:34 <alise> hi hi hiato
12:44:55 <alise> hi lim n->inf ( hi)^(n)ato
12:49:09 <augur> aww alise, you're so adorable :D
12:49:13 <alise> "# Emacs Lisp. Wow...so this is what forethought, design and programming-in-the-large look like" <- HAHAHAHAHAHA#
12:49:46 <hiato> oh, hai alise
12:50:00 <hiato> I didn't get a nick hitight there for some reason
12:50:14 <alise> wait hiato is the pascaller guy isn't he? oh the synchronicity
12:50:26 <hiato> Is he?
12:51:29 <hiato> I think he's trying to put his shadowy past behind him
12:51:50 <alise> heh
12:52:00 <alise> we - well, mostly I - were talking about minimalist pascal before
12:52:08 <alise> a la TeX; ftp://ftp.tex.ac.uk/tex-archive/systems/knuth/dist/tex/tex.web
12:52:10 <hiato> oooh
12:53:19 <hiato> heh - a la tex <-> a latex
12:53:20 <alise> the most advanced mathematical typesetter, and one of the most bug-free pieces of software, is written in a dialect of Pascal used by a circa-1982 compiler, and avoids the use of pointers, set types, enumerated scala types, and only uses var parameters for files.
12:53:21 <alise> *scalar
12:53:23 <alise> heh
12:53:28 <alise> It pretty much avoids /everything/. It has a "pointer" type, but it's just an index into a global static array.
12:53:39 <hiato> hmmmm
12:54:10 <hiato> That is actually pretty esoteric
12:54:25 <hiato> at least compared to what pascal is today
12:54:46 * hiato investigates
12:55:33 <hiato> brb
12:55:41 <alise> hiato: Note that the intermingled TeX is the documentation; per Knuth's WEB system.
12:55:44 <hiato> in a sort of prolonged sense
12:55:54 <alise> Ignore everything that doesn't look like Pascal, except some lines which are automagically translated to Pascal from some other form.
12:56:01 <alise> Also, be prepared to crossreference.
12:56:04 <hiato> noted
12:56:11 <hiato> heh, and so it has begun
12:56:13 <alise> wait, brb to read tex source? :P or something else
12:56:33 -!- kar8nga has joined.
13:12:50 <alise> fax: ping
13:12:54 <fax> hi
13:14:35 <hiato> alise: brb for food
13:14:41 <hiato> now to read sour:e
13:14:50 <hiato> s/:/c/
13:15:36 <hiato> alise: are there any docs for the "WEB" lang?
13:16:03 <alise> I think so
13:16:08 <alise> it's not just a one-use thing
13:16:27 <alise> hiato: basically half of it is TeX, half of it is Pascal, and epsilon of it is some sort of macro-thing that i'm not sure if it compiles to pascal or not
13:16:41 <alise> hiato: your best bet is likely to typeset the WEB source to get the documentation and source typeset as a TeX document.
13:17:10 <alise> however, I have been unable to find a WEB distribution for a modern computer; all I can find is its C-based relative CWEB.
13:17:16 <hiato> hmmm, I guess
13:17:25 <hiato> oh, I see
13:17:42 <alise> The first published literate programming environment was WEB, introduced by Donald Knuth in 1981 for his TeX typesetting system; it uses Pascal as its underlying programming language and TeX for typesetting of the documentation. The complete commented TeX source code was published in Knuth's TeX: The program, volume B of his 5-volume Computers and Typesetting. Knuth had privately used a literate programming system called DOC as early as 1979. He was inspir
13:17:42 <alise> ed by the ideas of Pierre-Arnoul de Marneffe[12]. The free CWEB, written by Knuth and Silvio Levy, is WEB adapted for C and C++, runs on most operating systems and can produce TeX and PDF documentation.
13:17:48 <alise> I am trying to find a WEB distribution now.
13:18:09 <alise> hiato: Failing all that, the hint is that stuff can include other sections; the macro things are obvious when you see them, and text and \ stuff is TeX; things that look like Pascal, are.
13:18:23 <hiato> Hmmm, interesting that this pascal works sans assignments, or at least casting of 'types' in one
13:18:46 <hiato> yeah, copy that
13:18:48 <alise> TeX nowadays is compiled by using web2c, which translates the WEB/Pascal source to C.
13:19:01 <alise> it uses assignments, just not casts in them yeah
13:20:05 <alise> hiato: An awful lot of the TeX source and its conventions are so that it runs giving strictly the same results no matter /what/ the input for all environments you can imagine.
13:20:11 <alise> So it's a bit idiosyncratic in its minimalism.
13:21:51 <hiato> Yeah, I'm beginiing to see that, though, I'm more impressed with how archaic the implementation language is for what must be one of *the* most reliable and bug free systems
13:22:30 <alise> Yes! Of course nowadays the younguns use pdfTeX which I think has more C bits to it maybe? and even XeTeX which I have no idea what the hell it is.
13:22:47 <hiato> Never heard of that last one
13:22:55 <alise> But if you run tex(1) with the intention of getting a .dvi out of it, you're running something compiled from C translated from 80s restricted Pascal.
13:23:14 <alise> hiato: It's basically a merger of TeX and Unicode + "modern font techologies"
13:23:18 <alise> So I don't know how the code is done.
13:24:44 <hiato> and heh, younings? Getting a tad above yourself there :P But yeah, this is, well I must say strange. I know their intention was not performance, but surely there were better choices, even back in the 80's (?)
13:25:08 <alise> Their? This is almost entirely the work of the single demigod Knuth. :-)
13:25:26 <alise> Well, C wasn't really so portable or standardised then, I imagine.
13:25:36 <alise> Pascal was pretty much the only other language...
13:25:43 <alise> And his WEB system was already built to use Pascal.
13:25:46 <hiato> added lol having just watched clash of the titans
13:25:53 <hiato> Yeah, I guess
13:25:58 <alise> Besides, TeX isn't even very slow.
13:26:11 <hiato> and tex in forth would've been too cool lo exist
13:26:13 <hiato> *to
13:26:27 <hiato> But, yes, not really
13:27:02 <hiato> for the speed thing that is. Eh, my concentration is wavering. Must. Mono. Task.
13:27:47 <alise> Actually Knuth still writes his programs in WEB's son CWEB.
13:28:00 <alise> They're like nobody elses...
13:28:08 <hiato> Reall,? Wait, is this knuth of up arrow fame?
13:28:25 <alise> Yes... and The Art of Computer Programming fame.
13:28:27 <hiato> Or Graham number
13:28:30 <alise> And oh so many things.
13:28:32 <hiato> hmmm
13:28:44 <hiato> v. v. v. impressive in that case
13:29:00 <alise> Howso?
13:29:43 <alise> Oh, and also the KnuthMorrisPratt algorithm.
13:29:46 <alise> And the Knuth shuffle.
13:30:12 <alise> Oh, and the guy who popularised big-O notation for computer algorithms.
13:30:24 <alise> Safe to say... Knuth is a god.
13:31:24 <fax> KNUTZ
13:31:31 <hiato> I always felt that the more you know about somethieg (In this case maths), the less you know about everything else. What was it? Academics are people who know more and more about less and less until they know nearly everything about nothing. or some such. But, I guess I never explored the comp sci side of him, in terms of practical and implemented stuff - as opposed th theory
13:32:02 <alise> At least the nothing that is mathematics is a very interesting and beautiful nothing.
13:32:04 <fax> hiato, except physics
13:32:18 <fax> people who know physics seem to know a lot and be quite sane and clever
13:32:39 <hiato> Wait, dont get me wrong, I wranna be an academic, but that is still a roughly accurate vew in my opinion
13:32:48 <alise> I note that a lot more mathematicians believe in God than do scientists.
13:32:56 <hiato> fax: heh, that's why I wanna go into astro phys
13:33:04 <alise> The natural numbers, they're God. Close as you'll get to a formal definition.
13:33:10 <alise> Physics and the like are much more concrete, finite, etc.
13:33:24 <hiato> Hmmm, interesting view
13:33:28 <fax> don't equate finitism with atheism
13:33:45 <alise> fax: I'm making analogies and hypotheses.
13:33:47 <alise> I'm allowed.
13:34:01 <alise> Anyway, I'm pretty sure /any/ reasonable definition of God includes an inkling of the infinite.
13:34:10 <alise> So someone who is truly, /truly/ a finitist to the bone would be an atheist.
13:34:17 <fax> :|
13:34:24 <fax> didn't I just say...
13:34:24 <alise> And I'm an infinitist and strongly disbelieve in God.
13:34:26 <alise> So, yeah.
13:34:27 <hiato> heh, but, I do agree that finitness+rigidity and friends and god and so on anre not mutually excl
13:34:37 <alise> fax: I don't avoid saying things just because you don't want me to...
13:34:46 <fax> alise yeah but URgh
13:34:52 <alise> hiato: what is god that is not infinite?
13:34:56 <fax> I was not telling you "don't say this"
13:35:06 <alise> fax: Well, give me a reason for not equating the two.
13:35:11 <alise> I only mean very strong finitism, you understand.
13:35:15 <alise> A philosophy transcending mathematics.
13:35:17 <hiato> Alise, no less or more a god in my view
13:35:19 <fax> god = infinity is just idiocy
13:35:27 <fax> this is like saying 666 = the devil
13:35:29 <fax> I mean really
13:35:32 <alise> Not what I said.
13:35:33 <fax> it's just crazy
13:35:41 <alise> Never said that.
13:35:44 <fax> hey I am doing analogies now
13:36:10 <alise> Anyway, this is a waste of time since obviously God doesn't exist.
13:36:20 <hiato> sigh. At the mention of the word god people start breaking. But, this is isnteresting.
13:36:27 <hiato> alise: obvious?
13:36:31 <fax> alise how can you say that is obvious, it is not even true
13:36:41 <alise> fax: I knew that would provoke you!
13:36:44 <alise> hiato: Don't worry, I don't actually believe it's obvious.
13:36:46 <fax> God exists and I can prove it
13:36:46 <hiato> fax: I'd be careful of making that a fact
13:36:54 <alise> But fax is so sure that God exists and uses "atheist" as an insult, it's funny.
13:36:55 <fax> watch a plant grow: You have witnessed it
13:37:07 <alise> Wow, nice one, Anselm of Canterbury.
13:37:08 <hiato> alise: heh, no worries
13:37:15 <alise> That even tops the "I imagined it; it's awesome; so it exists" one.
13:37:32 <hiato> fax: proof enough for ou perhaps
13:37:39 <hiato> *you
13:37:48 <fax> are you just going to call me a famous italian monk or will you try and refute my argument? :)
13:37:59 <fax> hiato, you don't buy this?
13:38:02 <hiato> and throfgh his sarcasm, alise is merely saying the same
13:38:11 <hiato> fax: afriad not
13:38:18 <fax> hrmm
13:38:44 <fax> maybe you have an outdated definition of God that means some kind of conscious being which listens to people when they prey to win the lotterly
13:38:56 <alise> "Plants grow => God exists" simply does not follow in any sense. Maybe you meant "Plants grow; plants growing is wonderous; I perceive God as the generalised-'growing' nature of things; therefore God exists".
13:39:08 <fax> alise no not at al
13:39:10 <alise> Which is very, very close to pantheism -- a concept which is atheism, just with names changed.
13:39:56 <hiato> nope. in fact, I take prayer as proof of man's interpretation of an ideal god and the want for such a being, but def not it's existence
13:40:07 <hiato> alise: haha
13:40:15 <fax> hiato, I'm saying /that/ stuff is BS
13:41:11 <alise> Anyway, this is pointless. The only way to convince a reasoned atheist to become religious is programming; the only way to make an atheist out of a reasoned religious person is deprogramming.
13:41:30 <alise> Unreasoned religious people can of course be atheist-ised, and impressionable atheists who haven't thought about it much can be made religious too.
13:41:32 <fax> alise: other way around
13:41:34 <hiato> fax: I do believe, however, that should there be god(s) there are some fundemental criteria for their/it's comprehendable existence, with rigid tests
13:41:42 <alise> fax: Yes, thank you for inserting your personal opinion.
13:41:47 <alise> I knew you would take the terms perjoratively.
13:41:51 <fax> alise I just did that because you did it :P
13:41:59 <alise> I can't think of better terms. So there.
13:42:03 <alise> But we're clearly both on the reasoned end.
13:42:11 <fax> hiato, it's easy to test my theory, just look at a sunrise
13:42:12 <alise> And we're not going to try and (de)program each other.
13:42:16 <alise> So let's just stop now.
13:42:26 <alise> And give up with your fucking "the universe is beautiful GOD EXISTS" non-sequiturs. Please.
13:42:46 <fax> alise: It's not about beauty
13:42:54 <alise> Remember when I said let's stop talking about this?
13:43:13 <hiato> alise: in the name of a reasonable conversation I object. So long as this is not offeding anyone, the fact that there can be no changing of views shold not stop a coversation
13:43:34 <alise> But this is just degenerating into a flamewar, from an irrelevant tangent at that.
13:43:42 <alise> Let's keep the peace and talk about things we can have constructive discussions about.
13:43:45 <fax> I wouldn't call it a flamewar
13:43:55 <alise> You know my personality. It will be one soon :)
13:44:00 <hiato> Heh
13:44:04 <fax> I didn't want to say that :P
13:44:27 <hiato> But ok, I digress. Back to Pascal
13:45:27 <hiato> Is there a cellphone IRC client?
13:45:39 <alise> For what cellphone?
13:45:40 <hiato> as in Java nonsense
13:45:41 <alise> There are countless.
13:45:43 <alise> Yes.
13:45:51 <alise> Many.
13:45:53 <hiato> Awesome
13:45:55 <alise> http://www.google.co.uk/search?q=java+mobile+irc+client&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-GB:unofficial&client=firefox-a
13:45:56 <alise> pick one
13:46:01 <hiato> haha
13:46:04 <hiato> :p
13:46:51 <alise> or, you know, 20
13:47:16 <alise> Hmm.
13:47:22 <alise> I wonder, I wonder, how to self-interpret Redivider.
13:47:28 <alise> It would help if it had... data structures; at all.
13:47:37 <alise> Well, it does, they just have to be strings.
13:47:38 <alise> Like Tcl! :P
13:48:05 <oklopol> is fax religious?
13:48:24 <fax> no
13:48:26 -!- oklopol has quit (Read error: Connection reset by peer).
13:48:34 <fax> I'm aatheist
13:48:44 -!- oklopol has joined.
13:48:53 <fax> (just kidding)
13:49:00 <oklopol> <oklopol> is fax religious?
13:49:00 <oklopol> * Disconnected
13:49:04 <oklopol> <fax> (just kidding)
13:49:11 <alise> he certainly is if he believes God exists.
13:49:11 <fax> whoooosh
13:49:14 <hiato> 14:35 < fax> hiato, you don't buy this?
13:49:15 <alise> quite simple.
13:49:20 <alise> <hiato> 14:35 < fax> hiato, you don't buy this?
13:49:24 <fax> 12:48 < alise> <hiato> 14:35 < fax> hiato, you don't buy this?
13:49:30 <alise> <fax> 12:48 < alise> <hiato> 14:35 < fax> hiato, you don't buy this?
13:49:32 <alise> ok stop guys
13:49:33 <alise> I'm a finitist
13:49:37 <fax> LOL
13:49:39 <alise> that's the biggest anything can possibly be
13:49:43 <hiato> hah
13:49:50 <alise> was fun while it lasted
13:49:54 <hiato> bring the fury alise
13:49:59 <oklopol> and he does? that's what i'm asking, with fax i never know what's serious and what's not
13:50:14 <alise> oklopol: he's got really offended at me for saying something about atheism before
13:50:19 <alise> so i'd assign a v. high probability he's serious
13:50:32 <fax> oklopol: I can prove god exists: You can see a plant grow
13:50:33 <hiato> seconded
13:50:34 <oklopol> i don't care about probabilities
13:50:47 <hiato> oklopol: there's your proof
13:51:01 <fax> why does nobody accept my proof ??
13:51:03 <oklopol> fax: you accept that proof?
13:51:05 <fax> yes
13:51:07 <alise> fax: stop embarrassing yourself
13:51:09 <fax> it's obvious
13:51:09 <oklopol> okay, thanks
13:51:14 <hiato> alise....
13:51:14 <fax> oklopol do you
13:51:17 <oklopol> no
13:51:20 <fax> why not?
13:51:24 <hiato> Opinions
13:51:28 <hiato> everyone has one
13:51:32 <alise> you have a chance to be filed under "religioustype mathematician guy", not "half-mathematician, half-religiouscrackpot"
13:51:33 <fax> this isn't a matter of opinion
13:51:34 <hiato> at least one
13:51:35 <oklopol> i don't believe in proving things out of a formal system
13:51:38 <alise> don't throw it away
13:52:00 <fax> oklopol, what about cogito ergo sum? You don't buy that
13:52:01 <fax> ?
13:52:02 <oklopol> in a formal system where plants growing implies gods i accept it
13:52:04 <oklopol> fax: no
13:52:07 <oklopol> i do not
13:52:08 <fax> wow
13:52:23 <alise> Cogito ergo sum is not even close to "plants grow therefore god exists".
13:52:33 <oklopol> alise: no one said it was
13:52:44 <oklopol> "<oklopol> i don't believe in proving things out of a formal system"
13:52:44 <fax> what about proving that some kind of innoculation works? by testing it and such
13:52:49 <alise> oklopol: but fax analogised.
13:52:52 <oklopol> fax: that's just science
13:52:53 <fax> alise, no it wasn't an analogy
13:53:12 <oklopol> as a scientific truth, you can ask whether god exists
13:53:19 <fax> oklopol, it's not a mathematical proof but it has the same effect no?
13:53:23 <oklopol> which means "is it useful to model the world as a world where a god exists"
13:53:29 <oklopol> the answer is obviously no in my opinion
13:53:46 <oklopol> fax: no, nothing to do with math
13:53:56 <oklopol> it's just information about the past
13:54:08 <oklopol> this innoculation has worked most of the time
13:54:20 <fax> oklopol, it's not induction
13:54:25 <alise> THIS GOD HAS COMFORTED ME MOST OF THE TIME
13:54:31 <fax> oklopol, people actually have an explanation about why it should work too
13:54:37 <fax> as well as testing to back it up
13:54:38 <alise> SO GUYS
13:54:39 <alise> PASCAL
13:54:43 <alise> HEY HIATO
13:54:45 <alise> HOW'S THAT TEX
13:55:05 <oklopol> fax: that's just models for the world again supported by the fact they've modeled the world wellb efore
13:55:08 <oklopol> *well before
13:55:11 <fax> looks like alise has starting flaming to make sure she doesn't learn anything
13:55:11 <alise> hiato: hiato: haito:
13:55:14 <hiato> fax, out of interest, does it matter if god doesn't exist? I mean, as far as the end user is concerned, the effects would be the same
13:55:18 <hiato> alise: Heh
13:55:19 <oklopol> i don't care if there's a reason in that model why something should work
13:55:20 <alise> fax: haha seriously shut up
13:55:28 <alise> just shut up, you're being a total idiot
13:55:28 <oklopol> i don't consider it a truth
13:55:33 <alise> first i made a joke, then i tried to change the topic
13:55:38 <fax> hiato: if god didn't exist everything would just instantly stop like pulling the plug out of a computer
13:55:42 <alise> yes, "you're being an idiot" is a flame
13:55:44 <alise> flaming and proud
13:55:47 <alise> because it's fact, you are
13:55:50 <alise> ...and I can prove it!
13:55:53 <oklopol> hiato: about the mattering, that's what i mean by scientific truth
13:55:53 <hiato> ok, I have what I need
13:55:57 <alise> fax: Funny, no, it wouldn't.
13:56:00 <alise> See: physics.
13:56:00 <oklopol> whether it's useful to think there's a god
13:56:07 <oklopol> whether the world behaves as if there was a god
13:56:08 <hiato> oklopol: not sure I understand
13:57:14 <oklopol> hiato: science does not talk about what's true and what's not, that's the science of opinions called philosophy's job, sciences talks about mathematical models for certain phenomena
13:57:23 <oklopol> and backs them up with experiments and shit
13:57:46 <hiato> haha, poor chioce of wording for that last one
13:57:48 <alise> also pulling a plug out of the computer -- atheism is LAPTOP BATTERIES
13:57:49 <hiato> but yeah
13:57:49 <alise> it all makes sense now
13:58:01 <fax> alise: why are you being a dick?
13:58:06 <oklopol> so you can ask the scientific question of "whether god exists" by making some sort of model in which there's an all-knowing god and explaining stuff with it
13:58:12 <fax> alise: you're like riot police
13:58:20 <fax> alise: all you do is escalate things and cause fights
13:58:31 <alise> Yeah, I'm basically Satan ...in a can.
13:58:38 <fax> alise: what?
13:59:03 <fax> alise: seriously you are coming off as very deluded and brainwashed
13:59:16 <alise> Tee hee.
13:59:26 <oklopol> :D
13:59:29 <alise> I sure am one brainwashed atheist, Mr. Plants Grow.
13:59:31 <fax> alise: it's like you have to cling on to atheism for dear life, because you are so terrified something might make fun of you for "beleiving in god"
13:59:37 <alise> No.
13:59:38 <fax> alise: plants do grow
13:59:44 <alise> I've considered my atheism many times.
13:59:48 <fax> alise: if you think otherwise you are mistaken
13:59:53 <alise> Yes, yes they do.
13:59:58 <alise> That doesn't mean God exists though.
14:00:01 <fax> yes it does
14:00:07 <alise> No. It doesn't.
14:00:12 <fax> oh good point
14:00:17 <oklopol> :D
14:00:21 <fax> I had not considered "No. It doesn't." before
14:00:22 <alise> fax: seriously you are coming off as very deluded and brainwashed. it's like you have to cling on to consciousness-does-not-existism for dear life
14:00:22 <hiato> He's not crazy. It's the government man. But noone believes me. But you will, right? Haha! You do, but they wont! haha! they called me mad- but I showed them!
14:00:30 <fax> alise: typical...
14:00:31 <alise> because you are so terrified something might make fun of you for "believing in consciousness"
14:00:37 <alise> Hmmmmmmmmmmmmmmmmmmmmmmmmmm
14:00:42 <fax> I used to beleive in consciousness actually
14:00:49 <alise> I used to believe in God.
14:00:51 <oklopol> you don't believe in consciousness?
14:00:52 <alise> And it's spelled Believe.
14:00:55 <fax> alise did you really?
14:01:05 <alise> oklopol: no, he thinks consciousness means "metaphysical-soul-type".
14:01:14 <alise> fax: As much as I could coherently believe anything before developing proper rational thouht.
14:01:16 <fax> alise I was a very strong atheist until like 1 year ago
14:01:16 <alise> *thought
14:01:19 <alise> Which is not much at /all/.
14:01:28 <alise> Ohh, that would explain the incoherence and fanaticism.
14:01:36 <alise> Recently deconverted atheists are the most fanatical of all religious people.
14:01:40 <alise> Erm, re-converted.
14:01:41 <fax> alise like we used to have to sing hyms in class and I would just sit there not singing
14:01:50 <alise> Fight the powa
14:01:52 <oklopol> :D
14:01:57 <fax> that was in primary school tohugh
14:01:59 <fax> though*
14:02:01 <hiato> oklopol: si back and enjoy the show
14:02:01 <alise> RAGE AGAINST THE HYMN MACHINE, FAX
14:02:12 <oklopol> hiato: have to smiley occasionally
14:02:21 <hiato> oklopol: heh, ok
14:02:22 <fax> I'm not fanatical
14:02:34 <alise> yeah, sure
14:02:50 <alise> god exists because plants grow. can we get back to haskell now
14:02:58 <fax> alise: Well here is a problem:
14:03:04 <alise> OH NO A PROBLEM
14:03:07 <fax> (*) nobody beleives my proof
14:03:19 <fax> (*) nobody will LISTEN to my proof because _they've already decided it's wrong_
14:03:25 <fax> what does that remind you of/
14:03:26 <fax> ?
14:03:39 <alise> I looked at your proof, and tried to figure out how on earth it made sense at all, which led to an automatic analysis of it in my wetware.
14:03:41 <fax> hint: It reminds you of trying to convince religous people that god doesn't exist
14:03:48 <alise> It used logical systems, philosophical systems, etc. to try and find a match.
14:03:49 <alise> It couldn't.
14:03:53 <alise> It concluded that your proof is full of shit.
14:03:57 <alise> I happen to believe it's right.
14:04:02 -!- AquaLoqua has joined.
14:04:04 <alise> It's me, incidentally.
14:04:21 <alise> I don't try and convince religious people God doesn't exist because it doesn't work.
14:04:42 <AquaLoqua> Woo, cellphone irc!
14:05:35 <fax> alise: Also if someone is going to judge me and ignore the content of what I say based on "oh but they've got different beleifs than me" then I don't give a fuck what they think
14:05:38 <fax> re: 12:51 < alise> you have a chance to be filed under "religioustype mathematician guy", not "half-mathematician, half-religiouscrackpot"
14:05:44 <AquaLoqua> er, i mean god is, er, dating an athiest
14:05:58 <alise> I'm not interested in talking about this.
14:06:02 <fax> yes you are
14:06:09 <fax> you just realize that you've been pwnd :D
14:06:12 <fax> so you want to stop
14:06:14 <alise> You have no chance of convincing me your religious opinions are not crazy, so do not even bother as it is a waste of both of our time.
14:06:16 <alise> fax: hahahaha
14:06:28 <fax> ^ typical distraction technique
14:06:32 <alise> While you seem to have succeeded at taking your delusions to higher and higher levels I'm not even going to listen now
14:06:37 <fax> now you will pat yourself on the back so you can continue living your delusion
14:06:46 <alise> you are really fucking crazy.
14:06:47 <hiato> fax: everyone is a winner here. Except oklopol
14:06:56 <oklopol> i'm not a winner? :(
14:07:04 <alise> hiato: now we are going to talk about pascal and nothing else. i am intensely interested in every footnote about Pascal.
14:07:05 <alise> every single one.
14:07:08 <alise> especially TeX.
14:07:19 <oklopol> but i like winning
14:07:23 <hiato> alise: Ok then
14:07:24 <fax> oklopol: you can win
14:07:37 <hiato> oklopol: not allowed. 1st commandment
14:07:54 <oklopol> :----------------[()]
14:08:08 <oklopol> *[)(]
14:08:14 <fax> hiato seems to be pulling out some kind of history book
14:08:16 <hiato> Have you considered cosmetic surgery
14:08:43 <hiato> oklopol that is
14:08:46 <oklopol> my face regex's all treatment
14:08:56 <alise> groan
14:09:01 <oklopol> i hate alise
14:09:06 <alise> me too
14:09:14 <hiato> me three
14:09:20 <oklopol> atheists are such annoying idiots
14:09:22 <alise> <fax> plants four
14:09:22 <AquaLoqua> Me four
14:09:33 <hiato> yay, I have two votes
14:09:34 <alise> conclusion: AquaLoqua = plants
14:09:44 <alise> AquaLoqua = hiato; therefore hiato = plants
14:09:47 <hiato> bahaha
14:09:58 <hiato> I am a vegiterian for what it's worth
14:10:06 <alise> what the /hell/ is a vegiterian
14:10:14 <alise> Vej e teeriyan
14:10:21 <hiato> and jewish, and gay, and black, and a midget
14:10:25 <fax> 13:08 < oklopol> atheists are such annoying idiots
14:10:26 <fax> lol
14:10:37 <hiato> so hate all you want on me
14:10:40 <hiato> :)
14:10:54 <alise> hiato: what, /all/ of those things?
14:10:57 <alise> impressive
14:11:10 <hiato> most hated women in the world, that's me
14:11:23 <alise> wait wait, i am /fairly/ sure you are male
14:11:30 <fax> according to quantum physics, nothing isn't nothing anymore.. it's really a boiling bubble brew of particles coming in and out of existence at such a small scale that you can't ese it
14:12:05 <hiato> alise: yeah. and caucasian, and straight, and six 2 and and and
14:12:12 <hiato> no, six 1
14:12:19 <alise> hiato: :D
14:12:30 <fax> alise talk to me :(
14:12:35 <oklopol> i belong in no minority i think
14:12:38 -!- AquaLoqua has quit (Quit: used jmIrc).
14:12:42 <alise> fax: not unless you talk about something else
14:12:53 <fax> alise quantum theory IS somehing else
14:12:59 <alise> something else else.
14:13:42 <alise> why are there no good CASs... grr
14:13:52 <hiato> CAS
14:14:02 <hiato> fdulu@chippy> wtf CAS ~
14:14:03 <fax> empty space has this much energy: 10^120*energy of the universe
14:14:05 <hiato> wtf, I don't know what CAS means!
14:14:16 <fax> 10^120*energy of the universe = 0
14:14:35 <alise> hiato: Computer Algebra System
14:14:45 <fax> alise what's the smallest prime numbers above that ?
14:14:48 <alise> symbolic expression evaluator/etc such as Mathematica, Maxima, Axiom, etc.
14:14:49 <fax> that might the constant
14:14:54 <alise> fax: something
14:14:59 <hiato> Aah, yes, then wlf would be the wrong place to ask
14:15:10 <hiato> *wtf
14:15:11 <alise> anyone know of a mathematical-notation handwriting recogniser thing?
14:15:18 <hiato> also, what about fuse?
14:15:26 <alise> ?
14:15:29 <hiato> it's not that though
14:15:33 <hiato> it's a CAS
14:15:46 <hiato> IIRC
14:16:03 <hiato> wait, no, no
14:16:33 <fax> Draw a picture of 3D curved space
14:16:47 <hiato> Sage
14:16:51 <hiato> clos enough
14:16:56 <hiato> www.sagemath.org
14:17:13 <hiato> any programme that has a livo cd is a win in my books
14:17:17 <hiato> *e
14:17:34 <alise> sage is kind of limited.
14:17:35 <alise> like, really limited
14:17:39 <alise> oh I forgot Maple in my list
14:17:44 <hiato> wouldn't actually know
14:17:48 <alise> Sage is really just an interface to other CASs and the python doesn't blend too well with it
14:17:54 <alise> plus, well, it just doesn't do as much as the commercial ones
14:18:02 <hiato> Oh, well thanks for the heads up
14:18:26 <hiato> then, there's only one thing left alise: be a pirrrrate
14:18:38 <alise> But even Mathematica is not really decent.
14:18:39 <fax> Do you beleive in graviational lensing?
14:18:44 <alise> It is also very slow on Linux.
14:18:48 <hiato> ah well
14:18:48 <fax> I think it's a fairy story like global warming or linux
14:18:48 <alise> Perhaps Maple? I have not tried it.
14:19:05 * alise hopes that fax is joking for /once
14:19:09 <alise> s/$/\//
14:19:48 <hiato> Perhaps. TBH, if Mathematica is anything like what I've heard, then I'm not sure that the software you're looking for has been invented yet
14:21:40 <alise> I don't believe it has been; no reason though: it should be.
14:22:20 <alise> @ I must remember to say |break| at the end of the program for each case.
14:22:20 <alise> --Knuth
14:24:01 <alise> Grr! I hate Linux font rendering.
14:24:15 <fax> alise part of the conspiracy I guess...
14:24:54 <fax> hey alise if the universe was flat it would have total energy 0
14:24:58 -!- Asztal has joined.
14:24:59 <fax> but it's not flat, so god exsts
14:25:16 <alise> you're just trolling me now
14:26:15 <fax> non-euclidean
14:27:32 <alise> NON-EUCLIDEAN GOD
14:27:36 <alise> *GOD
14:27:49 <hiato> Gregor: please set topic: "hey alise if the universe was flat it would have total energy 0, but it's not flat, so god exsts"
14:28:13 <alise> anyone can set topic
14:28:25 <hiato> Oh?
14:28:27 <alise> yes
14:28:30 <fax> finally, at least hiato understands my proof
14:28:33 <alise> just keep the logs url
14:29:14 <hiato> heh
14:30:35 <hiato> Aah: "When +t is set, only channel operators may modify the topic of the channel. This mode is recommended in larger, more public channels to protect the integrity of the topic."
14:31:12 <alise> +t is not set.
14:31:13 <alise> is it?
14:31:17 <oklopol> no
14:31:18 <alise> nope.
14:31:21 <alise> so set the topic yourself. /topic.
14:31:26 <oklopol> yeah set it
14:31:36 <hiato> no, it's not, but I was just curious as to the mechanism
14:31:40 <oklopol> yeah just curious
14:31:44 <alise> yeah
14:31:45 <fax> oh shit
14:31:46 <fax> sorry
14:31:49 <oklopol> fuck...
14:31:49 <fax> No the universe IS flat
14:31:53 <oklopol> yep
14:32:04 <oklopol> it's flat like ur mommas chest
14:32:12 <fax> I retract my earlier statement
14:32:13 <hiato> oklopol is just rour 'cause he lost and everyone else won
14:32:17 <alise> fax: so there is 0 energy
14:32:19 <fax> wait
14:32:19 <alise> so god does not exist
14:32:20 <alise> hmmmm
14:32:21 <oklopol> yeah i lost
14:32:23 <hiato> *sour
14:32:30 <oklopol> indeed he does not
14:33:36 <fax> the universe is accelerating
14:33:40 <alise> hiato: so I'm interested in defining, inspired by TeX, a sort of ultra-subset of Pascal -- maybe not /quite/ as small as PL/0 -- say, uber-Pascal.
14:33:44 <alise> you are now officially quality control.
14:33:46 <oklopol> yep getting faster and faster
14:34:04 <fax> 70% of the energy of the universe resides in empty space
14:34:13 <hiato> alise: I am so very game
14:34:23 <hiato> for that
14:34:29 <oklopol> he's totally game
14:34:44 <oklopol> at LEAST 70%
14:34:51 -!- hiato has changed nick to oklopol_.
14:34:54 <oklopol_> for that
14:34:55 <alise> hiato: are you still game if I told you I was thinking of dropping pointers?
14:35:00 -!- oklopol_ has changed nick to hiato.
14:35:04 <oklopol> yeah or would that just make you mad?
14:36:06 <hiato> alise: Well, in principle, I dont really have a problem, but is there any reason in specific? I mean, is this just in the name of reducing the language?
14:36:20 <hiato> Also, it will vake things more painful
14:36:21 <oklopol> yeah do you just wanna reduce it or what?
14:36:25 <hiato> *make
14:36:27 <oklopol> yeah god that'll hurt
14:36:27 <alise> hiato: pretty much: pointers in pascal are already restricted quite a lot, and I would imagine that buffers would work fine in most of the cases
14:36:29 <fax> oklopork do you like cosmology
14:36:33 <oklopol> i luv it
14:36:38 <fax> :/
14:36:39 <oklopol> what's cosmology
14:36:43 <alise> hiato: theory is "good enough for knuth, ..."
14:36:45 <oklopol> is it the science of stars
14:36:50 <alise> plus, I really hate malloc/free.
14:36:59 <alise> so not having them at all will be a relief; I won't feel obligated to use them!
14:37:24 <hiato> alise: heh, but ok. I too share a distrust with thos methods whose names we do noht mention, so ok then
14:37:50 <alise> I don't distrust them, I just find them so incalculably tedious that I find myself doing crazy things just to avoid them.
14:38:13 <alise> hiato: Packed arrays can obviously go.
14:38:14 <fax> antropic principle is religous?
14:38:29 <oklopol> what's that
14:38:29 <hiato> Naah, I _distrust_ them. Wouldn't give them house address in case we accidentally get overrun with junk
14:38:39 <alise> hiato: What about files? Is there any problem with removing the program statement and adding "file" as a new type instead of weird x^ variables?
14:38:54 <hiato> heh, but... but... but
14:39:08 <hiato> Well, let's try fermalise this
14:39:12 <hiato> *form
14:39:14 <hiato> see
14:39:30 -!- kar8nga has quit (Remote host closed the connection).
14:40:06 <alise> As shown in the example above, Pascal files are sequences of components. Every file has a buffer variable which is denoted by f^. The procedures get (for reading) and put (for writing) move the buffer variable to the next element. Read is introduced such that read(f, x) is the same as x:=f^; get(f);. Write is introduced such that write(f, x) is the same as f^ := x; put(f); The type text is predefined as file of char. While the buffer variable could be used
14:40:07 <alise> for inspecting the next character to be used (check for a digit before reading an integer), this concept leads to serious problems with interactive programs in early implementations, but was solved later with the "lazy I/O" concept.
14:40:13 <alise> I don't see how this shouldn't be solved with simply functions
14:40:44 <hiato> Depending on what you hate+ what I hate, I think we can find a better way to construct most of the existng types. As for I/O, we can come up with some clever def's and types based around buffers
14:41:07 <hiato> ah, it seems we agree then
14:41:11 <alise> Yes. Er, just out of curiosity, how attached are you to records?
14:41:16 <alise> (I know, I'm crazy! I just need to consider /everything/.)
14:42:00 <alise> I'll take that as "very".
14:42:15 <alise> Obviously n..m types are useful.
14:42:21 <hiato> Not at all. In fact, in my final exam for school i lost all the varks for using funky types and meesed up arrays instead of them. It's really not necessanry in a minmalist group
14:42:29 <alise> What about enumeration -- (a,b,c) types?
14:42:29 <hiato> records
14:42:31 <hiato> that is
14:42:52 <alise> Those are "nice" I guess but really... that's just a bunch of constants and an n..m type.
14:42:56 <alise> No rason to be part of the language.
14:42:58 <hiato> Can you find a time where they are absolutely necessary?
14:43:04 <hiato> Yep
14:43:04 <alise> Theoretically they are never.
14:43:07 <alise> I think I like records though.
14:43:21 <alise> Sets -- Perhaps they may be faster, but I'm not sure I lik ethem.
14:43:30 <hiato> Well, if you like them then we get to keep localised functions
14:43:37 <alise> *like them
14:43:41 <hiato> unlike knuth
14:43:41 <alise> hiato: Not even C has them, does it?
14:43:48 <hiato> Not sure
14:44:00 <alise> What is a localised function, exactly?
14:44:18 <hiato> You know, the whole not using C bit gets in the way every now and then :P
14:44:33 <hiato> Scoped
14:44:42 <alise> Right.
14:44:53 <alise> What has that got to do with sets?
14:44:56 <alise> Or am I parsing you wrongly?
14:45:21 <alise> Now. writeln. I don't like writeln because it's a variadic, polymorphic function that does different things depending on the types of each of its arguments.
14:45:23 <hiato> nothing at all, I was merely saying that if we compromise on records, we compromise on that too :)
14:45:26 <alise> In Pascal, this is absolutely impossible.
14:45:29 <alise> So writeln is absurd.
14:45:47 <hiato> Wait, not necessarily
14:45:49 <alise> However I don't think variadic functions are even very standard at all in Pascal.
14:45:55 <alise> hiato: Oh?
14:46:09 <hiato> Are we going to have overloaded functin defs?
14:46:25 <hiato> a la Delphi/FPC
14:46:27 <alise> hiato: You mean f(x) and f(x,y) and also for different types?
14:46:39 <hiato> yep
14:46:44 <alise> The only language I know of that does that is C++, I think.
14:46:51 <alise> CLOS does but that doesn't really count.
14:46:51 <hiato> specifically for types
14:47:29 <hiato> My vote is yes for them, because it's such an overlooked feature nowadays
14:47:54 <hiato> what wit auto casting and implicit types
14:51:17 -!- alise has quit (Ping timeout: 258 seconds).
14:51:28 -!- alise has joined.
14:51:49 <alise> <alise> Well, I think that a lot of overloading is misused.
14:51:49 <alise> <alise> For instance a function working on integers and the analogous function on the reals are often very different.
14:51:50 <alise> <alise> Such as division vs integer division.
14:51:50 <alise> <alise> Plus it complicates the compiler a lot.
14:51:50 <alise> What did I miss?
14:52:17 <hiato> Well, I missed that all, un moment por favor
14:52:45 <hiato> Hmmm, ok, I guess that is a valid point
14:53:20 <hiato> and through some quick resarch, I found that pascal has/had anoter mechanism to make writeln possible
14:53:25 <hiato> http://stackoverflow.com/questions/617654/how-does-writeln-really-work
14:53:42 <alise> now, the ancient problem of having to say
14:53:42 <hiato> procedure MyProc(args : array of const);
14:53:45 <alise> string = array [1..n] of char
14:54:08 <alise> and pick n
14:54:11 <alise> what should we do about that?
14:54:23 <hiato> Wait, what's the problem there?
14:54:32 <hiato> of, n as in var n?
14:54:35 <hiato> *oh
14:54:47 <alise> hiato: that array of const thing is just for delphi&co
14:54:48 <alise> also
14:54:51 <alise> it's that you have to pick n
14:54:52 <alise> for all strings
14:55:06 <hiato> FPC i take as nearly standard
14:55:41 <alise> FPC? Remember that I'm not a Pascalite. :)
14:55:51 <alise> FreePascal, I see.
14:55:56 <hiato> Ah, my bad: Free Pascal Compiler
14:56:34 <alise> So what have we agreed on. "program" sucks, separate file buffer things suck.
14:57:17 <hiato> aah, ok, as for string, the way I figure is to just use a shortStr = array [0..255] of char
14:57:27 <hiato> and build from there
14:58:00 <alise> But this has numerous disadvantages, over a hypothetical structure containing the length of the string, followed by a dynamically allocated block.
14:58:09 <alise> Say, can't files represent such a thing?
14:58:15 <alise> Who says they have to be bound to actual files...?
14:58:24 <hiato> yes, also, we will keep recordss, loclaised functions, no overloading, and buffer base IO
14:58:35 <hiato> yeah
14:58:42 <hiato> I like that idea actually
14:58:48 <alise> I didn't agree to localised functions! :-)
14:58:52 <alise> Not yet.
14:58:55 <hiato> Damn
14:59:02 <alise> Hmm, files don't support random access, though, do they?
14:59:07 <hiato> nope
14:59:12 <hiato> sequential
14:59:35 <alise> That's an issue for strings, then.
14:59:40 <alise> But how come files get to be infinite?
14:59:45 <hiato> which is not technically a problem, but just adds a lot of overhead
15:00:30 <hiato> They dont, reall,. In fact, IIRC, the FP for a file is restricted to cardinal
15:00:35 <alise> Not sure if you've realised this, but we're basically honing in on defining a slight subset of Oberon-2 http://www.statlab.uni-heidelberg.de/projects/oberon/kurs/www/Oberon2.Report.html :-P
15:00:42 <hiato> which is unsigned int32 in C I guess
15:00:57 <hiato> Never heard of it, but damn
15:01:16 <alise> Oberon-2 is Wirth's latest language in the Pascal series.
15:02:40 <hiato> this I dont like: Function = PROCEDURE(x: INTEGER): INTEGER
15:03:03 <hiato> it looks like Function is a type then
15:03:11 <hiato> which makes no sense
15:03:45 <alise> Yes it does.
15:03:48 <hiato> and the fact that PROCEDURE can return is a tad of putting for me
15:03:53 <alise> Function is the type of procedures taking an integer and returning an integer.
15:03:55 <hiato> *off-
15:04:22 <hiato> but that's meaningless, surel,?
15:04:25 <hiato> *y
15:05:38 <hiato> unless we do first class functions and need a type for them, but then it would really be nice to have pointers
15:06:19 <alise> I imagine Oberon has function pointers.
15:06:52 <fax> wow apparently evolution is better than general relavity?
15:07:29 <hiato> yugh, and oberon has a ridiculous expansion for n-dimensional arrays
15:07:47 <alise> how's it ridiculous
15:09:35 <hiato> ARRAY L0, L1, ..., Ln OF T ==> ARRAY L0 OF ARRAY L1 etc in Oberon. In the spirit of all that is Pascal, that should just be invalid.
15:09:36 <alise> hiato: anyway
15:09:43 <alise> ...why?
15:10:15 <hiato> alise: ... because that's just the way it is :)
15:10:23 <alise> Okay.
15:10:30 <alise> Anyway, opinion: the REAL type is named incorrectly.
15:10:40 <hiato> but, yes, anyway?
15:10:53 <alise> It can not even represent all rationals; it cannot represent a single irrational.
15:10:58 <alise> RATIONAL_APPROX is what it is.
15:11:27 <fax> what about karma
15:11:28 <fax> alise
15:11:35 <alise> fax: in what sense
15:11:38 <fax> do you beleive in chamelions?
15:11:44 <alise> what
15:11:44 <alise> lol.
15:11:52 <alise> now that's in my head
15:12:37 <hiato> Well, in all fairness, real reals have always been the job of external libs in any Pascal deriv
15:12:47 <alise> I doubt any of them were /real/ reals.
15:12:53 <alise> Can they represent sqrt(2) precisely? pi; all of it?
15:13:15 <alise> If they did, then they are "computable reals", not found much outside of abstract mathematics. They have several disadvantages, such as that equality always diverges if given two equal reals.
15:13:18 <hiato> yes, ofc not _actual_ reals
15:13:32 <hiato> gmp-esque
15:13:37 <alise> Right.
15:13:40 <alise> That's still rationals. :P
15:14:04 <alise> Incidentally, goal: the uber-Pascal's self compiler should be <10,000 lines. Including parser, everything.
15:14:05 <hiato> but if that is your gripe with the real type, then it's merely a matter of syntax
15:14:15 <hiato> In what lang?
15:14:20 <alise> self-compiler.
15:14:22 <alise> uber-Pascal.
15:14:23 <hiato> aaaah
15:14:25 <hiato> heh
15:14:27 <hiato> tralalalalaal
15:14:30 <alise> what
15:14:56 <hiato> I sand into the keyboard
15:15:01 <hiato> *sang
15:15:11 -!- hiato has quit (Quit: underflow).
15:15:14 <alise> o_O
15:15:44 -!- hiato has joined.
15:16:13 <alise> hiato: I wonder what the self-compiler should output.
15:16:22 <alise> Perhaps very simple bytecode in the style of Pascal compilers of old.
15:16:26 <hiato> alise: I died a ping death, what'd I miss?
15:16:32 <alise> Just "o_O".
15:16:36 <alise> Then a simple machine-specific compiler would compile this to, say, assembly.
15:16:54 <alise> Anyone know a good free text usenet server? Don't think my ISP provides.
15:19:47 <hiato> alise: heh, yeah, some 'junk' and a few bytes of import, then let's go fancy and huffman code the pascal, with delimeters for vars/const etc
15:20:14 <fax> alise how much quantum physics do you know
15:20:17 <alise> hiato: Oh, I was thinking way more than that: actually compiled to a pseudo-asm type dealie.
15:20:18 <hiato> damn my terrible coneection
15:20:18 <alise> fax: Not much.
15:20:24 <hiato> anyway, it was a nice idea in my head
15:20:29 <fax> alise we can learn it together
15:20:35 <alise> hiato: :P
15:20:43 <alise> fax: will you keep trying to find ways to relate things to dog, I mean god
15:22:29 <fax> alise, quantum physics has NOTHING to do with god
15:22:33 -!- hiato has quit (Quit: underflow).
15:22:37 <alise> fax: Thank god! Er...
15:24:12 -!- hiato has joined.
15:24:46 <hiato> Ok, let's hope this works, I have now tunneled with SSH just to get a better ping
15:43:04 <oklopol> when i wanna learn quantum physics i'll just take a course at uni
15:43:51 -!- hiato has quit (Quit: IPL finals).
15:45:04 <oklopol> what's ipl
15:56:17 -!- kar8nga has joined.
16:39:57 -!- Mathnerd314 has joined.
16:44:57 <MizardX> alise: Took a while to knit out all the bugs... http://pastebin.com/71FdS5ge <-- updated version of the previous program, now supporting negative numbers and subtraction.
16:45:26 <alise> MizardX: It's tricky business, isn't it.
16:45:58 <alise> MizardX: Do you think it would be fruitful to extend this to base 256?
16:46:02 <alise> Or thereabouts.
16:48:33 <MizardX> I have one for decimal numbers. It can calculate expressions with +, -, (, )
16:50:08 <MizardX> Ah, wait... It isn't finished
16:50:16 <alise> well, your binary functions trivially generalise
16:50:21 <alise> since the carry operation is all that matters
16:50:29 <alise> it's just for efficiency in programs, since unary is really slow and binary is not much better
16:50:40 <alise> could we calculate small factorials with base 255? (need ~ for negative)
16:54:54 <MizardX> Space optimization for sub(m,n): add(m,succ[invert[n]]).
16:55:13 -!- hiato has joined.
16:58:11 <MizardX> To do factorials, we need multiplication. To implement base-256 we need a case for every digit-digit-combination; some 65000 rows for each operation at least.
16:59:44 <alise> Presumably it would be computer-generated.
16:59:54 <alise> BTW, am I right in thinking there is no real obstacle to compiling Redivider?
16:59:54 <fax> computer programming
17:00:06 <alise> Code and data are firmly separated, and there's no dynamicness...
17:00:33 <MizardX> The regex implementation could be an obsticle, but not impossible.
17:01:01 <alise> You could use Google/Russ Cox's re2, since the spec doesn't require backreferences or anything.
17:01:06 <alise> That would be superfast.
17:01:11 <alise> MizardX: Would your parser be adaptable to this task?
17:02:00 -!- Tritonio_GR has quit (Ping timeout: 258 seconds).
17:03:25 <alise> MizardX: I'm thinking that a hard fail -- being an unrecoverable operation that terminates the entire program -- is just a printf-exit type dealie.
17:03:38 <alise> A soft fail is just, say, returning NULL so the whole program is effectively a chain of ||s.
17:08:08 <MizardX> Redivider is highly recursive, so a simple translation into C would have stack troubles.
17:08:45 <MizardX> The python implementation handles the stack itself.
17:08:58 <alise> True.
17:09:07 <uorygl> alise: ong of p
17:09:14 <alise> uorygl: Woot! The creator is here.
17:09:29 <alise> uorygl: I think that in Redivide, p[q] should soft fail, not hard fail, if p soft fails.
17:09:34 <alise> This would allow a lot nicer branching and stuff.
17:09:56 <uorygl> Too bad I don't remember anything about Redivider.
17:10:06 <alise> Look up the spec; http://esolangs.org/wiki/Redivider
17:10:08 * uorygl begins trawling.
17:10:14 <fizzie> I have a tiny bit of JavaScript that translates Redivider to JavaScript code, but it's probably very incomplete, and I don't remember the implementation strategy at all.
17:10:24 <alise> uorygl: Also, I think that in {a;b;c}, b and c soft failing should cause the whole thin to soft fail, not hard fail; yes, this means that backtracking becomes large, but PEG parsers do that too, and they have no problem (e.g. Parsec)
17:10:30 <alise> And it would make the language nicer for branching and stuff.
17:10:57 <uorygl> I think the very point of hard fail is to prevent backtracking from becoming large.
17:11:55 * uorygl looks at the spec and hopes it's not anything too embarrassing.
17:15:35 <alise> Backtracking becoming large is not really too much of a problem.
17:15:39 <alise> Parsec and the like do it.
17:16:05 <alise> uorygl: It's not embarrassing, it's one of the prettiest esolangs!
17:16:25 <uorygl> Well, I meant the spec itself.
17:16:30 <uorygl> I know the language is awesome. :P
17:16:44 <alise> The spec is pretty poor, but eh.
17:17:08 -!- jcp has joined.
17:19:39 <alise> uorygl: If Redivider had data structures a self-interp would be quite easy.
17:19:43 <alise> Apart from regexps.
17:20:08 <uorygl> Strings aren't good enough for you, I see. :)
17:21:57 <alise> uorygl: Not for representing all that :)
17:22:54 <alise> uorygl: I'm impressed how clean and readable Redivider code is, when all it really is is regexps and branching.
17:23:11 <alise> Although I think functions are a wart; having separate () and [] seems to me a wart that could be fixed.
17:23:25 <uorygl> Yeah, I agree that that part's kind of ugly.
17:23:51 <alise> Especially since deciding between f(x,y) and f(x)[y] is often hard; the latter is ugly in appearance but the former is ugly to use.
17:23:58 <alise> f[x,y], if that could be made to work somehow, would be ideal.
17:24:01 <uorygl> The solution is simple: remove (). :P
17:24:42 <uorygl> Well, sure, say that f[a,b,c,...,x] is syntactic sugar for f(a,b,c,...)[x].
17:24:52 <alise> But the semantics are different. That only helps the syntax.
17:25:37 <uorygl> You could say that f(a,b,c,...,x) is syntactic sugar for the same if f has one less argument than was actually given.
17:25:54 * uorygl shrugs.
17:27:38 <uorygl> Anyway, for backtracking, you could extend the language. Say that `this` means the same thing as this, except when this hard fails, in which case `this` soft fails instead.
17:28:04 <uorygl> So you have backtracking, but only when the programmer thinks it's a good idea.
17:28:42 <alise> That's just a kludge.
17:28:43 <alise> Make everything backtrack.
17:28:45 <alise> Problem solved.
17:29:56 <uorygl> I suppose since it's an esoteric language, you could say that any of the three solutions will work. :P
17:30:39 <MizardX> prolog uses "!" to cut off back-tracking inside a predicate.
17:30:39 <uorygl> I guess taking a really long time is usually preferable to halting with an error, isn't it.
17:31:56 <alise> Smite, and smitten; that thing is then smote.
17:34:47 <uorygl> Here's my non-esoteric programming language design slogan: put the programmer in a maximum-sexurity prison and give them all the keys.
17:35:21 <MizardX> What else would be inside the prison?
17:36:45 <uorygl> The standard library and computing tools.
17:37:20 -!- FireFly has joined.
17:37:30 <MizardX> pick up adder. use adder on bill and bob.
17:37:39 <alise> throw adder at various non-adder objects.
17:37:50 <alise> remark that snakes have learned incredible arithmetical abilities since last seen.
18:16:28 <alise> fax: hi
18:19:49 <fax> hello
18:22:23 <alise> fax: wanna specify what you meant by quoting for dependently typed / cas :/
18:22:58 <fax> it's obviou
18:22:59 <fax> it's obvious
18:23:10 <alise> it's not.
18:23:18 <alise> so tell me
18:29:27 -!- lament has joined.
18:34:34 -!- Sgeo_ has joined.
18:34:56 -!- Tritonio_GR has joined.
18:35:46 <alise> reals are [...] hard
18:37:08 -!- Sgeo has quit (Ping timeout: 240 seconds).
18:38:56 * Sgeo_ listens to someone chattering away in German :/
18:40:04 -!- tombom_ has joined.
18:40:55 -!- cheater3 has joined.
18:40:55 -!- cheater2 has quit (Read error: Connection reset by peer).
18:43:31 -!- tombom has quit (Ping timeout: 252 seconds).
18:44:25 -!- coppro has joined.
18:47:35 <Mathnerd314> got duct tape? :p
18:48:27 -!- MizardX has quit (Ping timeout: 260 seconds).
18:48:30 <hiato> Quick question: if a language were to apply a move-to-front transform on its instructions, would it be possible for it to be TC?
18:54:38 <alise> who knows
18:54:56 <alise> hmm any real-ish lib i write can't be self-contained, has to be integrated with the cas
18:55:04 <alise> because consider e.g. pi*SomeRandomF[pi/e]
18:57:25 <uorygl> Take Brainfuck. Add a move-to-front transform. Does this remove its TCness? If not, the answer to your question is yes.
19:00:07 <Sgeo_> uorygl, but it might remove BF's TCness, but another language specially equipped to deal with it might still be TC
19:00:16 <hiato> uorygl: heh, thanks, but I suspect it does
19:01:25 <alise> hiato: examine BCT.
19:01:26 <hiato> and, in fact, I can prove trivially that you can write a loop in BF-MTF that does do the same thig everytime, but as for hindering a a tag proof, ay, I'm not sure
19:01:28 <uorygl> I guess your question seems too vague to have a meaningful answer.
19:01:29 <alise> http://www.esolangs.org/wiki/BCT
19:01:33 <alise> it does a lot of bit jiggling too
19:01:41 <hiato> *does not
19:02:18 <hiato> alise: Will do
19:03:23 <alise> you know what would be fun?
19:03:30 <hiato> uorygl: Ok, I understand. Perhaps the question should've been, does applying MTF to a procedural language necessarily hinder it's ability to loop with predictable effects?
19:03:37 <alise> a program that outputs semantic-descriptions of esolangs
19:03:51 <alise> like, say, of a certain form; with say paramaterisable "arg count" / "complexity" or something
19:04:12 <uorygl> hiato: I see MTF as something you apply to strings, not languages.
19:04:13 * Sgeo_ holds his breath and opens VStudio for the first time in a bit of a while
19:05:10 <alise> MTF is something you do to genders!
19:05:31 <hiato> uorygl: it's an encoding scheme, ad as such can be used to encode the meanings of any tokens, say, in a programming language
19:06:01 -!- alise has left (?).
19:06:03 -!- alise has joined.
19:06:44 <uorygl> Well, can't you simply say that the first step in parsing the language is to un-MTF it?
19:07:26 -!- Rugxulo has joined.
19:07:40 <Rugxulo> moo
19:07:52 * alise wonders about such things.
19:07:56 <hiato> uorygl: sigh, ok. Again: does applying MTF to a procedural language necessarily hinder it's ability to loop with predictable effects?
19:07:59 <hiato> ehh
19:08:00 <hiato> sorry
19:08:06 <hiato> didnt't change that one
19:09:12 <hiato> does applying MTF, so as to encode instructions, to a procedural lang on a per token basis necessarily hinder it's ability to loop with predictable effects?
19:09:13 * uorygl attempts to type a g-with-caret and fails.
19:09:54 <Rugxulo> g with circumflex?
19:10:04 <uorygl> Right, sorry.
19:10:13 <Rugxulo> any reason? ;-)
19:10:25 <uorygl> hiato: do you mean if each instruction is actually a number n referring to the nth most recently executed instruction?
19:21:12 <alise> \6lkgh
19:21:17 <Rugxulo> <-- Ru?ulo
19:21:38 <pikhq> Rugxulo: You fail at Unicode.
19:21:42 <Rugxulo> hmmm, it looked right when I cut and pasted it ... oh well
19:21:56 <Rugxulo> it'd be easier within ERC / Emacs, but Opera ain't as comfortable for me
19:22:38 <alise> Nowadays, a word.
19:26:56 * Sgeo_ writes a short C++ program on his Nexus One
19:28:27 * Sgeo_ should do all his C++ homework on it
19:28:32 <Sgeo_> (j/k obviously)
19:30:29 <fizzie> Rugxulo: Did you happen to see what my static compiler made (because of a bug of it) out of your benchmark.bef?
19:30:52 <Rugxulo> not sure, maybe ...
19:31:12 <fizzie> Rugxulo: It basically turned it into what would be in C "foo: goto foo;".
19:31:16 <Rugxulo> did you hear that I wrote an B93 interpreter in Rexx?
19:31:32 <Rugxulo> so you can add it to your collection (and I'm still waiting for links to your Fortran and Forth ones) ;-)
19:31:44 <Rugxulo> infinite loop, yes, that sounds like what I saw in the logs
19:31:56 <fizzie> Rugxulo: I didn't have the "pop 0 from empty stack" logic in place yet, so the starting value for the "-= 100" loop was "undef", and therefore it removed the whole computation.
19:32:04 <fizzie> Ah, you logread thoroughly.
19:32:21 <Rugxulo> sometimes, not necessarily all the math stuff alise is fond of ;-)
19:32:26 <fizzie> Didn't notice the Rexx one; I did notice I had been highlighted re mooz's Algol-60 stuff.
19:32:29 <fax> augur?
19:32:39 <alise> Oh come on, nothing I do counts as real mathematics.
19:34:07 <Rugxulo> in fairness, my benchmark is pretty lame ... I'm sure there are better things to test than subtraction (mul or div, perhaps)
19:35:00 <fizzie> http://pastebin.com/WUY8YyjL -- there's that Forth one, though it's horribly lame; I'm ashamed of it. I seem to have done it seven years ago; I could do better now! (I hope.)
19:36:31 <Rugxulo> why be ashamed? as long as it works ... !
19:36:37 <fizzie> http://pastebin.com/h2eYkH2q -- Fortran; also quite bad, I presume.
19:36:42 <fizzie> I don't even know if these work right.
19:36:48 <fizzie> Away to make some dinnur now.
19:37:37 <fizzie> The big GOTO instruction in the Fortran one is funny, I think.
19:37:47 <Rugxulo> here's the Rexx one: http://www.pastebin.org/177657
19:38:43 * alise wonders what the Christus Rex line is there for
19:38:56 <alise> oh Rexx
19:38:56 <alise> har har
19:40:30 <alise> Dance! Everybody-- dance! O;
19:40:31 <Rugxulo> I wonder which Fortran variety this is (77?)
19:40:37 <alise> dance! Everybody-- dance!
19:40:57 <Rugxulo> BTW, fizzie ... thanks!! :-)
19:41:22 <fizzie> 77, I believe.
19:41:33 <fax> why isnt augur
19:41:41 <Rugxulo> what Forth is this for (or is it ANSI)?
19:41:51 <alise> fax: he's busy doing things, presumably
19:41:53 <alise> Rugxulo: *ANS
19:41:57 <fax> :(
19:42:20 <alise> Rugxulo: American National Standard Forth != ANSI
19:42:27 <alise> it's an ISO standard though, roughly
19:42:36 <Rugxulo> er, okay
19:42:39 <fizzie> Rugxulo: I think I've tested it with gforth, but I used the ANS Forth standard doc as a reference, so it might even be a bit portable.
19:42:47 <Rugxulo> ANS, ANSI, ISO, tomato, tomahtoe ... blah
19:42:57 <alise> ANSI is an organisation, ANS is just a name of a forth standard
19:42:58 <alise> HAHA, gandi.net added "no bullshit" to their header line
19:43:02 <alise> going all out I guess
19:45:23 <Rugxulo> bah, whatever crumbs of Forth I knew, I've forgotten
19:46:59 <fizzie> Hmmn, I seem to have done the same ANSI mistake there;
19:47:04 <fizzie> \ ANSI standard word READ-LINE defined here since pforth doesn't have it
19:47:16 <fizzie> Also it mentions a "pforth", apparently it was that instead of gforth.
19:47:47 <fizzie> I've been dabbling with gforth lately; wrote some socket bindings (the existing were silly), and a JSON parser in it.
19:49:27 <alise> linuxy guys: what would you put on a server that you don't want any crap on at all, so that it's administratable without dealing with a bunch of debian-style administration cruft?
19:49:32 <alise> i'm thinking arch, maybe
19:49:34 <Rugxulo> pforth? doesn't ring a bell, but then again there are a billion !
19:49:54 <pikhq> alise: Slack?
19:50:08 <alise> pikhq: I'd go Slackwise, but I kinda like... packages...
19:50:22 <pikhq> Slackware has packages. Just no... Dependencies...
19:50:23 <fizzie> Slack's what I was going to say too; at least it doesn't get in your way at all.
19:50:36 <Rugxulo> Slackware or Slax??
19:50:36 <alise> pikhq: That's not really... a package... :P
19:50:40 <fizzie> I think pForth's reasonably well-known; http://www.softsynth.com/pforth/
19:50:46 <pikhq> Sure it is.
19:50:55 <alise> slax is nothing to do with servers afaik
19:50:55 <pikhq> Just no package management. :)
19:51:00 <Rugxulo> okay, I do recognize the webpage
19:51:00 <alise> pikhq: well, i'd like package management ;P
19:51:03 <alise> *:P
19:51:05 <alise> slackware is close mind
19:51:07 <alise> the problem is
19:51:15 <alise> even slackware and arch have to be configured to get rid of their usual crap
19:51:15 <Rugxulo> but you know ... everybody has their own Forth, it seems
19:51:23 <pikhq> Fine, fine. LFS?
19:51:31 <Rugxulo> at least Slackware has 64-bit version now
19:51:50 -!- oerjan has joined.
19:51:51 <alise> all i want is some standard non-sucking shit like qmail and the like, no /etc/init.d rubbish, no really pointless programs installed
19:51:59 <alise> that's pretty much it
19:52:07 <pikhq> Uh, Slackware.
19:52:14 <alise> ... plus package management.
19:52:17 <pikhq> Closest you're going to get this side of BSD.
19:52:18 <alise> Besides, doesn't Slackware even use HAL now?
19:52:18 <oerjan> but but - pointless programming is all the rage!
19:52:23 <alise> Oh. BSD.
19:52:28 <Rugxulo> "copyright 3DO", heh
19:52:28 <alise> I Forgot About That.
19:52:39 <alise> NetBSD, perhaps.
19:52:41 <alise> But I don't like ports...
19:52:43 <pikhq> Of course, you could just build Alisix.
19:53:03 <alise> You're right BSD would be nice, but I dislike ports.
19:53:07 <Rugxulo> FreeBSD seems popular on servers
19:53:21 <alise> Alisix would be nice but eh.
19:53:27 <alise> Save my efforts for the long-term things.
19:53:32 <alise> A Linux distro is not worth the effort.
19:53:52 <pikhq> Pity stali hasn't a release.
19:54:04 <pikhq> Would be nice for the occasional really simple system build.
19:54:14 <alise> I think sta.li may be a bit further than I'd want for a server: it has /no packages/, all systems have exactly the same set...
19:54:19 <alise> and there is no choice, only one of each type of app
19:54:27 <alise> and i've have to manually compile all the other stuff
19:54:49 <pikhq> You could just run Buildroot.
19:55:04 <pikhq> Which is uclibc+Busybox's distro builder thing.
19:55:10 <alise> I admit you have got me tempted by the BSDs... is there an alternative to ports?
19:55:19 <pikhq> Portage.
19:55:26 <alise> But that's-
19:55:46 <alise> (-Gentoo?)
19:55:48 <pikhq> Gentoo/FreeBSD is FreeBSD using Portage instead off Ports.
19:55:58 <alise> I'll pass. I think.
19:56:03 <alise> Binaries are sort of nice. I think.
19:56:10 <pikhq> (yes, it is a completely normal FreeBSD system)
19:56:34 <pikhq> I think it uses the Gentoo init script setup, and portage... And that's the sum total of differences.
19:56:35 <Mathnerd314> hmm... is the author of defcalc around anywhere?
19:56:44 <alise> Mathnerd314: the wiki
19:57:00 <alise> pikhq: the thing that gets me is that nobody does server editions any more
19:57:03 <pikhq> Oh yeah. Ships with bash by default, because many parts of Portage assume bash.
19:57:03 <Rugxulo> aliseBinaries are sort of nice. I think.
19:57:06 <alise> like, you get all this pointless desktop crap.
19:57:07 <Rugxulo> pkgsrc?
19:57:15 <alise> that you just don't need
19:57:16 <Rugxulo> pkg_add?
19:57:18 <alise> HAL -- completely useless on a server
19:57:21 <alise> etc
19:57:33 <pikhq> alise: Gentoo actually still has "server editions".
19:57:45 <alise> pkgsrc -- is that widely used?
19:58:02 <alise> pikhq: Mm... but I just can't bring myself to buy into the USE flags, 24-hour-install culture.
19:58:04 -!- hiato has quit (Quit: Weather).
19:58:11 <pikhq> That's what NetBSD *uses*.
19:58:20 <alise> Not if you use binary packages.
19:58:25 <alise> And NetBSD comes as binaries, not source.
19:58:29 <pikhq> pkgsrc, that is.
19:58:32 <Mathnerd314> alise: is he actually on the wiki?
19:58:41 <pikhq> pkgsrc is NetBSD's ports-alike.
19:58:42 <alise> Mathnerd314: yes; after all, he wrote the article.
19:58:45 -!- kar8nga has quit (Remote host closed the connection).
19:58:52 <pikhq> Which happens to work on a large number of Unixes.
19:58:58 <alise> hmm
19:59:19 <oerjan> <alise> the actual (\x. !magic x x) construction is due to oerjan; though it's "obvious" once you've seen it
19:59:25 -!- iamcal has quit (Ping timeout: 252 seconds).
19:59:32 <pikhq> And yes, it has binaries.
19:59:49 <oerjan> it's just the fixpoint theorem of lambda calculus, really. as is every other diagonalization, ever. well, more or less.
19:59:53 <pikhq> Oooh. And you can use it on Slackware.
20:00:35 <oerjan> so once you've seen a handful of them, it's obvious.
20:00:48 <pikhq> http://kuparinen.org/martti/comp/slackware/slackware.html
20:00:55 <oerjan> fax: ^
20:01:00 <pikhq> I do believe that actually produces Linux/NetBSD.
20:01:05 <pikhq> Erm.
20:01:05 <pikhq> NetBSD/Linux.
20:02:00 <alise> pointless
20:02:06 <fax> hi oerjan
20:02:13 <oerjan> fax: see above
20:02:57 <Mathnerd314> alise: like, prove to me that he hasn't dropped off the face of the earth sometime in the past month
20:02:58 * Asztal hates pressing ctrl-shift-backspace by accident.
20:03:06 <Asztal> I do it worryingly often.
20:03:15 <alise> Mathnerd314: can't.
20:03:18 <alise> use the email-this-user feature
20:03:26 <alise> Asztal: disable that key
20:03:56 * Sgeo_ ALMOST implemented a search through a BST as though it was merely a tree
20:04:02 <fax> I can't solve my equstion :(
20:04:04 <Sgeo_> *facepalm*
20:04:12 <oerjan> fax: what equation?
20:04:21 <Sgeo_> It's even more work to implement it that way
20:04:27 * oerjan isn't reading through all the logs today, just searching for his nick
20:04:27 <fax> oerjan, (x-2)(x-3)(x-7)=0
20:04:40 <Mathnerd314> which ring?
20:04:40 <oerjan> fax: um, x=2, 3 or 7?
20:04:51 <fax> I tried to solve it using galois theory but I got the wrong answers
20:05:27 <oerjan> fax: if it's a field then a product being zero <=> one of the factors is zero
20:05:33 <oerjan> otherwise, what Mathnerd314 said
20:05:43 <fax> here is my attempt http://www.pasteit4me.com/413001
20:05:47 <fax> hm
20:06:00 <fax> that is unreadible if you don't have the steps I am following
20:06:25 <fax> I don't know why it doesn't just work!
20:06:28 <alise> http://www.wolframalpha.com/input/?i=(x-2)(x-3)(x-7)=0
20:07:03 <oerjan> fax: oh you mean extracting that from the original polynomial? yeah i guess that's supposed to be galois theory. unfortunately i don't remember that part.
20:08:03 <oerjan> alise: i think fax was a _little_ unclear on what he was actually trying to do there.
20:08:12 <alise> quite
20:08:37 <oerjan> wait, or is that she nowadays
20:08:47 * Rugxulo wonders if everybody here is studying mathematics at university
20:08:53 <fax> it's (1/3)(s1 + y + z)
20:09:02 <alise> she i believe.
20:10:11 <lament> i'm studying mathematics in #not-math
20:10:21 <oerjan> lament: that's not allowed!
20:10:25 <oerjan> horrible!
20:10:32 * alise punches lament
20:10:55 <oerjan> unless it's the math of "not". in which case the above diagonalization would be relevant.
20:11:37 * Sgeo_ wonders if he's abusing continue and break
20:11:45 <fax> maybe I got s_2 wrong
20:12:09 <oerjan> breaking and continuing sounds like abuse in itself, i'd think
20:14:10 <uorygl> I'm studying mathematics at university!
20:14:29 <Sgeo_> http://codepad.org/brm0TsGn
20:14:48 <uorygl> Let me rephrase that.
20:15:03 <uorygl> I'm attempting to get good marks in mathematics at university!
20:15:11 * Sgeo_ sees how he could change things to not use continue
20:15:14 <Sgeo_> But why bother?
20:15:22 <Mathnerd314> Sgeo_: you could use a break in the first to make it more consistent
20:16:16 <Mathnerd314> then it would be a while(true)
20:18:15 <uorygl> Use Haskell, where if you want continue and break, you have to write them yourself!
20:18:39 <Mathnerd314> that would make everything way too easy
20:18:49 <pikhq> Pretty easy to do, though.
20:19:12 <pikhq> Just write a new monad, or do it in continuations.
20:19:26 <pikhq> Or even some Template Haskell.
20:19:34 <oerjan> Sgeo_: you could use else break; then the continue's would be unnecessary. fwiw.
20:19:35 <uorygl> Yeah, continuations make it possible.
20:19:45 <Mathnerd314> pikhq: he'd just do some pattern matching with recursion
20:19:48 <alise> CONTINUATIONS MAKE EVERYTHING POSSIBLE
20:20:02 * alise wonders why there's sprunge.us, taking pastebin input on HTTP; but no "nc paster.org"
20:20:05 <pikhq> Continuations are the ultimate in flow control, so yeah.
20:20:33 <pikhq> alise: Beats me.
20:20:46 <Mathnerd314> Sgeo_: why can't you just return a bool instead of passing in a reference?
20:20:48 * alise is considering registering uti.li for a bunch of little-utilities
20:21:03 <alise> $ nc uti.li (whatever the lowest unused port number is) <file
20:21:04 <Sgeo_> Mathnerd314, because this is what the professor wants, I think
20:21:09 <alise> $ somecmd | nc uti.li portn
20:21:16 <pikhq> Still, Sprunge is pretty nice when you stick the small curl line in a script in ~/local/bin/.
20:21:20 <Mathnerd314> Sgeo_: what class?
20:21:24 <alise> Yes, but it's still highly unoptimal!
20:21:32 <pikhq> Yes.
20:21:32 <alise> nc is perfect because the API is there in EVERY language, more or less.
20:21:39 <alise> If it can open a socket, you can do a paste in a few lines.
20:21:53 <pikhq> nc is perfect because it's the simplest damned networking scheme.
20:21:59 <pikhq> "Send bits over line"
20:22:00 <Sgeo_> Mathnerd314, data structures
20:22:06 <alise> s = opensock("uti.li", portn); writesock(s, "...paste stuff..."); readsockline(s, &r); closesock(s);
20:22:13 <alise> /* r is now url to paste */
20:22:27 <alise> The only problem with uti.li is that I keep typoing it!
20:22:30 <alise> It's hard to type...
20:22:36 <alise> 2/TCP,UDP Management Utility Official
20:22:40 <alise> Who cares about that?
20:22:42 <alise> Does anything actually bind it?
20:22:56 <uorygl> Can nc do UDP?
20:23:02 <alise> Yes.
20:23:03 <Mathnerd314> Sgeo_: you're writing a binary tree?
20:23:03 <pikhq> Yes.
20:23:13 <alise> So does anything bind 2/tcp?
20:23:26 <alise> If not, well, `alias paste=nc uti.li 2` now!
20:23:28 * pikhq looks
20:23:28 <Mathnerd314> Sgeo_: is it required to be in C++?
20:23:32 <Sgeo_> Yes
20:23:42 <pikhq> Nothing well-known.
20:23:49 <alise> Perfect then.
20:23:58 <alise> Hey, I could put one of the oldschool multiuser unix games onto another port.
20:24:00 <pikhq> It's reserved and completely and utterly unused.
20:24:12 <pikhq> 4 is officially unassigned.
20:24:12 <alise> Have some expression evaluators/etc. somewhere over HTTP...
20:24:21 <alise> Host some useful bots...
20:24:25 <alise> maybe some sort of wiki thing
20:24:29 <oerjan> pikhq: that's what they _want_ you to think
20:24:31 <alise> Could be a nice little domain.
20:25:16 <pikhq> A handful of the more useful daemons...
20:25:44 <pikhq> Heck, stick some of the retarded throwaway ones there too.
20:25:45 <alise> Some CAS interface thing, maybe.
20:25:50 <alise> Because Wolfram Alpha is a bit naff.
20:25:55 <pikhq> Echo, QotD, character generator...
20:26:02 <pikhq> TIME
20:26:06 <alise> AliseCAS: Because Wolfram Alpha Is A Bit Naff(TM).
20:26:07 <oerjan> `define naff
20:26:17 <HackEgo> * Considered to be poor taste; Bad; tasteless; Something that is poorly thought out, doesnt really work, or is otherwise not very good; Heterosexual \ [20]en.wiktionary.org/wiki/naff \ * An English surname
20:26:17 <alise> HACKEGO CANNOT HELP YOU NOW
20:26:23 <alise> Heterosexual? XD
20:26:32 <alise> Wolfram Alpha is a bit heterosexual.
20:27:00 <oerjan> you don't say.
20:27:15 <alise> isn't wolfram gay?
20:27:21 <alise> googling says no
20:27:44 <pikhq> So, quite naff.
20:27:44 <oerjan> who could stand to live with him, man or woman?
20:27:47 <alise> you know, wolfram alpha would be pretty neat if it was more strict in what it accepted ironically
20:27:51 <alise> oerjan: his clone
20:28:06 <alise> masturbation has never been so incestuous
20:28:16 <oerjan> alise: i think that might end in an explosion
20:28:24 <alise> yes. BUT OF WHAT KIND...
20:28:27 <alise> ahem
20:28:27 <alise> anyway
20:28:30 <alise> moving on
20:28:32 <oerjan> involving gamma rays, perhaps
20:29:16 <alise> pikhq: Clearly it should expose Hunt the Wumpus on some port.
20:29:22 <Ilari> Grr... Apt-get nowadays first tries IPv4 and then falls back to IPv6. :-/
20:29:38 <alise> Which suggests a more typeable domain name along the lines of "nick-nacks"; it'd be a little repository of mostly-fluff.
20:29:50 <fizzie> Ilari: They've seen too many brokenly configured IPv6 systems, I guess.
20:30:20 <fizzie> And meh; I got an apparently-working fungot (at least the ^bf command worked when I pointed it to a listening nc) as a x86-64 executable out of that compiler of mine, but if I compile it as a 32-bit executable (the real fungot doesn't run on x86-64 hardware) it segfaults on startup.
20:30:20 <fungot> fizzie: you can break before the call to throw-failure." page 7, under heading 5, evaluation. scheme, or doing a side effect
20:30:45 <fizzie> fungot: I appreciate you trying to help, but I'm not sure that's quite it.
20:30:46 <fungot> fizzie: and too, and these are people who are brave enough to do it
20:31:05 <alise> Apparently n.kn is available.
20:31:06 <Ilari> This machine in question has broken IPv4 connectivity (but IPv6 connectivity works)... :-))
20:31:14 <alise> Saint Kitts and Nevis!!!!!
20:31:16 <Rugxulo> doh, silly typo in the Rexx B93 thingy: "do ; " (shouldn't have that semicolon)
20:31:38 <fax> I solved it!
20:31:55 <fax> you guys were right, the roots are 2,3,7
20:32:09 <alise> well... duh
20:32:09 <alise> :P
20:32:17 <oerjan> fax: erm, you _said_ it in the beginning, sheesh
20:32:20 <oerjan> essentially
20:32:27 <fax> yes but I solved it using a different method
20:32:55 <alise> I cannot believe n.kn is available! I wonder how much it costs
20:33:11 <oerjan> n kroner
20:33:13 <fax> http://www.pasteit4me.com/414001
20:33:17 <alise> Reserved/Not Available
20:33:18 <oerjan> as n -> infinity
20:33:18 <alise> bastards
20:33:20 <fax> what's n.kn?
20:33:25 <alise> fax: a domain name
20:33:50 <alise> I just wish uti.li was easier to type; it's really short and sounds nice + is memorable.
20:33:57 <alise> But typing it, at least on QWERTY, is like a tongue-twister for your hands.
20:34:03 <alise> uti - stumble - ,. - li
20:34:23 <alise> because your fingers have to bend terribhorribly
20:34:24 <fizzie> uti.li/ties, the best place to shop for ties.
20:34:38 <alise> :D
20:35:45 <Rugxulo> use.ful ... easier to type
20:35:54 <alise> .ful doesn't exist though.
20:36:01 <alise> THAT IS THE ONE FLAW WITH YOUR PLAN
20:36:03 <Rugxulo> I thought so ... oh well
20:36:20 <pikhq> alise: Clearly.
20:36:56 <alise> Hmm, it'd be really nice to have a bot in here hooked up to a competent CAS.
20:37:20 <fax> alise
20:37:24 <alise> We get into the more... shall we say, abstract side of computing ... and each of us opening a Haskell buffer and scribbling away to get an approximation every time we need a calculation is a bit sucky.
20:37:25 <fax> I have parigp installed
20:37:35 <alise> fax: okay
20:37:49 <fax> hi
20:37:55 <alise> xD hi
20:38:25 <alise> Of course the issue with hooking a bot up to a CAS is that most of the half-decent ones -- namely Mathematica and Maple -- cost.
20:38:46 <alise> And I'm not sure how licensing would go if other people are on the server.
20:38:51 <fax> I want to write a (very basic) CAS
20:38:53 <alise> (And I'm not sure pirating it and then exposing it is such a grand idea.)
20:38:55 <alise> (Axiom is alright, I gather, and Maxima is... you know... well, it works sometimes...)
20:39:03 <fax> just something that will do basic calculations that I don't want to do myself
20:39:12 <alise> fax: I want to write a (very advanced) CAS
20:39:35 <alise> with the important property of "not sucking"; one missing from all major CASs
20:39:38 <alise> especially mathematica.
20:39:41 <alise> it lacks not sucking in droves.
20:39:56 <alise> (this is equivalent to sucking; i guess i do accept ~~p->p after all)
20:40:42 <fax> of course you accept it for decidible predicated
20:40:45 <fax> s
20:40:49 <alise> yes :P
20:40:51 <oerjan> alise: that's a hasty generalization. i think you just default to things sucking unless proved otherwise.
20:41:04 * oerjan snickers
20:41:05 <alise> oerjan: have you ever used mathematica?! :-)
20:41:13 <fax> help me ;
20:41:21 <oerjan> i don't think so
20:41:21 <alise> Error: no help found for topic "me".
20:41:25 <fax> I have a math probluem
20:41:28 <fizzie> Mhm. The compiled bot connected to freenode okay, and it answers to "bf" and "ul" commands in privmsg just fine, but it doesn't seem to accept my authority; the "raw" command doesn't do anything.
20:41:28 <alise> oerjan: ah, you lucky bastard
20:41:34 <alise> it taunts you in, it shows pretty pictures
20:41:36 <alise> then it lags, it crunches
20:41:37 <alise> it fails
20:41:39 <alise> it errors
20:41:41 <alise> it unreliabelises
20:41:42 <alise> it sucks
20:41:58 <alise> fizzie: This is the final stage of sentientosity...
20:42:02 <alise> Nice knowing you! FOOOOOOOOOOM
20:42:07 <alise> My these paperclips are ni
20:42:30 -!- Rugxulo has quit (Quit: Rugxulo).
20:42:42 <oerjan> the paperclips who say ni
20:43:03 <alise> fax: the problem with writing a good CAS is that you end up having to write most everything else with it
20:43:14 <Mathnerd314> Sgeo_: my proposal: http://codepad.org/0BathdOv
20:43:26 <oerjan> alise: it's not so bad, in fact the universe turned into paperclips _ages_ ago.
20:43:48 <alise> you need to write a good typesetting system, so you can integrate it perfectly with your language; you need to write a good editor, to write stuff in; you need to write a good document editor (it has to be the same as the former two things) suitable for writing and publishing entire documents in with mathematical code interspersed
20:43:49 <alise> etc
20:43:51 <oerjan> it's just the paperclips organized to make a simulation.
20:43:52 <Mathnerd314> Sgeo_: should be more useful than yours for the rest
20:43:55 <Sgeo_> Mathnerd314, that looks.. unhelpful
20:44:02 <Sgeo_> Oh, I see
20:44:07 <alise> implementing a good cas is basically implementing the entirety of mathematical discipline
20:44:16 <alise> oerjan: wow, you turned into wolfram!
20:44:57 <alise> hmm, I'd like to make a Connection Machine-inspired OS, where the whole thing is N-in-the-range-of-billions entirely-parallel machines that operate on one bit at a time, with communication pathways between them
20:45:06 <alise> so everything becomes a task in weaving communication together...
20:45:09 <alise> erm not OS
20:45:10 <alise> esolang
20:46:01 <alise> http://www.esolangs.org/forum/ 1 to 5 are spam; all the same question/response format advertising some product
20:46:49 <oerjan> alise: i mentioned that already.
20:46:55 <fax> I want a cool CAS
20:47:14 <fax> it's basically a calculator that has better numbers than just integers
20:47:19 <fax> and floats
20:47:20 <Mathnerd314> fax: does Mathematica work? :p
20:47:28 <alise> mathematica is so shit.
20:47:29 <oerjan> assuming there are no new ones, rss says no
20:47:49 <fax> alise do you think that handwriting recognition could really work?
20:48:01 <alise> i dunno...
20:48:09 <alise> and I don't even know whether it'd be faster than typing
20:48:11 * oerjan checks for comments
20:48:13 <alise> just have to try eh?
20:48:22 <alise> mathematicians like writing on paper and it usually isn't /too/ messy, so...
20:48:59 <alise> fax: also imo: the important symbolic-computation part of a CAS is basically a partial evaluator that stores infinite-precision values as free variables, accompanied with special-cases in every relevant function over these free variables
20:48:59 <alise> or whatever
20:49:01 <alise> I dunno
20:49:13 <alise> it's just having an atomic symbol behave according to certain rules, then calling it a real
20:49:22 <fax> I don't think I agree with that
20:49:26 <alise> plus some approximation function that takes an expression and approximates it numerically to arbitrary precision
20:49:27 <fax> what you are talking about sounds like just one approach
20:49:32 <fax> and I have a slightly different one in mind
20:49:33 <alise> fax: well, CAS = /symbolic/
20:49:41 <alise> if you just mean a computer program that does algebra, well
20:49:46 <alise> yes that technically satisfies (expand CAS)
20:49:49 <fax> well yeah as a starting point
20:49:50 <alise> but you know how acronyms and names go
20:50:03 <alise> I wouldn't call anything that wasn't symbolic a CAS
20:50:16 <alise> ...which is why i'm thinking a lot about how to unify symbolic term rewriting and dependently-typed functional languages
20:50:19 <Mathnerd314> alise: why is mathematica shit? I can only find 2 results on google for that
20:51:09 <alise> Mathnerd314: It entices you in with pretty pictures and the like, but -- and ais523, winner of the Wolfram Prize, sufferer under Mathematica can attest to this -- one, it's coded shittily. It's basically unoptimised tree rewriting. The compositions of the C primitives that Wolfram Research expect/want you to do are blazing. Change one tiny little thing? Glacial.
20:51:18 <alise> I mean glacial: Mathematica is either insanely fast, or unbelievably slow.
20:51:33 <fax> without knowing t1,t2,t3
20:51:44 <alise> Also, for an advanced mathematical CAS a large portion of its function library is not-so-mathematical things like image processing and the like.
20:51:51 <alise> Also, the GUI is laggy on a lot of machines.
20:51:58 <alise> On Linux it's so ridiculously laggy that I find it unusable.
20:52:05 <fax> primarily I just want to calculate answers
20:52:06 <alise> Finally, it costs far too much.
20:52:12 <fax> a useable interface can come later
20:53:06 <alise> Mathnerd314: conclusion: Mathematica sucks.
20:53:10 <alise> From what I've heard Maple is alright.
20:54:21 <Mathnerd314> big, slow, expensive... ok
20:54:28 <alise> Big is not such an issue.
20:54:45 <alise> But very slow, creates hype and then fails to live up to it, and expensive are the main things.
20:55:14 <oerjan> it creates so much hype it slows down the computations!
20:55:15 <fax> basically mathematica
20:55:22 <fax> is better than lisp
20:55:23 <fax> .
20:55:43 <Mathnerd314> well, expensive -> big, so that makes sense
20:55:53 <Mathnerd314> and optimization is harder for big things
20:55:55 <alise> fax: lol wat
20:57:25 <fax> hey CAS users
20:57:35 <fax> I have a challenge for you (i.e. solve this problem for me)
20:58:09 * Mathnerd314 waits
20:58:30 <alise> well I have maxima installed right now... not that that will do any good
20:58:38 <alise> fax: come on
20:58:48 <fax> oh you guys will actually try it?
20:58:54 <alise> yes
20:59:05 <fax> okay let w = e^(2ipi/3) so that w is a primitive cube root of unity,
20:59:34 <fax> let y = t_1 + w*t_2 + w^2*t_3 and z = t_1 + w^3*t_2 + w*t_3
21:00:00 <alise> t_n are unknown yeah?
21:00:06 <fax> yes they are just some variables
21:00:17 <fax> now I have a theorem that says y^3 + z^3 and y^3 * z^3 are both in Q.
21:00:32 <alise> sec
21:00:48 <fax> Extra informaton:
21:00:55 <alise> fax: am i meant to encode this theorem?
21:01:09 <fax> no just calculate the values of y^3 + z^3 and y^3 * z^3
21:01:29 <alise> how? you have free variables
21:01:54 <fax> t_1,t_2,t_3 are roots of t^3 - s1 t^2 + s2 t - s3 = 0, where s1 = t1 + t2 + t3, s2 + t1*t2 + t1*t3 + t2*t3, s3 = t1*t2*t3
21:02:17 <alise> wait t1 = t_1 here?
21:02:18 <fax> 1 + w + w^3 = 0 or w + w^2 = -1
21:02:21 <fax> oops, yeah
21:02:27 <fax> didn't mean to switch notations
21:02:41 <alise> well i will try but i don't think maxima is up to this
21:02:59 <alise> well there's find_root... singular...
21:03:25 <alise> hmm i wonder could i just use solve to do this?
21:04:05 <alise> s1 = t1 + t2 + t3, s2 + t1*t2 +
21:04:06 <alise> that should be = right
21:04:08 <alise> s2 = t1
21:05:16 <alise> (%i13) allroots(t^3 - s1 * t^2 + s2 * t - s3 = 0);
21:05:16 <alise> `allroots': polynomial not univariate: (s3, s2, t, s1)
21:05:16 <alise> -- an error. To debug this try debugmode(true);
21:05:17 <alise> fax: sorry.
21:05:17 <HackEgo> No output.
21:05:43 <oerjan> alise: the roots are given by his s1 =
21:05:46 <oerjan> t1 + t2 + t3, s2 + t1*t2 + t1*t3 + t2*t3, s3 = t1*t2*t3 equations
21:05:50 <fax> well start by multiglying out y^3 + z^3
21:05:56 <fax> and them simplify it down to a rational
21:06:06 <oerjan> *s2 = in there
21:06:12 <alise> oerjan: actually i just have no idea how to tell maxima all this
21:06:17 <alise> so i give up, pretty much
21:06:48 <fax> urgh you haven't even tried
21:06:53 <fax> there is no root finidng involved
21:06:59 <alise> yeah i know
21:07:04 <fax> just multiply out y^3 + z^3
21:07:05 <alise> but a cas sucks if it can't work it all out for you.
21:07:07 <fax> you will get something huge
21:08:00 <alise> Plus Maxima is so hard to use with its ugly output.
21:08:21 <Mathnerd314> fax: got something huge: http://www.wolframalpha.com/input/?i=%28t_1+%2B+w*t_2+%2B+w^2*t_3%29^3+%2B+%28t_1+%2B+w^3*t_2+%2B+w*t_3%29^3+with+w+%3D+e^%282+i+pi+%2F+3%29
21:08:23 <fax> if your computers can't do this I will have to figure it out myself..
21:08:41 <alise> see, just outsource it to web 3.0
21:08:43 <alise> problem solved
21:08:52 <alise> even did the subscript. clever wolfram alpha
21:09:05 <alise> brb
21:09:30 <fax> Mathnerd314: well there is a 3 in there which should be a 2
21:10:04 <Mathnerd314> well, change it and press enter ;-)
21:10:36 <Mathnerd314> it's real if t1-t3 are real
21:11:08 <Mathnerd314> same for *
21:11:30 <Mathnerd314> good enough?
21:11:51 <Mathnerd314> http://www.wolframalpha.com/input/?i=%28t_1+%2B+w*t_2+%2B+w^2*t_3%29^3+*+%28t_1+%2B+w^2*t_2+%2B+w*t_3%29^3+with+w+%3D+e^%282+i+pi+%2F+3%29
21:12:09 <Mathnerd314> http://www.wolframalpha.com/input/?i=%28t_1+%2B+w*t_2+%2B+w^2*t_3%29^3+%2B+%28t_1+%2B+w^2*t_2+%2B+w*t_3%29^3+with+w+%3D+e^%282+i+pi+%2F+3%29
21:16:02 <Mathnerd314> fax?
21:16:09 <fax> hi
21:16:40 <fax> that "Alternate form assuming t1, t2 and t3 are real:" looks good,I am trying to rewrite it in terms of s1,s2,s3
21:16:49 <Mathnerd314> ok
21:16:50 <fax> 2 s1 - 3 ((t_2^2 + t_3^2) t_1 + (t_1^2 + t_3^2) t_2 + (t_1 + t_2^2) t_3) + 12 s3
21:16:57 <fax> something like that, I can't see what to do with the middle bit
21:17:19 <Mathnerd314> something to do with s2, I imagine
21:18:09 <fax> actually I just notice that I got this wrong, that s1 part is a mistake
21:18:19 <fax> an error
21:19:26 <fax> hm
21:19:49 <fax> parts of that 12 may want to be shared out
21:19:55 <fax> there's something odd about the '2' tohugh
21:20:11 <fax> infact I would say it's the oddest prime
21:21:51 -!- cal153 has joined.
21:23:30 <Mathnerd314> hah
21:25:16 <Mathnerd314> http://www.wolframalpha.com/input/?i=factor+2+x^3+-+3+y+x^2-3+z+x^2-3+y^2+x-3+z^2+x%2B12+y+z+x%2B2+y^3%2B2+z^3-3+y+z^2-3+y^2+z
21:27:08 <Mathnerd314> so it's (s1-3 t1)(s1-3 t2)(s1 - 3 t3)
21:27:44 <fax> cool!!
21:27:53 <fax> right... now we can work on y^3 z^3 :P
21:28:01 <fax> unless you are fed up of this
21:28:10 <Mathnerd314> no no, let's do so :-
21:28:14 <Mathnerd314> * :-)
21:28:27 <fax> once I have this, I should be able to write down an solution for the general cubic
21:29:25 <augur> hello
21:29:30 <fax> hey augur
21:29:35 <augur> hey
21:29:45 <fax> do you know Steven pinker?
21:30:00 <fax> I jus twatched this, http://fora.tv/2008/09/12/Steven_Pinker_The_Stuff_of_Thought it's pretty cool (linguistics)
21:30:12 <fax> very basic I guess .. compared to what you do though
21:33:24 <augur> ahh
21:33:25 <augur> yes
21:33:29 <augur> i dont know if ive watched that one yet
21:33:37 <augur> but the corresponding book has some interesting chapters
21:33:41 <augur> and raises some interesting questions
21:33:52 <augur> anyway, i have to be out of here
21:33:53 <augur> byeee
21:33:57 <fax> see ya
21:34:12 <alise> back
21:35:05 <fax> hi
21:35:23 <fax> I should go to bed soon
21:35:31 <Mathnerd314> hmmm... product is too long to enter into the textbox
21:35:38 <alise> Mathnerd314: lol
21:35:42 <fax> Mathnerd314 that keeps happening to me with wolfram :[
21:35:42 <alise> write prod
21:38:34 -!- augur has quit (Ping timeout: 264 seconds).
21:38:35 -!- nooga has joined.
21:38:54 <Mathnerd314> parser dies when removing all spaces :-/
21:39:01 <nooga> parser parser
21:39:02 <alise> I'd offer to use Mathematica, but it's not on this machine.
21:39:09 <alise> Try their web API.
21:39:16 <alise> I am sure it will accept more.
21:40:14 -!- Alex3012_ has quit (Ping timeout: 265 seconds).
21:40:21 <Mathnerd314> I actually got visited at a summer camp by wolfram :-)
21:40:29 <alise> That must have been horrible.
21:40:45 <alise> Wait, how did he fit his ego in the room and still have space left for you?
21:41:10 <nooga> wolfram is the god of nerds
21:41:13 <Mathnerd314> it was a big room ;-)
21:41:18 <nooga> weird guy
21:41:29 <alise> nooga: I resent that
21:41:32 <alise> he's no god of mine
21:41:45 -!- funcot has joined.
21:41:48 <fizzie> ?ul (hello, I am a real executable)S
21:41:48 <funcot> hello, I am a real executable
21:41:48 <alise> Mathnerd314: Like a TARDIS!
21:41:58 <alise> fizzie: What about the whole, you know, self-modifying malarkey?
21:42:33 <Mathnerd314> ?help
21:42:41 <nooga> alise: you're not a nerd
21:42:41 <fizzie> Well, it doesn't. I have (will have, hopefully, etc.) jitfunge for those use-cases.
21:42:48 <alise> nooga: hahaha
21:42:49 <nooga> TARDIS FTW
21:42:55 <alise> me not a nerd
21:42:56 <alise> I laugh
21:43:04 <alise> fizzie: So fungot doesn't really use g or p at all?
21:43:05 <fungot> alise: the outer macro is interpreting the code ( follow the link
21:43:06 <alise> Howso?
21:43:12 <alise> Or is it just modifying code that doesn't work?
21:43:13 <fax> t_1^6-3 t_2 t_1^5-3 t_3 t_1^5+6 t_2^2 t_1^4+6 t_3^2 t_1^4+3 t_2 t_3 t_1^4-7 t_2^3 t_1^3-7 t_3^3 t_1^3-3 t_2 t_3^2 t_1^3-3 t_2^2 t_3 t_1^3+6 t_2^4 t_1^2+6 t_3^4 t_1^2-3 t_2 t_3^3 t_1^2+9 t_2^2 t_3^2 t_1^2-3 t_2^3 t_3 t_1^2-3 t_2^5 t_1-3 t_3^5 t_1+3 t_2 t_3^4 t_1-3 t_2^2 t_3^3 t_1-3 t_2^3 t_3^2 t_1+3 t_2^4 t_3 t_1+t_2^6+t_3^6-3 t_2 t_3^5+6 t_2^2 t_3^4-7 t_2^3 t_3^3+6 t_2^4 t_3^2-3 t_2^5 t_3
21:43:27 <nooga> looks like i'm on acid
21:43:31 -!- Azstal has joined.
21:43:34 <nooga> or maybe not.
21:43:42 <fizzie> alise: There's a funge-space, sure, it's just data-only. I use it a lot for data-storage, but not for modifying anything that will be executed.
21:44:01 <alise> Right.
21:44:06 -!- Asztal has quit (Ping timeout: 265 seconds).
21:44:10 -!- Azstal has changed nick to Asztal.
21:44:57 <fizzie> In fact the executable is ~235 kilobytes, because there's a 592*80*4 byte static array containing the cells defined in the program source, in case it tries to 'g' those values.
21:46:45 <fizzie> I'm sure there are still lots of bugs, but it's a nice feeling that it got on IRC with so little work. The babbler part probably won't work; it's the most complicated piece of the bot, after all.
21:47:12 <oerjan> funcot: babble
21:47:22 <oerjan> aww
21:47:25 <fizzie> There's no data files there, or styles.
21:47:42 <fizzie> I should probably try funcot with the real fungot's state-files and others.
21:47:43 <fungot> fizzie: what about him? :) everyone seems to have a nice day solely because of the
21:47:53 -!- funcot has quit (Remote host closed the connection).
21:48:59 <pikhq> fizzie: How goes jitfunge, anyways?
21:49:41 * Mathnerd314 fires up Sage
21:49:46 <Mathnerd314> (on a VM)
21:49:53 <fizzie> pikhq: I've been sidetracked with this other compiler a bit.
21:50:15 <pikhq> Ah.
21:50:31 <pikhq> I presume you're using LLVM for both?
21:50:59 <fizzie> Yes, but a bit differently. I didn't really feel like doing C++ for this static compiler, so I just generate LLVM .ll assembly sources.
21:51:13 <coppro> alise: RUN THE SKY IS FALLING
21:51:27 <alise> coppro: AAAAAAAAAAAAAAAAAAAAAAAAAAAAH
21:51:37 <alise> Mathnerd314: sage is kinda crappy
21:51:41 <pikhq> Ah.
21:51:50 <alise> it's just a half-baked python interface to a bunch of half-decent tools
21:51:51 <pikhq> So, not the same code generation. :(
21:52:01 <Mathnerd314> alise: but it has a polynomial factorer :-)
21:52:17 <coppro> alpha removed almost all incentive to use Sage
21:52:24 <fizzie> I can probably reuse fingerprint implementations and some other bits, but they're reasonably independent projects. If jitfunge code would have been cleaner, maybe I could have shared more code.
21:55:12 <Mathnerd314> fax: (x^2 - x y + y^2 - x z - y z + z^2)^3
21:56:14 <fax> Mathnerd, http://hpaste.org/fastcgi/hpaste.fcgi/view?id=25045
21:56:18 <alise> alpha is just so unreliable, that's the issue
21:56:30 <alise> which is why we need alyskas
21:56:30 <alise> (mangled alisecas)
21:56:42 <fax> this is great the cubic is solved!
21:56:56 <alise> Alγsκαs
21:57:07 <Mathnerd314> fax: to floating-point precision ;-)
21:57:22 <Mathnerd314> (unless you have CReal)
21:57:48 <fax> Mathnerd314, one thing which is missing is radical expressions for cube roots of unity.. but that will be another time
21:58:10 -!- nooga has quit (Ping timeout: 260 seconds).
21:58:12 <Mathnerd314> you said you wanted to sleep :-)
21:58:17 <alise> just install few digits
21:58:19 <alise> voila reals
21:59:24 -!- Alex3012_ has joined.
21:59:44 -!- kar8nga has joined.
21:59:53 -!- sebbu has quit (Quit: Quitte).
22:00:06 <Mathnerd314> yeah; I like http://gmplib.org/#TRY a lot
22:00:09 -!- sebbu has joined.
22:00:46 <fax> alise, another thing my algebra system will have is radical numbers and algebraic numbers
22:00:58 <Sgeo_> There's no easy way to download from Magnatune without paying anymore :(
22:01:07 <Sgeo_> I'm going to need to write an app for that
22:01:20 <alise> fax: shouldn't you just do x^1/n
22:01:28 <alise> Sgeo_: there's an app for that
22:01:39 <Sgeo_> alise, what?
22:01:53 <Sgeo_> What's it called?
22:02:00 <oerjan> totally radical
22:02:16 <alise> Sgeo_: Only on iPhone.
22:02:21 * Sgeo_ growls
22:02:22 <alise> From Apple.
22:02:31 <alise> www.apple.com
22:02:37 <alise> Sgeo_: Growling?
22:02:39 <alise> There's an app for that.
22:02:44 <alise> ...er, no, wait. It was rejected.
22:03:05 * Mathnerd314 laughs because he's so confused
22:03:11 <Sgeo_> I take it that you were joking about there being an app for downloading from Magnatune for iPhone?
22:03:19 <alise> OR IS THERE LOL
22:03:32 <fax> okay bye
22:03:38 <fax> alise aren't you going to bed soon ?
22:03:41 <Mathnerd314> bye fax
22:03:51 <fax> bye
22:03:52 <alise> sometime
22:03:53 <alise> bye
22:04:03 -!- oerjan has quit (Quit: Later).
22:04:19 <alise> no not you oerjan
22:05:41 -!- fax has quit (Quit: Lost terminal).
22:06:29 * Mathnerd314 counts 3 ops on #esoteric
22:08:08 <alise> oerjan lament fizzie?
22:08:15 <Mathnerd314> yep
22:08:19 <alise> lament never uses ops except as part of his regular exercise routine (trolling)
22:08:29 <alise> oerjan hasn't used ops one iirc
22:08:39 <alise> the last time fizzie used ops he was so nervous he almost shattered from the cruelty of what he was doing
22:08:49 <alise> this place approximates anarchy pretty closely over time
22:09:07 <alise> so it's either an argument for anarchy working or not working depending on your perspective :D
22:09:08 <Mathnerd314> well, you can ask on #freenode
22:10:09 <alise> Alγsκαs is pretty... albeit meaningless
22:11:17 <coppro> Anyone know of a LaTeX package to make a table where the head column stretches out diagonally to save horizontal space?
22:11:25 <coppro> like what you might see in a brochure
22:11:37 <alise> eh?#
22:11:39 <alise> *eh?
22:12:20 -!- Phantom_Hoover has joined.
22:12:22 <Phantom_Hoover> http://df.magmawiki.com/index.php/User:BaronW
22:12:28 <Phantom_Hoover> Now that's esoteric.
22:12:56 <Mathnerd314> not turing-complete :p
22:13:09 <Phantom_Hoover> Nor is anythinh.
22:15:12 <alise> Phantom_Hoover: you fail
22:15:19 <alise> turing-complete is a perfectly well-defined concept
22:15:21 <Phantom_Hoover> Nothing real, I meant.
22:15:28 <Phantom_Hoover> Perhaps I was unclear.
22:15:39 <alise> so? BaronW could have -- if Dwarf Fortress allowed -- presented a finite construction allowing turing-complete computation
22:15:42 <alise> just like a BF interpreter does
22:15:46 <alise> so it's a valid thing to say :P
22:16:15 <Phantom_Hoover> But Dwarf Fortress has finite storage.
22:16:26 <Phantom_Hoover> In game, I mean.
22:16:29 <alise> Yes, well, that is the issue.
22:17:29 <Phantom_Hoover> I have to say that his division routine seems long-winded.
22:17:41 <alise> http://df.magmawiki.com/index.php/Dwarf_Fortress_Wiki:Magmawiki I wonder what the point of this i.
22:17:42 <alise> *is
22:18:29 <Phantom_Hoover> To replace MW, presumably.
22:18:31 <coppro> Phantom_Hoover: my brain is Turing-complete
22:18:38 <Phantom_Hoover> No it isn't.
22:18:41 <Phantom_Hoover> Finite storage.
22:18:48 <coppro> I can use paper
22:18:54 <Phantom_Hoover> And you'll die.
22:19:17 <alise> Why replace MW with something about identical to it?
22:19:21 <alise> coppro: universe is finite
22:19:28 <Phantom_Hoover> They haven't.
22:19:31 <alise> also, like Phantom_Hoover said, you are finite
22:19:32 <coppro> universe is not finite
22:19:36 <alise> coppro: physics disagrees.
22:19:52 <Phantom_Hoover> Surely it depends on the overall geometry.
22:20:11 <coppro> well, soort of
22:20:14 <alise> All the evidence and our best-accepted theories point to it being finite...so...
22:20:15 <alise> It's finite.
22:20:16 <Phantom_Hoover> AFAIK it's unknown whether it's finite and unbounded or not.
22:20:23 <Phantom_Hoover> Oh, well.
22:20:29 <Phantom_Hoover> Science marches on.
22:20:42 <coppro> it is technically finite, but because it's expanding faster than I can travel, it is effectively infinite
22:20:43 <alise> coppro: But besides, Phantom_Hoover is right; you are not immortal.
22:20:51 <coppro> I will make myself immortal!
22:20:55 <alise> Also, even if you were, the universe is not.
22:21:02 <Phantom_Hoover> Heat death
22:21:12 <alise> So you do, in the end, only have the option of halting.
22:21:32 <alise> Mind, that doesn't make /me/ give up hopes that the singularity will sort out the pesky problem of entropy.
22:21:40 <coppro> entropy is such a misapplied concept :(
22:21:41 <alise> Hey, it's just a statistical law...
22:22:03 <alise> I'm imagining some godlike force of matter keeping the universe prised open like a toothpick when it's due to big-crunch
22:22:12 <alise> fuck yeah, take that, universe
22:22:50 <Phantom_Hoover> Even so, coppro would be in no state to be doing algorithms.
22:22:57 <coppro> and on a universal scale, the nature of entropy is not well-understood
22:23:21 <Mathnerd314> entropy divides itself by 0, obviously
22:23:21 -!- kar8nga has quit (Read error: Connection reset by peer).
22:23:42 <alise> I mean when we're post-Singularity, provably immortal unless something goes really, really badly wrong, and Ω tells us it's figured out how to stop the universe from ending...
22:23:56 <alise> Then I'll accept that you can act as a Turing machine, given sufficient patience.
22:24:01 <alise> Although you would be an /unreliable/ Turing machine.
22:24:26 <Phantom_Hoover> Possible non-deterministic.
22:24:48 <alise> As well as the sheer likelihood of human error after so much time.
22:25:07 <alise> Unless Ω upgraded our minds, too.
22:25:15 <alise> Then yes, you'd be able to act as a Turing machine.
22:25:15 <Mathnerd314> that story has been going around: http://www.multivax.com/last_question.html
22:25:18 <coppro> What is Ω?
22:25:30 <Phantom_Hoover> The end.
22:25:38 <Phantom_Hoover> Presumably the singularitu.
22:25:50 <alise> Ω = superintelligence
22:25:54 <Phantom_Hoover> Dear god, my typing is atrocious.
22:25:58 <alise> Singularitu!
22:26:12 <alise> Mathnerd314: It's been going around forever.
22:26:16 <Phantom_Hoover> That's actually a pretty cool name.
22:27:15 <Mathnerd314> alise: well, is it true?
22:27:29 <alise> Mathnerd314: The story? As in literally?
22:27:32 <alise> No, it's fiction.
22:27:35 <alise> Ask a better question.
22:27:43 <Mathnerd314> "could it be true?"
22:28:12 <Phantom_Hoover> Maybe.
22:28:20 <Phantom_Hoover> Ask a better question.
22:28:28 <Mathnerd314> "do you want it to be true?"
22:28:37 <alise> Mathnerd314: I doubt there is a sort of metareality into which AC can somehow slip into when the universe ends.
22:28:41 <alise> So the end is very metaphorical.
22:28:57 <alise> But an intelligent hypercomputer is of course possible. Reversing entropy, who knows?
22:29:47 <Mathnerd314> well, it definitely has a "punchline" at the end
22:30:58 <Phantom_Hoover> I'm now severely regretting getting a low-end laptop and accidentally squishing my Windows partition to a sliver more than it needs...
22:31:13 <alise> "
22:31:16 <alise> "Like all economics professors, I have no soul, and so am unable to sympathize with your loss."
22:31:23 <Mathnerd314> Phantom_Hoover: external usb drive!
22:31:33 <Mathnerd314> (or usb thumbdrive)
22:31:37 <Phantom_Hoover> Too much like hard work.
22:31:38 <Mathnerd314> (or sd card)
22:31:42 <Phantom_Hoover> Bye
22:31:44 -!- Phantom_Hoover has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100401213457]).
22:31:47 <Mathnerd314> bye
22:32:41 <alise> "You are the husband of a wonderful and beautiful lady whom you love very much - and whom you just found in bed with another man. In a rage, you take your hardcover copy of Introduction To Game Theory and knock him over the head with it, killing him instantly (it's a pretty big book)."
22:32:43 <alise> This post is awesome
22:33:31 <alise> "You are the dictator of East Examplestan, a banana republic subsisting off its main import, high quality hypothetical scenarios."
22:33:52 <Mathnerd314> oh, yeah
22:34:00 * Mathnerd314 googles and finds it again
22:34:06 <alise> finds what?
22:34:08 <alise> The post is http://lesswrong.com/lw/24o/eight_short_studies_on_excuses/
22:34:42 <Mathnerd314> right; I found that again
22:35:29 <alise> "A leader of your state's atheist community breaks into your office via the ventilation systems"
22:35:30 <alise> wat.
22:36:38 <pikhq> Wait what?
22:36:48 <alise> "The next day, the atheist leader comes in again. This time, he is wearing a false mustache and sombrero."
22:36:51 <alise> pikhq: http://lesswrong.com/lw/24o/eight_short_studies_on_excuses/
22:38:11 <alise> brb ~15-20m
22:43:23 -!- SimonRC has quit (Ping timeout: 246 seconds).
22:45:58 -!- Tritonio_GR has quit (Ping timeout: 268 seconds).
22:46:38 -!- tombom_ has quit (Quit: Leaving).
22:52:18 -!- Azstal has joined.
22:52:39 -!- Asztal has quit (Ping timeout: 276 seconds).
22:52:47 -!- Azstal has changed nick to Asztal.
23:00:43 -!- FireFly has quit (Quit: Hey! Listen!).
23:00:58 -!- Alex3012_ has quit (Read error: Connection reset by peer).
23:03:08 -!- Alex3012_ has joined.
23:16:02 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:28:34 -!- nooga has joined.
23:53:12 -!- sshc has quit (Read error: Connection reset by peer).
2010-04-26
00:08:22 -!- sshc has joined.
00:11:10 -!- nooga has quit (Ping timeout: 260 seconds).
00:14:27 -!- augur has joined.
00:22:42 -!- sshc has quit (Quit: leaving).
00:28:51 <alise> bye
00:29:35 -!- alise has quit (Remote host closed the connection).
00:30:03 -!- jcp has quit (Ping timeout: 260 seconds).
00:41:58 -!- augur has quit (Ping timeout: 265 seconds).
00:42:36 -!- augur has joined.
00:50:10 <Gregor> laaaaaawl
00:50:12 <Gregor> I dun broke it!
00:50:19 <Gregor> I have a general-purpose web browser on my IREX :P
00:50:28 <oklopol> yawn
00:50:39 <oklopol> partially because it's 3 am
00:50:49 <oklopol> but also because that's not interesting
00:50:55 <oklopol> partially because i don't know what irex is
00:52:50 -!- augur has quit (Ping timeout: 240 seconds).
01:02:50 <Gregor> What's a good web IRC interface for Freenode? (No Java, JavaScript OK)
01:03:20 <oklopol> why "for freenode"?
01:03:25 <oklopol> oh umm
01:03:37 <oklopol> because many of them are just for ircnet and somenet, maybe
01:03:55 <Gregor> Most of them won't just let you log in wherever, since they're proxying.
01:06:28 <Mathnerd314> Gregor: http://webchat.freenode.net/ ?
01:09:26 -!- GregorIREX has joined.
01:10:36 <GregorIREX> Hello! This device is terrible for IRC!
01:11:05 <Gregor> Testing receipt of messages...
01:11:49 <Mathnerd314> hmm... is it this IREX: http://www.irexreader.com/index.html
01:13:27 <GregorIREX> Yup
01:13:27 <Mathnerd314> cool; did you have to install another OS or anything?
01:13:27 <GregorIREX> Nope
01:13:27 <GregorIREX> Just a custom browser
01:13:56 <GregorIREX> Hugey dishnest though :P
01:14:45 <GregorIREX> ...hard to type...
01:14:49 <uorygl> You should get an iPad or something; it's easy to type on an iPad or something!
01:14:55 <uorygl> Anyway, esoteric programming languages.
01:14:57 <Sgeo_> IREX?
01:15:05 -!- GregorIREX has quit.
01:18:30 <Gregor> Sgeo_: It's an eInk digital reader.
01:18:39 -!- aschueler has quit (Quit: leaving).
01:19:06 <uorygl> circle(A,B,C,D,E,F) draws a circle or line through A, B and C and another circle or line through D, E and F, and returns all their points of intersection in an undefined order.
01:19:15 -!- nooga has joined.
01:19:41 <uorygl> You can use case statements to do stuff conditional on the number of points of intersection.
01:21:01 -!- augur has joined.
01:21:58 <uorygl> And you can define functions.
01:22:05 <uorygl> And you can use recursion.
01:22:37 <Mathnerd314> sounds turing-complete
01:23:27 <uorygl> There, that's my really vague spec for a programming language. I'll call it... oh...
01:23:51 <uorygl> Brainfuck II.
01:24:01 <Mathnerd314> nope
01:24:18 <uorygl> If that name isn't already taken, then that's what I'm calling it.
01:24:37 <Mathnerd314> it has _no relation_ to brainfuck *at all*
01:24:45 <uorygl> Precisely!
01:24:52 <Mathnerd314> facepalm
01:25:03 -!- SimonRC has joined.
01:26:52 <uorygl> I think it's essentially a push-down automaton where the stack can store arbitrary constructible numbers.
01:27:17 <uorygl> Thus, you can build a Minsky register machine, and other cool stuff, too.
01:30:09 <uorygl> I don't know if you can represent arbitrarily complex data structures and access them in finite time.
01:30:35 <uorygl> Er, not finite.
01:30:41 <uorygl> Bounded. Something.
01:31:09 <uorygl> Let me put it this way, and thereby be really formal about it:
01:31:53 <uorygl> I don't know if you can build a lambda calculus interpreter where each reduction takes a bounded amount of time.
01:44:19 -!- Asztal has quit (Ping timeout: 265 seconds).
01:47:11 -!- lament has quit (Quit: lament).
01:47:19 -!- lament has joined.
01:47:26 -!- sshc has joined.
01:49:41 -!- oerjan has joined.
01:50:07 <oklopol> hi oerjan
01:50:17 <oerjan> hi oklopol
01:51:46 -!- lament has quit (Ping timeout: 264 seconds).
01:54:16 -!- Alex3012_ has quit (Remote host closed the connection).
02:18:24 -!- calamari has joined.
02:18:50 -!- nooga has quit (Ping timeout: 240 seconds).
02:30:33 -!- SgeoN1 has joined.
02:32:14 -!- SgeoN1 has quit (Client Quit).
02:32:24 -!- Sgeo_ has changed nick to SgeoN1.
02:32:44 -!- SgeoN1 has changed nick to Sgeo.
02:33:58 -!- SgeoN1 has joined.
02:40:50 -!- augur has quit (Ping timeout: 240 seconds).
03:21:32 -!- coppro has quit (Read error: Connection reset by peer).
03:29:04 -!- Oranjer has joined.
03:44:19 -!- coppro has joined.
03:46:02 <uorygl> "For our purposes, C, C++, and Java are mostly identical; where they differ, we will use C."
03:46:09 <uorygl> That's sort of a long way of saying "we will use C", isn't it.
03:47:59 -!- jcp has joined.
03:52:06 <pikhq> Yes.
03:53:32 <oerjan> I got an answer from Clive Gifford (the eigenratio guy). He thinks my unlambda interpreter might be cheating, although he doesn't have a precise definition of what that means.
03:54:12 <uorygl> An Unlambda interpreter is *supposed* to replace itself with its input!
03:54:17 <oerjan> Also I pointed him to our channel, he's read yesterday's discussion, and might even come here some time.
03:55:26 <oerjan> uorygl: well in _some_ sense, obviously.
03:55:51 <uorygl> So is he the guy who randomly postulated that phi is the best possible?
03:55:57 <oerjan> so i hear
03:56:08 <oerjan> (also from yesterday's discussion)
03:59:35 <oerjan> afk
04:05:17 -!- Oranjer has left (?).
04:08:03 -!- Oranjer has joined.
04:41:43 -!- sshc has quit (Quit: leaving).
05:02:33 <coppro> yay midnight
05:04:50 -!- augur has joined.
05:21:39 <Gregor> FEKKKKKKKKK
05:21:49 <Gregor> I had usbnet working on my IREX once, and now I can't repro :(
05:21:54 <oerjan> carnal intercoerce
05:27:07 -!- adu has joined.
05:42:38 -!- SgeoN1 has quit (Quit: Bye).
05:53:38 -!- oerjan has quit (Quit: Arrividerci).
05:53:49 -!- Oranjer has left (?).
06:21:26 <calamari> Gregor: Nice.... Its list price in Europe is €649, and in US $699, however it is no longer available in North America due to FCC regulation non-compliance.
06:21:48 <Gregor> Guh? What are you referring to?
06:22:05 <Gregor> I have an IREX DR800SG, and I bought it no more than a week ago so I think it's still available for sale here :P
06:22:15 <Gregor> Also it costs $300 less than your stated price.
06:22:31 <calamari> http://en.wikipedia.org/wiki/ILiad
06:23:00 <calamari> well good then
06:23:30 <calamari> usb tethering is acting up on my g1 android lately too
06:24:05 <calamari> dhclient never gives me an ip address
06:24:28 <calamari> but randomly it will work, no idea why
06:34:15 -!- jcp has quit (Ping timeout: 245 seconds).
06:36:00 -!- calamari has quit (Quit: Leaving).
06:50:58 -!- FireFly has joined.
07:02:48 <pikhq> Marx was *such* a liar.
07:03:03 <pikhq> A door is what a *cat* is always on the wrong side of, not a dog.
07:03:20 -!- tombom has joined.
07:03:54 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
07:06:54 <Mathnerd314> so doors are defined by cats?
07:07:07 <pikhq> Yes.
07:07:08 <Mathnerd314> cat a > door1
07:07:13 <Mathnerd314> cat b > door2
07:07:15 <Mathnerd314> etc.?
07:07:20 <pikhq> Clearly.
07:07:33 <pikhq> We shall call this the Pikhq-Marx Door Theorem.
07:07:40 <Mathnerd314> cat door1 door2 > ?
07:08:46 <Mathnerd314> I find that cats tend to congregate on laps no matter what
07:18:07 -!- lament has joined.
07:19:04 <fizzie> We have this balcony-sort-of-thing, and the cat wants to go out and in some twenty times a day.
07:21:03 <Mathnerd314> keep door open -> no problems
07:21:11 -!- augur has quit (Ping timeout: 265 seconds).
07:21:21 <fizzie> It gets cold that way.
07:21:42 <Mathnerd314> put on a sweater
07:22:13 <Mathnerd314> or 3 layers of coats, if you want to be like me ;-)
07:24:04 <fizzie> Given what our winter is like, it's not a workable solution then; it could work in summer, except that then random bugs wander in. Maybe if there was some sort of a door-opening mechanism, but it'd have to be something the cat could use, and it's... perhaps not the brightest one ever.
07:29:09 <pikhq> It's even worse of an idea here. There's a *lot* of fucking bugs. I could do without an invasion of the wasps, ants, and whatever else.
07:29:25 <pikhq> Could be worse. Could be Oklahoma, and get a bunch of cicadas flying in...
07:32:28 <pikhq> Gah, right. Cicadas also here. Thankfully not cropping up this year.
07:44:01 -!- adu has quit (Quit: adu).
07:46:23 -!- augur has joined.
07:51:46 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:49 -!- FireFly has quit (Quit: Hey! Listen!).
08:13:27 -!- lament has quit (Quit: lament).
08:39:29 -!- adu has joined.
09:33:19 -!- adu has quit (Quit: adu).
09:52:46 -!- Asztal has joined.
09:55:54 -!- ais523 has joined.
10:24:44 -!- MizardX has joined.
10:59:02 -!- Tritonio_GR has joined.
13:02:25 -!- FireFly has joined.
13:20:20 -!- nooga has joined.
13:26:27 -!- lereah_ has joined.
13:49:51 -!- hiato has joined.
14:50:52 -!- BeholdMyGlory has joined.
14:56:35 * lereah_ beholds
15:06:21 -!- nooga has quit (Ping timeout: 276 seconds).
15:16:02 -!- hiato has quit (Ping timeout: 240 seconds).
15:17:05 -!- hiato has joined.
15:22:03 -!- hiato has quit (Quit: Lost terminal).
15:27:14 -!- kar8nga has joined.
15:30:17 -!- hiato has joined.
15:31:22 -!- hiato has quit (Client Quit).
15:44:19 -!- Gracenotes has quit (Ping timeout: 248 seconds).
15:53:24 -!- ais523 has quit (Read error: Connection reset by peer).
15:55:40 -!- ais523 has joined.
15:56:46 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
16:03:22 <oklopol> so i tell this uni friend about toi and he's fucking checked it out already :(
16:04:54 <ais523> why is that a bad thing?
16:18:13 -!- Leonidas has quit (Ping timeout: 252 seconds).
16:23:14 <Gregor> Despite my attempts, I can't find a way to make that a humorous statement due to the use of the word "fucking" ... it's hard to have sex with the action of checking out source files ...
16:23:23 -!- Leonidas has joined.
16:24:14 <Gregor> THIS! IS! MEMETIC!
16:28:15 -!- Leonidas has quit (Ping timeout: 276 seconds).
16:29:40 -!- lament has joined.
16:31:53 -!- sshc has joined.
16:34:33 -!- Leonidas has joined.
16:41:54 -!- MizardX has quit (*.net *.split).
16:41:54 -!- pikhq has quit (*.net *.split).
16:41:54 -!- Deewiant has quit (*.net *.split).
16:41:54 -!- lament has quit (*.net *.split).
16:41:54 -!- Mathnerd314 has quit (*.net *.split).
16:41:54 -!- Slereah has quit (*.net *.split).
16:41:55 -!- Gregor has quit (*.net *.split).
16:41:55 -!- dbc has quit (*.net *.split).
16:41:55 -!- fizzie has quit (*.net *.split).
16:41:55 -!- AnMaster has quit (*.net *.split).
16:41:55 -!- cheater3 has quit (*.net *.split).
16:41:55 -!- sshc has quit (*.net *.split).
16:41:55 -!- kar8nga has quit (*.net *.split).
16:41:55 -!- oklopol has quit (*.net *.split).
16:41:56 -!- pineapple has quit (*.net *.split).
16:41:56 -!- fungot has quit (*.net *.split).
16:41:57 -!- myndzi\ has quit (*.net *.split).
16:41:57 -!- lereah_ has quit (*.net *.split).
16:41:57 -!- augur has quit (*.net *.split).
16:41:57 -!- Adrian^L has quit (*.net *.split).
16:41:57 -!- jix has quit (*.net *.split).
16:41:58 -!- Leonidas has quit (*.net *.split).
16:41:58 -!- uorygl has quit (*.net *.split).
16:41:58 -!- ineiros has quit (*.net *.split).
16:41:58 -!- ais523 has quit (*.net *.split).
16:41:58 -!- sebbu has quit (*.net *.split).
16:41:59 -!- comex has quit (*.net *.split).
16:41:59 -!- Quadrescence has quit (*.net *.split).
16:41:59 -!- SimonRC has quit (*.net *.split).
16:41:59 -!- EgoBot has quit (*.net *.split).
16:41:59 -!- HackEgo has quit (*.net *.split).
16:41:59 -!- olsner has quit (*.net *.split).
16:41:59 -!- rodgort has quit (*.net *.split).
16:41:59 -!- mtve has quit (*.net *.split).
16:41:59 -!- lifthrasiir has quit (*.net *.split).
16:42:00 -!- cal153 has quit (*.net *.split).
16:42:00 -!- mycroftiv has quit (*.net *.split).
16:42:00 -!- Asztal has quit (*.net *.split).
16:42:00 -!- Sgeo has quit (*.net *.split).
16:42:01 -!- yiyus has quit (*.net *.split).
16:42:01 -!- FireFly has quit (*.net *.split).
16:42:01 -!- BeholdMyGlory has quit (*.net *.split).
16:42:02 -!- Geekthras has quit (*.net *.split).
16:42:02 -!- wareya has quit (*.net *.split).
16:42:02 -!- chickenzilla has quit (*.net *.split).
16:42:02 -!- Ilari has quit (*.net *.split).
16:43:04 -!- Leonidas has joined.
16:43:04 -!- sshc has joined.
16:43:04 -!- lament has joined.
16:43:04 -!- ais523 has joined.
16:43:04 -!- kar8nga has joined.
16:43:04 -!- BeholdMyGlory has joined.
16:43:04 -!- lereah_ has joined.
16:43:04 -!- FireFly has joined.
16:43:04 -!- MizardX has joined.
16:43:04 -!- Asztal has joined.
16:43:04 -!- augur has joined.
16:43:04 -!- SimonRC has joined.
16:43:04 -!- sebbu has joined.
16:43:04 -!- cal153 has joined.
16:43:04 -!- cheater3 has joined.
16:43:04 -!- Sgeo has joined.
16:43:04 -!- Mathnerd314 has joined.
16:43:04 -!- oklopol has joined.
16:43:04 -!- HackEgo has joined.
16:43:04 -!- EgoBot has joined.
16:43:04 -!- pikhq has joined.
16:43:04 -!- comex has joined.
16:43:04 -!- Slereah has joined.
16:43:04 -!- Gregor has joined.
16:43:04 -!- Deewiant has joined.
16:43:04 -!- Adrian^L has joined.
16:43:04 -!- olsner has joined.
16:43:04 -!- uorygl has joined.
16:43:04 -!- Quadrescence has joined.
16:43:04 -!- myndzi\ has joined.
16:43:04 -!- dbc has joined.
16:43:04 -!- mycroftiv has joined.
16:43:04 -!- fizzie has joined.
16:43:04 -!- rodgort has joined.
16:43:04 -!- Geekthras has joined.
16:43:04 -!- fungot has joined.
16:43:04 -!- pineapple has joined.
16:43:04 -!- AnMaster has joined.
16:43:04 -!- lifthrasiir has joined.
16:43:04 -!- mtve has joined.
16:43:04 -!- ineiros has joined.
16:43:04 -!- jix has joined.
16:43:04 -!- wareya has joined.
16:43:04 -!- chickenzilla has joined.
16:43:04 -!- Ilari has joined.
16:43:04 -!- yiyus has joined.
16:43:12 -!- charlls has joined.
16:57:57 -!- lereah_ has quit (Quit: Leaving).
17:30:25 -!- augur has quit (Ping timeout: 264 seconds).
17:31:41 -!- jcp has joined.
17:37:46 <oklopol> ais523: i couldn't tell him about it! well i could, but a bit less.
17:41:05 <Sgeo> toi?
17:42:08 <oklopol> it's a language of mine, i haven't really mentioned it much
17:43:29 -!- myndzi has joined.
17:44:25 <AnMaster> ais523, hi there
17:44:31 <ais523> hi
17:44:39 <AnMaster> ais523, I just ran across the strangest preference dialog design ever
17:44:55 <ais523> go on...
17:45:12 <AnMaster> ais523, first it appears as nothing strange, the usual "tree view with panel on the side" for when your app has a lot of settings. But which side is the panel on?
17:45:12 <AnMaster> well
17:45:14 <AnMaster> it varies
17:45:19 <AnMaster> depending on which item you have selected
17:45:25 <ais523> hmm, weird
17:45:26 <AnMaster> and sometimes there is one on each side of the tree
17:45:33 <ais523> do they do the same thing?
17:45:48 <ais523> oh, I thought you meant tree on each side of the panel, ignore me
17:45:49 <AnMaster> ais523, no they have different settings. So it isn't just a duplicate
17:45:53 <ais523> although, not as in /ignore
17:46:06 <AnMaster> ais523, anyway the panel acting that way is very very strange
17:46:15 -!- myndzi\ has quit (Ping timeout: 240 seconds).
17:46:15 <AnMaster> and confusing
17:46:19 <ais523> meh, I can imagine worse
17:46:46 <ais523> a fun bug in jettyplay (a ttyrec player I was writing, and should get round to finishing sometime) had a slider change length and position as you were dragging it
17:46:48 <AnMaster> ais523, you mean that the tree view doesn't stay in the same place?
17:46:54 <ais523> making it very hard to select any particular value using the mouse
17:47:04 <ais523> AnMaster: oh, I assumed it didn't from your description
17:47:05 <AnMaster> ais523, how comes it did that?
17:47:07 <ais523> it's saner if it does, I suppose
17:47:15 <AnMaster> ais523, well it doesn't stay in the same place
17:47:21 <ais523> AnMaster: because the text saying what its current value was was changing size and causing a layout recalculation
17:47:24 <AnMaster> but even if it did it would still be pretty wtf
17:47:31 <AnMaster> ais523, was it java?
17:47:34 -!- tombom has joined.
17:47:36 <AnMaster> because this thing is java too
17:47:37 <ais523> yes
17:47:46 <ais523> but it was a bug in my own code, and I fixed it
17:47:47 <AnMaster> one of the things where java should not have been used
17:47:51 <AnMaster> like
17:47:54 <ais523> that's not the sort of thing you let into production
17:48:03 <AnMaster> you have to allocate it 1 GB RAM to do anything useful
17:48:08 <AnMaster> sure you would need a lot in C too
17:48:19 <AnMaster> but I imagine you could get away with slightly less
17:49:17 <AnMaster> hm, now that I think about it, tools written for computer engineers are often less polished than tools written for other things.
17:49:23 <AnMaster> which would fit this perfectly
17:49:31 <AnMaster> since it is a VLSI tool
17:49:54 <ais523> AnMaster: I find that problem with jettyplay too; I need to give it about 1GB, and even that isn't enough
17:50:06 <ais523> I'm not entirely sure why, either
17:50:11 <ais523> despite running a memory profiler
17:50:26 <AnMaster> ais523, but that doesn't make sense... I mean a VLSI tool at least have a legitimate reason for needing a lot of RAM
17:50:49 <ais523> AnMaster: well, it's loading entire ttyrecs into memory twice, and they can be quite large
17:51:06 <AnMaster> ais523, why twice...
17:51:15 <ais523> 19 855 387
17:51:19 <AnMaster> eh?
17:51:23 <ais523> hmm, 19 MB, that's not large enough to explain it
17:51:31 <AnMaster> and if it comes to that, why load it all into memory at the same time
17:51:35 <ais523> and twice, because it needs both the original, and a version separated into frames
17:51:54 <ais523> even allowing for Java using UTF-16 for everything, that still doesn't explain how it ends up using so much space
17:51:54 <AnMaster> frames? why
17:52:18 <ais523> so you can render it without fastforwarding right from the start of the ttyrec
17:52:20 <AnMaster> ais523, well it all depends on how you define frames, if you get one frame per char changed then you could get quite a lot
17:52:22 <ais523> do you know how the ttyrec format works?
17:52:37 <AnMaster> ais523, I thought it was more or less a capture of what was sent to the terminal?
17:52:44 <ais523> and you get one frame per frame, which is approximately equal to one frame per keypress at the program that generated the output
17:52:44 <AnMaster> with some time info added
17:52:48 <ais523> AnMaster: yes, but with timing info
17:52:57 <ais523> a frame's the set of information that happens at the same time
17:53:00 <AnMaster> right
17:53:04 <AnMaster> ais523, anyway that could explain it
17:53:06 <ais523> or near enough to not be marked as being at different time in the ttyrec
17:53:11 <AnMaster> you probably get loads of frames
17:53:11 <ais523> but the frames are deduplicated
17:53:22 <ais523> as in, they share memory for bits that didn't change between them
17:53:23 <AnMaster> ais523, why not use key frames thingy
17:53:27 <ais523> the original takes up more than the frames
17:53:32 <AnMaster> to just store every 10 frames as full or such
17:53:35 <ais523> AnMaster: for things like regex search, and rewinding
17:53:40 <ais523> and because it really wouldn't help much
17:54:01 <AnMaster> ais523, recalculating some reasonable n frames wouldn't hurt much and would same some space
17:54:09 <AnMaster> I don't know what a reasonable n is here of course
17:54:13 <AnMaster> 10? 20? 50?
17:54:22 <ais523> AnMaster: no, because the frames take up less space than the original
17:54:26 <ais523> and doing that isn't going to help matters much
17:54:40 <ais523> what /would/ help would be compressing info about the original, because I don't use that much
17:55:04 <AnMaster> ais523, why do you need the original at all?
17:55:45 <ais523> for rerendering in case someone changes the setting, and for saving to disk if you're capturing a stream
17:56:07 <AnMaster> ais523, also what do you mean with the frames being deduplicated?
17:56:26 <AnMaster> and how on earth can they take up less than the original?
17:56:35 <ais523> AnMaster: if two rows - in different frames - are identical, they're stored as pointers to different bits of memory
17:56:42 <ais523> and because the original tends to be very repetitive
17:56:52 <ais523> say you're playing NetHack, you open a menu, then close it again
17:56:54 <AnMaster> ais523, does java even have pointers?
17:57:09 <ais523> it has to send a bunch of drawing instructions to redraw what was on the screen before
17:57:15 <AnMaster> ais523, yes quite. But unless you compress it somehow...?
17:57:18 <ais523> yet that can be deduplicated, as it's the same before and after
17:57:37 <ais523> and Java does have pointers, but you can't do arithmetic on them and they're disguised as not being pointers
17:57:53 <AnMaster> ais523, the original as on disc or the original as in your deduplicated version?
17:58:05 <ais523> the original on disk
17:58:11 <ais523> the deduplicated version is basically being compressed
17:58:14 <AnMaster> anyway, couldn't you just read the file in again
17:58:27 <ais523> no, because it might have been downloaded over the network, or even streamed in realtime
17:58:51 <AnMaster> ais523, like with curl foo | thisapp
17:58:52 <AnMaster> ?
17:58:52 <ais523> you couldn't redownload it, both for bandwidth reasons, and because the latency would easily be large enough to notice
17:58:57 <ais523> AnMaster: yes
17:58:59 <AnMaster> heh
17:59:03 <ais523> or, thisapp opening a telnet screen or whatever
17:59:06 <ais523> *stream
17:59:14 -!- Phantom_Hoover has joined.
17:59:19 <AnMaster> ais523, you support that?
17:59:27 <ais523> not yet, but I plan to
17:59:33 <AnMaster> telnet stream?
17:59:34 <ais523> it's an obvious feature for any ttyrec player to have
17:59:35 <AnMaster> wth is that even
17:59:45 <AnMaster> wouldn't that be in real time recording anyway
17:59:49 <ais523> because most roguelike games on public servers are streamed over telnet
17:59:55 <AnMaster> sure
17:59:58 <ais523> and yes, it would record the timestamps itself
18:00:07 <AnMaster> ais523, so it isn't just a player then?
18:00:27 <ais523> well, that's effectively playing IMO
18:00:42 <ais523> it isn't a recorder, really, because it already needs a stream to work on, all that matters is where the timing info's coming from
18:00:51 <ais523> (ttyrec recorders accept input so you can communicate with the thing you're recording)
18:02:35 <AnMaster> ais523, well yes it need to proxy everything back to the app
18:02:46 <AnMaster> like you know, a terminal does
18:02:51 <ais523> yep, and jettyplay doesn't do that, so it isn't a ttyrec player
18:02:58 <AnMaster> that reminds me, I always wondered how to write something like xterm
18:03:09 <ais523> it's basically just a massive switch statement
18:03:17 <AnMaster> what are the APIs you implement to push stuff like columns/rows to the tty layer
18:03:18 <AnMaster> and so on
18:03:39 <AnMaster> <ais523> yep, and jettyplay doesn't do that, so it isn't a ttyrec player <-- s/player/recorder/?
18:03:50 <ais523> yes, correction accepted
18:12:10 -!- cheater3 has quit (Ping timeout: 264 seconds).
18:15:13 -!- sshc has quit (Quit: leaving).
18:29:48 -!- cheater2 has joined.
19:05:05 <Phantom_Hoover> Please tell me there's someone here.
19:05:42 <pikhq> 誰もがない。
19:05:43 <ais523> yes, I'm here
19:05:48 <ais523> but not really paying attention
19:05:50 <Phantom_Hoover> Excellent...
19:05:52 <ais523> also, this isn't #irp
19:06:29 <Phantom_Hoover> There's no-one at #winehq, which is particularly annoying when you're looking for tech-support.
19:22:24 -!- sshc has joined.
19:22:39 -!- Phantom_Hoover has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100401213457]).
19:33:17 -!- Gracenotes has joined.
19:50:25 -!- charlesq__ has joined.
19:50:54 -!- charlls has quit (Read error: Connection reset by peer).
19:58:05 -!- zzo38 has joined.
19:58:43 <zzo38> I have showed you this game before. Now it has more levels, and some things fixed, better instructions, support external levels, and some more stuff, even. http://zzo38computer.cjb.net/GAMES/meskilb.zip
19:59:06 <zzo38> Only a few levels are not made yet. (But you can post external levels I might add in internal level later)
19:59:27 <zzo38> You can push right-mouse-button click on object for a menu of list of objects there, you can select one for a description of that object.
20:25:53 -!- charlesq__ has quit (Quit: Saliendo).
20:26:07 -!- charlls has joined.
20:26:46 <zzo38> charlls:
20:29:16 <AnMaster> zzo38, what do you need to play it?
20:29:19 <AnMaster> just curious
20:30:08 <AnMaster> zzo38, also what about screenshots?
20:31:59 -!- charlesq__ has joined.
20:35:42 -!- charlls has quit (Ping timeout: 258 seconds).
20:37:22 <zzo38> http://zzo38computer.cjb.net/GAMES/meskilb.png
20:37:34 -!- Gracenotes has quit (Ping timeout: 260 seconds).
20:37:51 <zzo38> You need Windows. (Unless you can find a way to compile the .GMD file in another operating system)
20:38:10 <zzo38> I am sure I have showed this game before?
20:38:37 <zzo38> Later on I might make it work in a different program language that can be more cross-platform
20:40:05 <zzo38> (You can try Wine, I'm unsure if it would work with Wine)
20:40:27 <zzo38> (I'm also unsure whether or not it will work with ReactOS)
20:43:39 <zzo38> Did you try? Did you write a comment?
21:03:30 -!- Gracenotes has joined.
21:05:25 <AnMaster> windows? bah
21:05:31 <AnMaster> explains why I didn't remember it
21:06:32 -!- augur has joined.
21:06:47 <pikhq> .GMD file?
21:08:05 <pikhq> Oh, "game maker" type thing.
21:10:11 <uorygl> ¡Ay! How do I tell irssi to swap two windows?
21:10:49 <uorygl> I want to move window 24 to window 6 while keeping as many other windows as possible the same.
21:11:07 <zzo38> I don't know anything about irssi
21:12:07 <zzo38> I have some documentation written out for a program to convert .GMD to .GMZ and which is a JIT compile format for cross-platform, and I have some libraies too, but no such program exists at the current time
21:15:47 <zzo38> If you have Linux, can you please tell me if this program works with Wine?
21:16:11 <uorygl> I have OS X, which is capable of running Wine.
21:17:05 <zzo38> Try it in OS X? Do different programs run on Wine with Linux than with OS X?
21:17:33 -!- hiato has joined.
21:18:17 <uorygl> I don't know.
21:19:08 -!- Gracenotes has quit (Ping timeout: 240 seconds).
21:19:26 <zzo38> Well, just try anyways, and if it works, tell me if you like this game and other comment. If it doesn't work, is some function of Wine broken, what function of Wine might be broken in this case? Is there some kind of debugger to test these kind of things?
21:19:50 <pikhq> uorygl: In window 24: /window move 6. In window 6 (now, window 7): /window move 24
21:19:58 <pikhq> All other windows will then be in the same location.
21:20:20 <uorygl> Well, that works.
21:20:48 <uorygl> zzo38: what's the thing to try under Wine?
21:21:07 <pikhq> zzo38: Works under WINE just right.
21:21:12 -!- tombom_ has joined.
21:21:26 <pikhq> Typically when something is broken in WINE, it's because of an unimplemented library function.
21:21:41 <zzo38> uorygl: What do you mean by "what's the thing to try under Wine?" Just type in "wine MESKILB.EXE" isn't it?
21:21:48 <pikhq> Yuh.
21:22:02 <zzo38> If there is an unimplemented function, is there a debugger to tell you what unimplemented function it is trying to call?
21:22:12 <ais523> it outputs it to stdout
21:22:17 <uorygl> I guess pikhq got it to work. I was wondering what the URL to that EXE was.
21:22:18 <ais523> if you run WINE from the command line
21:22:26 <pikhq> Or just "./meskilb.exe" if you've got PEs registered as an executable format.
21:22:29 <ais523> or possibly stderr
21:22:38 <pikhq> It's stderr.
21:22:42 <zzo38> There is no URL to that EXE. You need the ZIP file and then you can unzip it
21:22:59 <pikhq> You tend to get tons of "TODOs" stuff.
21:23:08 -!- tombom has quit (Ping timeout: 240 seconds).
21:23:12 <uorygl> Well, the URL to the ZIP, then.
21:23:22 <zzo38> http://zzo38computer.cjb.net/GAMES/meskilb.zip
21:27:43 -!- charlesq__ has quit (Quit: Saliendo).
21:27:54 -!- charlls has joined.
21:28:51 -!- charlesq__ has joined.
21:29:05 -!- charlesq__ has quit (Read error: Connection reset by peer).
21:29:50 <zzo38> uorygl: Is that the URL you were asking for?
21:29:54 -!- charlesq__ has joined.
21:29:57 <uorygl> I think so.
21:30:27 <zzo38> OK
21:31:38 <zzo38> Did you try the new levels and other new features? (You can also make external levels if you want to, it includes documentation if you push F1 key)
21:32:11 -!- charlls has quit (Read error: Connection reset by peer).
21:32:41 -!- zzo38 has quit (Quit: The bigger the wheel, the ranger the forest.).
21:33:53 -!- charlls has joined.
21:34:44 -!- charlesq__ has quit (Ping timeout: 258 seconds).
21:36:14 -!- charlesq__ has joined.
21:38:33 -!- charlls has quit (Read error: Connection reset by peer).
21:41:36 -!- charlesq__ has quit (Read error: Connection reset by peer).
21:49:28 -!- coppro has joined.
21:54:56 -!- Oranjer has joined.
22:01:04 -!- Gracenotes has joined.
22:06:28 -!- charlls has joined.
22:08:29 -!- charlesq__ has joined.
22:11:31 -!- Gracenotes has quit (Ping timeout: 248 seconds).
22:11:32 -!- charlls has quit (Ping timeout: 258 seconds).
22:12:00 -!- charlls has joined.
22:12:45 -!- charlesq__ has quit (Read error: Connection reset by peer).
22:14:51 -!- charlesq__ has joined.
22:15:38 -!- charlls has quit (Disconnected by services).
22:38:00 -!- Gracenotes has joined.
22:42:57 -!- tombom_ has quit (Quit: Leaving).
22:45:54 <coppro> woot
22:46:03 <coppro> my SOC proposal made it!
22:46:31 <pikhq> Whooo.
22:47:36 <ais523> coppro: was it a scam?
22:47:48 <coppro> ais523: my proposal?
22:47:51 <ais523> yes
22:47:54 <pikhq> Clearly he intended to get a prize from Wolfram.
22:47:57 <coppro> no :P
22:48:35 <coppro> my 'Dictatorship Scam', however, is a scam
22:48:42 <uorygl> Google Summer of Code?
22:49:01 <pikhq> No, Google Summer of Coats.
22:49:01 <coppro> yessir
22:49:11 <coppro> i.e. I get %5k
22:49:19 <coppro> s/%/$/
22:49:40 <pikhq> You've got to roll 5k percentile die? :'(
22:50:23 <uorygl> Oh, good, I didn't miss out by not knowing about Summer of Code in the past.
22:50:31 <uorygl> I think.
22:50:44 <uorygl> It's only open to students of 18 or over, so this summer I wouldn't be able to participate.
22:56:02 <uorygl> Heh, I couldn't have participated in GHOPC this year either. GHOPC is for high school students; GSoC is for students 18 or older; I am neither.
22:58:09 -!- kar8nga has quit (Remote host closed the connection).
23:03:31 -!- jcp has quit (Read error: Connection reset by peer).
23:04:42 -!- jcp has joined.
23:06:35 -!- ais523 has quit (Remote host closed the connection).
23:11:49 -!- Gracenotes has quit (Ping timeout: 264 seconds).
23:14:06 -!- charlesq__ has quit (Quit: Saliendo).
23:26:50 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:27:22 -!- hiato has quit (Quit: underflow).
23:44:22 <Mathnerd314> I missed GHOPC :-(
23:44:58 <Mathnerd314> hopefully they'll have another
23:46:39 -!- FireFly has quit (Quit: Hey! Listen!).
23:50:59 -!- augur has quit (Ping timeout: 260 seconds).
23:52:10 -!- Oranjer has left (?).
2010-04-27
00:06:03 <Sgeo> Mathnerd314, protip: Start looking into it in February or so, instead of a week before the deadline
00:06:16 <Sgeo> Wait, I misinterpreted that as GSoC
00:06:27 <Mathnerd314> heh
00:07:00 <Mathnerd314> did a quick google there
00:11:10 <Mathnerd314> but no, no activity since Dec 2009 on GHOPC
00:19:55 -!- Gracenotes has joined.
00:45:03 <uorygl> Mathnerd314, you're in high school?
01:35:45 -!- augur has joined.
01:41:43 -!- Asztal has quit (Ping timeout: 265 seconds).
01:49:58 -!- oerjan has joined.
01:53:59 <oerjan> <oklopol> so i tell this uni friend about toi and he's fucking checked it out already :(
01:54:09 <oerjan> splendid! so when is he coming here? :D
01:54:19 <oerjan> (i mean, he must already be mad so...)
01:56:04 <oerjan> <Gregor> Despite my attempts, I can't find a way to make that a humorous statement due to the use of the word "fucking" ... it's hard to have sex with the action of checking out source files ...
01:56:09 <oerjan> rule 34, i say.
01:56:24 <oerjan> (but i am _not_ checking)
02:01:25 <Gregor> NO.
02:01:28 <Gregor> BAD OERJAN
02:01:39 <oerjan> what, i _said_ i wasn't checking.
02:02:27 <oerjan> just pointing out fundamental memetic law.
02:09:30 <oklopol> oerjan: doesn't irc
02:09:36 <oklopol> at least i think
02:10:14 <oerjan> oh
02:10:33 <oklopol> that is, at least he says he doesn't
02:10:40 <oklopol> perhaps he's here, spying on me
02:11:04 <oklopol> ARE YOU HERE?
02:11:15 <oklopol> I KNOW YOU'RE HERE REVEAL YOURSELF
02:12:06 <oklopol> he's a bit of a noob in esolanging, just invented tree rewriting first time like a week ago
02:12:26 <oklopol> (when we had term algebras in universal algebra)
02:13:11 <oerjan> well sounds like a good time to invent it
02:27:31 -!- Oranjer has joined.
02:36:00 -!- MizardX has quit (Ping timeout: 276 seconds).
02:51:45 <uorygl> Tree rewriting? That sounds like the soul of Haskell.
02:53:05 <oklopol> tree rewriting is harder not to invent than to invent
02:53:34 <oklopol> it's the soul of everything
02:54:17 <oklopol> except in soviet russia, everything is the tree rewriting of a soul.
02:54:27 <oklopol> think about it
02:55:48 <Gregor> oklopol: DOOD
02:55:55 <Gregor> That was nonsense, then stupid, then DEEP.
02:56:27 <oklopol> that was what i thought too, although then i started wondering if it indeed still was stupid?
02:57:00 <oklopol> or more like actually than indeed, sometimes these meaningless words i like to add in sentences get in the way of meaning.
02:57:32 <oklopol> anyway i'm not sure i get it, but there's definitely something to it
03:08:42 <Mathnerd314> uorygl: yes
03:09:05 <Mathnerd314> oklopol: how many tree rewriting languages do you know?
03:09:14 <uorygl> Oh boy. Regular expressions.
03:09:50 <Mathnerd314> regexes = (smallish) term rewriting
03:10:01 <uorygl> If a line looks like "c06p minra 59.64 reflect/mirror 3/4o lower score no conflict", I want the second word. I identify these words by the fact that they're a letter or a number, followed by two numbers, followed by maybe some letters, followed by some whitespace, followed by five letters, followed by some whitespace, followed by anything.
03:10:27 <uorygl> If a line looks like "jin mirr aina espex zierkal mira", I want all of it. I identify these lines by the fact that they have exactly six words and no letters or symbols.
03:10:28 <oklopol> Mathnerd314: dunno, none that make it explicit i guess
03:10:33 <oklopol> unless you count mine
03:10:34 <uorygl> s/identify these words/identify these lines/
03:10:39 -!- augur has quit (Remote host closed the connection).
03:10:46 <uorygl> So, would AWK or sed or something do that for me?
03:10:47 <oklopol> regexes aren't tree rewriting
03:11:03 <Mathnerd314> yeah, term rewriting
03:11:15 -!- augur has joined.
03:11:18 <oklopol> string rewriting is different than term rewriting
03:11:19 <Mathnerd314> term != tree
03:11:24 <oklopol> term = tree
03:11:31 <Mathnerd314> what?
03:11:45 <oklopol> in my term-inology, it's a tree
03:11:48 <Mathnerd314> string = list of characters
03:11:56 <Mathnerd314> expression = list of terms
03:12:11 <Mathnerd314> yes?
03:12:11 <oklopol> i'm using "term" in the sense universal algebra uses it
03:13:07 <oklopol> so it's a tree, rooted ordered tree
03:14:59 <Mathnerd314> oh, I think of 1+2*3 as [1,+,2,*,3]
03:15:16 <Mathnerd314> you're thinking of it as (+ 1 (* 2 3)) ?
03:17:29 <oklopol> yes, that's what a tree is
03:18:19 <oklopol> i hate clocks
03:22:05 -!- SgeoN1 has joined.
03:22:19 <oklopol> but anyway by your definition regexes are term rewriting
03:22:32 <oklopol> why smallish? how do you define term exactly
03:22:48 <SgeoN1> http://i.imgur.com/244LT.jpg
03:22:57 <oklopol> SgeoN1: shopped
03:23:04 <SgeoN1> Nope
03:23:42 <oklopol> i never look at a pic and then say shopped
03:24:31 <oklopol> god i hate it when people say things are shopped
03:24:33 <oklopol> they NEVER ARE
03:24:39 <oklopol> fucking retards
03:24:51 <oklopol> "dat shadow tharr is completely wrong lol"
03:24:59 <oerjan> oklopol: btw soviet russia did some tree rewriting too, google for Refal :D
03:25:53 <oklopol> Unlike Lisp, Refal is based on pattern matching. Due to that, a typical program in Refal is on average two or three times shorter and more readable than a Lisp analog. Compared to Prolog, Refal is conceptually simpler. Its pattern matching works in the forward direction rather than backwards (starting from the goal) as in Prolog. This is a more natural approach to writing algorithms which also makes them easier to test and debug.
03:25:56 <oklopol> wow it's good
03:27:04 <oklopol> "Defining control structures is easy"
03:27:10 <oklopol> god i hate wikipedia
03:27:36 <oklopol> "the language XX is nice i like it see how easy better than Y"
03:28:07 <oklopol> no offense to anyone who takes offense in things like this
03:28:27 <oklopol> or maybe some offense?
03:28:31 <oklopol> who knows
03:28:35 <oklopol> i don't
03:28:57 <oklopol> i'm gonna go to sleep now, wake up tomorrow and do stuff, but first the sleep
03:29:11 <oklopol> that sounds like a good plan
03:29:13 <oklopol> ->
03:29:45 <oklopol> <-
03:29:46 <oklopol> umm
03:30:20 <oklopol> apparently i'm not allowed to go to sleep yet
03:33:22 <oerjan> in soviet russia, sleep allows you
03:34:38 <Mathnerd314> oklopol: do something useful
03:37:30 -!- Oranjer has left (?).
03:42:08 <oklopol> no, never!
03:42:20 <oklopol> but anyway now i finally am allowed
03:42:25 <oklopol> and therefore i shall do it
03:42:32 <oklopol> so good night to you all
03:42:41 <oklopol> and remember to behave as if god was watching
03:49:53 <Mathnerd314> rather difficult
03:55:49 -!- oerjan has quit (Quit: Later).
04:13:30 -!- AndChat| has joined.
04:13:30 -!- SgeoN1 has quit (Read error: Connection reset by peer).
04:16:43 -!- coppro has quit (Remote host closed the connection).
04:17:21 -!- coppro has joined.
04:31:59 -!- Oranjer has joined.
04:53:21 -!- Sgeo_ has joined.
04:55:25 -!- oerjan has joined.
04:56:01 -!- Sgeo has quit (Ping timeout: 265 seconds).
05:07:10 -!- augur has quit (Ping timeout: 245 seconds).
05:09:34 -!- coppro has quit (Read error: Connection reset by peer).
05:09:53 -!- Halph has joined.
05:10:05 -!- Halph has changed nick to coppro.
05:29:39 -!- Oranjer has left (?).
05:30:19 -!- augur has joined.
05:38:55 <pikhq> Things like reconstructed proto-languages convince me that we should do linguists a major favor. Get them a time machine and a tape recorder.
05:44:48 <oerjan> i think the paleontologists would like a piece, too
05:45:39 <pikhq> And the creationists could be made to shut up quite easily.
05:46:23 <pikhq> Show them a few billion years of evolution in a few hours.
05:46:36 <pikhq> Oh, wait. Creationists. "THATS DEMON ELECTRICITY!"
05:46:50 <coppro> That's not a time machine; that's an elaborate hoak
05:51:53 <oerjan> `define hoak
05:52:13 <HackEgo> No output.
06:11:42 <lament> http://www.youtube.com/watch?v=yrubNXkm6IQ
06:26:52 -!- AndChat| has quit (Read error: Connection reset by peer).
06:40:02 -!- FireFly has joined.
06:46:27 -!- Axtens has joined.
06:59:23 -!- jcp has quit (Ping timeout: 260 seconds).
07:04:21 -!- tombom has joined.
07:04:22 -!- tombom has quit (Changing host).
07:04:22 -!- tombom has joined.
07:13:10 -!- oerjan has quit (Quit: Later).
07:15:30 -!- sebbu has quit (Ping timeout: 245 seconds).
07:29:47 -!- tombom_ has joined.
07:32:46 -!- tombom has quit (Ping timeout: 260 seconds).
07:33:18 -!- sebbu has joined.
07:40:32 -!- coppro has quit (Ping timeout: 240 seconds).
07:53:00 -!- tombom_ has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:30 -!- kar8nga has joined.
08:33:02 -!- FireFly has quit (Quit: Hey! Listen!).
08:37:35 -!- kar8nga has quit (Read error: Connection reset by peer).
08:44:27 -!- pikhq_ has joined.
08:47:09 -!- pikhq has quit (Ping timeout: 276 seconds).
08:58:10 -!- Tritonio_GR has joined.
09:08:59 -!- lament has quit (Quit: lament).
09:54:35 -!- lereah_ has joined.
10:47:49 -!- kar8nga has joined.
10:53:20 -!- Alex3012 has joined.
11:23:13 -!- lereah_ has quit (Ping timeout: 264 seconds).
11:28:31 -!- Axtens has quit (Read error: Connection reset by peer).
11:44:13 -!- BeholdMyGlory has joined.
11:44:24 -!- nooga has joined.
11:48:32 -!- lereah_ has joined.
11:51:00 -!- hiato has joined.
11:51:36 -!- Axtens has joined.
11:55:02 -!- oklopol has quit (Ping timeout: 260 seconds).
11:56:37 -!- hiato has quit (Quit: used jmIrc).
12:10:58 -!- kar8nga has quit (Remote host closed the connection).
12:14:16 -!- hiato has joined.
12:16:08 -!- hiato has quit (Client Quit).
12:16:50 -!- kar8nga has joined.
12:16:55 -!- hiato has joined.
12:32:30 -!- Asztal has joined.
12:32:36 -!- augur has quit (Remote host closed the connection).
12:32:50 -!- augur has joined.
12:47:38 -!- nooga has quit (Ping timeout: 240 seconds).
12:59:07 -!- hiato has quit (Quit: used jmIrc).
13:09:38 -!- MizardX has joined.
13:09:48 -!- kar8nga has quit (Remote host closed the connection).
13:29:45 -!- BeholdMyGlory has quit (Remote host closed the connection).
13:36:37 -!- Axtens has quit (Quit: Leaving).
13:57:51 -!- augur has quit (Ping timeout: 276 seconds).
14:15:28 -!- oerjan has joined.
14:18:57 -!- Gracenotes has quit (Read error: Operation timed out).
14:26:15 -!- augur has joined.
14:29:59 -!- fax has joined.
14:33:28 -!- ais523 has joined.
14:37:24 -!- BeholdMyGlory has joined.
14:39:28 -!- MizardX has quit (Read error: Connection reset by peer).
14:39:39 -!- MizardX has joined.
14:44:02 -!- oklopol has joined.
14:51:19 -!- FireFly has joined.
14:54:59 -!- augur has quit (Remote host closed the connection).
14:56:11 -!- augur has joined.
15:03:50 -!- oerjan has quit (Quit: leaving).
15:07:23 -!- Gracenotes has joined.
15:18:22 -!- ais523 has quit (Read error: Connection reset by peer).
15:18:36 -!- ais523 has joined.
15:36:34 -!- kar8nga has joined.
15:40:55 -!- hiato has joined.
15:53:54 -!- Gracenotes has quit (Quit: Leaving).
15:59:29 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
16:07:27 -!- cheater2 has quit (Ping timeout: 276 seconds).
16:17:29 -!- lereah_ has quit (Quit: Leaving).
16:19:41 -!- ais523_ has joined.
16:19:49 -!- ais523 has quit (Disconnected by services).
16:19:50 -!- ais523_ has changed nick to ais523.
16:25:34 -!- lament has joined.
16:27:04 -!- cheater2 has joined.
16:42:40 -!- lament has quit (Quit: lament).
17:08:12 -!- tombom has joined.
17:18:47 -!- SgeoN1 has joined.
17:22:13 -!- SgeoN1 has quit (Read error: Connection reset by peer).
17:23:38 -!- SgeoN1 has joined.
17:34:34 -!- SgeoN1 has quit (Ping timeout: 258 seconds).
17:38:13 -!- augur has quit (Ping timeout: 264 seconds).
17:54:41 <fax> OH HEY GUYS
17:54:42 <fax> http://www.ted.com/talks/stephen_wolfram_computing_a_theory_of_everything.html
17:54:47 <fax> I just gave a talk
17:56:48 <ais523> ooh, interesting
17:56:48 <ais523> about Wolfram?
17:57:00 <fax> um sorry it's not actually me thats talking
17:57:18 <fax> I just say that incase alise is reading
17:59:16 <ais523> hmm, ah, you gave a talk without talking?
17:59:30 <fax> I just gave the link to it :x
18:01:24 <ais523> oh
18:01:32 <ais523> that seems a rather strange meaning of what you just said...
18:02:35 <fax> I was being silly because ehird makes fun of me about wolrfam
18:03:56 <ais523> hmm, thought inspired by conversation on #irp: we should write a program that causes random errors when run
18:04:02 <ais523> it wouldn't really matter if it were buggy
18:04:13 <ais523> in fact, such a program might be platonically not buggy
18:26:10 -!- augur has joined.
18:49:52 -!- pikhq_ has changed nick to pikhq.
18:53:15 -!- kar8nga has quit (Remote host closed the connection).
18:56:09 -!- hiato has quit (Quit: underflow).
18:59:02 -!- SgeoN1 has joined.
18:59:15 -!- Asztal has quit (Ping timeout: 245 seconds).
19:01:42 -!- Asztal has joined.
19:15:01 -!- SgeoN1 has quit (Read error: Connection reset by peer).
19:15:06 -!- AndChat- has joined.
19:28:32 <uorygl> Hmm, I sort of want to learn about non-US politics.
19:29:02 -!- AndChat- has quit (Read error: Connection reset by peer).
19:29:17 -!- SgeoN1 has joined.
19:29:57 <ais523> uorygl: you could learn about UK politics if you like?
19:30:04 <ais523> we have an election coming up
19:30:20 <uorygl> But I also sort of want to read Hackiki's source code so I can see how it works and estimate what it would take to turn it into a certain codenomic thingy.
19:35:05 -!- augur has quit (Remote host closed the connection).
19:35:19 -!- augur has joined.
19:56:51 <pikhq> It wouldn't take much.
19:56:59 <pikhq> Hackiki is really not much code.
20:02:57 -!- AndChat- has joined.
20:03:41 -!- SgeoN1 has quit (Ping timeout: 258 seconds).
20:09:43 -!- sebbu2 has joined.
20:10:37 -!- sebbu has quit (Ping timeout: 246 seconds).
20:10:38 -!- sebbu2 has changed nick to sebbu.
20:11:19 -!- jcp has joined.
20:12:17 <oklopol> oerjan: pING
20:14:36 -!- Azstal has joined.
20:15:17 <fizzie> oklopol: Why is your 'p' so small?
20:16:20 -!- Asztal has quit (Ping timeout: 245 seconds).
20:16:30 -!- Azstal has changed nick to Asztal.
20:18:17 -!- SgeoN1 has joined.
20:19:01 -!- AndChat- has quit (Ping timeout: 258 seconds).
20:22:51 -!- SgeoN1 has quit (Ping timeout: 258 seconds).
20:34:06 <uorygl> Indeed, Hackiki is small.
20:34:58 <uorygl> I think, though, that Gregor has said that modifying it like this would mean modifying most of it.
20:36:28 <oklopol> fizzie: i decided to switch to uppercase at some point, but decided it'd be too much work to fix the existing text
20:39:37 <pikhq> LLVM 2.7 out. Glee.
20:56:30 -!- sebbu2 has joined.
20:57:08 -!- sebbu has quit (Ping timeout: 240 seconds).
20:57:09 -!- sebbu2 has changed nick to sebbu.
21:01:35 -!- hiato has joined.
21:13:25 -!- Phantom_Hoover has joined.
21:14:57 <Phantom_Hoover> Is Perl really that bad?
21:15:57 -!- Azstal has joined.
21:16:04 <ais523> no
21:16:19 <pikhq> Perl is not a *terrible* language, it just makes no concessions to readability.
21:16:20 <ais523> I personally like it
21:16:36 <ais523> pikhq: arguably, it's like it is /because/ it makes concessions to readability
21:16:37 <pikhq> And it is very much hackish.
21:16:41 <ais523> it gives the programmer a lot of leeway to make the code more readable
21:16:51 <ais523> ofc, the same leeway also lets them make it less readable, if they prefer
21:17:33 <pikhq> It's very good for quickly hacking something together.
21:17:52 <pikhq> And CPAN has a lot in it.
21:18:34 <Phantom_Hoover> I've not really learned it...
21:19:20 -!- Asztal has quit (Ping timeout: 252 seconds).
21:19:21 -!- Azstal has changed nick to Asztal.
21:39:23 -!- Asztal has quit (Ping timeout: 265 seconds).
21:39:38 -!- Asztal has joined.
21:43:44 -!- BeholdMyGlory has quit (Remote host closed the connection).
21:50:45 -!- sekuoir has joined.
21:50:58 <sekuoir> hello?
21:51:35 <ais523> hi
21:52:01 <sekuoir> look at this video
21:52:04 <sekuoir> http://www.lovethecock.com/videos/fucked-from-behind-1782.html
21:52:55 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
21:53:21 <pikhq> あんたが馬鹿ぜ。
21:54:14 <ais523> sekuoir: are you being useful or just spamming?
21:54:41 <sekuoir> I am useful
21:54:44 <sekuoir> あなたが前にポルノ見たうそじゃないよ
21:55:21 <pikhq> 今ポルノを見たくないんだ。
21:56:08 <ais523> I find it hard to believe that a link like that could be ontopic
21:56:14 <ais523> and if it is, it has a rather unfortunate URL
21:56:19 <sekuoir> いくつかの潤滑油を取りに行く。'
21:57:29 <pikhq> Google Translateを使うのが好きだね。
21:57:51 <Mathnerd314> yeah, why are pikhq and sekuoir talking in japanese?
21:57:52 <Gregor> sekuoir, augur. augur, sekuoir.
21:58:05 <pikhq> Mathnerd314: That's what I do with trolls.
21:58:18 <pikhq> As for sekuoir, he seems to have found Google Translate.
21:58:39 <sekuoir> I am 4th gen Japanese
21:58:50 <sekuoir> so I do not know language enough
21:58:58 <pikhq> Oh, so he's just writing Japanese that's weird-looking. Got it.
21:59:00 <fax> sekuoir: that's just gay sex
21:59:16 <sekuoir> I am learning though!
21:59:27 <Mathnerd314> isn't that off-topic?
21:59:31 <Gregor> `addquote <fax> sekuoir: that's just gay sex <sekuoir> I am learning though!
21:59:47 <HackEgo> 154|<fax> sekuoir: that's just gay sex <sekuoir> I am learning though!
21:59:54 <sekuoir> fax, I am straight, I just send these links
21:59:55 <pikhq> :)
22:00:04 <Gregor> sekuoir: Whatever you want to tell yourself.
22:00:10 <fax> :/
22:00:27 <pikhq> sekuoir: It's okay, we don't judge.
22:00:28 <fax> I don't get along with 'straight' people
22:00:35 <sekuoir> pikhq, am I an embarrassment to my own people?
22:00:39 <pikhq> We just condemn.
22:00:48 <pikhq> fax: 'straight'?
22:00:50 <Mathnerd314> fax: is that channel #haskell-whatever still going?
22:01:00 <fax> it died very quickly
22:01:10 <pikhq> (I'm questioning the scare quotes, not the meaning of the word, FWIW)
22:01:36 <fax> they aren't meant to be square quotes
22:01:49 <sekuoir> http://www.lovethecock.com/videos/bang-that-ass-4696.html
22:01:56 <sekuoir> hahahahahaha
22:02:00 <ais523> I just don't understand why someone would come here to spam us with gay sex links
22:02:16 <Gregor> And I really don't understand why that's a "hahahahahaha" thing to do.
22:02:19 <ais523> and will casually namedrop a few ops in the hope they notice: fizzie oerjan lament
22:02:35 <Gregor> Those of us who enjoy gay porn have some free gay porn links, those of us who don't just ignore *shrugs*
22:02:41 <pikhq> I presume he likes phalluses.
22:02:57 <sekuoir> 私は女性と結婚しています
22:03:14 <ais523> Gregor: I dislike ignoring people, really
22:03:27 <Gregor> I don't mean /ignore, I mean ignore.
22:03:31 <ais523> ah
22:03:50 <ais523> the ridiculous thing is, we could probably scare off trolls simply by having an /ontopic/ conversatoin
22:03:55 <pikhq> 信じない。
22:04:26 <pikhq> (BTW, sekuoir said "I am married to a woman." and I responded with "I don't believe you.")
22:04:37 <Gregor> Well, he's a woman inside.
22:04:43 <fax> http://i.imgur.com/4Cdlp.jpg
22:04:48 <ais523> how polite or insulting were the comments?
22:04:49 <fax> (NSFW)
22:04:57 <ais523> fax: I guessed from context, but still
22:05:04 <Gregor> fax: laaaaaaaaaaaaaaaaaaaaaaaaaaawl
22:05:09 <ais523> hmm, I wonder if there's any way to get my IRC client to block links altogether? after all, i never click them
22:05:13 <sekuoir> 私は在米韓国人と結婚しています
22:05:30 <fax> ais523: (I was kidding, it's a silly comic - nothing lewd)
22:05:43 <ais523> meh, I never click links /anyway/
22:05:44 <pikhq> それも信じない。
22:06:21 <Mathnerd314> gtranslate keeps dropping the nots, I think
22:06:45 <pikhq> Mathnerd314: Google Translate sucks pretty hard-core at Japanese.
22:06:49 <ais523> someone link me to goatse or something, I want to check this
22:07:02 <pikhq> ais523: http://goatse.cx
22:07:06 <sekuoir> 韓国あなたは好きではない?これらの日本帝国主義のようですか?
22:07:06 <ais523> yep, it's working
22:07:19 <fax> :(
22:07:23 <fax> that's not goatse
22:07:35 <Mathnerd314> http://goatkcd.com/sfw
22:07:45 <ais523> fax: I think that's the first time I've seen someone disappointed in clicking a link and finding it wasn't goatse
22:07:50 <pikhq> あのね。その日本語はちょっと違うと思う。
22:08:11 <fax> I am thinking of installing ubuntu, but I'm worried it might be too difficult
22:08:28 <pikhq> 「韓国あなた」って何?
22:08:33 <fax> furthermore, if I did install it - then how do I know it wont just break soon
22:09:42 <ais523> fax: installing it is pretty easy, but I wouldn't trust it to not randomly break
22:09:46 <ais523> that said, I use it as my only OS
22:09:54 <Mathnerd314> hmm... is there a goatse esolang?
22:10:02 <ais523> Mathnerd314: no, what a terribly horrible idea
22:10:37 <sekuoir> 日系アメリカ人です私の友人は、彼らが好きなように見える台湾外省人よりも中国。
22:11:18 <sekuoir> http://www.lovethecock.com/videos/twink-stud-dylan-2769.html
22:11:24 <fax> ais523 I put mac os x on my USB thing and that worked... I wonder if ubuntu will
22:11:27 <pikhq> I... Don't think I've ever seen such ungrammatical Japanese before.
22:11:43 <fax> well I guess I should try it
22:11:46 <ais523> fax: wait, hardly anything runs Mac OS X, except for actual Macs
22:11:53 <pikhq> I think he's starting to use English grammar?
22:11:54 <ais523> what sort of USB thing are you talking about?
22:11:55 <fax> I bought one of these USB things so I didn't ahve to burn so many CDs
22:12:01 <sekuoir> Mac OS X is great!
22:12:06 <pikhq> Well, that was entertaining for a short bit. /ignore
22:12:07 <fax> ais523 yeah that's the problem.. I bought this computer a long time ago and it's a mac
22:12:22 <fax> so linux support is (I imagine) a lot less robust than otherwise
22:12:32 <sekuoir> Fax, what type of Mac?
22:12:34 <ais523> meh, Linux support is almost official on Macs, at least if you pay them enough money
22:12:40 <Mathnerd314> yeah: "Goatse programing language: so open, it hurts." http://code.google.com/p/go/issues/detail?id=9#c248
22:12:54 <fax> ais523 - I don't mean people to ask help
22:13:02 -!- Phantom_Hoover has joined.
22:13:05 <fax> I just mean like... the thing breaks sometimes for no apparent reason
22:13:05 <ais523> because Apple have the "our hardware is the only hardware that runs all the three major OS lines" thing
22:13:08 <ais523> fax: yep
22:13:13 <fax> hm
22:13:14 <ais523> on the other hand, it doesn't do so as often as Windows
22:13:17 <fax> I had problems before
22:13:22 <ais523> and if you really care, you can normally discover the reason
22:13:33 <sekuoir> Anyone here use a distro other than Ubuntu
22:13:38 <fax> not me personally :/
22:13:43 <fax> I don't know anything about this stuff
22:13:53 <fax> that's probably why it breaks... to try and make me learn stuff I don't want to know
22:14:17 <ais523> sekuoir: that sort of trolling won't work here, incidentally, there are too many varying opinions who don't think that the other people's opinions are worthless
22:14:25 <ais523> and that's not a very conducive environment to start a flamewar in
22:14:35 <ais523> I mean, even the Emacs fans here think vi is perfectly usable, and vice versa
22:15:02 <sekuoir> I am an Ubuntu user too so I am not starting a Flamewar!
22:15:45 <Mathnerd314> man, I can never find a flamewar
22:16:07 <ais523> actually, that's a good point, I haven't had a decent flamewar in a while
22:16:27 <Mathnerd314> I go to every channel; they say, "oh, we had some epic flamewars" -- 10 years ago
22:16:41 <sekuoir> Mathnerd314, flamewar embroild us to Unessesary link like porn and random trolls
22:17:01 <fax> I am not interested in anythign you guys are talking about
22:17:16 <Mathnerd314> good point
22:17:28 <fax> I am going ot download unbut
22:17:34 <ais523> hmm, maybe we should have a flamewar on the topic of stacks vs. queues
22:17:45 <fax> stacks vs. queues? THATs not even a VALID QUESTION
22:17:55 <sekuoir> they only have the RC release of Ubuntu 10.04
22:18:01 <Mathnerd314> doubly-linked lists FTW
22:18:14 <fax> oh for goodness sake, it's not OUT yet
22:18:15 -!- hiato has quit (Quit: underflow).
22:18:15 <ais523> fax: download the stable version, not the beta of the next one
22:18:22 <sekuoir> no a flameware on Debian and Redhat
22:18:26 <fax> ais523, would that be 9.10
22:18:28 <Phantom_Hoover> But perhaps wait a while.
22:18:33 <fax> (that's what it says on /download)
22:18:33 <ais523> there are some pretty nasty bugs in the 10.04 beta, IIRC, which is why it's not out yet
22:18:38 <ais523> fax: yep, 9.10's what I'm using atm
22:18:47 <Phantom_Hoover> When I went from 9.04 to 9.10 it took ~5 hours to update.
22:19:05 <Phantom_Hoover> IIRC the download rate was way down.
22:19:05 -!- sekuoir has changed nick to DeutscheMark.
22:19:09 <ais523> the only nasty bug I've found there is one in the bootup screen that makes it hang for about half an hour, pretending it's forever
22:19:24 <Phantom_Hoover> That's a pretty nasty bug.
22:19:25 <ais523> Phantom_Hoover: new installs are actually faster than upgrades, as upgrades upgrade /all/ the software you have installed at the same time
22:19:33 <DeutscheMark> Phantom you used the slowest repos
22:19:33 <pikhq> ais523: vi is ENTIRELY UNUSABLE
22:19:44 <pikhq> Vim-mode, however...
22:19:45 <pikhq> :P
22:19:50 <ais523> personally, I like to use the repos in Sweden
22:20:01 <ais523> they tend not to get overloaded much, and aren't that far from the UK
22:20:07 -!- Oranjer has joined.
22:20:07 <DeutscheMark> I use the repos on my campus
22:20:25 <fax> 21:18 < ais523> the only nasty bug I've found there is one in the bootup screen that makes it hang for about half an hour, pretending it's forever
22:20:32 <fax> that's exactly the sort of thing I had problems with!!
22:20:35 <fax> but that was back on 9.10
22:20:44 <ais523> no, it's 9.10 I was referring to
22:20:47 -!- DeutscheMark has quit (Quit: Ex-Chat).
22:20:48 <fax> ah
22:20:55 <fax> ais523 has it been fixed ?
22:21:00 <ais523> they rewrote all that code
22:21:06 <fax> :S
22:21:07 <fax> for 10?
22:21:08 <ais523> so yes, but the new version has some other nasty bugs IIRC
22:21:10 <ais523> yep
22:21:12 <fax> urgh!!
22:21:15 <ais523> maybe they've fixed those too now
22:21:18 <fax> it's impossible to do anything
22:21:52 <ais523> really I'd go back to 8.04 if I wanted something that actually worked properly for me, but different versions seem to work better for different people
22:23:27 <fax> it was frustrating because I bought this USB thing since someone told me arch would definitely work with that (it wasn't booting off CDs) ... turns out it didn't wokr
22:24:50 <fizzie> I have complained about this on and off, but since you're talking about Ubuntu repositories; I have an old-ish PowerPC iBook, and since they've de-officialized the PowerPC Ubuntu port, the mirrors won't carry packages for it; there's just ports.ubuntu.com, and that's slow as.. a slow thing. (Well, not always. But often.)
22:25:41 <fax> why do they call them "thumb drives" They don't have thumbs and they aren't a disk drive
22:25:59 <ais523> they're vaguely thumb-shaped, and they act like a disk drive
22:26:04 <fizzie> Someone installed one in place of an (amputated) thumb, also. I think.
22:26:12 <ais523> why?
22:26:18 <ais523> also, looks like the troll's gone now
22:26:24 <fizzie> "Jerry Jalava replaces amputated finger with 2GB USB stick"
22:26:31 <fax> I can link to gay porn if you need
22:26:39 <fizzie> http://www.dailytelegraph.com.au/news/wacky/nerds-finger-now-usb-stick/story-e6frev20-1111119167767
22:26:43 <fizzie> I'm not exactly sure why.
22:26:47 <ais523> I don't particularly need gay porn links
22:26:57 <fizzie> "When I'm using the USB, I just leave my finger inside the slot and pick it up after I'm ready."
22:27:04 <fizzie> (It's detachable.)
22:27:12 <fax> idk that sounds dumb
22:27:21 <fax> I wonder how fast he can type
22:27:46 <fizzie> He lost the finger in a crash, that is; he didn't just lop off a perfectly good finger.
22:28:02 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
22:28:02 <fizzie> That would be rather sillier.
22:28:50 <pikhq> ais523: Presumably you can Google.
22:28:51 <pikhq> :)
22:29:13 <ais523> I'm not particularly good at finding anything via Google
22:29:28 <pikhq> ZOMG YOU CAN'T GOOGLE NOES
22:30:25 -!- tombom has quit (Quit: Leaving).
22:30:29 <ais523> possibly because I have Google locked down really tightly from my primary browser, it isn't even allowed to set cookies
22:33:57 <fizzie> Fungot nethack tweetery: "and finally brought down again and again he waved the green thing. then at last had to give it to open it; it was..." -- gets cut off right when it turns interesting!
22:35:28 <ais523> that would have been great to quote at the troll
22:37:27 -!- Gracenotes has joined.
22:39:08 <fax> ais523, interesting
22:39:15 <fax> why did you do that? (I think it sounds very wise)
22:48:19 -!- Gracenotes has quit (Ping timeout: 248 seconds).
22:49:45 <ais523> fax: oh, mostly because I'm really dubious about half the stuff it does
22:49:53 <ais523> and because it works just fine without scripts or cookies anyway
22:51:50 <fax> ais: so am I but I don't do anything about it :S
22:52:25 <ais523> time to go home, anyway
22:52:30 <ais523> bye everyone
22:52:34 -!- ais523 has quit (Remote host closed the connection).
22:54:34 -!- coppro has joined.
23:00:37 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.2/20100316074819]).
23:00:55 -!- FireFly has quit (Quit: Hey! Listen!).
23:04:43 -!- Gracenotes has joined.
23:10:33 -!- oerjan has joined.
23:13:52 -!- nooga has joined.
23:14:43 <oerjan> oklopol: pONG
23:14:51 <fax> lol
23:15:23 -!- Gracenotes has quit (Ping timeout: 252 seconds).
23:17:21 -!- coppro has quit (Remote host closed the connection).
23:17:30 <oerjan> <ais523> I just don't understand why someone would come here to spam us with gay sex links
23:17:41 <oerjan> somehow i don't find that surprising at all
23:18:36 -!- Mathnerd314 has joined.
23:22:35 <nooga> jis mid
23:24:48 <oerjan> <fax> I am going ot download unbut <- unbuttu, would that be the goatse operating system?
23:25:37 -!- coppro has joined.
23:26:26 <fax> goatse OS
23:26:29 <fax> is not good
23:26:37 <fax> that's all I have to say
23:26:53 <oerjan> it seemed a natural consequence of the conversation previous to what i quoted
23:27:53 <oerjan> <fax> stacks vs. queues? THATs not even a VALID QUESTION <-- people who ask such questions are just not playing with a full deque
23:31:16 <fax> lolol
23:31:58 <nooga> flax
23:33:23 -!- pikhq has quit (Read error: Connection reset by peer).
23:34:17 -!- Gracenotes has joined.
23:35:31 <oerjan> <fax> why do they call them "thumb drives" They don't have thumbs and they aren't a disk drive <-- i cannot really put my finger on it
23:39:41 <nooga> ;[
23:39:59 <oerjan> why the sad, mechanical face
23:40:39 <fax> I lik liatx
23:41:00 <oerjan> but not spelling
23:41:28 <nooga> my gsoc project was not accepted
23:41:30 <nooga> ;[
23:41:36 <oerjan> oh
23:41:54 -!- pikhq has joined.
2010-04-28
00:09:09 -!- nooga has quit (Ping timeout: 240 seconds).
00:11:27 -!- nooga has joined.
00:31:33 -!- Gracenotes has quit (Remote host closed the connection).
00:32:02 -!- Gracenotes has joined.
00:40:09 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.2/20100316074819]).
00:43:08 -!- Rugxulo has joined.
00:45:32 -!- nooga has quit (Quit: Lost terminal).
00:47:16 <Rugxulo> slightly bugfixed B93 Rexx interpreter here (works with OORexx now): http://groups.google.com/group/comp.lang.rexx/browse_frm/thread/f3184cef1db1c9e9#
00:47:58 -!- fax has quit (Quit: Lost terminal).
00:49:52 * Rugxulo guesses alise finally went to sleep
00:50:39 <Rugxulo> http://sourceforge.net/projects/oorexx/
00:51:00 <Gregor> REXX?
00:51:04 <Gregor> What a blast from the ... never.
00:51:31 <Rugxulo> ooREXX isn't old ;-)
00:51:44 <Rugxulo> besides, it has x86-64 builds, so nyah :-P
00:51:45 <oerjan> Rugxulo: um alise is only here on weekends, mostly
00:51:53 <Gregor> Yes, in the same way that Object Pascal isn't "old" ...
00:52:21 <Gregor> Object-oriented COBOL is only eight years old.
00:53:12 <pikhq> Object-oriented Brainfuck is very young indeed.
00:53:12 <Rugxulo> they're all old !! (Lisp, BASIC, Fortran, C, C++)
00:53:27 <pikhq> Can't even be represented in a natural.
00:54:01 <Rugxulo> ooREXX apparently has .deb, .rpm, Win64, etc. binaries available
00:54:30 <oerjan> pikhq: actually someone has probably made it, it's just one of those gluing stuff to skateboard things
00:54:34 <Rugxulo> and whatever the heck "rte.bff" means
00:55:12 * oerjan actually uses actually a bit much, perhaps. actually.
00:58:32 <pikhq> I beseech thee to continue.
00:58:59 <oerjan> me or Rugxulo?
00:59:23 <pikhq> Thou, Oerjan, thou.
00:59:24 <Rugxulo> presumably not me ;-)
00:59:41 <oerjan> ic
01:00:26 <oerjan> it just seems a bit out of place with "actually" when i am wildly guessing that something probably is true
01:00:46 <oerjan> actually.
01:09:53 -!- Mathnerd314 has joined.
01:23:49 -!- Rugxulo has quit (Quit: Rugxulo).
01:31:39 -!- Asztal has quit (Ping timeout: 276 seconds).
01:32:16 -!- Oranjer has left (?).
01:36:39 -!- Oranjer has joined.
02:31:15 -!- cal153 has quit.
02:31:38 <Gregor> http://lonelydino.com/?id=200 8-D
02:38:03 <oerjan> Gregor: the last original comic link isn't working
02:38:36 <Gregor> oerjan: I'm aware, that happens quite often actually, it's because the mapping isn't bidirectional, so I count on Google to have a smart reverse mapping ...
02:40:23 <pikhq> You could, alternately, write a script to create the appropriate mapping.
02:43:38 <Gregor> Yeah, but then I'd have to keep the mapping up to date, yuck :P
02:43:47 <pikhq> cron job
02:45:36 <Sgeo_> You shouldn't count on companies like Google </deliberately-hypocritical>
02:46:29 <Sgeo_> If Google wanted, they could probably take over every aspect of my life
02:50:56 <Gregor> There, it's fixed.
02:50:59 <Gregor> Now stop complaining.
03:05:24 <Mathnerd314> huh, never heard of lonelydino before
03:08:05 <Gregor> It's the Reader's Digest version of Dinosaur Comics :P
03:10:25 <Mathnerd314> Dinosaur Comics has... 1701 comics?
03:10:44 <Mathnerd314> and you have 200?
03:10:53 <Gregor> Yup
03:11:23 <Mathnerd314> and it's less than a year since you started
03:11:39 <Gregor> Yup
03:12:49 <Gregor> Think of it this way: There are 4,921,675,101 possible 3-panel comics. If .001% of these are funny, that's nearly 50,000 comics :P
03:13:18 <Mathnerd314> yeah, 7 years of comics with the exact same pictures...
03:14:15 <Mathnerd314> I wonder if there's ever April Fools :p
03:14:54 <Gregor> http://lonelydino.com/?id=181
03:15:25 <Gregor> :P
03:16:02 <Mathnerd314> they all end with *sob*?
03:16:38 <Mathnerd314> oh no, just those
03:16:46 -!- lament has joined.
03:17:35 <Mathnerd314> some of them are two-panel...
03:19:04 <pikhq> Gregor: 4,921,675,101 possible... And increasing very rapidly!
03:19:20 <Gregor> Yesh!
03:20:32 <Gregor> It'll gain 8,685,307 possibilities tomorrow.
03:20:40 <Mathnerd314> they have to be without the other dinosaurs?
03:20:58 <pikhq> Yes, that's the gimmick.
03:21:01 <Gregor> If they weren't, T-Rex wouldn't be very lonely.
03:21:24 <Mathnerd314> so why does the comic munger have the other 3 panels?
03:22:05 <pikhq> The comic munger was a random thing Gregor made, and Gregor then discovered that T-Rex being lonely was funny.
03:23:08 <Gregor> Couldn't've said it better myself *shrugs*
03:24:04 <Gregor> Ryan North claims he still reads T-Rex is Lonely :P
03:24:52 <Mathnerd314> I'm not that inventie :-/
03:24:57 <Mathnerd314> *inventive
03:24:58 <pikhq> I read it still.
03:25:21 <pikhq> It's like Garfield Minus Garfield, except less surreal and more funny!
03:25:38 <Gregor> A bit less tragic too :P
03:26:13 <Gregor> (Except when it's not)
03:26:58 <Mathnerd314> hmm, how's this: http://codu.org/imgs/dinosaurComic.php?panels=0,1,5&comics=1460,501,291
03:27:49 <Mathnerd314> boring, yes?
03:28:24 <Gregor> A bit. Actually it's too reminiscent of a normal Dinosaur Comic ... one sec, dredging up a news post I made once.
03:29:11 <Gregor> See http://lonelydino.com/?id=17
03:29:19 <Gregor> The Pseudo-News section.
03:31:06 <Mathnerd314> hmm... so mine is the second category?
03:31:57 <Gregor> Nearly, but it doesn't have the sort of "T-Rex fails at everything" conclusion that makes those funny.
03:32:17 <Mathnerd314> oh
03:32:25 <Mathnerd314> maybe I should read the original? :p
03:32:54 <pikhq> Yes, Dinosaur Comics is amazing.
03:33:18 <Mathnerd314> it's just a bit too large
03:33:19 <Gregor> It's awesomesauce.
03:33:24 <Gregor> It takes a commitment :P
03:33:50 -!- lament has quit (Quit: lament).
03:36:41 <Mathnerd314> hmm... better or worse than my first: http://codu.org/imgs/dinosaurComic.php?panels=0,1,5&comics=1043,1155,18&strip
03:37:28 <Mathnerd314> maybe taking out the middle panel would work :p
03:37:42 <Mathnerd314> http://codu.org/imgs/dinosaurComic.php?panels=0,5&comics=1043,18&strip
03:38:03 <Gregor> Hahaha, yes.
03:38:18 <Gregor> Reminds me of http://lonelydino.com/?id=58
03:38:46 <Mathnerd314> yay :-)
03:40:05 <Mathnerd314> why is alt text of that "Khaaaaan!"?
03:40:27 <Gregor> Bizarre reference to http://lonelydino.com/?id=7
03:40:56 <Gregor> (Also, to be confusing)
03:40:59 <pikhq> Also a non-bizarre reference to a certain Star Trek film.
03:41:10 <pikhq> "Wrath of Khan: it was actually good."
03:41:10 <pikhq> :P
03:43:51 <Mathnerd314> oh, I actually remember seeing that
03:44:13 <Mathnerd314> at least, at the end where the coffin hits the planet
03:46:28 <Mathnerd314> maybe I should sit down and watch the series sometime, so it actually makes sense :p
03:54:27 <Sgeo_> http://1pd.org/play/4479_exploit.aspx
04:01:28 -!- Oranjer has left (?).
04:02:06 -!- MizardX has quit (Ping timeout: 276 seconds).
04:10:15 <pikhq> Mathnerd314: TOS had good moments, TNG is quite good after the first two seasons, DS9 was quite good, and after that is a decade of shit.
04:15:07 * Sgeo_ wonders if that Exploit game is TC
04:18:42 <Mathnerd314> TC?
04:18:54 <Mathnerd314> oh, turing-complete
04:30:00 <Mathnerd314> I wonder how much of it is true ;-)
04:30:16 <Mathnerd314> keyboard shortcuts would be way cool
04:40:42 -!- sshc has quit (Ping timeout: 260 seconds).
04:55:52 -!- augur has quit (Remote host closed the connection).
04:56:06 -!- augur has joined.
05:00:17 <oerjan> wtf
05:01:39 <oerjan> norway and russia have agreed on the border line
05:02:03 <oerjan> it only took 40 years...
05:02:21 <oerjan> *sea border
05:28:14 -!- sshc has joined.
05:30:22 -!- fivetwentysix has joined.
05:32:07 <pikhq> Hah.
05:32:17 <oerjan> ?
05:32:33 <pikhq> Maybe soon the RoC and the PRoC can agree on each other's existence.
05:35:08 <coppro> seems unlikely
05:35:33 -!- sshc has quit (Read error: Connection reset by peer).
05:35:37 -!- sshc has joined.
05:35:43 <coppro> just as unlikely that Canada and the US settle their maritime border disputes
05:36:05 <pikhq> Ah, right, they actually do dispute that.
05:36:06 <oerjan> pikhq: it seems the chinese take a little more time to conclude, as a quote in the same newspaper article mentioned
05:36:27 <oerjan> http://en.wikiquote.org/wiki/Zhou_Enlai
05:36:45 <pikhq> I note that the RoC doesn't recognise any border changes since 1945...
05:37:09 <pikhq> Crazy.
05:37:28 -!- fivetwentysix has left (?).
05:42:42 -!- sshc has quit (Read error: Connection reset by peer).
05:42:47 -!- sshc has joined.
05:47:42 -!- coppro has quit (Remote host closed the connection).
05:48:13 -!- coppro has joined.
06:09:38 <augur> http://www.fantasysupplies.co.uk/Arm-Dildo-938.html
06:36:58 * Mathnerd314 is too tired to care about anything
06:37:00 <Gregor> Looks ... awkward. Not sure why that's a good position in terms of control.
06:37:24 <Mathnerd314> wow - within 5 seconds!
06:37:45 <Gregor> I wait for somebody else to be typing before I ever type.
06:38:04 <Gregor> augur: I guess if you had one strapped to both biceps, it would look pretty cool slash creepy ... slash slash :P
06:38:26 <pikhq> Like Edward Penishands.
06:38:51 * Mathnerd314 googles
06:38:56 <Gregor> I ported gnuplot to my eInk reader. Plots on eInk = friggin' amazing.
06:39:40 <oerjan> Mathnerd314: you probably want to make that "scissorhands"
06:39:47 <coppro> Gregor: which reader?
06:39:53 <Gregor> coppro: iRex DR800SG
06:40:05 <coppro> what's the processor?
06:40:08 <pikhq> oerjan: No, the porn I references was actually "penishands". Real thing.
06:40:18 <oerjan> pikhq: O_O
06:40:30 <Gregor> coppro: "400MHz Freescale i.MX31L"
06:40:37 <pikhq> oerjan: And no, it's not any good.
06:40:37 <coppro> never heard of it!
06:40:38 <oerjan> i suppose i _shouldn't_ be surprised :D
06:40:46 -!- FireFly has joined.
06:40:52 <pikhq> Something Awful had a hilarious review though.
06:40:53 <Gregor> coppro: It's the world's most hackable eInk reader :)
06:41:16 <Gregor> coppro: GPL SDK, runs X11 + GTK+, porting stuff to it is so easy it's fun.
06:41:34 -!- kar8nga has joined.
06:41:45 <coppro> Gregor: In other words, it has a GCC backend? :P
06:42:06 <pikhq> coppro: And UNIX!
06:42:21 -!- oerjan has quit (Quit: Later).
06:42:27 <Gregor> Well yeah, but furthermore unlike, oh, say, an Apple product, you don't have to sign their "we own your sperm" license agreement to GET that SDK and the requisite libraries.
06:42:34 <coppro> that's true
06:43:06 <pikhq> Gregor: I'd imagine the Catholics would dislike an actual "we own your sperm" license.
06:43:20 <pikhq> After all, every sperm is sacred.
06:43:39 <Gregor> pikhq: Sure, but it's the only way Apple could get a first-born-son clause into a modern licensing agreement without infringing child or slave labor laws.
06:44:12 <coppro> how do I operate the quote bot?
06:44:26 <pikhq> With your FISTS
06:44:31 <Gregor> Use `quote <foo> to search, `addquote <foo> to add
06:45:05 <coppro> `addquote <Gregor> Well yeah, but furthermore unlike, oh, say, an Apple product, you don't have to sign their "we own your sperm" license agreement to GET that SDK and the requisite libraries. ... <Gregor> pikhq: Sure, but it's the only way Apple could get a first-born-son clause into a modern licensing agreement without infringing child or slave labor laws.
06:45:09 <HackEgo> 155|<Gregor> Well yeah, but furthermore unlike, oh, say, an Apple product, you don't have to sign their "we own your sperm" license agreement to GET that SDK and the requisite libraries. ... <Gregor> pikhq: Sure, but it's the only way Apple could get a first-born-son clause into a modern licensing agreement without infringing
06:45:13 <coppro> :(
06:45:15 <coppro> boo
06:45:39 <Gregor> Heh, output length restriction :P
06:46:01 <pikhq> Because realloc is hard.
06:46:16 <Gregor> No, because not making FreeNode kick you off is hard.
06:46:35 <Gregor> Remember, I use buffer.h, realloc is trivially simple :P
06:46:42 <coppro> that's not an output length restriction
06:46:45 <pikhq> Uh, the output length restriction is part of the IRC protocol.
06:46:47 <coppro> at least, not from the network
06:46:56 <coppro> (and, as pikhq says, the protocol)
06:47:06 <fizzie> Yes, but that's a shorter restriction than the IRC limit.
06:47:11 <coppro> that length restriction is internal to HackEgo
06:47:14 <Gregor> pikhq: The problem is that the restriction is on the whole line, but my stuff is modularized in such a way that I can't easily restrict it there, so I have to restrict it conservatively.
06:47:15 <pikhq> Ah.
06:47:39 <coppro> and I guess you can't assume a 9-character limit to the nickname either
06:47:57 <Gregor> Mathnerd314 says I can't.
06:48:08 <Gregor> And on the other network it's on, I'm not sure if they have any limit at all :P
06:49:26 <coppro> ##this-channel-name-is-so-veryv-very-long-good-luck-getting-a-word-in-edgewise-really-really-i-dare-you-youll-find-it-pretty-tough-to-do-so-try-it-youll-fail-just-watch-theres-no-way-around-it-sucker-hahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahah (and so on until you reach the actual limit)
06:49:57 <pikhq> The IRC line length limit is... Pretty silly.
06:50:08 <coppro> sensible when fixed-length buffers were the norm
06:50:11 <fizzie> Usually the nick length limit is told to the client at connection-time; freenode says, for example, "NICKLEN=16 CHANNELLEN=50 TOPICLEN=390".
06:50:22 <pikhq> coppro: Yes, when gets was in use...
06:50:22 <coppro> fizzie: per the spec, it's officially 9
06:51:51 <Mathnerd314> anyways, I have standardized tests tomorrow
06:51:58 <Mathnerd314> bye
06:52:22 <coppro> I have what is nearly the most important assignment of the year due tomorrow :/
06:52:31 <coppro> and it aten't done
06:52:38 <coppro> and I'm tired
06:52:44 <coppro> :(
07:00:18 <Quadrescence> coppro: http://www.youtube.com/watch?v=DWJECLN4S00
07:00:46 <coppro> huh
07:00:54 <Quadrescence> is that ur fave song
07:01:31 -!- tombom has joined.
07:01:31 <coppro> no
07:01:37 <coppro> that involves someone else talking
07:01:41 <coppro> not me
07:07:35 <AnMaster> <Gregor> And on the other network it's on, I'm not sure if they have any limit at all :P <-- 31 tends to be common
07:08:14 <AnMaster> <coppro> fizzie: per the spec, it's officially 9 <-- sure, but no one follows the spec
07:08:30 <coppro> EFNet does
07:08:47 <AnMaster> coppro, okay, but apart from them and possibly ircnet: no one does
07:25:16 <fizzie> IRCnet is also, I think, rather spec-adherent, yes.
07:25:47 <fizzie> The newer set of RFCs do say that: "While the maximum length is limited to nine characters, clients SHOULD accept longer strings as they may become used in future evolutions of the protocol." I guess everyone else has just decided to do "future evolutions" by themselves.
07:26:43 <pikhq> The IRC RFCs are typically taken as mere suggestions, anyways.
07:27:22 <coppro> yeah
07:27:31 <coppro> the CTCP colour spec is never used, for instance
07:30:54 <AnMaster> fizzie, everyone but ircnet completely ignored the newer version
07:30:58 <AnMaster> for example
07:31:06 <AnMaster> that line with "NICKLEN=16 CHANNELLEN=50 TOPICLEN=390" in it
07:31:09 <AnMaster> is not in any spec
07:31:13 <fizzie> Sure is.
07:31:21 <fizzie> In an expired internet-draft, that is.
07:31:24 <AnMaster> fizzie, no? isn't that the 005
07:31:33 <AnMaster> which is used for more than one thing
07:31:35 <AnMaster> XD
07:31:46 <AnMaster> fizzie, heh? really?
07:31:52 <fizzie> An expired draft is still pretty speccy enough!
07:31:56 <fizzie> See http://www.irc.org/tech_docs/draft-brocklesby-irc-isupport-03.txt
07:32:13 <AnMaster> mhm
07:33:32 <fizzie> I'm having the AI competition "debriefing" / prize-giving / whatever session in half an hour; don't have much to say, should have prepared even more colorful graphics for it instead.
07:33:47 -!- olsner has quit (Ping timeout: 246 seconds).
07:34:28 <AnMaster> fizzie, who won?
07:34:56 <fizzie> One two-person group took both the first and second places (they're allowed to submit two bots).
07:35:19 <fizzie> They submitted the same thing with slight tweaks in the computation-time management logic.
07:35:36 <fizzie> Which is, I guess, reasonable; there's two of them, now they'll get two prizes.
07:41:57 <fizzie> AnMaster: If you have nothing better to do, here's some slides with statistics on the tournament in Finnish on them; you can read it for the pictures. :p http://zem.fi/~fis/htloppu10.pdf
07:48:30 -!- olsner has joined.
07:48:47 <AnMaster> fizzie, I do have something more important to do (sadly)
07:50:14 <fizzie> Well, the slides won't go anywhere.
07:50:40 <fizzie> I should probably go set up the laptop there, and see if the projector is again somehow borken; that classroom tends to have Issues(tm).
07:50:54 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:14 -!- jcp has quit (Ping timeout: 260 seconds).
08:04:49 -!- FireFly has quit (Quit: Hey! Listen!).
08:16:35 -!- Alex3012 has quit (Remote host closed the connection).
08:20:29 <augur> are any of your esofags also metalfags?
08:25:45 <olsner> there's metal in the buckling springs of my keyboard, they make sounds... does this mean I listen to metal?
08:26:51 <augur> :p
08:26:55 <augur> http://www.wellnowwhat.net/transfers/dmnm.pdf
08:28:12 <olsner> grr, this pdf viewer always makes its window about 1.25x the size of my screen
08:31:57 <olsner> oh, that was too long for my attention span
08:32:03 -!- yiyus has quit (*.net *.split).
08:35:36 <oklopol> oerjan: Ping
08:38:00 -!- yiyus has joined.
08:53:41 <oklopol> people write about music in a really stupid way
08:54:22 <oklopol> if you write an article related to music and you don't need to mention any specific melody, you're not actually saying anything
08:54:59 <oklopol> and don't try to disagree, this is how i define not actually saying anything
08:57:02 <oklopol> oerjan: it would be a lot nicer if you came NOW, and didn't wait for me to leave first
08:57:24 <oklopol> i have just one line to say, so i could just say it now, but that would be stupid
09:05:45 <fizzie> We should have that message-passing bot.
09:06:02 <fizzie> Then you could say it now, and it'd be repeated when oerjan says pong, and it'd be somehow much less stupid.
09:06:10 <fizzie> Magically.
09:10:25 -!- lereah_ has joined.
09:19:23 -!- Axtens has joined.
09:20:33 <oklopol> yes true
09:24:12 <AnMaster> <augur> are any of your esofags also metalfags? <-- Do you smoke metalfags using a blowtorch? ;P
09:24:29 <augur> AnMaster: yes, obviously
09:24:52 <AnMaster> augur, well, I don't smoke. I guess that is why I didn't know that.
09:24:52 <fizzie> AnMaster: Heh, there was a total of two (2) out of fourty-four (44) participants present at the prize-giving occasion.
09:25:07 <AnMaster> fizzie, those two being the winners?
09:25:20 <fizzie> AnMaster: Right, but places #3 and #4 would've gotten prizes too, had they been there.
09:25:30 <AnMaster> fizzie, did it say so somewhere?
09:25:49 <AnMaster> fizzie, I mean, maybe they missed that 3 and 4 got prices too?
09:26:13 <AnMaster> perhaps you should email them and tell them what they missed out on
09:26:24 <AnMaster> fizzie, btw what did the various prices consist of?
09:27:12 <fizzie> AnMaster: Well, it's not exactly written down anywhere, because the exact number that get prizes depends on how many prizes the guest lecturer / Hierarchy designer happens to bring; but I've said to them that "3-5 best" get rewards, informally.
09:28:01 <fizzie> Anyway, obviously you should come there not because of the prizes but because you want to participate in lively discussion about the course-project.
09:28:12 <fizzie> And colorful graphs.
09:28:55 <fizzie> I even had a video, though I forgot to show it; it would've been a spectacularly boring 12 seconds, anyhow.
09:32:18 <oklopol> fizzie: could've been worse
09:32:20 <oklopol> in fact
09:32:23 <oklopol> could've been TWO worse
09:32:38 <fizzie> Twice as worse.
09:32:42 <oklopol> yeap
09:40:06 <AnMaster> hm
09:40:21 <AnMaster> fizzie, so what did the prices consist of? You didn't answer that
09:41:05 -!- Asztal has joined.
09:41:25 <oklopol> oerjan: the thing i wanted to tell you was just that i was really disappointed by how "groups are categories", you just use the morphism composition as monoid multiplication... i thought it'd be something cool like identifying groups by what their automorphisms always look like or something
09:41:47 <oklopol> it's quite important i'm sure you'll find
09:42:06 <oklopol> something that's not obvious
09:43:12 <AnMaster> <fizzie> We should have that message-passing bot. <-- memoserv?
09:46:58 -!- Axtens has quit (Quit: Leaving).
09:50:03 <fizzie> AnMaster: Oh, right. There was some chocolate, and some bottles; it's one of the most non-dry Finnish celebrations soon -- http://en.wikipedia.org/wiki/Walpurgis_Night#Finland -- and it's a particularly student-oriented one. Nothing extravagant, anyhow.
09:51:29 <fizzie> I'm not sure memoserv is quite as convenient; and it's so off-channel. I was thinking more like #scheme's bot, which would wait until the message recipient said something publicly, and then repost the message on channel.
09:54:55 <AnMaster> ah
10:18:39 <oklopol> fizzie: are you going to party hard?
10:19:17 <oklopol> is vappu the one where there are balloons if you're a kid
10:19:56 <fizzie> Re balloons; yes, I think so.
10:20:04 <fizzie> We're just going to stay at home and not go outside.
10:20:24 <oklopol> we're doing even better and visiting her parents
10:20:34 <oklopol> they live nowhere
10:20:49 <oklopol> vihti
10:21:02 <fizzie> Though I did consider a balloon; the cat we had when I was young(er) was most interested in them, perhaps the current one might be too.
10:21:25 <fizzie> You can tie some sort of a cat toy in the balloon string; insta-amusement without having to do anything.
10:21:29 <oklopol> well that's some long lasting fun for your cat there.
10:21:42 <Quadrescence> I just received a book on an esoteric language :)
10:21:48 <fizzie> I guess there's the claw-and-balloon problem, though.
10:21:52 <oklopol> which one?
10:21:54 <Quadrescence> Their perspectives are pretty neat
10:22:16 <Quadrescence> oklopol: http://i.imgur.com/6EYM3.jpg highly recommended so far
10:22:33 <oklopol> yummy
10:22:48 <oklopol> i once read half a book about cobol
10:22:49 <oklopol> i think
10:22:53 <oklopol> i don't remember anything
10:22:57 <oklopol> i was like 6
10:23:12 <oklopol> emphasis on the like
10:23:54 <fizzie> I have a friend who I think was somewhat cobol-skilled, but personally don't know anything about it. I don't think it's consensually considered an esolang, though? More like semi-obsolent and businessy.
10:24:08 <AnMaster> oh "walpurgis night" == valborgsmässoafton?
10:24:09 <AnMaster> right
10:24:12 <AnMaster> that is big here too
10:24:37 <AnMaster> bonfires are traditional
10:25:06 <fizzie> We don't do bonfires except at midsummer.
10:25:24 <AnMaster> at midsummer? How strange ;P
10:25:43 <fizzie> From the Wikipedia article I got the impression that the tone is a bit different for this one in Finland and Sweden.
10:25:53 <fizzie> The main article image for http://en.wikipedia.org/wiki/Midsummer is a Finnish bonfire, in fact.
10:26:27 <fizzie> I think midsummer bonfires are not a Finnish-only thing, though.
10:26:51 <AnMaster> for midsummer in Sweden, maypoles are traditional.
10:27:30 <AnMaster> it isn't called maypole in Sweden though (that would be the wrong month!)
10:27:44 <AnMaster> it is called "midsommarstång" which mean "midsummer pole"
10:28:50 <fizzie> The subsections for Brazil, Croatia, Denmark, Estonia, Finland, France, Ireland, Italy, Lithuania, Norway, Portugal, Russia and Ukraine and Spain mention the word "bonfire" in them.
10:29:06 <fizzie> The Sweden bit does note that in "Sweden and parts of Finland the tradition of bonfires are not part of midsummer but of the "Valborg's" evening festivities when winter leaves for summer."
10:29:21 <AnMaster> quite
10:29:49 <fizzie> I'm not sure which parts of Finland those are; not the eastern ones, I think.
10:36:01 <fizzie> Incidentally, I also picked up a rather interesting book from the "getting-rid-of" bin of the local library; it is a guide for translating (not porting, not understanding, just translating according to a rigid set of rules) FORTRAN-II and FORTRAN-IV programs to ALGOL-60 and back. There's large tables of hardware specs for different 1960s-era computers (most of which I've never heard of) and all other sorts of curious miscellania.
10:46:20 <AnMaster> fizzie, probably some of the Swedish speaking parts
10:46:54 -!- kar8nga has quit (Remote host closed the connection).
10:47:09 <AnMaster> bbl
10:57:38 -!- hiato has joined.
11:01:34 -!- Tritonio_GR has joined.
11:04:36 -!- hiato has quit (Ping timeout: 265 seconds).
11:15:30 -!- cheater3 has joined.
11:19:57 -!- pineappl1 has joined.
11:24:35 -!- cheater2 has quit (*.net *.split).
11:24:35 -!- pineapple has quit (*.net *.split).
11:24:35 -!- fungot has quit (*.net *.split).
11:40:21 -!- clog has quit (Ping timeout: 276 seconds).
11:40:21 -!- clog has quit (ended).
11:40:25 -!- clog has joined.
11:40:25 -!- clog has joined.
11:45:56 -!- Phantom_Hoover has joined.
11:46:32 <Phantom_Hoover> Why the hell did Apple think that it was a good idea to make the hash key alt-3?
11:49:13 -!- hiato has joined.
11:55:08 -!- cheater3 has quit (Ping timeout: 240 seconds).
12:09:33 -!- cheater2 has joined.
12:56:38 -!- Phantom_Hoover has quit (Remote host closed the connection).
13:01:26 -!- Tritonio_GR has quit (Quit: Leaving.).
13:17:53 -!- adam_d has joined.
13:24:55 -!- MizardX has joined.
14:10:25 -!- Axtens has joined.
14:12:55 -!- Tritonio_GR has joined.
14:14:31 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
15:17:38 -!- FireFly has joined.
15:19:53 -!- hiato has quit (Quit: underflow).
15:20:19 -!- hiato has joined.
15:23:43 -!- oerjan has joined.
15:28:44 -!- Tritonio_GR has quit (Quit: Leaving.).
15:29:37 <oerjan> oklopol: pong
15:31:55 -!- chickenzilla has quit (Quit: Lost terminal).
15:38:05 <oerjan> <Phantom_Hoover> Why the hell did Apple think that it was a good idea to make the hash key alt-3?
15:38:15 <oerjan> well it's shift-3 here
15:38:23 <oerjan> (norwegian keyboard)
15:38:51 <oklopol> so how about the same thing for rings, is it a cheat
15:39:19 <oklopol> i'm not sure my ping and the rest of my thing was in the same place, if not keep reading
15:39:31 -!- chickenzilla has joined.
15:39:32 <oerjan> rings as categories? i think that's a bit harder... _however_:
15:40:26 <oerjan> if you are already in the category of abelian groups, then the single-object subcategories are of course endomorphism rings
15:40:55 <oerjan> although you might need more than that single object to extract the ring operations
15:41:01 <oklopol> category theory books tend to go pretty fast from exact proofs to "look at this commutative diagram here and you'll see" a bit too quickly for me
15:41:45 <oerjan> (addition that is. there's a way of extracting it using categorical products and/or coproducts)
15:42:12 <oklopol> i see
15:42:23 -!- lereah_ has quit (Quit: Leaving).
15:42:42 <oerjan> or maybe it was limits/colimits
15:42:57 <oklopol> well i don't really know any of those thing yet
15:42:59 <oklopol> *things
15:43:08 <oerjan> ok
15:43:13 <oklopol> well i suppose i do know products to some extent
15:43:51 <oklopol> which of course means i know coproducts!
15:44:12 <oklopol> the duality of understanding
15:44:17 <oerjan> well they're almost the same thing in abelian categories (such as the category of abelian groups)
15:44:34 <oklopol> what are abelian categories?
15:44:38 <oerjan> (since sum of two abelians groups is isomorphic to their product)
15:45:04 -!- Tritonio_GR has joined.
15:45:10 <oklopol> that any two morphisms A -> A commute?
15:45:22 <oerjan> i don't recall exactly, but _basically_ i think those are the categories where you can do that trick to define group operations on the morphisms A -> B
15:45:50 <oklopol> emm umm okay
15:46:41 <oerjan> so basically they _look_ like the objects are abelian groups and the morphisms are group homomorphisms, as far as category theory can detect. iirc.
15:46:58 <oklopol> okay that makes sense
15:47:06 -!- BeholdMyGlory has joined.
15:47:13 <oklopol> doesn't really tell me anything tho
15:47:14 -!- Axtens has quit (Quit: Leaving).
15:47:35 <oerjan> there may be some other things, like products and stuff should exist (which you need to do that trick anyway)
15:47:51 <oerjan> maybe i should check wikipedia that i'm not completely bullshitting
15:50:31 <oerjan> ok not _too_ far from the truth
15:53:27 <oerjan> what i said may be somewhat closer to an _additive_ category, which has only _some_ of the properties of an abelian category
15:53:29 <oklopol> :)
15:53:36 <oklopol> okay
15:54:26 <oklopol> i should probably go read some topology
15:54:31 <oerjan> basically (1) in a _preadditive_ category, morphisms form abelian groups, but not necessarily in a way you can extract from the category
15:55:08 -!- ais523 has joined.
15:55:16 <oerjan> in an _additive_ category, you have enough structure (biproducts, it seems) that you can get the addition out from just category properties
15:55:39 <ais523> ooh, category theory
15:56:05 <oklopol> "morphisms form abelian groups"
15:56:10 <oklopol> in what way exactly?
15:56:11 <oerjan> an abelian category though, also has some other ways of combining objects categorically
15:56:39 <oerjan> so you can do more of that diagram chasing stuff etc.
15:57:32 <oerjan> oklopol: well for a preadditive category, i think you just have the addition as extra structure, Hom(A,B) comes with it for every object A and object B
15:57:57 <oklopol> oh.
15:58:03 <oklopol> well i guess that's neat
15:58:19 <oerjan> for an additive category however, you don't need to include anything extra, it's uniquely definable using the biproduct thing
15:58:31 <oklopol> wanna elaborate on biproduct?, or is it in parens so you don't have to
15:58:36 <oklopol> *?
15:58:54 <ais523> hahaha, SCO have just submitted a motion to rule that the jury judged SCO vs. Novell incorrectly
15:58:59 <ais523> that's... pretty amazing
15:59:59 <ais523> <SCO> The jury verdict in this case is the type for which Rule 50(b) and Rule 59 exist. The jury simply got it wrong: The verdict cannot be reconciled with the overwhelming evidence or the Court's clear instructions regarding the controlling law.
16:00:32 <hiato> ais523: I fail to believe there issuch a law/avenue for motion
16:00:35 <oklopol> ais523: what was it that you you had a permutation proof for exactly, group theory related
16:00:39 <oklopol> *-you
16:00:43 <oklopol> it was ages ago
16:00:47 <ais523> oklopol: Fermat's Little Theorem, probably
16:00:53 <oerjan> oklopol: it seems to be a product that is also a coproduct of the same objects. for abelian groups products and coproducts coincide, so it's a natural property there
16:00:54 <oklopol> hmm ah right
16:01:05 <oerjan> (finite ones that is)
16:01:23 <ais523> hiato: this is SCO we're talking about; they're likely to try more or less anything
16:01:40 <ais523> rule 50 says that if there's no evidence/legal arguments to favour one side of a court case at all, it can be thrown out without going to the jury
16:01:45 <ais523> and SCO are trying to invoke it retroactively, it seems
16:02:49 <oerjan> oklopol: the definition seems to also require a zero object in the category, so that some morphisms combine to zero
16:03:27 <hiato> ais523: Well, if that doesn't scream 'this legal sytem is a farce, then nothing will. Surely you cannot overturn a judgement made within the law based on, what seemes to be a lack of solid evidence one way or anothr combined with the fundemetal tennant of "innocent until proven guilty", or can you?
16:03:48 <hiato> s/ce,/ce',/
16:03:51 <ais523> hiato: SCO only submitted the motion, that doesn't mean that the judge has to pay it any attention
16:03:51 <oklopol> anyway other fun theorem that follows from almost the same thing, x^p = 1 in any group has kp solutions, k>1; consider equivalence classes by conjugacy on the set S = {(x_1, ..., x_p) | x_i \in G, \product x_i = 1}, clearly (1, ..., 1) \in S, so there must be kp, k>1 different (x, ..., x) style tuples in S (because all conjugates of S's elements are in S)
16:03:52 <oerjan> (say when you have a morphism that sends something only to the A part of A x B, combined with a morphism that projects down to the B part)
16:04:05 <oklopol> err
16:04:06 <ais523> but yes, the case has been a farce for almost a decade now
16:04:11 <oklopol> conjugacy being xy -> yx
16:04:34 <hiato> ais523: but we all know it will drag on for another five years like this, if they can keep cheating
16:04:58 <ais523> hiato: yes
16:05:22 <oklopol> err, that is
16:05:56 <oklopol> |G| has to be divisible by p
16:06:18 <oklopol> gah i should've thought this through before saying it, i read the proof like 4 weeks ago :P
16:07:42 <oklopol> point is, for every p-1 first elements in a tuple we have exactly one way to finish the tuple to get the product to be 1, so we have |G|^(p-1) tuples in S, so p | |S|, NOW if you take equivalence classes by conjugacy, you see the amount of (x, ..., x) tuples has to be divisible by p, because every eq class has either 1 (x, ..., x) element, or then p elements, because p is prime
16:08:12 <oklopol> and xy = 1 ==> yx = 1, ofc
16:08:49 <oklopol> so the amt is kp, k>1 because at least (1, ..., 1) is there
16:11:13 <oklopol> oerjan: i'm not sure i'm capable of doing this stuff without being completely formal, yet, the cat stuff that is
16:11:42 <oklopol> or maybe it's just because i don't remember products that well
16:11:51 <oklopol> or understand
16:11:53 <oklopol> or love
16:12:07 * hiato :)
16:12:58 <oerjan> oklopol: hey i'm not doing it either, just describing the buzzwords :)
16:13:08 <oklopol> sometimes you form a product category, but sometimes you find an object C you call the product of A and B in the *same* category as A and B, if it has the cool splitting property that morphisms to A and B can be combined into
16:13:10 <oerjan> to do it requires pen and paper
16:13:22 <oklopol> this confused me for quite a while when reading about them
16:13:58 <oerjan> oklopol: i would assume a product category is a product of two objects in the category Cat
16:14:17 <oklopol> well right, i guess that's why reading math books is so hard for me, i clarify every detail to myself, but i never use paper
16:14:38 <oklopol> hmm yes i suppose it is
16:14:46 <oerjan> assuming, since i don't recall what a product category actually is
16:16:00 <oerjan> but it's probably a natural enough thing (natural being also a technical term, naturally :D)
16:17:03 <oklopol> if C category, and A, B \in C, then (AxB (\in C), outl (also in C), outr) is the product of A and B iff for every pair of morphisms f1 : D -> A, f2 : D -> B there's a unique morphism g : D -> AxB such that outl . g = f1, outr . g = f2
16:17:04 <oklopol> iirc
16:17:31 <oklopol> yes it's natural, but i haven't been able to see how that's naturality in the category theory sense...
16:18:35 <oklopol> anyway in the intuitive sense that is rather natural
16:19:46 <oerjan> i think if something in category theory looks natural, then there is probably a technical sense of naturality which it fulfils. or at least functoriality or similar.
16:20:18 <oklopol> probably, and probably i have already seen how that's natural exactly, but i didn't know what was going on yet
16:20:32 <oerjan> that product definition looks fair enough
16:20:34 <oklopol> i'm a very slow learner
16:20:44 <oklopol> it was an oerjan style iirc
16:20:53 <oerjan> heh
16:22:07 <oerjan> now add the dual inl and inr for a coproduct, and if the _same_ A x B is also the coproduct, with some added equations, then it's a biproduct
16:22:29 <oklopol> oh hmm
16:23:08 <oerjan> outl . inl = id_A, outr . inr = id_B, outl . inr = 0_B->A, outr . inl = 0_A->B
16:23:26 <oklopol> so coproduct would be (AxB, inl, inr) is the coproduct of A and B iff for every pair of morphisms f1 : A -> D, f2 : B -> D there's a unique morphism g : AxB -> D such that g . inl = f1, g = f2 . inr
16:23:33 <oerjan> that 0 notation invented on the fly, it means it's the unique morphism factoring through the zero object
16:24:02 <oklopol> those are requirements not properties?
16:24:34 <oerjan> at least the zero parts, i think, the identities might be automatic
16:25:11 <oklopol> at least outl <split> outr = id_(AxB) is automatic
16:25:24 <oklopol> so i'd imagine other id things might follow automatically too
16:25:25 <oklopol> :)
16:25:29 <oerjan> yeah
16:25:46 <oerjan> fwiw maybe even the zero parts follow somehow
16:27:37 <oerjan> oh it seems it does, there is something in the properties section of wp:Biproduct
16:28:54 <oerjan> oh hm maybe not quite
16:29:09 <oklopol> factoring through the zero object?
16:29:31 <oklopol> how can i read something like that without realizing i have no idea what it means
16:29:52 <oklopol> this is why math is so hard, i always confuse not understanding and not knowing
16:30:02 <oerjan> a zero object is an object such that every object has exactly _one_ morphism from it and one to it
16:30:11 <oklopol> but umm
16:30:13 <oklopol> ohh
16:30:16 <oklopol> terminal & initial
16:30:22 <oerjan> initial + t .. right
16:31:03 <oklopol> okay i thought zero was a nickname for initial, because of the sets |I| = 0 & |T| = 1...
16:31:34 <oerjan> so if a morphism is a composition of something into the zero object and out of it, then there is only one way of achieving that between A and B
16:31:37 <oklopol> in which case you can't factorize through it
16:32:25 <oerjan> in abelian groups, the zero object is the trivial group, usually denoted 0
16:32:40 <oklopol> yeah i get it, i just guessed the wrong definition, although now that i think about it, "the one object" sounds a bit stupid
16:32:50 <oerjan> for sets initial and terminal are different
16:32:50 <oklopol> hmm yes
16:33:00 <oklopol> yeah they are I and T
16:33:27 <oerjan> singleton object is a fancier name :)
16:34:16 <oerjan> well I is the empty set
16:34:27 <oklopol> i said that
16:34:52 <oklopol> it's YOU who has to spell these things out, not me i can be obscure.
16:34:54 <oerjan> no you didn't
16:35:00 <oklopol> "<oklopol> okay i thought zero was a nickname for initial, because of the sets |I| = 0 & |T| = 1..."
16:35:37 <oerjan> well the difference i'm aiming for here is that there is only _one_ empty set, but many singleton sets
16:36:12 <oerjan> not that category theory cares
16:36:39 <oklopol> T's are isomorphic brethren
16:37:04 <oklopol> are all terminals always?
16:37:11 <oklopol> hmm
16:37:16 <oklopol> don't tell me
16:38:04 <oklopol> T1 and T2 terminal, so f : T1 -> T2 and g : T2 -> T1 unique, so their compositions must be identities because they are *some* morphisms from Ti to itself, and there's just one such morphism because Ti terminal
16:38:10 -!- lament has joined.
16:38:29 <oklopol> and so it's identity, because there's always identity
16:38:40 <oklopol> possibly my first category theory proof
16:38:51 <oklopol> or maybe my fifth, who knows
16:39:30 <oerjan> you cannot know before you construct the category of numbers
16:39:44 <oklopol> ?
16:39:52 <oerjan> (it was a joke)
16:40:04 <oklopol> i guessed, but i still didn't get it
16:40:20 <oklopol> oh...
16:40:39 <oklopol> oh you meant the fifth thing
16:40:42 <oerjan> yeah
16:41:58 <oklopol> ooh
16:42:03 <oklopol> so okay we have some dual result now
16:42:05 <oklopol> let's see
16:42:18 <oklopol> initials are isomorphic too, right
16:43:15 <oerjan> while only terminals are left
16:43:16 <oklopol> i was just about to ask how you can have multiple initials, but that's sort of obvious from how duality emerges in the first place...
16:44:24 <oklopol> right -> left? sorry to call all your jokes, but somehow they just look like random references to things rather than things with two meanings
16:44:35 -!- lament has quit (Quit: lament).
16:44:38 <oerjan> clearly right is dual to left
16:44:42 <oklopol> yes
16:45:19 <oklopol> but see i didn't see how that made sense without the reference, it has to make a bit of sense without it too, or it's not a pun but a ...nothing
16:45:49 <oklopol> but possibly it did, and i'm just not seeing it because my brain is asleep
16:46:10 <oklopol> hmm
16:46:49 <oklopol> "initials are ..., right", you could imagine this meaning that "initials are among other things right"
16:46:58 <oklopol> then it would make sense
16:47:04 <oklopol> okay i'm satisfied
16:47:39 <oerjan> well clearly terminals are what's left at the end
16:48:12 <oklopol> when you start isomorphing things?
16:48:32 <oerjan> >_>
16:48:46 <oklopol> can we be more formal about this, too complicated this way :(
16:49:03 <oerjan> i don't know a theory of formal joking, sadly
16:49:17 <oklopol> i c
16:49:47 <oklopol> ".. joking, sadly" <<< this would probably have triggered a pun of some sort if i'd said it?
16:51:46 <oerjan> sorry, we're all out
16:51:59 <oklopol> :)
16:52:06 <oklopol> perhaps some topology now, before this all turns into a farce of some sort
16:52:43 <oerjan> i think that would be stretching it
16:53:41 <oklopol> some homeomorphic images are less natural than others
16:54:15 <oerjan> if you say so
16:54:43 <oklopol> well I'M laughing
16:54:49 <oklopol> well but yeah really ->
16:55:22 <oklopol> (i wasn't laughing)
17:05:05 -!- kar8nga has joined.
17:22:01 -!- tombom has joined.
17:31:54 -!- sebbu2 has joined.
17:32:54 -!- hiato has quit (Quit: underflow).
17:33:10 -!- sebbu has quit (Ping timeout: 264 seconds).
17:33:10 -!- sebbu2 has changed nick to sebbu.
17:48:25 -!- augur has quit (Ping timeout: 246 seconds).
17:51:56 -!- jcp has joined.
18:03:02 -!- pineappl1 has changed nick to pineapple.
18:03:11 -!- cal153 has joined.
18:12:12 -!- augur has joined.
18:13:14 -!- jcp has changed nick to pythonwizard2539.
18:16:08 -!- pythonwizard2539 has changed nick to jcp.
18:29:34 -!- augur has quit (Ping timeout: 258 seconds).
18:30:14 -!- Tritonio_GR has quit (Quit: Leaving.).
18:36:55 -!- augur has joined.
18:44:23 -!- adam_d has quit (Ping timeout: 246 seconds).
18:46:37 -!- tombom has quit (Ping timeout: 264 seconds).
18:54:59 <AnMaster> ais523, I have this wild idea of a ASIC for befunge93...
18:55:09 <AnMaster> an*
18:55:16 <AnMaster> preferably async
18:55:27 <ais523> there's nothing particularly asynchronous about befunge93, is ther?
18:55:32 <ais523> *there
18:55:48 <AnMaster> ais523, no but that isn't required. After all an async MIPS CPU was made.
18:55:58 <ais523> and an ASIC for Befunge will never exist, there wouldn't be the demand to make them a million at a time, etc, which is needed to be cost-effective with ASICs
18:56:15 <AnMaster> ais523, true, you could never actually get it on silicon
18:56:20 <AnMaster> but you could design and simulate it
18:56:33 <ais523> why not just program it onto an FPGA?
18:57:05 <AnMaster> ais523, too slow? ;P
18:57:19 <ais523> FPGAs aren't slower
18:57:26 <ais523> they're just larger and more expensive than an equivalent ASIC
18:57:33 <ais523> but cheaper if you don't have the volume :)
18:58:03 <AnMaster> ais523, depends, aren't you limited to the gate level in FPGA
18:58:11 <AnMaster> you couldn't construct a gate it doesn't support?
18:58:25 <AnMaster> ais523, oh and see http://www.async.caltech.edu/mips.html
18:58:33 -!- tombom has joined.
18:58:41 <ais523> well, assuming you're using two-valued logic, you can construct any sort of gate you like out of NAND gates
18:58:50 <ais523> or, fwiw, LUTs like FPGAs use
18:58:58 <AnMaster> sure
18:59:01 <ais523> and I don't know what you linked, I've set my client to filter out links
18:59:05 <AnMaster> but it might be less efficient
18:59:15 <AnMaster> ais523, ... so how should I let you see it?
18:59:25 <AnMaster> h t t p : / / www.async.caltech.edu/mips.html
18:59:27 <AnMaster> what about that?
18:59:31 <AnMaster> did that go through?
18:59:32 <ais523> you could just describe what you're trying to show, I suppose
18:59:35 <ais523> and no, it didn't :)
18:59:40 <AnMaster> ais523, ascii graphics?
18:59:44 <AnMaster> ais523, why do you filter urls?
18:59:53 <ais523> because I basically never click on them anyway, and they're just annoying
18:59:58 <AnMaster> ais523, okay what about: www . async . caltech . edu / mips.html
19:00:04 <ais523> I'm not sure if I particularly want to see a bunch of ASCII graphics, for instance
19:00:15 <AnMaster> ais523, sure, but that is what I would have to render the image there as
19:00:15 <ais523> and I got the link that time, but I still don't have any particular impetus to follow it
19:00:29 <AnMaster> ais523, it describes that async MIPS CPU
19:00:33 <ais523> yes, and?
19:00:40 <AnMaster> and afaik MIPS isn't inherently async
19:01:06 <ais523> yes, I appreciate that something that isn't inherently asynch can be programmed into an asynch circuit
19:01:10 <AnMaster> they reached very good speed with it compared to similar size clocked
19:01:10 <ais523> you don't need to show me proof
19:02:50 <AnMaster> ais523, some 2,5 times faster, and adapting to current temperature as required (always runs as fast as possible), also less power usage (no clock signal taking power)
19:02:51 <olsner> asynch cpu == lazy evaluation applied to circuitry?
19:03:03 <AnMaster> olsner, you can follow that link btw
19:03:11 <ais523> olsner: asynch just means there isn't a global clock
19:03:12 <AnMaster> olsner, it is basically "no clock signal"
19:03:16 <ais523> and preferably not local clocks either
19:03:17 <AnMaster> ais523, no clock at all
19:03:23 <AnMaster> as far as I understand
19:03:25 <ais523> so it's independent of strict/lazy
19:03:41 <ais523> AnMaster: if you have local clocks but not global, it's somewhere between synch and asynch
19:04:54 <AnMaster> ais523, possibly there is some to interface with external buses, but otherwise it based on "quasi delay-insensitive circuits"
19:05:04 <AnMaster> I could link to a wikipedia article about it
19:05:08 <AnMaster> but that would be pointless
19:05:23 <ais523> especially as I gave a talk about quasi-delay-insensitive circuits yesterday
19:05:27 <AnMaster> hah
19:05:35 <AnMaster> what a coincidence
19:05:37 <ais523> and am perfectly capable of searching Wikipedia myself, even if I didn't happen to know what they were
19:05:49 <AnMaster> ais523, yes but I prefer being helpful ;P
19:06:10 <AnMaster> oh and, if you gave a talk on them I guess you know way more than me about them
19:07:07 <AnMaster> anyway, it seems very interesting. I wonder why current CPUs aren't based on such technology consider it is both faster (it seems?) and uses less power
19:07:13 <AnMaster> ais523, perhaps you can explain that?
19:07:25 <ais523> it's much harder to test
19:07:26 <AnMaster> I mean it has been around for a number of years
19:07:32 <ais523> much much harder
19:07:33 <AnMaster> hm
19:08:15 <AnMaster> what about using a mix though?
19:08:20 <ais523> it's also harder to optimise; with synchronous circuitry you can do all sorts of pipelining tricks and get major performance improvements pretty much for free
19:08:26 <ais523> just by messing with the software
19:08:38 <AnMaster> ais523, just going async seems to give a major performance win though
19:08:42 <ais523> with asynchronous circuitry, pipelining's still possible but you need a bunch of extra circuitry to do it
19:08:50 -!- augur has quit (Ping timeout: 240 seconds).
19:08:54 <ais523> AnMaster: yep, unoptimised it's considerably faster
19:09:08 <ais523> I'm not sure how optimised synch and asynch compare
19:09:22 <AnMaster> ais523, and you don't depend as much on the delay in the circuit if I understood it correctly
19:09:36 <AnMaster> since it will adapt itself to what is possible(?)
19:09:52 <ais523> well, yes, if you go fully delay-insensitive, but unfortunately that's impossible
19:10:06 <ais523> so you go quasi-delay-insensitive instead, and the delays matter but only in a few places
19:10:10 <AnMaster> right
19:10:16 <ais523> which you can design individually
19:10:29 <AnMaster> seems you are better off than with sync where you depend on it all the time
19:10:58 <AnMaster> no?
19:11:18 <ais523> well, the point is that if you aren't depending on delays, you aren't /exploiting/ delays
19:11:24 <AnMaster> oh?
19:11:33 <ais523> on a modern CPU you can do ten things at once and know the relative times they'll finish at
19:11:37 <ais523> and put instructions in branch delay slots
19:11:39 <AnMaster> right
19:11:40 <ais523> and that sort of thing
19:11:54 <ais523> with asynchronous circuits, none of those tricks work
19:11:55 <AnMaster> ais523, still, not all parts can benefit from that presumably?
19:12:02 <ais523> no, they can't
19:12:15 <AnMaster> so a mixed technology might be useful?
19:12:26 <AnMaster> and how hard has people actually looked at optimising async circuits?
19:12:27 <ais523> yes, and there's research in that ongoing at the moment
19:12:29 <ais523> although it's not me doing it
19:12:34 <ais523> (for the mixed technology, I mean)
19:12:41 <ais523> for optimising asynch circuits, I'm not sure
19:12:46 <AnMaster> I mean, sync circuits are *way* more common as far as I understand it
19:13:15 <AnMaster> it has been extensively researched.
19:13:26 <AnMaster> possibly unlike async circuits(?)
19:13:47 <AnMaster> oh btw "asynch"? "async" seems more common in many places?
19:14:08 <ais523> it may be a UK/US difference
19:14:11 <AnMaster> ah
19:14:13 -!- hiato has joined.
19:14:29 <ais523> strangely, computer scientists prefer messing with asynchronous circuits, because the maths is simpler
19:14:40 <AnMaster> heh?
19:14:48 <ais523> but engineers prefer synchronous circuits, because they act much more deterministically when they malfunction
19:14:49 <AnMaster> oh and what if you need low power usage, rather than high speed
19:15:03 <ais523> then you slow down the clock, or don't use one at all
19:15:15 <ais523> the general rule is that changing a value from 0 to 1, or vice versa, takes more power than leaving it the same
19:15:16 <AnMaster> ais523, and for the latter aren't you at async circuits then?
19:15:23 <ais523> well, more current, anyway
19:15:31 <ais523> yes, async is generally better for low power usage
19:15:40 <AnMaster> ais523, yes, but with the clock signal you have d-latches and such changing every clock cycle?
19:16:00 <ais523> but normally you can get a "good enough" effect with a synchronous circuit that turns itself off when it isn't needed
19:16:11 <ais523> and yes, the clock signal transitions twice a cycle by definition
19:16:22 <ais523> or once a cycle if you use both edges, but nobody does (except in DDR memory)
19:16:45 <AnMaster> but considering people are pushing for more and more battery time on various devices, wouldn't there be an advantage with async?
19:17:02 <AnMaster> I mean, even if you have good enough with sync, "even better" might be a selling argument
19:17:33 <ais523> the problem is finding competent engineers to develop it
19:17:35 <AnMaster> ais523, why don't you just double the clock rate in DDR instead?
19:17:43 <ais523> I can't remember
19:17:45 <hiato> it is ;)
19:17:48 <ais523> there is probably a good reason though
19:17:52 <hiato> Double Data Rate
19:17:58 <hiato> and the DDR2
19:18:02 <hiato> *then
19:18:11 <AnMaster> ais523, give the CS people an engineering course?
19:18:12 <AnMaster> ;)
19:18:23 <hiato> 200->400->800->10xx mhz
19:18:28 <AnMaster> sure
19:18:36 <ais523> ah, according to Wikipedia, it's to do with the amount of bandwidth needed to send the clock signal
19:19:00 <AnMaster> ais523, wait what? Doesn't the clock signal has it's own special signaling network anyway?
19:19:07 <ais523> AnMaster: yes
19:19:19 <AnMaster> so what do you mean bandwidth for it?
19:19:19 <ais523> but the point is that you need twice the bandwidth to send the signal twice as fast
19:19:27 <ais523> and just in the signal-processing sense
19:19:30 <pikhq> ais523: HyperTransport also uses both edges of the cycle.
19:19:42 <AnMaster> ais523, how can that be a problem on a dedicated wire
19:19:43 <ais523> wires tend to get overloaded, even sending alternate sequences of 0 and 1
19:19:46 <AnMaster> ah
19:19:50 <ais523> and it's because you need a better dedicated wire
19:19:55 <AnMaster> right
19:20:06 <AnMaster> ais523, capacitance in the wire or something like that?
19:20:09 <ais523> so it was cheaper to complicate the circuits than to build a supercooled semiconductor or something like that just for the clock signal
19:20:12 <AnMaster> or resistance I guess
19:20:13 * hiato just realised he's in over his head, just as with about everything on this channel (:
19:20:17 <ais523> AnMaster: all sorts of effects, although that's one of them
19:20:36 <pikhq> AnMaster: Interference also comes into it.
19:20:37 <AnMaster> hiato, so would I have been about a year ago :)
19:20:42 <AnMaster> pikhq, I can imagine
19:20:51 <AnMaster> what about inductance?
19:20:55 <pikhq> Yes.
19:20:58 <pikhq> When you've got signals that fast, things start getting *picky*.
19:21:11 <AnMaster> as long as we don't get quantum-* I'm happy
19:21:12 <ais523> AnMaster: basically, every electromagnetic phenomenon you've ever heard of
19:21:14 <ais523> plus a few more
19:21:32 <pikhq> AnMaster: Quantum mechanics don't apply outside of the CPU yet. :)
19:21:44 <pikhq> Well. Except for some of those tunneling diodes.
19:21:45 -!- augur has joined.
19:21:46 <ais523> I took an entire module at University just about imperfect behaviours of wires
19:21:54 <AnMaster> ais523, I doubt we get impedance though ;)
19:21:57 <ais523> the failure conditions can be quite crazy
19:22:11 <ais523> AnMaster: impedance is just a measure of resistance, capacitance and inductance simultaneously
19:22:34 <ais523> think of resistance like sin, inductance/capacitance like cos, and impedance like e^x
19:22:44 <ais523> the impedance is a more general concept, but only if you use complex numbers
19:22:50 <AnMaster> ais523, yes quite. That is why you don't get impedance, since that is just a neat way to combine it as a complex number
19:22:58 <pikhq> Older computers didn't have to think about all this crazy stuff. 3MHz clock rate is relatively slow.
19:23:04 <AnMaster> you don't have actual *physical* impedance afaik
19:23:04 <ais523> AnMaster: except no, the impedance is /very/ important
19:23:15 <ais523> you do
19:23:29 <AnMaster> ais523, I thought it was just a way to calculate on the numbers?
19:23:35 <ais523> because, as you go down a wire, the impedance rotates around the origin
19:23:49 <pikhq> Of course, these were the days when it was quite feasible to wire-wrap your computer.
19:23:57 <AnMaster> ais523, as in you don't get 3e^(-j90°) on the actual wire
19:24:08 <ais523> so inductances turn into resistances turn into capacitances turn into resistances turn back into inductances as you go along the wire
19:24:35 <pikhq> AnMaster: Impedance is a real thing.
19:24:43 <ais523> pikhq: no, it's a complex thing
19:24:54 <pikhq> ais523: *rimshot*
19:25:11 <AnMaster> pikhq, that isn't what I have been told. I have been told it was a way to calculate on these things.
19:25:12 <AnMaster> :/
19:25:25 <AnMaster> as opposed to something that actually exists in reality
19:25:28 <ais523> AnMaster: well, in theory you can decompose all the calculations back to resistances and reactances
19:25:29 <pikhq> AnMaster: Arguably so is everything in physics.
19:25:35 <ais523> but arguably reactance doesn't exist in reality either
19:25:41 <ais523> or, fwiw, resistances
19:25:42 <AnMaster> ais523, okay good point
19:25:48 <pikhq> Or force.
19:25:54 <AnMaster> ais523, fwiw standing for?
19:25:57 <ais523> just because you can get a resistor which has a fixed resistance, does that mean that resistance exists?
19:26:00 <pikhq> For What It's Worth.
19:26:02 <AnMaster> ah
19:26:05 <AnMaster> ais523, good question
19:26:30 <ais523> anyway, dealing with impedances is a lot more "natural"
19:26:31 <AnMaster> I guess it is just that people don't like to think that complex numbers exists in "reality"
19:27:00 -!- hiato has quit (Quit: Time to fix).
19:27:01 <AnMaster> ais523, I know, you can just calculate almost everything as if it was DC current (at least if you have a sinus shaped AC current)
19:27:49 <ais523> AnMaster: here: http://en.wikipedia.org/wiki/File:Smith_chart.jpg
19:28:04 <AnMaster> ais523, I filter links too now
19:28:16 <ais523> ah, ok
19:28:23 <AnMaster> ais523, only from you though ;P
19:28:31 <ais523> fair enough
19:28:40 <AnMaster> ais523, so what is it about
19:28:45 <AnMaster> you should describe it in words
19:28:52 <ais523> basically, the idea is that you can plot impedances on a weird coordinate system
19:29:08 <AnMaster> ais523, you can plot it in polar coordinates afaik?
19:29:10 <ais523> where all possible impedances (apart from ones with negative resistance) get a point on the unit circle
19:29:23 <ais523> you can plot in polar coordinates, but the Smith chart method is different
19:29:33 <AnMaster> oh? what does it do instead?
19:29:47 <ais523> I'm trying to remember
19:30:48 <AnMaster> hm, lets see if I remember this... Re(X) = resistance? Abs(X) = Peak voltage/current? Or did I mix them up?
19:30:50 <ais523> let's see... an impedance of 1+j0 is in the centre
19:31:09 <ais523> AnMaster: X means reactance, so you're messing up in at least some way
19:31:14 <AnMaster> ah
19:31:37 <AnMaster> ais523, no X can't, since X is the parameter there which is a complex number?
19:31:42 <AnMaster> hm
19:31:48 <ais523> AnMaster: impedance is called Z
19:31:53 <AnMaster> ais523, ah right
19:31:59 <AnMaster> terminology
19:32:01 <AnMaster> well sure
19:32:15 <AnMaster> ais523, but Re(Z) is what?
19:32:16 <ais523> anyway, circles of constant resistance all go through a single point at the extreme right
19:32:27 <ais523> and Re(Z) = R = resistance, Im(Z) = X = reactance
19:32:32 <AnMaster> right
19:32:45 <ais523> and Abs(Z) is ratio of peak voltage and peak current
19:33:10 <AnMaster> ais523, so you can get a negative R by combining it with something that rotates it by 180 degrees?
19:33:20 <AnMaster> I mean, on the paper, in theory
19:33:24 <ais523> AnMaster: there is nothing that rotates impedance as a whole 180 degrees, though
19:33:32 <ais523> you can rotate 180 degrees on a Smith chart, but that does something else
19:33:44 <AnMaster> ais523, it would be enough to rotate it by more 90 degrees
19:33:56 <ais523> nothing does that either, without a power supply
19:34:01 <AnMaster> hm true
19:34:06 <ais523> you can make a negative resistor just fine if you have a spare power supply to mess with
19:34:09 <AnMaster> same goes for -90 too
19:34:16 <ais523> or the rather more useful VDNR
19:34:21 <AnMaster> VDNR?
19:34:25 <ais523> which is a negative resistor that depends on frequency
19:34:28 <ais523> umm, FDNR
19:34:34 <ais523> frequency-dependent negative resistor
19:34:37 <AnMaster> eh
19:34:43 <AnMaster> how does that work?
19:34:46 <AnMaster> with a power supply?
19:34:48 <ais523> yes
19:34:50 <ais523> how else?
19:34:51 <AnMaster> hah
19:34:59 <AnMaster> ais523, well, I don't know, magic?
19:35:13 <ais523> even magic doesn't violate the law of conservation of energy, AFAIK
19:35:21 <AnMaster> ais523, or by reversing the polarity. That solves everything after all. Especially for AC circuits ;)
19:35:31 <ais523> so you need /some/ power supply, whether it's made of electricity or magic fairy pixie dust
19:35:42 <AnMaster> ais523, anyway, what does rotating 180 in that smith chart do?
19:36:03 -!- augur_ has joined.
19:36:09 -!- augur has quit (Read error: Connection reset by peer).
19:36:15 <ais523> AnMaster: Z = 1/Z
19:36:23 <ais523> it reciprocals the impedance
19:36:24 <AnMaster> ais523, turn it into conductance?
19:36:30 <ais523> into susceptance
19:36:41 <ais523> so inductors become capacitors, and resistors stay resistors but with different values
19:36:44 <AnMaster> "susceptance"? That is one I never heard before
19:36:58 <ais523> resistance/conductance, reactance/admittance, impedance/susceptance
19:37:07 <AnMaster> ah okay
19:37:11 <ais523> if there's a generic rule of electronic engineering, it's "if X exist, name 1/X as well"
19:37:15 <ais523> *if X exists
19:37:25 <AnMaster> you forgot capacitance/inductance there, they are pretty much opposites too
19:37:37 <AnMaster> for many practical purposes
19:38:02 <AnMaster> (they might not be if you want to build an electromagnet though)
19:38:23 <AnMaster> ais523, so what is 1/P?
19:38:29 <AnMaster> that is, P that is measured in W
19:38:36 <ais523> that's an exception I think
19:38:39 <AnMaster> how boring
19:38:51 <AnMaster> anyway in what way would 1/watt even be useful?
19:39:03 <ais523> AnMaster: yes, capacitance = 1/inductance if you convert them both to reactances first
19:39:19 <AnMaster> ais523, don't you mean impedances?
19:39:26 <AnMaster> well okay the 1/ moves the other way
19:39:39 <AnMaster> (in the way you write it down I mean)
19:39:45 <ais523> because the only difference is a factor of j, which mathematicians call i
19:39:50 <AnMaster> yes
19:39:56 <AnMaster> I call it i or j depending on context
19:40:05 <AnMaster> somehow I don't get very much confused by it
19:40:07 <ais523> same
19:40:26 <AnMaster> I'm even used to hitting i on the calculator and writing j on the paper by now
19:41:16 <fizzie> I call it j in MATLAB because I always end up overwriting i by using it as a loop index somewhere.
19:41:30 <AnMaster> ais523, do modern CPUs still use those "full adders"?
19:41:34 <AnMaster> it seems inefficient
19:41:39 -!- hiato has joined.
19:41:46 <ais523> AnMaster: for actual addition? yes
19:41:58 <ais523> although maybe not with exactly that circuitry
19:42:05 <AnMaster> ais523, sure, one network for a 32-bit adder would be extremely impractical. but why not take 2 input bits at once
19:42:07 <ais523> for other things, like incrementing the instruction pointer, you don't need a full adder
19:42:09 <AnMaster> like a double-full adder
19:42:30 <AnMaster> it would still be a reasonably simple network
19:42:36 <ais523> AnMaster: actually, they're normally more concerned with carry forwarding
19:42:44 <ais523> and you're thinking of a serial full adder there
19:42:49 <ais523> in practice, ofc, they use parallel full adders
19:42:50 <AnMaster> ais523, hm?
19:42:57 <ais523> which is what I thought you meant to start with
19:43:05 <AnMaster> I know about carry forward
19:43:15 <ais523> hell, they even use parallel /multipliers/, which are O(n^2) in space but O(1) in time
19:43:23 <ais523> where n is the number of bits
19:43:59 <ais523> what do you mean by "double full adder"?
19:44:07 <ais523> a typical full adder adds two numbers
19:44:11 <ais523> which is what you need on x86
19:44:16 <ais523> do you mean, something that adds three numbers?
19:44:17 <AnMaster> ais523, as I said above. it would take more bits than just x_1, y_1
19:44:28 <AnMaster> it would take x_1, y_1, x_2, y_2
19:44:34 <AnMaster> plus a carry of course
19:44:37 <ais523> AnMaster: a 32-bit full adder takes x_1...x_32, y_1..y_32, and carry-in
19:44:55 <AnMaster> ais523, yes and as far as I can find out that would be quite a huge network
19:44:55 <ais523> and modern computers probably have 64-bit full adders
19:45:02 <ais523> AnMaster: it's not huge
19:45:05 <AnMaster> ais523, oh?
19:45:07 <ais523> think about this: how large is L1 cache?
19:45:11 <hiato> AnMaster: are you designing some sort of cpu?
19:45:16 <AnMaster> hiato, atm yes
19:45:29 <ais523> now, how large is a 64-bit adder compared to an L1 cache?
19:45:30 <hiato> AnMaster: coincidence, I think not
19:45:35 <ais523> even a 64-bit multiplier is likely to be smaller
19:45:40 <AnMaster> ais523, but why do you need carry forward with a 64-bit full adder?
19:45:46 <ais523> AnMaster: so it runs faster
19:45:57 <ais523> otherwise you have to wait for the carry to ripple all the way from one side to the other, and it slows down your clock
19:46:02 <AnMaster> ais523, oh I thought you meant *one* two level combinatorial network
19:46:17 * hiato wonders if this is one of those carry lookahead things, or the funk,y xor ones
19:46:29 <ais523> hiato: aren't those the same thing?
19:46:43 <AnMaster> ais523, that is what I meant for more than 1 bit
19:46:52 <AnMaster> well 1 bit from each number + carry
19:46:58 -!- kar8nga has quit (Remote host closed the connection).
19:47:10 <ais523> AnMaster: tbh, it wouldn't shock me in the least if the things had "perfect carry forwarding"
19:47:17 <AnMaster> ais523, which means?
19:47:18 <ais523> where they minimized the circuit for all possible 64-bit additions
19:47:23 <AnMaster> hah
19:47:44 <AnMaster> ais523, you mean like one massive Karnaugh diagram (yes I know there are other algorithms...)
19:47:47 <ais523> obviously that calculation's too big to do by brute force, but it should be repetitive enough to be able to do with a cleverer method
19:47:49 <ais523> yep, pretty much
19:47:55 <hiato> ais523: I cant seem to remember, but IIRC, one does addition sans carry then works it out with it and the other basically does bit addition for each pair with a carry of 1 and one of 0 and then selects, or something through a network
19:48:30 <AnMaster> ais523, I would still like to calculate the size of such a Karnaugh diagram
19:48:32 <ais523> hiato: I'm thinking of the method where you divide the numbers into, say, 4-bit blocks
19:48:33 * AnMaster goes to try it
19:48:48 <ais523> each block has an ordinary full-adder, and there's circuitry which works out in advance what the carry from the block before will be
19:48:52 <hiato> ais523: I will now check wk
19:48:52 <ais523> so it can be used before it's calculated
19:48:59 <ais523> helping to keep the clock cycles short
19:48:59 <AnMaster> ais523, would a 64-bit Karnaugh diagram be 2^32 * 2^32 cells?
19:49:09 <AnMaster> well probably
19:49:19 <ais523> AnMaster: no, 2^64 * 2^64
19:49:25 <ais523> because you have /two/ 64-bit inputs
19:49:30 <AnMaster> oh good point
19:49:38 <ais523> it's kind-of obvious that you can't minimize it that way
19:49:45 <AnMaster> so given a side distance of 5 nm (say) that would give us....
19:49:59 * AnMaster looks for his TI83+
19:50:31 <AnMaster> ais523, wait, is nano 10^-9 ?
19:50:33 <AnMaster> or -6
19:50:33 <ais523> AnMaster: 2^60 is around 10^18
19:50:35 <AnMaster> I always forget
19:50:41 <ais523> and nano's 10^-9
19:50:59 <ais523> so my guess is it's going to be around 16 million metres per side
19:51:05 <ais523> not to mention, you'd never be able to fill in all the cells anyway
19:51:11 <AnMaster> just one side is ~9.22*10^10
19:51:15 <hiato> ais523: http://www.aoki.ecei.tohoku.ac.jp/arith/mg/algorithm.html#fsa_csu is the one and http://www.aoki.ecei.tohoku.ac.jp/arith/mg/algorithm.html#fsa_cla is the other
19:51:19 <AnMaster> this is aprox of course
19:51:30 <ais523> Karnaugh maps are there purely for doing things by hand
19:51:41 <AnMaster> I have no concept for what 10^10 meters is
19:52:14 <AnMaster> well units tell me it is less than a parsec anyway
19:52:29 <AnMaster> wait
19:52:32 <AnMaster> that can't be right?
19:52:37 <AnMaster> indeed it isn't
19:52:40 <AnMaster> 342853.06 parsecs
19:52:44 <AnMaster> aprix
19:52:46 <AnMaster> aprox*
19:53:01 <hiato> ais523: as you can see, pretty different things :P
19:53:02 <AnMaster> what is the hubble volume in parsecs?
19:53:10 <AnMaster> hiato, he filter urls
19:53:15 <AnMaster> :/
19:53:24 <ais523> hiato: I filter out links
19:53:28 <ais523> because I never follow them anyway
19:53:42 <hiato> bleh
19:54:15 <hiato> ok, the one is a Carry select adder and the other is a Carry Look-ahead adder
19:56:08 -!- augur_ has quit (Ping timeout: 246 seconds).
20:17:28 <oerjan> `calc 10^10 m in parsecs
20:17:40 <HackEgo> (10^10) meters = 3.24077649 10^-7 Parsecs
20:18:14 <oerjan> 10^10 is just 10 billion
20:19:13 <oerjan> the circumference of the earth is only 40 million meters
20:19:32 <AnMaster> oerjan, is that US billion?
20:19:33 <oerjan> `calc 10^10 m in light minutes
20:19:35 <HackEgo> (10^10) meters = 0.555940159 light minutes
20:19:39 <oerjan> yes
20:19:43 <AnMaster> hm
20:20:09 <oerjan> `calc 10^10 m in light seconds
20:20:11 <HackEgo> (10^10) meters = 33.3564095 light seconds
20:23:06 -!- oerjan has quit (Quit: Good night).
20:27:58 -!- augur has joined.
20:35:47 -!- augur has quit (Ping timeout: 252 seconds).
20:40:54 -!- augur has joined.
20:44:28 -!- Gracenotes has quit (Ping timeout: 246 seconds).
20:46:53 -!- Tamschi has joined.
20:47:05 -!- Tamschi has left (?).
21:00:54 <fizzie> `calc 10^10 m in cucumbers
21:00:56 <HackEgo> 1. http://images.google.com/images?q=10%5E10+m+in+cucumbers&um=1&ie=UTF-8&source=og&sa=N&hl=en&tab=wi
21:01:06 <fizzie> That's a lot of cucumbers.
21:07:54 -!- augur has quit (Ping timeout: 276 seconds).
21:08:19 -!- augur has joined.
21:13:39 -!- adam_d has joined.
21:18:22 -!- Azstal has joined.
21:19:52 -!- Asztal has quit (Ping timeout: 265 seconds).
21:21:00 -!- Asztal has joined.
21:23:14 -!- Azstal has quit (Ping timeout: 240 seconds).
21:24:26 -!- Azstal has joined.
21:25:58 -!- Asztal has quit (Ping timeout: 264 seconds).
21:26:03 -!- Azstal has changed nick to Asztal.
21:33:46 -!- kar8nga has joined.
21:51:53 -!- jcp has quit (Read error: Connection reset by peer).
21:53:01 -!- jcp has joined.
22:00:50 -!- kar8nga has quit (Remote host closed the connection).
22:14:29 -!- hiato has quit (Quit: underflow).
22:14:58 -!- hiato has joined.
22:23:47 -!- adam_d has quit (Ping timeout: 248 seconds).
22:30:25 -!- hiato has quit (Quit: underflow).
22:34:56 <uorygl> ais523: they have multiplier designs where the time required doesn't depend on the size of the inputs?
22:35:18 <ais523> uorygl: no, but the size depends on them
22:35:20 <ais523> think lookup table
22:35:51 <ais523> it isn't, but has similar speed properties
22:36:00 <uorygl> Mm, right, lookup table.
22:36:25 <uorygl> I just finished taking a class that kind of covers this stuff.
22:36:29 -!- hiato has joined.
22:36:46 <uorygl> It covered logic gates, assembly language, and nothing in between.
22:37:23 <uorygl> However, the textbook, "Digital Design and Computer Architecture" by Harris and Harris, covers logic gates, assembly language, and everything in between.
22:37:37 <uorygl> Except for floating point operations. It covers floating-point addition, but nothing else.
22:37:51 -!- augur has quit (Ping timeout: 276 seconds).
22:44:58 -!- tombom_ has joined.
22:47:19 -!- hiato has quit (Quit: zzzzzzzZZZzzZZZzz).
22:47:19 -!- tombom has quit (Ping timeout: 246 seconds).
22:47:32 -!- FireFly has quit (Quit: Hey! Listen!).
22:50:13 -!- tombom__ has joined.
22:52:44 -!- tombom_ has quit (Ping timeout: 252 seconds).
22:58:42 <uorygl> `translate armktokhund
22:58:45 <HackEgo> var sl_select, tl_select, web_sl_select, web_tl_select;var ctr, web_ctr, h;var tld = ".com";var sug_lab = "";var sug_thk = "";var sug_exp = "";var dhead = "Dictionary";var dmore = "View detailed dictionary";var tr_in = "Translating...";var isurl = "";var show_roman = "Show romanization";var hide_roman =
22:58:53 <uorygl> `translatefromto no en armktokhund
22:58:55 <HackEgo> armktokhund
22:59:07 <uorygl> Meh.
22:59:19 <uorygl> `translate Han må tydeligvis besøke deg oftere.
22:59:21 <HackEgo> He must obviously visit you more often.
23:00:26 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:02:25 <pikhq> `translate 僕がハックエゴと言うボットだ。
23:02:27 <HackEgo> Bot said that I Hakkuego.
23:02:35 <pikhq> Hahahah.
23:03:23 -!- tombom__ has quit (Quit: Leaving).
23:05:45 <AnMaster> uorygl, nothing below logic gates?
23:05:48 <AnMaster> uorygl, such as CMOS
23:06:10 <uorygl> Well, we kind of covered transistors.
23:06:42 <AnMaster> not in much detail presumably?
23:06:49 <AnMaster> uorygl, VHDL?
23:07:12 <uorygl> I don't know if the class even mentioned VHDL.
23:07:33 <uorygl> We covered logic gates, and adders were kind of mentioned, and then it went straight to assembly.
23:07:39 -!- MizardX- has joined.
23:07:41 <AnMaster> aaaargh codu.org is down
23:07:42 <AnMaster> it seems
23:07:48 <AnMaster> The server at codu.org is taking too long to respond.
23:07:51 <AnMaster> a disaster
23:07:52 <AnMaster> Gregor, ^
23:07:55 -!- sebbu2 has joined.
23:08:06 <Gregor> Looks up to me.
23:08:25 <Gregor> Is there a particular service it's slowing?
23:08:34 <AnMaster> Gregor, wget http://codu.org/music/GRegor-op11.ogg yes
23:08:41 <AnMaster> --2010-04-29 00:07:46-- (try: 4) http://codu.org/music/GRegor-op11.ogg
23:08:41 <AnMaster> Connecting to codu.org|64.62.173.65|:80... failed: Connection timed out.
23:08:41 <AnMaster> Retrying.
23:08:43 <AnMaster> from wget
23:08:49 <Gregor> Idonno, E_WORKSFORME
23:08:51 <uorygl> So, I'm very glad that the textbook covers almost everything you need to know to design a CPU.
23:09:09 <AnMaster> Gregor, traceroute gets through it seems
23:09:18 <uorygl> I almost want to make a MIPS CPU right now.
23:09:41 <AnMaster> Gregor, 98% procent packet loss
23:09:43 <AnMaster> says ping
23:09:58 <AnMaster> that is quite extreme
23:09:58 <Gregor> E_WORKSFORME
23:10:01 <Gregor> No packet loss, nothing.
23:10:08 <Gregor> Have you moved to China recently?
23:10:11 <AnMaster> no
23:10:24 -!- coppro has joined.
23:10:24 <AnMaster> what the hell
23:10:31 <AnMaster> internet traffic report times out
23:10:32 <AnMaster> for me
23:10:50 -!- olsner has quit (Ping timeout: 240 seconds).
23:10:51 <AnMaster> Gregor, can you check http://www.internettrafficreport.com/ or http://www.internetpulse.net/ for problems
23:11:13 <AnMaster> I'm timing out from everywhere but google and freenode
23:11:14 <uorygl> Aww, "sletteloggen".
23:11:14 -!- MizardX has quit (Ping timeout: 240 seconds).
23:11:24 -!- sebbu has quit (Ping timeout: 276 seconds).
23:11:24 -!- sebbu2 has changed nick to sebbu.
23:11:38 -!- MizardX- has changed nick to MizardX.
23:12:04 <AnMaster> Gregor, traceroute indicates huge packet loss at telia backbone
23:12:15 <AnMaster> very close to my uplink
23:12:19 -!- fizzie has quit (Ping timeout: 248 seconds).
23:12:23 <Gregor> So it's not my fault, therefore I don't care.
23:12:29 <AnMaster> :/
23:12:41 <AnMaster> Gregor, have some sympathy
23:13:59 <Gregor> "Poor AnMaster, boo hoo."
23:14:29 <AnMaster> :/
23:14:30 <uorygl> AnMaster: I might be able to email you that OGG or something.
23:15:12 <Gregor> Presumably he can't do email either *shrugs*
23:16:47 <uorygl> I could /msg it. :P
23:16:53 <AnMaster> I have no idea
23:17:01 <AnMaster> ah internetpulse gets through
23:17:30 -!- olsner has joined.
23:17:38 <AnMaster> codu still times out
23:17:42 <AnMaster> 99% packet loss
23:17:58 -!- fizzie has joined.
23:18:23 <AnMaster> stats are 0,0,13,1,45,47,53,93,88,73,72,79,99 (for each jump)
23:18:35 <AnMaster> which is huge packet loss to codu in other words
23:19:38 <AnMaster> and now internettrafficreport gets through too
23:19:46 <AnMaster> and now it seems things are rerouted
23:20:06 <AnMaster> just 33% loss
23:21:46 <AnMaster> aaand back to 99%
23:25:02 <fizzie> What, you broke the Internet?
23:27:04 <Gregor> So why is it that you have no problems with Freenode :P
23:27:05 <AnMaster> no
23:27:11 <AnMaster> Gregor, EU server
23:27:14 <AnMaster> quite reasonable
23:27:27 <uorygl> We should all get European mirrors.
23:27:35 <AnMaster> well I'm in Europe
23:27:36 <AnMaster> that's why
23:28:01 <AnMaster> from traceroutes to various place it seems the telia nodes it goes through to cross the atlantic causes it
23:31:45 -!- Asztal has quit (Ping timeout: 245 seconds).
23:33:36 <uorygl> Huh, Wikipedia says that the Scandinavian cross symbolizes Christianity.
23:42:10 -!- Tritonio_GR has joined.
23:44:07 -!- Asztal has joined.
23:47:21 <ais523> uorygl: sounds like vandalism
23:47:37 <uorygl> It's not vandalism unless it's obviously vandalsim.
23:48:46 <coppro> :P
23:49:33 <ais523> coppro: hmm, you're Canadian aren't you?
23:49:53 <ais523> I'm going there for a conference next-but-one weekend, and am currently in a row about the climate of Ottawa
23:49:58 <ais523> in particular, whether I need to take a coat
23:50:17 <coppro> I couldn't say
23:51:23 <ais523> hmm, honest advice at least
23:51:46 <coppro> I'll ask an Ontarian
23:51:58 <uorygl> For some reason, it was hot in Allendale today despite only being 55 degrees Fahrenheit.
23:52:27 -!- augur has joined.
23:52:39 <ais523> note that I regularly walk around without a coat in the UK even when the temperature's below 0 degrees C
23:53:12 <coppro> the forecast looks good enough for you not to wear one then
23:53:24 <coppro> http://www.theweathernetwork.com/fourteenday/caon0512?ref=qlink_st_14day
23:53:37 <coppro> ... the Ontarian is little help
23:54:24 <ais523> hmm, OK
23:54:48 <coppro> I'd still bring a sweater or something
2010-04-29
00:06:13 <AnMaster> night
00:06:35 <AnMaster> <uorygl> Huh, Wikipedia says that the Scandinavian cross symbolizes Christianity. <-- sounds familiar
00:06:53 <AnMaster> if you mean in the Swedish, Danish, Norwegian and Finnish flags?
00:07:36 <AnMaster> probably Icelandic too
00:07:40 <uorygl> Yep.
00:07:52 <AnMaster> uorygl, well, probably not vandalism
00:07:59 <AnMaster> ais523, ^
00:08:09 <ais523> hmm
00:10:11 <uorygl> I guess it seems most plausible that they all just copied Denmark.
00:10:29 <AnMaster> <coppro> http://www.theweathernetwork.com/fourteenday/caon0512?ref=qlink_st_14day <-- ais523 filters URLS
00:10:29 <uorygl> As for the origin of Denmark's flag, I guess it just fell from the sky or something.
00:10:31 <AnMaster> URLs*
00:10:32 <AnMaster> on irc
00:10:44 <coppro> oh
00:10:48 <coppro> how lame
00:10:58 <AnMaster> uorygl, the cross does iirc symbolise that thing
00:11:04 <AnMaster> coppro, you tell him
00:11:15 <coppro> ais523: how lame
00:11:23 <AnMaster> coppro, as a counter action I suggest filtering any urls he paste on irc
00:11:28 <AnMaster> I have already begun that
00:11:30 <ais523> AnMaster: "counter action"?
00:11:35 <ais523> is there some sort of ignore war going on here?
00:11:41 <coppro> apparently you filter URLs
00:11:50 <ais523> yes, because I rarely or never click on them anyway
00:11:55 <AnMaster> ais523, just url filtering wall
00:11:57 <AnMaster> war*
00:12:47 * uorygl checks his /ignores.
00:12:50 <ais523> I don't see why blocking parts of my comments is particularly helpful to you
00:13:09 <ais523> have my URLs become less valuable just because I don't read other people's?
00:13:10 <uorygl> I'm not dropping all messages containing the phrase "free will". This is unacceptable.
00:13:56 <ais523> definitely
00:13:59 <AnMaster> uorygl, XD
00:14:02 <oklopol> ais523: if you make it official that AnMaster can't communicate to you by giving you links, it's only fair he does that too
00:14:05 <ais523> just search-and-replace it to "slave labor"
00:14:21 <oklopol> because often it's nicer to give a link than to do a copypaste via brain
00:14:57 <uorygl> `echo free will
00:14:58 <HackEgo> free will
00:14:58 <AnMaster> oklopol, yes I might in future paste the html source with data uris for images in /msg to ais
00:15:00 <uorygl> `echo expensive will
00:15:01 <HackEgo> expensive will
00:15:05 <uorygl> Success.
00:15:09 <AnMaster> heh
00:15:45 <ais523> AnMaster: they'd have to be very small images
00:15:56 <AnMaster> ais523, oh? or a very long /msg
00:16:07 <ais523> AnMaster: IRC has a limit of 510 characters per line, you should know that
00:16:20 <AnMaster> ais523, yes but html could handle a line break in the middle, no?
00:16:34 <ais523> oh, I thought you meant just posting a single image
00:16:45 <AnMaster> data:blahblah
00:16:50 <AnMaster> blahblah
00:16:52 <AnMaster> like that
00:16:54 <AnMaster> should work
00:17:08 <ais523> well, you'd just get throttled by Freenode
00:17:27 <AnMaster> ais523, yes but my irc has built in rate limiting
00:17:33 <AnMaster> so it would just continue for a long time
00:17:40 <ais523> if someone was spamming me in /msg, I might ignore them for a while until it ended
00:17:56 <ais523> which would be a pity, because it means I'd miss half the conversation here; maybe I'd logread
00:18:25 <AnMaster> hah
00:18:32 <AnMaster> ais523, where the URLs would be anyway
00:18:36 <AnMaster> ais523, also see what oklopol said
00:18:40 <AnMaster> <oklopol> ais523: if you make it official that AnMaster can't communicate to you by giving you links, it's only fair he does that too
00:18:43 <AnMaster> that is true
00:18:46 <AnMaster> and now, night œ
00:18:48 <AnMaster> →*
00:18:58 <ais523> well, he couldn't communicate with me via links before, because I never clicked on them after all
00:20:05 <ais523> it's probably just fairer to make that explicit
00:53:34 <oklopol> yes, and in fact up to this point he's just ignored all your links silently, too
00:54:31 <oklopol> that's not true ofc, and anyway i just wanted to clarify what his reasons were
00:55:15 <oklopol> sevenfold
00:55:19 <oklopol> sevenfold glium
01:18:49 -!- oklopol has quit.
01:20:37 -!- ais523 has quit (Remote host closed the connection).
01:26:15 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
01:44:21 <uorygl> So, I guess I'm going to make a processor.
01:44:44 <uorygl> Does anyone know of any good Verilog simulators?
01:44:49 <uorygl> If not, I'll just get Icarus.
01:50:24 <uorygl> I hope it works on the Mac.
03:22:38 -!- sshc has quit (Quit: leaving).
03:22:58 -!- Asztal has quit (Ping timeout: 264 seconds).
03:48:21 -!- oerjan has joined.
03:49:40 -!- Sgeo has joined.
03:50:48 <oerjan> <uorygl> `translatefromto no en armktokhund <-- no such word in norwegian
03:50:55 -!- Sgeo_ has quit (Ping timeout: 245 seconds).
03:51:07 <oerjan> "arm" is arm though, and "hund" is dog
03:51:57 <oerjan> arm can also mean poor, that's a bit archaic.
03:54:47 <oerjan> <uorygl> Aww, "sletteloggen".
03:54:54 <oerjan> the deletion log
03:54:58 -!- cal153 has quit (Ping timeout: 246 seconds).
03:57:28 <oerjan> <uorygl> Huh, Wikipedia says that the Scandinavian cross symbolizes Christianity. <-- for the flag? of course, what else would it be?
03:57:52 <oerjan> the danish and probably swedish flags go back to the middle age, the rest are patterned on them
03:59:35 <oerjan> in fact i recall reading claims that the danish flag is based on a crusade one.
03:59:52 <oerjan> i don't quite recall it being from a reliable source though
04:00:44 -!- sshc has joined.
04:01:54 <oerjan> heh there's a legend for it falling from heaven
04:06:03 <oerjan> the knights hospitaller (from the crusades) have a rather similar flag
04:06:47 <oerjan> "A theory brought forth by the Danish historian Adolf Ditlev Jørgensen in 1875 in his book "Danebroges Oprindelse" is that the Danish flag _is_ the banner of the Knights Hospitaller."
04:07:17 <oerjan> although the real gist you get from the danish flag article is "nobody knows"
04:12:07 -!- augur_ has joined.
04:14:15 -!- augur has quit (Ping timeout: 245 seconds).
04:17:06 <pikhq> Adolf... What an unfortunate name nowadays.
04:17:22 <oerjan> yes
04:17:35 -!- augur_ has quit (Ping timeout: 245 seconds).
04:17:46 <pikhq> Darn Hitler, killing off a name and a mustache style.
04:20:27 <Gregor> And all that other nasty stuff he did too, but come on, did he really have to kill Chaplin 'stache?
04:21:19 <oerjan> well look at the bright side, chaplin used the similarity for all it was worth
04:22:23 <pikhq> And his crimes against Esperanto.
04:30:41 -!- lament has joined.
04:40:32 -!- bsmntbombdood has joined.
04:45:16 -!- augur has joined.
05:29:57 -!- oerjan has quit (Quit: leaving).
05:32:17 -!- MizardX has quit (Ping timeout: 268 seconds).
05:33:14 -!- lament has quit (Quit: lament).
05:55:04 -!- Gracenotes has joined.
06:08:09 -!- calamari has joined.
06:20:10 -!- coppro has quit (Remote host closed the connection).
06:20:48 -!- coppro has joined.
06:20:53 -!- coppro has quit (Remote host closed the connection).
06:21:44 -!- coppro has joined.
06:34:09 -!- calamari has left (?).
07:09:55 -!- tombom has joined.
07:19:50 -!- Gracenotes has quit (Ping timeout: 252 seconds).
07:22:13 -!- Gracenotes has joined.
07:25:16 -!- bsmntbombdood has quit (Remote host closed the connection).
07:28:33 -!- lament has joined.
07:36:30 <uorygl> `translate Internet on Internet Internetissä.
07:36:31 <HackEgo> Internet Internet is the Internet.
07:36:43 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:36:53 <uorygl> Well, that didn't really work.
07:37:53 -!- jcp has joined.
07:38:44 <uorygl> `translate keskellä
07:38:46 <HackEgo> in the middle
07:39:00 <uorygl> `translate keskellä yötä
07:39:01 <HackEgo> middle of the night
07:39:09 <uorygl> How efficient.
07:40:03 <uorygl> `translate Aurinko paistaa keskellä yötä.
07:40:05 <HackEgo> The sun is shining in the middle of the night.
07:41:04 <uorygl> `translate Aurinko paistaa taistelemaan.
07:41:06 <HackEgo> The sun shines to fight.
07:41:14 <uorygl> That's less efficient.
07:47:56 <uorygl> `translate Doug löytyi kivi, loisti
07:47:58 <HackEgo> Doug found the stone, shone
07:52:17 <uorygl> `translate Olen kivi. Kun puhutaan itse kautta Google Translate, olen usein kutsua itseäni kivi, koska jos minä itseäni rock, Google Translate voisi kääntää se "rock". "Rock" ei suomalainen sana "rock".
07:52:19 <HackEgo> &quot;Rock&quot; is a Finnish word &quot;rock&quot;.
07:53:37 -!- tombom has quit (Quit: Leaving).
07:53:42 <fizzie> If you *want* to say "Doug found the stone, shone", a more grammatiik way would be "Doug löysi kiven, loisti."
07:54:20 <uorygl> I think I wanted to say "Doug found a rock that was shining".
07:54:25 <fizzie> But "Doug löytyi, kivi loisti" is perfectly well for "Doug was found, the stone shone".
07:54:31 <fizzie> "Doug löysi loistavan kiven", in that case.
07:54:53 <fizzie> Although "loistava" can be both "shiny" and... something like "wonderful".
07:55:01 <fizzie> Or maybe "brilliant" is closer.
07:55:11 <uorygl> I wonder why I was given "Doug löytyi kivi, loisti", then.
07:55:38 <uorygl> I guess Google Translate is stupid.
07:55:39 <fizzie> Your translation system might be... imperfect. Shock, horror.
07:56:11 <uorygl> So, I guess "kiven" is the accusative and "kivi" is the nominative?
07:56:59 <fizzie> Yes. Though "kiven" is also the genitive.
07:57:11 <fizzie> Not that rocks have that many possessions.
07:57:34 <uorygl> Do you put it before or after the thing possessed?
07:57:54 <fizzie> Before.
07:58:19 <uorygl> So would "kiven kivi loisti" mean "the rock's rock shone"?
07:58:40 <fizzie> Yes, that sounds correct, if a bit silly.
07:58:45 <fizzie> In the semantic sense, that is.
07:58:53 <uorygl> Well, I only know one noun. :)
07:59:38 <fizzie> For "Doug found a shiny stone" translate.google gives me "Doug löytyi kiiltävä kivi", which is closer. It's a bit like "Doug was found a shiny stone". It seems to have a problem understanding that Doug's the one doing the finding, not the one that is found.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:07 <fizzie> Of course it's a purely/mostly statistical translation thing, as far as I know.
08:00:15 <uorygl> How do you say "dog"? Maybe I'd like to talk about the dog's rock.
08:00:29 <fizzie> Koira.
08:00:34 <fizzie> Do dogs have rocks?
08:00:42 <uorygl> Only rarely.
08:00:50 <fizzie> I would have thought bones.
08:01:00 <uorygl> So, is it "koiran kivi"?
08:01:04 <fizzie> Yes.
08:01:53 <uorygl> Now it would be nice to get some verbs in.
08:02:30 <uorygl> What are "the dog lifts the rock", and "the dog lifts the bone"?
08:03:00 <fizzie> "Koira nostaa kiven", "koira nostaa luun" would be the ones I think of first.
08:04:37 <uorygl> What if I'm lifting the dog? Can I still use nostaa, or is it something else for a first-person person?
08:05:05 -!- myndzi\ has joined.
08:05:38 <fizzie> It's "nostan". "Minä nostan, sinä nostat, hän nostaa; me nostamme, te nostatte, he nostavat"; I lift, you lift, he/she/it lifts; we lift, you (plural) lift, they lift.
08:06:20 <uorygl> Huh, the plurals are shorter than the singulars.
08:06:34 <uorygl> Minä nostan koiran.
08:06:45 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
08:07:14 <uorygl> What if I give the bone to the dog?
08:08:05 <fizzie> "(Minä) annan koiralle luun", or "annan luun koiralle"; the word order is not so very critical there, I think, it's more about what do you want to emphasize, the dog or the bone.
08:08:27 <fizzie> The same difference as in "give the dog a bone", or "give a bone to the dog", I guess.
08:08:33 -!- myndzi has quit (Ping timeout: 276 seconds).
08:09:29 <uorygl> And how about if the dog gives me the bone?
08:09:52 <uorygl> Koira annaa luun something?
08:10:10 <fizzie> "Koira antaa minulle luun", or "koira antaa luun minulle".
08:10:29 <fizzie> Annan, annat, antaa; annamme, annatte, antavat.
08:11:12 <uorygl> Huh.
08:11:26 <uorygl> What's the conjugation of nostaa?
08:11:36 <uorygl> Oh, you gave that.
08:11:54 <augur> heyo
08:11:55 <fizzie> Yes, though it lacks the more uncommon cases.
08:12:26 <uorygl> Okay, the conjugations look the same, except that the stem "ann" becomes "ant" in the third person.
08:12:43 <uorygl> Or maybe the stem is "an" and it just uses slightly different suffices.
08:12:44 <fizzie> "Nostaos" = "oh, please lift" according to Wikipedia translation. "Archaic and/or poetic." Haven't seen it much anywhere.
08:12:46 <uorygl> Suffixes.
08:13:10 <uorygl> "Oh, please lift" does sound rather archair and/or poetic. :)
08:13:47 <uorygl> I guess I shouldn't worry too much about conjugating verbs right.
08:14:26 <fizzie> "Nostakoon koira luun" = "let the dog lift the bone", in the imperative-command sense of 'let', not the permit-the-dog one.
08:14:49 -!- lament has quit (Quit: lament).
08:14:57 -!- adam_d has joined.
08:14:58 <fizzie> "Koira nostanee luun" = "the dog is likely to lift the bone".
08:15:12 <fizzie> Whoever designed this stuff went a bit overboard with the cases.
08:15:29 <uorygl> Indeed.
08:16:27 * uorygl ponders dogs, rocks, bones, shining, giving, and lifting for a moment.
08:17:12 <uorygl> Koira, kivi... the bone hasn't done anything yet, so I don't know its nominative. Is it luu?
08:17:18 <fizzie> Yes.
08:18:16 <fizzie> If something's made out of bone, though, it's "luuta"; "kivi on luuta" = "the rock is made out of bone". Unfortunately "luuta" is also the nominative of "broom".
08:18:34 <uorygl> Koira, kivi, luu, loisti, annaa, nostaa.
08:18:57 <uorygl> Does the sentence "kivi on luuta" contain a verb?
08:19:33 <fizzie> "on" is a verb.
08:19:54 <fizzie> Third-person singular indicative present form of "olla", "to be".
08:20:04 * uorygl nods.
08:20:26 <uorygl> So what's the conjugation of that?
08:21:05 <fizzie> Uh. Olen, olet, on; olemme, olette, ovat.
08:21:26 <uorygl> Minä olen koiran.
08:22:01 <fizzie> That would be something like "the dog owns me"; it's just "minä olen koira" if you want to be the dog.
08:22:25 <uorygl> Is that the nominative on "koira" there?
08:22:47 <fizzie> Yes, I guess.
08:23:36 <uorygl> So, how about "my head is made out of rock"?
08:24:05 <fizzie> "Pääni on tehty kivestä" if you want explicitly "made out of rock"; alternatively, "pääni on kiveä".
08:24:44 <uorygl> "Pääni" is "my head"?
08:24:54 <fizzie> Yes. "Pää" is the nominative there.
08:25:13 <uorygl> Then you just tack on "ni" to mean "my"?
08:26:17 <augur> http://i.imgur.com/rb7Xz.jpg
08:26:18 <fizzie> Yes, that would work for most things.
08:26:32 <fizzie> http://en.wikipedia.org/wiki/Possessive_suffix#Finnish
08:26:49 <uorygl> Then how about...
08:27:05 <uorygl> Koiranni pää on luuta.
08:27:49 <fizzie> "Koirani", but otherwise that's correct for "my dog is a bone-head". Well, maybe not exactly the same meaning.
08:27:57 <fizzie> That would be "koirani on luupää".
08:28:34 <uorygl> You can concatenate nouns in this language, I see.
08:29:46 <uorygl> So, how about "the dog gets the bone"?
08:29:59 <fizzie> Kolmivaihekilowattituntimittari is one reasonably commonly trumped long-compound-word. (It's an electricity meter -- presumably measuring in kWh units -- for three-phase electrcity.)
08:30:17 <fizzie> "Koira saa luun."
08:30:47 <uorygl> "The dog eats the dog-food"?
08:30:58 <fizzie> "Koira syö koiranruokaa."
08:31:06 <fizzie> Also, I eat some lunch now, so not here for a while.
08:31:16 <fizzie> (Hopefully it won't be dog-food.)
08:31:27 <uorygl> I was just trying to figure out how to dismiss myself for food-eating purposes. :)
08:31:36 <fizzie> Good timing.
08:31:37 <uorygl> (I probably could have phrased that better.)
08:32:20 <uorygl> I want to say "Minä san ruokaa."
08:33:12 <uorygl> But anyway, it's 3 AM over here, so I should probably begin sleeping soon, eh?
08:33:40 <uorygl> Yötä.
08:44:49 -!- adam_d has quit (Ping timeout: 264 seconds).
08:50:32 -!- Axtens has joined.
09:10:22 <fizzie> It's "minä saan", but nights, anyhow.
09:22:00 <Axtens> kya ho rha hai?
09:40:28 -!- Axtens has quit (Quit: Leaving).
09:51:27 -!- lereah_ has joined.
10:43:23 -!- Asztal has joined.
11:00:05 -!- comex has quit (Ping timeout: 245 seconds).
11:00:05 -!- Quadrescence has quit (Ping timeout: 245 seconds).
11:00:10 -!- comex has joined.
11:02:11 -!- Quadrescence has joined.
11:20:37 -!- hiato has joined.
13:05:27 <fizzie> Here's an amazon.com review for "Image Processing: Analysis and Machine Vision", third edition, a textbook on one of our courses:
13:05:27 <fizzie> "Fascinating and gripping.
13:05:27 <fizzie> Very few books make me laugh out loud. Even fewer make me weep. This fabulous book took me to both these extremes in the first chapter. Rarely is seen a talent as manifest as Sonika's achieved without losing the freshness and vibrance of a much younger author.
13:05:27 <fizzie> Sonika has shunned the jaded cynicism of many of his more mature contemporaries. Influences such as Gordon and Hhleghh are easy to spot, yet there also lies the deeper, warm tones of giants like Stewart or Brown.
13:05:29 <fizzie> Buy 'Image Processing, Analysis and Machine Vision' now, but finish whatever you're currently reading first. Anything after this will only disappoint you."
13:05:41 <fizzie> That's some serious praise for an image processing textbook.
13:34:29 -!- FireFly has joined.
14:04:55 -!- BeholdMyGlory has joined.
14:08:42 -!- oerjan has joined.
14:50:44 <fizzie> Misread an Amazon title recommendation as "Purely Fictional Data Structures". (Unsurprisingly, they were functional instead. I might have bought a book on fictional ones.)
14:58:57 <AnMaster> <uorygl> Does anyone know of any good Verilog simulators? <-- why not VHDL?
15:00:07 <AnMaster> <oerjan> <uorygl> `translatefromto no en armktokhund <-- no such word in norwegian <-- nor in Swedish, without the k it would have been several concatenated words (which is valid in Swedish) but with a nonsense meaning
15:01:41 <AnMaster> <pikhq> And his crimes against Esperanto. <-- that I haven't heard about
15:02:06 <AnMaster> <uorygl> `translate keskellä <-- Finnish?
15:02:36 <oerjan> no, clearly it's upper left mongolian
15:02:39 <AnMaster> <uorygl> That's less efficient. <-- why are you comparing to English there?
15:03:22 <oerjan> translation always tends to make things longer, regardless of direction
15:03:55 <AnMaster> <uorygl> I guess Google Translate is stupid. <-- yes, usually
15:07:34 <AnMaster> <uorygl> How do you say "dog"? Maybe I'd like to talk about the dog's rock. <-- isn't the classical thing to learn to talk about in a foreign language something completely useless?
15:07:38 <AnMaster> unlike that
15:08:06 <AnMaster> oerjan, hm
15:08:29 <AnMaster> oh btw, wrt removing k in "armktokhund", only the first k
15:08:43 <AnMaster> oerjan, does Norwegian have "tok"?
15:08:53 * AnMaster is unsure how to properly translate it to English
15:09:11 <oerjan> AnMaster: i don't think so. what does it mean?
15:09:34 <AnMaster> "madman" is _way_ too strong, "eccentric" sounds like some rich person.
15:09:40 <AnMaster> hm
15:09:44 <fizzie> fi:keskellä is about en:"in the middle".
15:09:45 <oerjan> tokig means silly in swedish iirc
15:09:49 <AnMaster> oerjan, yes
15:09:49 <oerjan> or is that crazy
15:09:52 <AnMaster> well
15:09:54 <AnMaster> oerjan, both
15:10:13 <AnMaster> it depends on context I guess
15:10:32 <AnMaster> there isn't a 1:1 mapping
15:10:41 <AnMaster> oerjan, tok is a noun for someone who is tokig
15:10:47 <oerjan> mhm
15:10:47 <fizzie> Another Amazon recommendation: "How to Survive a Robot Uprising: Tips on Defending Yourself Against the Coming Rebellion". They must be trying to tell me something.
15:11:11 <AnMaster> why did I read that as "reboot surprising"?
15:11:19 <fizzie> Though why would they give me advance warning? Some kind of a dastardly plan.
15:11:44 <oerjan> AnMaster: the robots have already planted a chip in your brain so you have trouble recognizing it
15:11:58 <AnMaster> oerjan, hah
15:12:13 <oerjan> fizzie: it's le resistance, clearly
15:12:17 <AnMaster> true
15:12:43 <AnMaster> anyway, I guess English has no perfect mapping of sv:tok
15:13:28 <oerjan> i wonder if no:tosk is related, that means just a stupid person though
15:13:52 <AnMaster> it may or may not have a negative connotation, it kind of depends on how it is used
15:16:22 <AnMaster> from wikipedia "The 29 highest mountains in Norway are all in Jotunheimen, including the very highest - Galdhøpiggen (2469 m)." <-- doesn't "the highest 29" by definition include every subset of itself?
15:16:45 <oerjan> you'd think
15:16:49 -!- hiato has quit (Quit: got to run).
15:17:23 <AnMaster> in fact I would even say that generally all sets include all it's own subsets, by definition
15:17:42 <AnMaster> (or at least, trivially provable from definitions)
15:19:22 -!- Rugxulo has joined.
15:19:55 <Rugxulo> hey, I don't remember ever hearing about a Brainf*** interpreter in Befunge-98 (but no, I didn't write it) ... http://fi.muni.cz/~xgoljer/bf.txt
15:20:09 -!- augur has quit (Remote host closed the connection).
15:20:21 <fizzie> There's one in the bot, you know.
15:20:40 <fizzie> I think it's nowadays even linked from the wiki.
15:20:59 <fizzie> I haven't stand-alonized that version, though, like I have for the Underload one.
15:21:36 <AnMaster> !bf_txtgen Hello world
15:21:40 <AnMaster> ?
15:21:42 <AnMaster> !hel
15:21:43 <AnMaster> !help
15:21:43 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
15:21:43 <EgoBot> 108 ++++++++++[>+++++++>+>++++++++++>+++<<<<-]>++.>>+.+++++++..+++.>++.<++++++++.--------.+++.------.--------.<. [899]
15:21:48 <AnMaster> ah
15:21:49 <AnMaster> slow
15:21:58 <AnMaster> `bf ++++++++++[>+++++++>+>++++++++++>+++<<<<-]>++.>>+.+++++++..+++.>++.<++++++++.--------.+++.------.--------.<.
15:22:05 <HackEgo> No output.
15:22:14 <AnMaster> err
15:22:14 <AnMaster> ^bf ++++++++++[>+++++++>+>++++++++++>+++<<<<-]>++.>>+.+++++++..+++.>++.<++++++++.--------.+++.------.--------.<.
15:22:14 <fizzie> I'm going to hazard a guess that mine is more efficient; I translate the input brainfuck to a bytecode (collapsing consecutive +-<>s) and use a jump-table-based interpreter for the bytecode, instead of that long chain of ifs.
15:22:15 <AnMaster> fizzie, where is fungot
15:22:24 <AnMaster> alsso wtf
15:22:26 <AnMaster> also*
15:22:54 <AnMaster> fizzie, you fixed the collapsing of > but not < (or was it the other way around?)
15:23:09 <fizzie> Okay, that's still broken. :p
15:23:27 <AnMaster> fizzie, plus it doesn't reconnect on connection lost properly
15:23:42 <oerjan> AnMaster: Gregor's bots are always slow on the first command when they haven't been used for a while
15:23:50 <Rugxulo> BTW, anybody have VISBEF.ZIP (Visual Befunge)? original site is down and mirror is broken
15:23:56 <fizzie> That wouldn't have helped; it had hung up, not lost the connection. (It's anyone's guess why no time-out had interrupted it, though.)
15:23:58 <Rugxulo> gah, so annoying that stuff disappears!!
15:24:03 <AnMaster> oerjan, I wonder what else those computers run then, since presumably it is a cache effect
15:24:05 <AnMaster> + slow disk
15:24:15 <AnMaster> + not a lot of ram / a lot of other things wanting ram
15:24:46 <fizzie> I'm going to have to reconnectize, my hostmask's again broken. *Really* should fix those IPv6 reverse-DNS entries some day.
15:24:47 -!- fizzie has quit (Quit: jumpin' jumpin').
15:24:49 -!- fizzie has joined.
15:24:50 <AnMaster> Rugxulo, visbef is for what OS?
15:24:57 <AnMaster> err, grammar
15:24:58 <Rugxulo> Win32
15:25:14 -!- fungot has joined.
15:25:22 <AnMaster> ah, then I know for sure I don't have a copy stored anywhere
15:25:24 <Rugxulo> BTW, you're right, Esolang wiki has the B98 Brainf*** interpreter ... but only on the Brainf*** page, not the Befunge page
15:25:42 <AnMaster> Rugxulo, does a page about C have every possible C program?
15:25:51 <fizzie> Rugxulo: I mean, the one in the bot is linked from the huge table of esolangs-implemented-in-other-esolangs.
15:26:00 <AnMaster> fizzie, where is that table?
15:26:05 <AnMaster> ^bf ++++++++++[>+++++++>+>++++++++++>+++<<<<-]>++.>>+.+++++++..+++.>++.<++++++++.--------.+++.------.--------.<.
15:26:05 <fungot> Hello world.
15:26:09 <fizzie> AnMaster: I couldn't find it the last time I looked. :)
15:26:14 <AnMaster> where did the . come from
15:26:20 <AnMaster> it wasn't in my original command
15:26:23 <AnMaster> fizzie, ^
15:26:35 <Rugxulo> heh, TECO version ;-)
15:26:41 <AnMaster> fizzie, so you could have dreamt it?
15:26:47 <AnMaster> Rugxulo, what? a TECO interpreter in befunge?
15:26:54 <AnMaster> (now THAT would be a nice idea)
15:26:59 <fizzie> AnMaster: The . is a newline, I think.
15:27:02 <AnMaster> ah
15:27:02 <Rugxulo> AnMaster, Brainf*** is arguably the most popular esolang ... so mentioning it isn't horrible (esp. since the Befunge page already mentions it)
15:27:07 <AnMaster> yes egobot adds newlines
15:27:11 <Rugxulo> no, Brainf*** in TECO
15:27:26 <AnMaster> ah
15:27:35 <oerjan> AnMaster: EsoInterpreters
15:28:22 <Rugxulo> BTW, somebody hacked my REXX B93 interpreter to be faster, but it needs a few compatibility tweaks before it will run on PCs
15:28:59 <Rugxulo> avoids the stack, though, not sure if that is for speed or not (at least it works around a 16-bit BREXX bug)
15:29:22 <Rugxulo> s/stack/REXX stack/
15:29:31 <AnMaster> what graph based esolangs are there? I don't mean graph rewriting, I mean like state machines represented as graphs, but not just plain old boring Moore/Mealy-automatons (which aren't esoteric)
15:29:56 <AnMaster> Rugxulo, REXX?
15:30:46 -!- augur has joined.
15:31:25 <Rugxulo> what is your question, what is REXX or why?
15:31:52 <AnMaster> Rugxulo, what it is
15:32:23 <Rugxulo> (tech answer) replacement scripting lang for EXEC on mainframes (simple answer) something common on Amiga and OS/2
15:32:50 <AnMaster> Rugxulo, wait a sec, what does mainframes have to do with amiga?
15:33:05 <Rugxulo> nothing ... but REXX is an interpreted language, and several implementations exist
15:33:38 <Rugxulo> http://en.wikipedia.org/wiki/REXX
15:33:45 <AnMaster> and what do you mean with replacing EXEC? Was EXEC some other scripting language? Or do you mean exec as "execute other program"
15:34:04 <Rugxulo> http://groups.google.com/group/comp.lang.rexx/topics?lnk=srg
15:34:09 <Rugxulo> it was another scripting language
15:34:19 <AnMaster> (which is exec or execv() or similar on most sane platforms, but is CreateProcessEx() on windows)
15:35:29 <Rugxulo> http://sourceforge.net/projects/oorexx/
15:35:38 <AnMaster> OO as in OOP?
15:35:45 <Rugxulo> optional, came later, but yes
15:36:05 <AnMaster> argh
15:36:49 <Rugxulo> TRL2 (level 4) in 1990, ANSI (level 5) in 1996, Object Rexx (level 6) in 1995-ish??? (and open-sourced in 2005 or so)
15:38:13 <fizzie> OT7, the level 7 Operating Thetan.
15:38:24 <fizzie> I don't know why that reminded me of.
15:39:07 <oerjan> object oriented thetan
15:39:17 * Rugxulo only barely learned any REXX two months ago, so is far from a pro
15:39:36 <fizzie> oerjan: They should start some sort of OOT levels, perhaps.
15:44:56 -!- MizardX has joined.
15:46:45 <Rugxulo> AnMaster, they have 64-bit compiles for Linux of ooREXX ... although you're a Gentoo user, right?
15:47:20 <AnMaster> Rugxulo, arch linux since several months
15:47:30 <AnMaster> but I dislike OO
15:47:49 <AnMaster> plus I don't see why I would be interested in REXX at all currently
15:48:12 * oerjan realizes that the people who look for object-oriented K are going to be so disappointed
15:50:25 <Rugxulo> OO is optional, my B93 doesn't use it
15:51:00 <Rugxulo> is the Esolang wiki dead or is it still a good idea to update it?
15:51:21 * oerjan swats Rugxulo -----###
15:51:27 <fizzie> http://esolangs.org/wiki/Special:Recentchanges -- that doesn't look dead to me!
15:51:37 <oerjan> it's just resting!
15:51:48 <Rugxulo> well, I noticed a lot of errors and broken links and a few omissions, so ...
15:51:59 <fizzie> oerjan: That is not dead which can eternal lie!
15:52:28 <oerjan> Rugxulo: well the old stuff is not always very well maintained
15:52:36 <Rugxulo> I've still never heard anybody ever mention the "Betty compiler" :-/
15:52:39 <AnMaster> oerjan, it's pining for the fjords
15:53:14 -!- augur has quit (Ping timeout: 240 seconds).
15:53:43 <oerjan> the community is active enough to get some new stuff, but not to proofread the entire wiki regularly...
15:55:16 <oerjan> i sometimes help proofread new stuff, but other times i'm just too lazy
15:55:45 <Rugxulo> well, would it be horribly out of place if I (eventually) fixed a few errors myself?
15:55:54 <oerjan> of course not
15:56:19 <oerjan> i _do_ check recent changes, so if you do something egregious we'll revert it :D
15:57:00 <Rugxulo> no no, nothing bad (obviously), that would be crazy dumb
15:57:11 <Rugxulo> I just didn't want to step on any toes
15:57:47 <fizzie> Just few ads for your limb-enlargement pills, but nothing bad.
15:58:28 <oerjan> i generally don't edit user pages. and i wouldn't change fundamental definitions in other people's languages either. but all kinds of fixes and improved writing in the main article space is fine
15:59:11 <Rugxulo> broken links annoy me, but I guess a link to WayBack (if available) is better than nothing
15:59:12 <oerjan> i'm sometimes worried when an anonymous IP does major changes to a language - i cannot know if it's really the original author
16:00:13 <oerjan> yeah if someone just removes a link i often put it back as wayback
16:00:49 <oerjan> assuming there is no better one
16:01:33 <Rugxulo> AnMaster, you really need to mirror Cfunge since your server is always down :-P
16:01:54 <AnMaster> Rugxulo, it is gone, the official site is the launchpad project nowdays
16:02:09 <AnMaster> if there is a non-updated link somewhere it should be updated
16:02:50 <Rugxulo> Befunge page (duh) ;-)
16:03:02 <Rugxulo> who'd thunk it? ^_^
16:03:13 <AnMaster> I don't remember my login to the wiki
16:03:20 <AnMaster> in fact I haven't for years now
16:04:00 <oerjan> if you registered email back then you could get a new password, i think
16:04:08 <AnMaster> oerjan, well that's the problem
16:04:10 <AnMaster> I didn̈́t
16:04:14 <AnMaster> didn't*
16:07:41 -!- lereah_ has quit (Remote host closed the connection).
16:11:20 <Rugxulo> well, for instance, Underload page doesn't mention Keymaker's Brainf*** interpreter for it, which I think is a glaring omission
16:31:53 -!- augur has joined.
16:40:48 <Rugxulo> AnMaster, still here?
16:46:32 <Rugxulo> guess not
16:46:54 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
16:57:18 <AnMaster> back
16:57:21 <AnMaster> Rugxulo, I was away eating
16:57:30 <AnMaster> what did you want?
16:59:52 <oerjan> WHAT. DO YOU. WANT.
17:00:55 <AnMaster> oerjan, this sounds familiar... I can't place it
17:00:58 <AnMaster> what was it a reference to?
17:01:56 <oerjan> well technically girl genius
17:02:06 <oerjan> but really i just tried to sound similarly ominous
17:02:35 <AnMaster> oerjan, hm must have been somewhere else as I know I never read that webcomic
17:03:06 <oerjan> possibly it's been done before
17:03:18 <AnMaster> well yes, it doesn't require that much imagination
17:04:53 <oerjan> oh i was trying to look it up through tvtropes
17:05:23 <AnMaster> oerjan, many results?
17:05:31 <oerjan> and there it's listed as an example of "THIS! IS! SPARTA!" maybe that's what you were thinking of?
17:05:43 <AnMaster> oerjan, no, definitely not
17:05:53 <oerjan> i mean i was trying to find the precise comic
17:06:02 <AnMaster> oerjan, I see it in a hollow voice. Think death on discworld kind of voice
17:06:12 <AnMaster> but I'm pretty sure it isn't from discworld
17:06:16 <oerjan> http://www.girlgeniusonline.com/comic.php?date=20051005
17:06:42 <oerjan> it wasn't actually all caps...
17:06:50 <oerjan> er wait it was
17:07:14 <oerjan> just like all the text, though
17:07:56 <oerjan> alas it's impossible to google for it, afaik
17:08:51 <oerjan> (and i missed a period.)
17:11:58 -!- tombom has joined.
17:13:01 <Rugxulo> AnMaster, sorry ... ran off when nobody was looking ^_^
17:16:03 -!- hiato has joined.
17:21:09 <Rugxulo> (bah, he's gone again)
17:44:19 -!- oerjan has quit (Quit: leaving).
17:50:16 -!- fax has joined.
17:50:24 <fax> HAY GUYS HAVE YOU SEEN LOLCODE?
17:50:37 <Rugxulo> yes
18:10:00 <augur> fax, welcome to three years ago.
18:10:29 <fax> aaugur
18:12:09 <augur> if you wish to ping me, dont misspell my name :|
18:17:12 <Rugxulo> (B93) is this code interesting? http://www.pastebin.org/192619
18:17:30 <Rugxulo> note that I didn't (yet) obfuscate it ;-)
18:27:31 -!- cal153 has joined.
18:37:29 <Rugxulo> already, here it is, barely obfuscated but anyways ... http://www.pastebin.org/192674
18:38:08 <hiato> Rugxulo: I don't theink that does what I first thought it did
18:39:08 <Rugxulo> it doesn't really have much of a point ;-)
19:10:37 -!- adam_d has joined.
19:13:04 -!- ais523 has joined.
19:13:29 <Rugxulo> ais523: did you know Keymaker wrote a Brainf*** version of Underload?
19:14:32 <ais523> Rugxulo: yes
19:14:41 <ais523> I even programmed it into EgoBot a while ago
19:14:45 <Rugxulo> well it wasn't listed on the wiki page, so ...
19:14:53 <ais523> after modifying it to run as an EgoBot daemon rather than a standalone script
19:15:10 <Rugxulo> what is EgoBot written in?
19:15:19 <fizzie> Oh, yes! Didn't we have that in fungot too? Before I wrote the native Underload interp in Befunge in it.
19:15:20 <fungot> fizzie: you're not a schweinpenis," you mean " common" as in a form that wraps some foreign code, and g as well for more complex examples what the...
19:15:40 <fizzie> It was... not fast, I think.
19:15:55 <fizzie> Which is perhaps understandable.
19:16:34 <fizzie> The fungot ^bf cycle-count limits meant you could run "(hello)S" and maybe a swap of two short strings or something, but not much more.
19:16:35 <fungot> fizzie: still input is broken as it always display prompt and so on
19:18:43 <ais523> Rugxulo: a mix of langs, IIRC
19:19:02 <fizzie> [2008-10-07 23:04:33] < ehird> ^ul (ass)S
19:19:02 <fizzie> [2008-10-07 23:04:39] < fungot> ass
19:19:02 <fizzie> [2008-10-07 23:03:09] < ais523> ^ul (:aSS):aSS
19:19:02 <fizzie> [2008-10-07 23:03:16] < fungot> ...out of time!
19:19:02 <fungot> fizzie: while haskell belongs to the fnord page, hopefully it didn't get violent, i guess
19:19:02 <fungot> fizzie: i got version 360, i'm not
19:30:09 -!- hiato has quit (Quit: food).
19:35:15 <Rugxulo> quine (needs stack to pop 0 and needs to be on first line where y=0): :0g,1+:94+`#@_
19:35:32 <Rugxulo> now wrap it up like this and it still works
19:35:35 <Rugxulo> ^ >
19:35:35 <Rugxulo> :0g,1+:94+`#@_
19:35:35 <Rugxulo> >"N":> #p #0 #\ #g #1 #: #: #: #- #1##_ ^
19:35:44 <Rugxulo> (okay, obviously IRC doesn't handle spaces well)
19:35:54 <Rugxulo> but you get the idea ;-)
19:37:20 <Rugxulo> side effect: should now work even if your interpreter doesn't pop 0
19:39:06 <fizzie> There's nothing "obviously" space-unfriendly about IRC, and I'm not sure what (if anything) is wrong re spaces there.
19:39:17 <fizzie> The > and ^ at the right edge align perfectly, if that's what you mean.
19:39:24 <Rugxulo> okay, maybe it's Opera, it just didn't keep the spaces aligned :-P
19:39:28 <Rugxulo> for me
19:39:37 <fizzie> That's possibly your fault for not using a monospaced font.
19:39:41 <Rugxulo> probably
19:40:36 <Rugxulo> anyways, I basically (for no reason) wanted a way to test the quine without assuming 0 is popped off empty stack, and just tested in purposely-broken interpreter ... works, so I'm happy
19:51:27 <fizzie> Rugxulo: Did I show you my graph?
21:50:38 -!- clog has joined.
21:50:38 -!- clog has joined.
21:51:05 <Phantom_Hoover> Hmm... How do you use wget on sites that Firefox open a download dialogue for?
21:51:41 <ais523> you copy the URL, and wget that
21:51:49 <ais523> you need to determine what it is some other way first
21:51:58 <ais523> like starting to download, then copy-pasting the URL shown in the download
21:53:42 -!- tombom has quit (Quit: Leaving).
21:54:35 <Phantom_Hoover> Yeah, that worked. Thanks.
22:00:12 -!- Phantom_Hoover has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100401213457]).
22:11:34 -!- Gracenotes has quit (Ping timeout: 264 seconds).
22:21:45 -!- adam_d has quit (Ping timeout: 245 seconds).
22:32:41 -!- augur has quit (Ping timeout: 276 seconds).
22:41:28 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:12:24 -!- cal153 has quit.
23:15:00 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.2/20100316074819]).
23:15:06 -!- hiato has quit (Quit: underflow).
23:22:45 -!- ZeroOne has joined.
23:26:59 <ZeroOne> Hiya
23:27:24 <ZeroOne> How come the esolang wiki doesn't present a language of the week?
23:27:42 <ZeroOne> (or day, or month, for that matter)
23:27:54 <ais523> because nobody's set that up
23:28:00 <fax> also why would you want that
23:28:18 <ais523> ZeroOne: you can use the random page button, that might work a similar way
23:30:35 -!- coppro has joined.
23:30:40 <Gregor> ais523: lawl
23:30:49 <ZeroOne> fax: why does every other wiki have an x of the day/week/month/year?
23:32:28 <ZeroOne> I find it makes the main page more dynamic and attracts more visitors, not to mention it showcases some of the best work in the wiki
23:39:06 <ZeroOne> ais523: I could even set that up
23:39:19 <ais523> hmm, we need a featured article process
23:39:22 <ais523> many of the articles are junk
23:41:11 <ZeroOne> I thought the initial featured articles could be chosen based on [[Special:Popularpages]] and [[Special:Mostrevisions]]
23:43:09 <ZeroOne> (and using the random page button wouldn't really work for the exact reason you just mentioned)
23:43:16 <Gregor> There, I fixed it.
23:49:39 -!- Slereah has quit (Ping timeout: 248 seconds).
23:53:41 -!- FireFly has quit (Quit: Hey! Listen!).
23:54:00 <Sgeo> Several of my classmates got in trouble [nothing serious, they're just under more scrutiny] for something I did.
23:54:42 <ais523> ouch, what was it?
23:54:43 <Gregor> So kill them to cover your tracks.
23:54:44 <Sgeo> No one here works in the IT dept. of any schools in NY, right?
23:55:26 <Sgeo> So some of my classmates are wall'ing on the school's Linux system
23:55:36 <Sgeo> And I say that I will spam the next person to wall
23:55:57 <Sgeo> So someone walls, and I do yes | write theirlogin
23:56:16 <Sgeo> They discover that closing the SSH client, and going to log in again, fixes it
23:56:43 <Sgeo> So I hastily decide to make an infinite loop that will keep doing yes | write theirlogin, in the background
23:57:19 <Sgeo> Took a couple of iterations, but then, for one of them, other uninvolved students start saying that nothing's working
23:57:25 <Sgeo> Everything was slowed down to a halt.
23:57:28 <Sgeo> This was on Tuesday.l
23:57:57 <Sgeo> On Thursday, we learn that someone who was doing work from home complained. The people sending broadcast messages were put on a list.
23:58:11 * Sgeo did not send any broadcast messages..
23:58:30 <pikhq> ... Your IT department lets arbitrary users wall?
23:58:41 <pikhq> Dang, that's dumb.
23:58:51 <Sgeo> Not anymore
23:59:02 -!- nooga has quit (Quit: Lost terminal).
23:59:10 <Sgeo> The binary was deleted, apparently
23:59:34 <pikhq> That's dumbtarded.
2010-04-30
00:00:16 <pikhq> That's like getting rid of the ability to rm random files by removing rm.
00:00:18 <ais523> does wall need suid?
00:00:22 <ais523> if not, that's not going to do much
00:00:37 <Gregor> It's sgid tty.
00:00:54 <ais523> hmm, I suppose you could get a similar effect by linking up /etc/passwd and write
00:01:06 <pikhq> That's what wall does.
00:01:20 <pikhq> Well. It hooks up who and wall.
00:01:40 <Sgeo> So wall is a recursive command?
00:01:46 * Sgeo knows what pikhq meant.
00:01:48 <pikhq> Yes, that's how it works.
00:02:00 <Sgeo> Wait, you meant what you said? o.O
00:02:01 <pikhq> s/wall/write/
00:02:21 <pikhq> No, I meant what I didn't actually say.
00:06:18 <Gregor> Have I mentioned that the IREX DR800SG is awesomesauce?
00:06:44 <pineapple> Sgeo: wall?
00:07:00 <Sgeo> pineapple, broadcasts to all users on the system
00:07:10 <pineapple> aah
00:07:23 <Gregor> I notice nobody pointed out how awesome my update to the front page is :(
00:09:25 * Sgeo decides that Gregor is the Lawlabee of the Lawlabee
00:16:09 <Sgeo> I feel more guilty about not feeling guilty than I feel about the whole scenario
00:16:50 <ais523> Gregor: I don't think you should feel that guilty
00:16:58 <ais523> Gregor: I see what you did to the main page
00:17:04 <ais523> and am unsure whether it's vandalism or not
00:17:12 * Sgeo wonders what Gregor did that may be guilt-worthy
00:17:24 <Gregor> It's not vandalism :P
00:17:26 <ais523> *Sgeo:
00:17:43 <uorygl> What front page did Gregor do to?
00:18:02 -!- coppro has quit (Ping timeout: 265 seconds).
00:18:09 <ais523> esolang's
00:21:45 <uorygl> `translate Koira (Canis lupus familiaris tai Canis familiaris)[1] on suden kesy jalostettu muoto.
00:21:49 <HackEgo> Dog (Canis lupus familiaris or Canis familiaris) [1] is a domesticated wolf processed form.
00:21:59 <uorygl> I love domesticated wolf processed forms.
00:23:31 <uorygl> Mmkay, "koira" is "dog", of course, and "on" is "is". And I guess "suden" is "wolf".
00:23:58 * uorygl looks some other stuff up.
00:24:29 <uorygl> kesy is domesticated, muoto is form, so jalostettu must be processed.
00:24:52 <uorygl> Though there's probably a better translation than "domesticated wolf processed form". :P
00:27:43 <Gregor> `translate jalostettu
00:27:45 <HackEgo> processed
00:28:51 <Ilari> 'processed' sounds more what is done to food that makes it unhealthy (if it doesn't happen to be already unhealthy)... :-)
00:28:58 <uorygl> Yeah, it does.
00:29:29 <uorygl> I need to re-learn those verbs that I learned last night.
00:29:42 <uorygl> Not to mention the words for "I" and "me".
00:31:03 <uorygl> "I" is minä, right?
00:31:27 <uorygl> Let's see, those verbs were "lift", "shine", and "get".
00:31:52 <uorygl> `translatefromto en fi I shine and I lift the dog and the dog gets me.
00:31:55 <HackEgo> Olen paistaa ja minä nosta koira ja koira saa minut.
00:32:21 <uorygl> I'm sure that's only approximately right.
00:32:34 <Ilari> That looks only sightly better than intertran... :-)
00:33:11 -!- Slereah has joined.
00:33:27 <uorygl> So is "I lift the dog" actually "minä nostan koiran"?
00:36:06 <Ilari> Well, unless it has some special meaning, yes. Or "nostan koiran".
00:38:50 -!- Azstal has joined.
00:40:08 -!- Asztal has quit (Ping timeout: 240 seconds).
00:40:12 -!- Azstal has changed nick to Asztal.
00:42:08 <MizardX> http://rogeralsing.com/category/domain-specific-languages/
00:42:23 <MizardX> Interesting project
00:45:34 -!- Azstal has joined.
00:46:37 -!- Asztal has quit (Ping timeout: 264 seconds).
00:46:42 -!- Azstal has changed nick to Asztal.
00:54:37 <uorygl> Then "the dog lifts me" is koira nostaa something, right? I've forgotten the word for "me".
00:58:00 -!- Asztal has quit (Ping timeout: 276 seconds).
01:10:43 -!- Asztal has joined.
01:10:49 <uorygl> So, my older brother and I are going back and forth trying to name a chain of countries that border each other.
01:10:54 <uorygl> It turns out we're really bad at this.
01:11:01 -!- Mathnerd314 has joined.
01:11:16 <uorygl> Our chain so far: France, Spain, Germany, Austria, the Czech Republic, Norway, Sweden, Denmark, Finland, Iceland, Greenland.
01:11:43 <uorygl> The only pair of those that I actually know share a border is Norway and Sweden.
01:14:20 <Gregor> Lawl @ Spain->Germany
01:14:25 -!- ais523 has left (?).
01:14:37 <uorygl> The beginning might actually have been Spain, France, Germany.
01:24:27 <MizardX> spain <-> france <-> (germany, czech republic, austria) <-> (denmark, sweden, norway) <-> finland
01:24:43 <MizardX> (a, b, c) is a, b and c bordering eachother
01:25:08 <MizardX> iceland and greenland are islands, so I don't know how to classify them
01:34:29 -!- fax has quit (Quit: Lost terminal).
01:41:47 -!- fax has joined.
01:51:58 -!- augur has joined.
01:52:03 -!- augur has quit (Remote host closed the connection).
02:02:45 -!- Oranjer has left (?).
02:06:11 -!- augur has joined.
02:13:08 -!- wareya has quit (Quit: leaving).
02:13:43 -!- wareya has joined.
02:35:25 -!- Asztal has quit (Quit: .).
02:41:54 -!- lament has joined.
02:51:24 -!- bsmntbombdood has joined.
02:53:27 -!- fax has quit (Quit: Lost terminal).
03:06:49 -!- jcp has joined.
03:13:42 -!- coppro has joined.
03:33:14 -!- Alex3012_ has joined.
03:33:44 -!- Alex3012_ has changed nick to Alex3012.
04:16:03 -!- cal153 has joined.
04:42:21 -!- oerjan has joined.
04:53:57 <oerjan> <uorygl> Our chain so far: France, Spain, Germany, Austria, the Czech Republic, Norway, Sweden, Denmark, Finland, Iceland, Greenland.
04:54:41 <oerjan> spain doesn't border germany, the czech republic doesn't border norway, denmark doesn't border finland and the last two are remote islands
04:55:21 <uorygl> Does Finland border one of Norway, Sweden and Denmark?
04:55:24 <oerjan> although with extended sea borders, you might get to them
04:55:30 <oerjan> both norway and sweden
04:56:02 <uorygl> So we picked precisely the wrong one.
04:56:25 <oerjan> heh
04:56:52 <uorygl> Our initial attempt at creating a chain of bordering countries went like this: "The United States." "Canada." "Uh..."
04:57:01 <oerjan> norway and iceland have bordering sea economic zones, i think
04:57:02 <oerjan> heh
04:57:15 <pikhq> uorygl: US->Mexico->good luck.
04:57:18 <pikhq> >:D
04:57:29 <oerjan> US -> russia, perhaps? i
04:57:51 <pikhq> Also: note that if you go for "Kingdom of Denmark" you also pick up Greenland and the Faroe Islands.
04:58:09 <oerjan> 'm not sure how close alaska is, although they can apparently see russia from their houses </duck>
04:59:03 <oerjan> canada -> greenland -> iceland -> norway is plausible with economic zone borders, i think
04:59:10 <uorygl> And that's why my mom didn't vote for McCain.
05:00:00 <pikhq> oerjan: http://en.wikipedia.org/wiki/File:Diomede_Islands_Bering_Sea_Jul_2006.jpg
05:00:01 <uorygl> She'd rather not have her as VP when an old guy's the President.
05:00:15 <pikhq> Left side is US, right side is Russia.
05:00:24 <uorygl> Anyway, it's bedtime; good night, everyone.
05:00:26 <pikhq> 2 miles.
05:00:50 <uorygl> Vitä-or-something!
05:01:31 <oerjan> right, that's even within the political sea borders
05:01:45 <pikhq> Little Diomede has a village on it, Big Diomede only has a weather station.
05:02:40 <pikhq> (Soviet Russia evacuated it to prevent cross-border contact)
05:02:47 <oerjan> huh
05:03:44 <oerjan> http://en.wikipedia.org/wiki/File:Exclusive_Economic_Zones_Nulles.png
05:06:11 <oerjan> after the latest agreement with russia, if you include sea area norway is the largest nation in europe :D
05:06:24 <oerjan> that requires ignoring russia past the ural though
05:35:38 <oerjan> xkcd :D
05:50:37 <Gregor> Yeah, 's a good'n today.
05:53:34 <pikhq> Humor is present.
05:55:09 <Gregor> HUMOR DETECTED, COUNTERING WITH STUPIDITY
06:02:03 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.2/20100316074819]).
06:02:19 -!- adu has joined.
06:09:09 -!- augur has quit (Remote host closed the connection).
06:11:38 -!- jcp has quit (Ping timeout: 240 seconds).
06:31:40 -!- oerjan has quit (Quit: Later).
06:47:24 -!- FireFly has joined.
06:49:27 -!- bsmntbombdood has quit (Remote host closed the connection).
06:58:36 -!- tombom has joined.
07:08:45 -!- augur has joined.
07:51:03 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:33:22 -!- RC has joined.
08:33:32 -!- RC has changed nick to Guest33013.
08:34:33 -!- Guest33013 has left (?).
08:42:27 -!- FireFly has quit (Quit: Hey! Listen!).
08:52:38 -!- Axtens has joined.
09:11:42 -!- coppro has quit (Read error: Connection reset by peer).
09:16:05 -!- lament has quit (Quit: lament).
09:20:08 -!- lament has joined.
09:21:57 -!- lament has quit (Client Quit).
10:21:59 -!- FireFly has joined.
10:23:52 -!- Axtens has quit (Quit: it's been a long long day and I just wanna go home).
10:33:56 -!- lereah_ has joined.
10:38:40 -!- Tritonio_GR has joined.
10:49:50 -!- cheater2 has quit (Ping timeout: 252 seconds).
10:56:54 -!- cheater2 has joined.
12:33:43 -!- adu has quit (Quit: adu).
13:11:51 -!- hiato has joined.
13:18:02 -!- Tritonio_GR has quit (Ping timeout: 240 seconds).
13:19:05 -!- sebbu2 has joined.
13:20:19 -!- sebbu has quit (Ping timeout: 248 seconds).
13:20:19 -!- sebbu2 has changed nick to sebbu.
14:46:00 -!- hiato has quit (Quit: underflow).
14:50:17 -!- Tritonio_GR has joined.
14:51:49 -!- BeholdMyGlory has joined.
15:08:55 -!- oerjan has joined.
15:39:57 -!- hiato has joined.
16:12:42 -!- lereah_ has quit (Quit: Leaving).
16:18:04 -!- ais523 has joined.
16:41:33 -!- hiato has quit (Quit: underflow).
17:02:32 -!- alise has joined.
17:02:39 <oerjan> hi alise
17:02:49 <alise> Aye.
17:03:17 <ais523> hi
17:03:31 <alise> I feel rather uncomfortable. I should really wait 'til Friday before going on here.
17:04:17 <pikhq> Yes, well, thy mother.
17:04:24 <pikhq> Also, 'tis Friday.
17:05:08 <ais523> alise: what time zone are you in?
17:05:21 <oerjan> no wonder he is uncomfortable if he doesn't know what day it is
17:05:25 <alise> Er; Saturday.
17:05:30 <ais523> ok
17:06:02 <pikhq> ais523: British
17:06:10 <ais523> pikhq: I know
17:06:15 <ais523> doesn't necessarily mean he's in the UK, though
17:06:22 <pikhq> He is.
17:07:22 <alise> pikhq: but the plan is to not be soon, so...
17:07:30 <pikhq> True.
17:07:39 <pikhq> alise: How's that going, BTW?
17:07:52 <alise> No progress atm. Sorry.
17:07:59 <pikhq> Aaaw.
17:09:00 <Sgeo> :(
17:09:57 -!- hiato has joined.
17:10:28 <alise> pikhq: However, I am considering using some sort of organisational aid so I can enslave you lot to help me with the details of the plan were you so inclined.
17:10:32 <alise> Voluntary slavery; it's the future!
17:11:15 <oerjan> nah, that's _so_ 1984
17:31:29 -!- jcp has joined.
17:34:39 <alise> I guess I call a meeting in #esoteric-priv. Invitees are pikhq, Sgeo, ais523, oerjan, oklopol, and just about anyone apart from AnMaster really.
17:37:13 <ais523> in other news, I just contacted the admin of a website because I wanted to register but disagreed with a frivolous term they'd added to the ToS
17:37:17 <ais523> am I crazy, or not?
17:37:43 <alise> Do I really have to answer that?
17:37:57 <ais523> no, you don't
17:38:02 <ais523> I was wondering if someone else would, though
17:38:08 <alise> Well, the answer is yes.
17:38:20 <ais523> for all I know this is one of these competitions to see if anyone actually /reads/ the ToS of websites or not
17:38:31 -!- tombom has joined.
17:39:16 <oerjan> well, but were you planning on _having_ any firstborn children, anyhow?
17:39:46 <Sgeo> What was the term?
17:40:38 <ais523> Sgeo: it was a website concerning glitches in Pokémon games; it wanted me to pledge eternal allegiance to Weaviles
17:40:48 <ais523> which is frankly a ridiculous term
17:41:03 <Sgeo> Sounds like a joke
17:42:04 <ais523> obviously
17:42:19 <ais523> just because it's a joke doesn't mean I should disregard it, though
18:45:14 -!- sebbu has quit (Ping timeout: 240 seconds).
18:45:26 -!- sebbu has joined.
18:47:30 * pikhq pledges his eternal allegance to Weaviles. Hooray, bug-type Pokemon
18:51:34 -!- augur has quit (Remote host closed the connection).
18:53:19 -!- hiato has quit (Quit: underflow).
18:55:33 * Sgeo pledges his eternal allegiance to allegiances.
18:56:11 * pikhq can has clang 2.7
18:57:13 <pikhq> It would also appear to be borken.
18:57:20 <alise> <ais523> Sgeo: it was a website concerning glitches in Pokmon games; it wanted me to pledge eternal allegiance to Weaviles
18:57:24 <alise> that's an excellent term
18:57:27 <alise> you should have accepted it.
18:57:36 <alise> or do you have something against Weaviles?
18:59:14 <ais523> alise: how can I discriminate against all the other physical sweepers in existence?
18:59:30 <pikhq> /tmp/cc-P8j8OI.s:203: Error: symbol `.LBA6_instrs_' is already defined
18:59:31 <pikhq> :(
18:59:41 <alise> ais523: you just have to have faith.
19:00:23 <pikhq> *Gah* it actually does try to redefine that several times.
19:00:27 <pikhq> That is *broken*.
19:00:54 <Sgeo> #define PIKHQ "Annoyed"
19:00:59 <Sgeo> #define PIKHQ " More annoyed"
19:01:18 <pikhq> So: clang went from a moderately poor implementation of computed goto to one that *cannot work*.
19:02:41 <pikhq> It appears Gentoo's clang ebuild is... Not actually 2.7?
19:10:37 -!- augur has joined.
19:12:58 <alise> http://ctan.tug.org/tex-archive/macros/latex/contrib/comicsans/
19:25:38 -!- oerjan has quit (Quit: Good night).
20:03:07 <ais523> happy australian mailman reminders day!
20:03:46 -!- Phantom_Hoover has joined.
20:04:40 <Phantom_Hoover> Why does Ubuntu tell you not to have any applications open during the upgrade process? Surely it's irrelevant while you're downloading the package files.
20:05:24 -!- coppro has joined.
20:08:50 <Phantom_Hoover> I also note that they clearly stole the Lucid theme from me.
20:09:21 <Phantom_Hoover> Evidently by hacking into my Facebook account, the scum!
20:10:18 <ais523> Phantom_Hoover: it is, but during the actual upgrade, Firefox breaks randomly
20:10:24 <ais523> I haven't seen anything else break randomly though
20:10:52 <Phantom_Hoover> Are you upgrading now?
20:11:02 <Phantom_Hoover> Or have you done it?
20:16:52 <coppro> Firefox usually breaks during and after upgrading in my experience
20:20:08 <Phantom_Hoover> Anyway, I'm going to go, so bye.
20:20:10 -!- Phantom_Hoover has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100401213457]).
20:20:34 <alise> And I'm still on 9.04!
20:20:44 <alise> Is Lucid good?
20:21:22 <alise> Incidentally, if anyone's interested, the finite derivative of fib(n) is fib(n) + fib(n-2).
20:24:13 <ais523> alise: I suspect Lucid isn't stable yet
20:24:24 <alise> Is it out, though?
20:24:26 <ais523> yes
20:24:30 <ais523> I'm waiting before upgrading
20:24:33 <alise> Anyway, be interested in my finite derivative.
20:24:47 <ais523> hmm, interesting in a vaguely interesting sort of way
20:25:53 <AnMaster> UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
20:25:57 <AnMaster> now that is pretty strange
20:26:11 <alise> !echo http://esolangs.org/wiki/ais523
20:26:21 <alise> aww
20:26:22 <EgoBot> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
20:26:25 <alise> ^ul (http://esolangs.org/wiki/ais523)S
20:26:25 <fungot> http://esolangs.org/wiki/ais523
20:26:28 <AnMaster> make config in uclibc gives the even stranger prompt: Maximum number of positional args. Either 0 or >= 9. (UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS) [9]
20:26:40 <AnMaster> 0, or >=9, huh?
20:27:11 <alise> ^ul (Hey AnMaster! alise here! I want ais523 to see this: http://esolangs.org/wiki/ais523)S
20:27:12 <fungot> Hey AnMaster! alise here! I want ais523 to see this: http://esolangs.org/wiki/ais523
20:27:49 <alise> !sh echo "Hey AnMaster! alise here! I want ais523 to see this: http://esolangs.org/wiki/ais523"
20:27:49 <EgoBot> Hey AnMaster! alise here! I want ais523 to see this: http://esolangs.org/wiki/ais523
20:27:52 <AnMaster> sigh. 1) that's annoying 2) there is nothing I can do, ais filter urls. At best try adding spaces in it like foo . bar or such
20:28:18 <AnMaster> if there is spam on the wiki or such, why not just tell him
20:28:33 <ais523> if there's spam on the wiki, my RSS client will tell me
20:28:36 <alise> !sh echo ais523 doesn't know how to use a computer though...
20:28:36 <EgoBot> /tmp/input.26333: line 1: unexpected EOF while looking for matching `''
20:28:41 <alise> !sh echo "ais523 doesn't know how to use a computer though..."
20:28:41 <EgoBot> ais523 doesn't know how to use a computer though...
20:28:49 <alise> !sh echo "LIKE YOU"
20:28:49 <EgoBot> LIKE YOU
20:28:53 <alise> I am so petty
20:29:04 <AnMaster> ...
20:29:07 <alise> I'll shut up now
20:29:09 * AnMaster ignores the troll
20:29:21 <alise> !sh echo "are there even any bots left for you to ignore?"
20:29:21 <EgoBot> are there even any bots left for you to ignore?
20:31:25 <alise> 13:56:08 <ais523> I find it hard to believe that a link like that could be ontopic
20:31:26 <alise> 13:56:14 <ais523> and if it is, it has a rather unfortunate URL
20:31:31 <alise> In response to "lovethecock dot com"
20:31:34 <alise> What would we do without you, ais523?
20:31:38 <ais523> alise: someone was blatantly trolling
20:31:48 <alise> I just found it an amusing thing to say
20:31:52 <alise> "Well it MIGHT be appropriate... might"
20:31:54 <ais523> and weirding trolls out is the easiest way to get them to leave, IIRC
20:32:47 <ais523> I think in the end the troll just got bored
20:33:04 <ais523> for one thing, posting gay porn links here is likely counterproductive anyway because half the channel will just ask for more
20:33:15 <ais523> so then he tried to start a flamewar, and failed miserably
20:33:30 <alise> 14:02:35 <Gregor> Those of us who enjoy gay porn have some free gay porn links, those of us who don't just ignore *shrugs*
20:33:31 <alise> Let live, man
20:33:33 <alise> Let live
20:33:40 <alise> Gregor: MOST MAXIMALLY CHILLED PERSON IN HERE
20:34:51 <ais523> why are trolls so bad at trolling nowadays?
20:35:33 <alise> 14:14:35 <ais523> I mean, even the Emacs fans here think vi is perfectly usable, and vice versa
20:35:39 <AnMaster> ais523, probably it is just this channel
20:35:49 <Sgeo> Who was trolling?
20:35:50 <AnMaster> that is hard to troll
20:35:54 <alise> The people in here segregate into {emacs & vi fans} and {emacs & vi haters}.
20:35:56 <alise> It's quite strange really.
20:35:56 <ais523> Sgeo: some newbie
20:36:01 <alise> We added a new dimension to the emacs/vi thing.
20:36:12 -!- MizardX has quit (Ping timeout: 276 seconds).
20:36:40 <alise> 14:19:50 <ais523> personally, I like to use the repos in Sweden
20:36:46 <alise> I did that, but it made me think about AnMaster
20:36:47 <Sgeo> When I can't have a nice GUI editor, emacs > vi
20:36:47 <alise> so I stopped
20:36:49 <alise> (seriously)
20:37:13 <ais523> alise: OK, now that's just being petty
20:37:28 <ais523> how can the repos of an entire country be tainted by one of its citizens?
20:37:38 <ais523> unless, it's someone really high-up with the ability to taint repos
20:37:38 <alise> 14:27:46 <fizzie> He lost the finger in a crash, that is; he didn't just lop off a perfectly good finger.
20:37:40 <alise> "Just to clarify."
20:37:47 <alise> ais523: they can't be, it just made me angry every time I did repo stuff
20:38:07 <ais523> perhaps try norway or finland instead, then
20:38:11 <alise> actually, AnMaster has actually contributed to the neg-value of moving to Sweden as a possible escape option; I'm rather crazy
20:38:30 <uorygl> I'm kind of pondering the possibility of going to a Finnish university.
20:38:34 <alise> I mean, what if he runs into me one day. I'd commit murder.
20:38:40 <alise> uorygl: Why?
20:38:51 <uorygl> Because I hear that they're free.
20:39:19 <uorygl> That comes across as a good reason.
20:39:28 <alise> So are they in most countries.
20:39:37 <alise> uorygl: Go to Oxford. The country sucks but the university doesn't :P
20:39:45 <uorygl> I had a feeling that was the case.
20:40:02 <alise> And, well, Oxford is a nice place.
20:40:05 <ais523> university costs money in the UK, though, presumably unless the Lib Dems somehow win
20:40:23 <uorygl> My family is kind of reluctant to pay for university.
20:40:26 <ais523> if you actually live here, they give you a loan for that amount with interest pegged at inflation
20:40:31 <alise> ais523: Well, yes.
20:40:35 <ais523> that you don't have to repay until you get a job
20:40:43 <ais523> so in theory you can pay for it with your own money once you get some
20:40:43 <alise> I hope the Lib Dems win, but I find it unlikely.
20:40:54 <alise> ais523: Still, that's the price of an Oxford education :P
20:41:03 <alise> It's cheaper than MIT.
20:41:04 <ais523> I'm not even going to get a vote this time, I'll be in Canada and a huge argument broke out when I tried to get someone to proxy-vote for me
20:41:19 <alise> (a) why? (b) why?
20:41:22 <ais523> I couldn't fill in the form because nobody technically promised to proxy for me, they spent all their time trying to persuade each other to do it instead
20:41:29 <ais523> (a) conference, (b) I just answered
20:41:33 <alise> and (c) can I come with you to Canada?
20:41:41 <uorygl> I wonder why all university-age kids don't just go to a place where it's free.
20:41:42 <ais523> alise: (c) could be difficult, I imagine
20:41:54 <ais523> especially as only have a temporary visa-equivalent
20:41:55 <alise> uorygl: Family. Friends. Culture. Language. etc.
20:41:58 <alise> ais523: why :(((
20:42:06 <ais523> because I'm coming back again afterwards
20:42:06 <alise> I don't care I'll just tell the unit I'm going on holiday or something
20:42:11 <alise> and then come back
20:42:12 <pikhq> uorygl: Most of the time you have to be in the country to get it free.
20:42:15 <alise> sadly BUT STLL.
20:42:27 <alise> I like Canada it's nice. :(
20:42:28 <Sgeo> Why bother? My dad pays for everything
20:42:48 <ais523> brb, getting dinner
20:42:49 <alise> Estimated time until Sgeo's life comes crashing down and he finds himself completely unable to pay for anything: ???
20:42:49 <pikhq> Which bloody well bones USians. There's no such thing as "free college" here.
20:42:50 <uorygl> What counts as "being in the country", though? It's difficult to attend a university without being in the same country.
20:42:56 <uorygl> Sgeo: I thought he didn't.
20:42:59 <alise> uorygl: Residence?
20:43:00 <pikhq> uorygl: Resident already.
20:43:13 <uorygl> Do you have to be a resident for a certain amount of time or something?
20:43:15 <alise> Or perhaps even citizenship in some countries.
20:43:17 <pikhq> Though I'm pretty sure "being in the EU" counts. :P
20:43:28 <coppro> Even the countries that don't provide education often subsidize it for locals (Canada, for instance)
20:43:50 <Sgeo> It's sad that when I had an issue with XChat just now, I thought of joining the IRC channel instead of just Googling
20:43:56 <pikhq> coppro: Yes, the US doesn't. We're getting freaking boned.
20:44:14 <pikhq> Well. They "subsidize" it by offering subsidized loans.
20:44:33 <alise> I'm not getting freaking boned!
20:44:36 <pikhq> And the universities respond by increasing how much they charge by how much loans one can get.
20:44:38 <coppro> pikhq: It's still usually more expensive to get educated in the US than in Canada even without government subsidies
20:44:50 <pikhq> coppro: Yes.
20:44:55 * uorygl reads about free education on Wikipedia.
20:45:08 <pikhq> Canada is very tempting.
20:45:59 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
20:47:28 <uorygl> "In Sweden and Finland, there is no fee for foreign students enrolling at a university, although they may not be eligible for the monthly study allowance and loan most nationals are."
20:48:09 <alise> uorygl: Finland has mandatory military service at 18 btw.
20:48:19 <uorygl> Awesome.
20:48:36 <alise> uorygl: Awesome...howso
20:48:41 <Sgeo> Can "military service" consist of doing programming in a safe area for the military?
20:48:44 <uorygl> Ironically.
20:48:53 <alise> uorygl: Sarcastically surely.
20:48:56 <pikhq> Sgeo: Yes.
20:48:59 <alise> Sgeo: Perhapsssss...
20:49:00 <uorygl> That too.
20:49:05 <alise> But do you want to sleep at night?
20:49:08 <pikhq> Oh, wait. In Finland.
20:49:10 <uorygl> Do they have wars in Finland? :P
20:49:34 <pikhq> There, military service consists pretty much of learning how to operate your weaponry. :P
20:49:36 <Sgeo> If I have no reason to believe I'll be shot the next day, I'll be able to sleep at night, I think
20:50:50 <pikhq> Last time the Finnish army fought, they were holding off Hitler.
20:51:30 <alise> Sgeo: So you don't care about being responsible for deaths?
20:51:40 <alise> I believe the technical term is "sociopath".
20:51:55 <Sgeo> The people shooting or dropping bombs are the ones responsible
20:52:05 <pikhq> Sgeo: Not true.
20:52:11 <alise> But not the person who wrote the "explode and cause tons of damage" code in the bomb?
20:52:14 <alise> Nonsense.
20:52:19 <alise> The blame is equal.
20:52:19 <uorygl> I generally consider deaths to be the responsibility of the people giving the orders, not the people carrying them out.
20:52:24 <alise> What about someone who says "Kill him"?
20:52:28 <pikhq> uorygl: And you'd be wrong.
20:52:30 <alise> If he's not the one who actually fires the gun...
20:52:41 <Sgeo> Or, ok, order givers too
20:52:48 <pikhq> uorygl: You are under no obligation to follow illegal orders, BTW.
20:52:48 <alise> pikhq: Well, I think experiments have shown that directly following orders is not such a crime.
20:52:55 <alise> But doing-military-programming is very detached from that.
20:53:06 <alise> pikhq: But Hitler will still kill you anyway if you don't...
20:53:09 <uorygl> pikhq: I guess you're more right than I implied.
20:53:12 <pikhq> alise: No. Directly following criminal orders will get you hanged for war crimes.
20:53:29 <alise> pikhq: Milgram.
20:53:36 <alise> Is it so wise?
20:53:37 <pikhq> alise: Nuremberg doesn't care.
20:53:51 <alise> I don't care.
20:53:55 <alise> I'm arguing about should-be.
20:54:09 <alise> 22:38:56 <Gregor> I ported gnuplot to my eInk reader. Plots on eInk = friggin' amazing.
20:54:17 <alise> gnuplot = neither free software or gnu! Also ugly output.
20:54:35 <uorygl> Anyway, it seems military service isn't anything to worry about if they're not actually fighting.
20:54:51 <pikhq> Ah. In hypothetical should-be land, starting wars would be the only offense worthy of a death sentence. :P
20:55:25 <pikhq> uorygl: Yeah, the Finnish army appears to be there so that they *can* fight if they happen to be invaded.
20:55:51 <alise> Nothing should be worthy of a death sentence.
20:55:54 <alise> Well, almost nothing.
20:56:32 <pikhq> alise: "Starting the murder of anywhere from hundreds to millions of people"?
20:56:50 <uorygl> He said "almost".
20:56:57 <alise> Killing someone is more costly than imprisoning them until they die.
20:57:06 <pikhq> Why yes, yes it is.
20:57:08 <alise> Or are you doing an argument-by-moral-outrage?
20:57:28 <alise> In which case I'm wholly uninterested.
20:57:39 <uorygl> Argument-by-moral-outrage is the only way to talk about desert.
20:57:41 <alise> Anyway, death is less torture than a life of nothingness.
20:57:56 <uorygl> ("Desert", pronounced like "dessert", meaning "what people deserve".)
20:58:16 <alise> Replace "what people deserve" with "what a society should do", then.
20:58:25 <uorygl> Sure.
20:59:05 <ais523> back
21:01:38 * uorygl notes: .se is Sweden, .no is Norway, .dk is Denmark, .is is Iceland, and .fi is Finland.
21:02:38 <uorygl> Sweden apparently has an official web site at sweden.se.
21:04:16 <alise> Sweden, see?
21:04:22 <alise> uorygl: Switzerland is .ch, if it matters
21:04:25 <alise> (It doesn't matter.)
21:04:30 <uorygl> No, it doesn't matter.
21:04:38 <uorygl> `calc 750 EUR in USD
21:04:51 <HackEgo> 750 Euros = 993.37500 U.S. dollars
21:04:56 <alise> uorygl plans a move at insane speed.
21:05:22 <uorygl> It's only a thousand dollars; therefore, I am going.
21:05:33 <uorygl> Even though none of us have any idea what "it" is.
21:12:49 <Gregor> <alise> gnuplot = neither free software or gnu! Also ugly output. // gnuplot is most certainly free software, and no, of course it's not GNU.
21:13:02 <alise> Actually, it is not free software.
21:13:12 <alise> The program is distributed under a license which permits copying and modification of the source code.
21:13:12 <alise> However, modified versions are only allowed to be distributed as patch files.
21:13:28 <alise> This violates the DFSG for one.
21:13:46 <alise> Hmm, no it doesn't; but it almost does.
21:13:52 <alise> It's certainly not very nice.
21:14:02 <alise> And nicking GNU's name for something so very... unGNUlike isn't very nice.
21:14:27 <alise> Anyway, that iRex still needs a keyboard.
21:14:49 <Gregor> A) GNU sez gnuplot was probably unaware of GNU when they chose the name.
21:14:57 <Gregor> B) The iRex has a tablet screen.
21:15:38 <Gregor> Which you made me call iRex instead of IREX, damn it X_X
21:16:00 <uorygl> I hate how spelling errors are contagious.
21:16:03 <alise> A) gnuplot's official story disagrees
21:16:09 <alise> B) it's not good for typing on, though.
21:16:12 <alise> How light is it?
21:16:18 <Gregor> Quite.
21:16:26 <Gregor> It's not good for longform typing, certainly.
21:16:34 <uorygl> I'm actually pretty happy typing on an iPad.
21:16:39 <alise> uorygl: You have an iPad?
21:16:42 <Gregor> People keep calling "IREX" "iRex" because they're applefags.
21:16:47 <uorygl> No, but I've typed on iPads.
21:16:47 <alise> uorygl: Shame on you :P
21:16:58 <alise> Gregor: Bad name choice :P
21:17:02 <alise> Eye-rex. i rex.
21:17:04 <uorygl> I use one less finger on an iPad than on a real, three-dimensional keyboard.
21:17:08 <Gregor> I, rex.
21:17:12 <alise> Very common Apple+popculture ref => iRex
21:17:17 <alise> + natural aversion to SHOUTING
21:17:20 <alise> Gregor: Hmm... does the IREX have a decent touchscreen?
21:17:27 <alise> As in, could it be feasibly used to, say, use the pen to draw mathematical notation?
21:17:29 <Gregor> It has a /tablet/ screen.
21:17:35 <Gregor> Yes, it's quite accurate.
21:17:38 <Gregor> It's WACOM.
21:17:44 <alise> Ah.
21:17:53 <alise> Hmm.
21:17:59 <pikhq> Wacom? Yeah, that's the freaking best you can *get*.
21:18:02 <alise> I wonder how mathematical handwriting recognition is doing...
21:18:04 <Gregor> It even detects hovering, although the only program that uses it is the web browser.
21:18:16 <uorygl> Do you need to use a pen with it?
21:18:22 <alise> Because if you could write natural mathematical notation and get it plotted, I may be orgasming right now.
21:18:22 <pikhq> uorygl: Yes.
21:18:27 <alise> uorygl: It's a tablet screen, so yes.
21:18:27 <Gregor> Yes, it's a tablet, not a touchscreen.
21:18:45 <pikhq> However, it's of sufficient quality that it suffices as a replacement for paper. ;)
21:18:57 <alise> Gregor: So how light is it?
21:19:02 <Gregor> "Quite"
21:19:06 <pikhq> Rather than a mere vaguely-useful pointing device.
21:19:10 <Gregor> Idonno, it's light enough that it's never bothered me *shrugs*
21:19:14 <alise> Hmm, pikhq makes a good point: Is the tablet good enough to be usable for writing on like paper?
21:19:26 <alise> Or does it look jaggedy, etc?
21:19:29 <pikhq> alise: It's freaking Wacom.
21:19:52 <Gregor> It's a 160dpi screen hooked to a Wacom tablet, it's beautiful.
21:19:57 <Gregor> Although it's eInk so there is a delay.
21:20:11 <pikhq> http://dresdencodak.com/2010/02/09/the-process/ This was drawn on a Wacom tablet.
21:20:17 <alise> Yeah okay, so, I want one?
21:20:18 <pikhq> Any further questions?
21:20:30 <alise> Oh.
21:20:30 <alise> :(
21:20:30 <alise> I no longer want one.
21:20:37 <pikhq> Well. More like "digitally painted".
21:20:45 <alise> I know that Wacom tablets are good.
21:20:49 <alise> That's nothing to do with handwriting.
21:20:51 <fizzie> I have here a Wacom tablet I use for nothing, and it's not quite as nice for writing as paper; I'm not quite sure why. Possibly because the markings appear on a far-away screen, and that sort of witchcraft makes me uneasy.
21:21:01 <uorygl> Guys, stop saying stuff so that I can copy a link from my terminal. :P
21:21:15 <uorygl> Mmkay, resume.
21:21:33 <pikhq> fizzie: The IREX, though, has the display surface *also* be the writing surface. ;)
21:21:40 <pikhq> Also eInk.
21:21:51 <alise> http://dvice.com/assets_c/2009/09/irex_front_page-thumb-550x695-24643.jpg Most WTF ebook demonstration text ever XD
21:22:02 <fizzie> pikhq: Yes, that might help. Not sure about the lag, that also sounds a bit otherworldly.
21:22:48 <Gregor> I'm not trying to prostletize the IREX, it really is useful mainly for reading and little else. I've found it to be quite nice for taking notes, but it doesn't FEEL like paper so I can see how others would disagree. If you want a device for reading, it's great, and you may get a few other perks. If you want a general-purpose computing device, go get raped by Apple.
21:23:49 <alise> Gregor: It's just so close to something I really, really want.
21:23:54 <alise> If eInk had computer-display-style lag, or near it, I'd buy one in a heartbeat.
21:24:04 <Gregor> Sure, that's a major disadvantage.
21:24:11 <uorygl> About what's eInk's lag?
21:24:15 <alise> Because, quite honestly, a pen and something roughly paper-sized is bliss, no matter what it controls.
21:24:18 <alise> uorygl: ?
21:24:21 <pikhq> uorygl: It exists and is notable.
21:24:25 <alise> Yeah.
21:24:26 <Gregor> uorygl: There are different refresh modes, so it kinda depends.
21:24:31 <alise> So you can't really use it for normal-style handwriting.
21:24:32 * uorygl nods.
21:24:42 <Gregor> The "quick refresh" is very nearly instantaneous, but can create black->white ghosting.
21:24:56 <Gregor> The "slow refresh" is roughly half a second tops, and crisp.
21:25:02 <Gregor> And there are a few modes in between.
21:28:35 <pikhq> It appears to be pretty much the best eBook reader for... Not-sucking.
21:29:32 <Gregor> Looks like the quick-refresh mode can also create white->black ghosting, but that's sort of irrelevant since it's just "slightly lighter text than you expected"
21:30:16 <pikhq> And you could quite reasonably run whatever you want on it, so long as it'll work well with the display.
21:31:06 * pikhq would be *horribly* tempted to shove FreeCiv on there or something
21:31:25 <Gregor> FreeCiv would be bad probably :P
21:31:45 <pikhq> Input could be annoying for that.
21:32:01 <pikhq> The display, though? Modify it to not make things flash, and you're good.
21:32:24 <Gregor> So long as you don't scroll, or move :P
21:36:13 <uorygl> Hmm.
21:36:14 <uorygl> http://www.studyinsweden.se/Course-search/
21:36:20 <uorygl> Is mathematics considered a "natural science"?
21:37:41 <Gregor> I suppose.
21:38:02 <uorygl> Gosh, it looks like they don't teach mathematics in Sweden. :P
21:38:22 <uorygl> Also, it looks like most universities don't have any programs.
21:38:27 <uorygl> I think this search is not comprehensive. :P
21:42:02 <Sgeo> What about a pen and something phone-sized?
21:43:07 <uorygl> Hmm, I think I will ask Reddit what to do.
21:43:17 <fizzie> I feel an urge to say something about that being like doing all your writing on post-it notes, though that's not quite it.
21:45:38 <Sgeo> This is the third time I've dropped my phone, in 3 days
21:46:02 <Sgeo> Also, I'm starting to get Android cold feet
21:46:15 <Sgeo> Wondering if I should return this and wait for the Evo, or return it and get an iPhone
21:46:26 <uorygl> Ouch. I hope its screen isn't as easily breakable as my brother's iPhone's was.
21:46:40 <uorygl> If you're going to drop it, don't get an iPhone. :P
21:54:43 -!- Gracenotes has joined.
21:58:57 <ais523> as for the not-being-required-to-follow-criminal-orders thing, wouldn't people do it because they were afraid of being shot by the person giving the orders if they didn't?
22:00:18 <alise> Sgeo: Do Not Get An iPhone.
22:00:24 <alise> If there is one piece of advice I can give you it is THIS.
22:00:36 <Sgeo> alise, why?
22:00:38 <Sgeo> Don
22:00:43 <Sgeo> Don't say "morality"
22:00:49 <alise> Yes, morality.
22:00:51 <alise> Suck it.
22:01:07 <uorygl> Are iPhone immoral?
22:01:15 <uorygl> (Look, an unmarked plural.)
22:01:16 <Sgeo> Are there any reasons BESIDES "morality"?
22:01:24 <alise> uorygl: Because of the recent ToS changes?
22:01:27 <alise> Yes.
22:01:36 <alise> Feeding a dangerous, actively malicious entity: bad.
22:01:37 <Sgeo> Unmarked plural are immoral!
22:01:37 <uorygl> I'm pretty much completely unaware of the ToS.
22:01:50 <alise> uorygl: Basically, all applications must now be /originally/ written in Objective-C.
22:01:54 <uorygl> Noo! I love unmarked plural!
22:01:59 <alise> You are platonically /not allowed/ to do ANY compilation, whatsoever.
22:02:12 <alise> This also bans all Flash applications, which is no coincidence.
22:02:48 <Sgeo> Because it means there's no "3rd party" between the dev and the system. While I see the argument against requriing a third party, if it's optional, why block it?
22:03:51 <uorygl> Hmm, I really wonder why they require apps to be written in Objective-C. It makes it more difficult to turn an existing app into an iPhone app but not to turn an iPhone app into a non-iPhone app.
22:04:01 <alise> uorygl: To stop Flash.
22:04:06 <uorygl> Oh.
22:04:13 <alise> They have almost admitted as much, and Steve Jobs recently posted a note talking about how crap Flash is.
22:04:40 <Sgeo> Why can't they just say "no converted flash apps"?
22:04:42 <uorygl> You mean it's specifically to make writing Flash stuff less attractive?
22:04:46 <alise> It's basically saying "fuck off, we are creating a beautiful new platonic garden with developers as our sex slaves. And we don't like you. Therefore, time to drive you out of the market with the very visible gigantic hand of Steve Jobs, which has taken a break from its usual activity (masturbation)."
22:04:56 <alise> uorygl: Less attractive i.e. not allowed on the App Store.
22:04:58 <alise> So very much less attractive.
22:05:01 <alise> Not attractive at all.
22:05:04 <uorygl> Right.
22:05:16 * Sgeo does want to see Flash die..
22:05:22 <alise> And, also, any other budding young frameworks like the C# etc. ones.
22:05:31 <alise> Including some "point-'n-click" ones designed for kids and the like.
22:05:44 <alise> Sgeo: I want to see [some horrible person] die, but I wouldn't kill them.
22:05:50 <uorygl> Drag-and-drop programming languages are so cute.
22:06:01 <alise> And I would not support whoever killed them.
22:06:12 <Sgeo> Flash is not a human being.
22:06:20 <uorygl> Flash isn't a person.
22:06:21 <alise> I don't care.
22:06:28 <uorygl> Killing Flash is not the same sort of thing as killing a person.
22:06:30 <alise> The enemy of my enemy: not my friend.
22:06:42 * Sgeo would love to see both Apple and Adobe suffer
22:06:47 <alise> I believe Apple's practices are immoral; so, irrespective of me hating Flash and wanting it to die, I do not support them.
22:06:48 <alise> Simple.
22:07:08 -!- maedhros777 has joined.
22:07:24 -!- maedhros777 has left (?).
22:09:40 * uorygl looks at Adobe's surly error message regarding Flash on the iPhone.
22:10:23 <uorygl> "Apple restricts use of technologies required by products like Adobe® Flash® Player. Until Apple eliminates these restrictions, Adobe cannot provide Flash Player for the iPhone, iPad or iPod touch."
22:10:27 <uorygl> Ahh, surliness.
22:10:37 <alise> No doubt that Adobe are dicks and idiots.
22:10:37 <alise> But that's not really my point at all.
22:11:32 -!- cheater2 has quit (Excess Flood).
22:12:08 -!- cheater2 has joined.
22:13:35 * alise fuddles about with notations for the lambda calculus.
22:14:51 <alise> I think my currently preferred notation is (λx : E) for a λ-abstraction, and (f·x) for application.
22:15:45 <alise> Y := λf : (λx : f·(x·x)) · (λx : f·(x·x))
22:17:00 -!- Phantom_Hoover has joined.
22:18:12 -!- BeholdMyGlory has quit (Remote host closed the connection).
22:22:30 <Phantom_Hoover> Why are the characters in the log screwed up?
22:23:26 <alise> set charset to utf-8 in browser.
22:23:29 <alise> (in View menu, most likely.)
22:23:47 <Phantom_Hoover> Yes...
22:23:59 <Phantom_Hoover> Shouldn't it do that itself?
22:25:53 <Phantom_Hoover> Weird... The progress monitor for the Lucid update has been giving basically the same estimates for time for about 7 hours.
22:26:32 <Phantom_Hoover> Anyone who links to xkcd at this point will be shot.
22:26:38 -!- pikhq has quit (Read error: Connection reset by peer).
22:27:57 <alise> tunes.org is old; clog is crufty.
22:31:49 <Phantom_Hoover> clog?
22:36:08 <Phantom_Hoover> Googling just gives footware.
22:36:20 <Phantom_Hoover> Freudian slip...
22:39:05 <alise> clog is our friendly logging bot.
22:39:08 <alise> dustware.
22:40:21 <Phantom_Hoover> Ah.
22:40:54 <Phantom_Hoover> Does anyone else think that it's weird that Hitler has gone from being a hated dictator and mass-murderer to a debating technique?
22:41:18 <alise> Not really.
22:41:30 <alise> Hitler is the most prominent Worst Person Ever; so arguing with Hitler is often simply reductio ad absurdum.
22:41:39 <alise> After all, reductio ad absurdum requires a most-superlative example.
22:42:44 <Ilari> Well, Hitler is just the most prominent example. There are other people that have done Very Bad Things(tm).
22:43:20 <alise> Of course.
22:43:22 -!- pikhq has joined.
22:43:23 <alise> That's why I said the most prominent.
22:43:33 <alise> When writing an argument, usually you avoid obscure examples unless you need them for some reason.
22:43:50 <alise> So when picking a most-evil person, Hitler is the easiest choice.
22:44:20 <alise> And, I mean, a lot of people even dispute Mao and Stalin's evilosity, but basically nobody disputes that Hitler was evil (and those that do almost certainly aren't going for coherent argument).
22:44:48 <Phantom_Hoover> I mention this because of this: http://www.conservapedia.com/Talk:Richard_Dawkins
22:44:54 <Phantom_Hoover> Scroll to the bottom.
22:45:24 <alise> Conservapedia contents are hating techniques, not debating techniques :-)
22:45:41 <alise> [[It appears as if both the political left and the political right are beginning to perceive the atheist and evolutionist Richard Dawkins as a "clown". The Huffington Post and the Canadian publication the National Post have both referred to Richard Dawkins as a "clown" recently. Conservapedia is considering adding material to its Richard Dawkins article in order to incorporate the public's growing perception that Dawkins is a clown. Dawkins certainly has a
22:45:42 <alise> penchant for engaging in publicity stunts, yet in far too many cases he fails to provide the public with anything of real importance and substance.conservative 18:18, 21 April 2010 (EDT) ]]
22:45:57 -!- sshc has quit (Read error: Connection reset by peer).
22:45:58 <Phantom_Hoover> Ah, Kenneth.
22:46:05 -!- alise has set topic: Conservapedia is considering adding material to its Richard Dawkins article in order to incorporate the public's growing perception that Dawkins is a clown. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
22:46:10 <Phantom_Hoover> A never-ending font of stupidity.
22:46:25 -!- sshc has joined.
22:46:27 <alise> I'm laughing so hard atm
22:46:29 <alise> @ that quote
22:46:49 <pikhq> Dawkins, a clown? LMAO.
22:47:05 <pikhq> He may be the closest thing to an atheist fundamentalist there is, but a clown? LMAO.
22:47:23 <alise> There are far more "fundamentalist" atheists than Dawkins.
22:47:33 <alise> Dawkins is just the only quasi-rationalist in the public eye.
22:47:45 <alise> One of the few well-known atheists not modest or apologetic about their atheism, so...
22:47:53 <Phantom_Hoover> It gets worse: for a while the Dawkins article had the Hitler picture *above the photo of Dawkins*.
22:47:55 <pikhq> Okay, fine. He's the closest thing to an atheist fundamentalist in the public eye.
22:48:08 <pikhq> Phantom_Hoover: *facepalm*
22:48:22 <alise> pikhq is like Goedel's fabled systems.
22:48:40 <alise> You can show that he knows God doesn't exist, but you can't prove to him that God doesn't exist! This is some sort of or another deep observation that I have done here made.
22:48:44 <pikhq> alise: How so? (I'm missing the reference)
22:48:53 <alise> I find myself wondering down paths of ultimate stupidity, sometimes. This time is one of those times.
22:49:02 -!- Rugxulo has joined.
22:49:16 <alise> Well, by "fabled" I mean "almost all".
22:49:22 <Rugxulo> anyone here code in Perl?
22:49:27 <alise> Fortunately not.
22:49:40 <alise> "#esoteric is not associated with the joke language Perl, please visit www.perl.org" -- topic until a moment ago
22:50:14 <alise> "For every set x, there exists a set y whose members include:
22:50:15 <alise> * x itself;
22:50:15 <alise> * every subset of every member of y;
22:50:15 <alise> * the power set of every member of y;
22:50:15 <alise> * every subset of y of cardinality less than that of y."
22:50:16 <alise> ...and a pony.
22:50:55 <Rugxulo> !seen mtve
22:51:12 <Rugxulo> er, is there a way to find out when mtve was actually active here?
22:51:17 <alise> No.
22:51:18 <alise> Grep logs.
22:51:22 <alise> But: A while.
22:52:43 <Phantom_Hoover> What is this "Perl" thing? I have looked at various programs written in it and I can only surmise that it is an esolang of the highest order.
22:52:49 <Rugxulo> seems silly to be on a channel for weeks without saying anything :-/
22:52:50 <Sgeo> My birthday's tomorrow, and nothing interesting is going to happen.
22:53:02 <alise> Rugxulo: Computers, bouncers, etc.
22:53:08 <alise> Higher-order esolangs: quantifying over all possible esolangs.
22:53:15 <alise> Sgeo: I'll bake you a fake cake.
22:53:25 * Rugxulo thinks Perl is way too complicated
22:53:35 <Sgeo> Which is worse, Perl or Bash?
22:53:50 <Sgeo> Girl I know did her final project for a UNIX class in Perl instead of Bash
22:53:56 <Phantom_Hoover> Bash. At least I *know* that I don't know Perl.
22:54:09 <fizzie> I do Perl quite a lot. Well, occasionally, anyway.
22:54:16 <Phantom_Hoover> Although I use zsh anyway...
22:54:42 -!- Oranjer has joined.
22:54:43 * Phantom_Hoover plugs zsh
22:54:57 <Ilari> Esolang idea: Language with loads of operations with no apparent pattern...
22:55:04 <Sgeo> J!
22:55:31 <Rugxulo> worse, Perl or Bash?? uh ... both can be horribly misused
22:55:39 <Rugxulo> they aren't inherently bad, just not ideal
22:56:07 * Sgeo has heard somewhere "Remember that Perl was invented BECAUSE Bash is such a horrible language"
22:56:11 <Sgeo> Or something along those lines
22:56:14 <fizzie> Why were you asking after Perl people, though?
22:56:31 <Rugxulo> just for random comments, nothing important
22:56:44 <Rugxulo> mtve wrote a Befunge93 interpreter in Perl, for instance
22:57:11 <fizzie> Is this different from CPAN's Language::Befunge module?
22:57:28 <alise> Yes.
22:57:33 <fizzie> Guess so.
22:57:34 <Rugxulo> it works in 5.6.1 but not 5.005, apparently needs "->" added after "{$cmd[$_]}" but before "()"
22:57:34 <alise> I think.
22:57:43 <Rugxulo> yes, it's different
22:57:55 <Rugxulo> Language::Befunge is Jerome Quelin's B98 interpreter
22:58:19 <Rugxulo> long story short, I'm not impressed with how difficult it is to build Perl
22:58:40 <Rugxulo> or how it has changed, how many corner cases it apparently has, too many modules, etc.
22:58:56 <Rugxulo> I don't hate it, but I don't really like it either
22:58:57 <Phantom_Hoover> Corner cases?
22:59:08 <fizzie> It's crufty, but I think it's still somehow endearing.
22:59:12 <Rugxulo> weird idiosyncracies
22:59:15 <alise> So don't build it.
22:59:28 <Rugxulo> well, everything is crufty, it's just it confuses the crap out of me
22:59:34 <pikhq> Rugxulo: Wait, you mean there exist UNIX systems *without* Perl?
22:59:39 <Rugxulo> yes
22:59:40 <alise> Rugxulo uses DOS and Windows.
22:59:52 <pikhq> Oh. That explains it.
22:59:55 <Rugxulo> last I checked, neither FreeBSD nor OpenBSD come with it by default (or did you mean "no port available"?)
23:00:03 <pikhq> Use an OS that lets you develop!
23:00:21 <pikhq> Rugxulo: Not all distros will come with it by default, no.
23:00:30 <Rugxulo> there are several ports for DOS, OS/2, Windows ... it's not that, it's just ugly, complicated, easy to break, too *nix-oriented, etc.
23:00:31 <pikhq> But I can't imagine there being a distro *without* packages for it.
23:01:15 <pikhq> It's still one of the most commonly used languages. Hooray, being entrenched.
23:01:26 <Rugxulo> it's just hard for me to personally justify wanting to use Perl over something else, that's all ... I can't think of many reasons for me to want to use it
23:01:34 <pikhq> Rugxulo: Ugly, complicated, and easy to break? Sounds just like Windows.
23:01:58 <Rugxulo> IMHO, at some point, you can overcomplicate things so much that they almost lose their usefulness
23:02:21 <fizzie> Anyway, you can select a comfortable subset of features and use that, if you like. (But certainly you don't *have* to use Perl if you don't want to.)
23:02:22 <Phantom_Hoover> I can't use Windows. At all. It makes no sense to me.
23:02:58 <alise> I can use Windows. It's just like social interaction: a bunch of arbitrary, complicated rules; heuristics for emulating them often break, and you're left feeling utterly bemused.
23:03:46 <fizzie> For example, in the arrow thing, you can write consistently "$foo{$bar}->($baz);" if it makes more sense to you. It would to me; I wasn't actually aware that modern Perls have made the ->s between subscripts/parens optional for dereferencing a chain of references.
23:03:58 <pikhq> Rugxulo: Still, use an OS that lets you develop.
23:04:26 <pikhq> If it's non-trivial to get a compiler working, you're doing it wrong.
23:04:54 <fizzie> As for reasons why you might want to use it, CPAN is one; even if the quality does vary, there's certainly a lot of it.
23:04:59 <Rugxulo> the compiler works, just the whole build process of Perl wasn't exactly perfect
23:05:24 <Sgeo> So in Perl, the outcome of "nanosecond" == "nanosecond" is even OS dependent?
23:05:30 <Sgeo> http://forums.thedailywtf.com/forums/p/8719/166350.aspx
23:05:33 <pikhq> Did the compiler come with Windows?
23:05:41 <coppro> Sgeo: use eq
23:05:42 <pikhq> If no, you're doing it wrong.
23:05:44 <alise> Rugxulo: why not use strawberry perl etc
23:05:53 <Rugxulo> Windows has no compiler by default (I assume you knew that)
23:06:04 <pikhq> Very well aware.
23:06:07 <coppro> == should fail in strict mode
23:06:21 <Rugxulo> alise, I was just curious about building it, I'm aware of pre-made binaries
23:06:41 <pikhq> You can hardly call something an "OS" if it doesn't come with a way of writing new programs.
23:06:48 <fizzie> There's that "windows scripting host" thing in it.
23:06:52 <fizzie> You can write JScript or something.
23:07:04 <fizzie> (Disclaimer: I have no clue about the details.)
23:07:12 <Rugxulo> I'm not defending Windows, it does a lot of strange and dumb things
23:07:14 <alise> Yeah, you can.
23:07:17 <alise> It is actually quite nice to use.
23:07:39 <fizzie> Oh, it's Windows Script Host nowadays.
23:07:49 <pikhq> Rugxulo: I'm not even saying you should use Perl. Just an OS that makes developing things nice. ;)
23:07:50 <Sgeo> pikhq, so Android isn't an OS?
23:08:15 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
23:08:24 <pikhq> Sgeo: No, Android is a Linux distribution.
23:08:26 <pikhq> >:D
23:08:53 <fizzie> You can cut some slack to embedded-targeting things; at least it comes "with" a separate SDK you can fetch.
23:09:18 -!- Phantom_Hoover has joined.
23:09:32 <pikhq> ... cc, make, a decent text editor? (for a C-based OS. make only included because it's still the ubiquitous C build system)
23:10:00 <Rugxulo> I think all OSes have ports of those things
23:10:09 <pikhq> (for something Lisp-based, a freaking Lisp compiler and a decent text editor. For Forth, well. Is there such a thing as Forth *without* the compiler?)
23:10:18 <pikhq> I can't not have them.
23:10:40 <pikhq> They're more fundamental than a GUI to my OS.
23:11:16 <pikhq> (the GUI is optional. GCC is not.)
23:11:38 <uorygl> I'm feeling one of those desires to create my own computer system from the ground up again.
23:11:40 <Phantom_Hoover> It's frustratingly inverted on Macs.
23:12:15 <Phantom_Hoover> I have so many times wished that Macs had something more than outdated versions of Python and Perl.
23:12:16 <Rugxulo> what, gcc?
23:12:22 <fizzie> OS X is still "better" than Windows in that regard, since it has the development tools on the installation media, they're not just installed by default.
23:12:42 <uorygl> Macs don't have the most recent versions of Python and Perl?
23:12:47 <fizzie> (At least my discs included some version of Xcode.)
23:12:54 <Phantom_Hoover> No, the ones I was using didn't.
23:13:20 <uorygl> It looks like Python 3.1.2 is available for the Mac.
23:13:41 <fizzie> Available-schmavailable, but I guess this was about what is included in the OS?
23:13:51 -!- pikhq has quit (Read error: Connection reset by peer).
23:14:01 <fizzie> Those tend to be rather old-ish.
23:14:03 <uorygl> And I currently have Perl 5.8.9 on my Mac.
23:14:27 <Phantom_Hoover> Yes, but it was a shared computer to which I did not have root.
23:14:35 <Rugxulo> BTW, the only reason for me even trying 5.005 was that it was smaller than 5.61, and I was curious why
23:14:44 <uorygl> Well, that's a problem with the computer, not with Macs.
23:14:48 <Rugxulo> (and of course 5.8.8 is like three times that of 5.6.1)
23:16:44 -!- pikhq has joined.
23:17:49 <fizzie> You could call it a problem with OS X in the sense that they don't bother using the nifty update system they have for delivering more up-to-date copies of Perl/Python. On the other hand, Debian etch (which was the stable version still at the beginning of last year) has just Python 2.4.
23:18:28 <Rugxulo> is 2.4 so horrible?
23:18:33 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:18:40 <pikhq> fizzie: Debiant stable, as you well know, is about having the same version of everything until the next release.
23:18:44 <alise> "Despite his dislike for computers it would seem that he had a fondness for video games. On some computers in the Linux labs Dijkstra showed up as having the high score for XBoing. "
23:18:49 <alise> 2.4 is awful
23:18:56 <alise> compared to 2.6
23:18:59 <pikhq> Debian Stable, even.
23:19:05 <alise> so many useful additions in 2.6 -- hardly can be compared.
23:19:05 <Rugxulo> but better than 2.2, 2.0, 1.5.2 ;-)
23:19:22 <Rugxulo> wasn't 2.6 the "brought some stuff from 3.x" release?
23:20:01 <Rugxulo> I think they've even set a five-year-limit to the 2.6 series until officially deprecated (if not already)
23:20:41 <fizzie> I don't think it's very deprecated yet; at least docs.python.org offers 2.6.5 docs by default. (Caution: not really evidence of anything.)
23:21:20 <fizzie> "The current production versions are Python 2.6.5 and Python 3.1.2. -- If you don't know which version to use, start with Python 2.6.5; more existing third party software is compatible with Python 2 than Python 3 right now."
23:22:02 <Rugxulo> even Perl is (apparently) on 5.12.x, which seems odd to me :-/
23:22:32 <coppro> IIRC, either 2.6 or 2.7 will be the last 2.x series
23:22:45 <Rugxulo> here you go
23:22:48 <Rugxulo> "Python 2.7 is scheduled to be the last major version in the 2.x series before it moves into 5 years of bugfix-only mode."
23:22:51 <coppro> there we go
23:23:15 -!- pikhq has quit (Read error: Connection reset by peer).
23:23:44 <Rugxulo> "Float repr improvements backported from 3.x, A backport of the memoryview object from 3.x"
23:24:04 <Rugxulo> in short, Perl 6 and Python 3 are the future
23:25:06 <fizzie> I was just about to mention Perl 6, if you mind Perl 5's historical baggage. I just have some doubts on whether much is happening over there.
23:27:32 <Rugxulo> I think they were almost close to releasing a milestone for it, but one dude's wife had medical issues, so it got slightly delayed
23:28:59 <fizzie> Parrot's language list is funny-long, though I have a feeling most of those are pretty rudimentary hacks.
23:29:27 <fizzie> "Arc, APL, bc, Befunge, Brainfuck, C, Common Lisp, ECMAScript (aka JavaScript), Forth, Generic Imperative Language, GNU m4, HQ9 Plus, Jako, Java, Java bytecode, Joy, Lazy K, Lisp, LOLCODE, Lua, MiniPerl (Perl 1.0), NQP (Not Quite Perl), Octave, Ook!, Perl (via Rakudo), PHP (via Pipp), Python, QuickBASIC 4.5, Ruby (via Cardinal), Scheme, Shakespeare, Smalltalk (via Chitchat), the "squaak" tutorial language, Tcl (via partcl), Unlambda, WMLScript, and .NET bytec
23:29:27 <fizzie> ode." (Wikipedia; can't be bothered to go look at the official list.)
23:30:00 <Rugxulo> yes, some of them are buggy, from what I read, but somebody did fix up the Befunge version a few years ago
23:30:07 * Rugxulo never tried it yet, though
23:30:29 <Rugxulo> "MiniPerl (Perl 1.0)" ... wtf?? o_O
23:30:58 <Rugxulo> QuickBASIC 4.5, yeah right ... even FreeBASIC isn't fully compatible
23:31:15 <fizzie> Aw, it's on the "abandoned projects" list officially; "Written by Jeff Goff. Was in 'languages/miniperl' in Parrot svn repository until r12805."
23:31:27 <Rugxulo> what is?
23:31:31 <fizzie> MiniPerl.
23:31:39 <fizzie> So I can't quite find out what it was.
23:31:41 * Rugxulo wonders what exactly it implemented
23:31:49 <fizzie> http://trac.parrot.org/parrot/wiki/Languages has the official list, it's not very copypasteable.
23:32:27 <fizzie> Humorously, for the befunge-on-Parrot, "passing tests: 1/1 (100%)"
23:33:21 <Rugxulo> heh
23:33:48 <fizzie> And HQ9+ passes 13/13 tests, and is marked "stable". Well, if you aim low...
23:34:08 <Rugxulo> how the hell ... ?
23:34:18 <Rugxulo> BTW, Befunge seems to have "test.bef" and "pascserp.bef"
23:34:42 <Rugxulo> io.pir (last changed 37 hours ago!)
23:35:22 <fizzie> Obviously under hectic development.
23:35:26 <fizzie> The most important things first.
23:36:27 <Rugxulo> yowza, the "Forth" listed there is almost definitely useless
23:36:57 <Rugxulo> the filesizes are insanely small, as are the tests
23:37:12 <Rugxulo> brb, snack break
23:38:36 -!- tombom has quit (Quit: Leaving).
23:42:59 <fizzie> Toy Forths tend to be pretty tiny.
23:43:16 <fizzie> LLVM has that "Stacker" language, which is sort-of Forth-like, but also seems pretty useless.
23:45:28 <fizzie> Admittedly I think it was more of a tutorial than something intending to be an implementation of anything.
23:47:42 <fizzie> Completely not related, but: the csharp-mode in my Emacs lets me open one .cs file and edit it without problems, but if I go and open another I start getting strange errors and the indentation and other stuff no longer works.
23:47:57 <fizzie> Some sort of a sign that man is not meant to mess around with C# in Emacs.
23:49:35 -!- pikhq has joined.
23:49:40 <Rugxulo> try opening another frame, see if that helps
23:50:18 <fizzie> Hrm, I'll have to try that the next time. Quit-and-restart works, but it's still a bit annoying.
23:50:31 <fizzie> "Variable binding depth exceeds max-specpdl-size" is what it mostly says.
23:51:27 <Rugxulo> what Emacs are you using?
23:51:56 <Rugxulo> and BTW, Parrot has "Punie" (Perl 1)
23:52:22 <AnMaster> xemacs is dead
23:52:32 <AnMaster> which means there is gnu emacs and µemacs to choose from
23:52:46 <AnMaster> well xemacs might be technically alive
23:52:52 <AnMaster> but it is so dead it doesn't matter
23:53:23 <alise> xemacs is not dead.
23:53:27 <alise> in fact it is actively developed
23:53:32 <alise> -- but you wouldn't see that from inside your gnububble.
23:53:54 <fizzie> GNU Emacs 23.1.50.1 (Ubuntu emacs-snapshot 1:20090909-1), which has CC-mode 5.31.7; csharp-mode is documented to work with "cc-mode 5.31.3, which is current at this time."
23:54:03 <fizzie> Might be just some wonkiness in the snapshot version.
23:55:02 <Rugxulo> I imagine they test cc-mode before shipping it, so assuming you weren't using some outside version, it should work (or so we'd hope!)
23:55:32 <Rugxulo> AnMaster, which MicroEmacs? the most "active" variant was/is JASSPA
23:55:44 <fizzie> Installed "emacs-snapshot" because I couldn't wait for emacs23; now that it's been out a while, I'm not sure I actually need the snapshot.
23:56:26 <Rugxulo> I think 23.1.50.1 is newer than 23.1
23:57:00 <Rugxulo> perhaps that's why
23:57:07 <Gregor> Crazy emacsers.
23:57:11 <alise> JASSPA MicroEmacs is not really micro at all.
23:57:15 <alise> Gregor: Crazy viers.
23:57:20 <Gregor> vim
23:57:58 <alise> Impious viaeity; that then thoroughly descend't into most vain vimaeity.
23:57:59 <fizzie> I'm actually a semi-converted Vimer-for-many-years; wouldn't think it completely impossible that I'd swing back some day.
23:58:14 <Rugxulo> compared to GNU Emacs, it is
23:58:19 <fizzie> Currently I keep trying to use Emacs keys in Vim, and writing ":wq" all over files in Emacs.
23:58:23 <alise> Lo, all ye men of fortune; lo, all ye men poor; the End Times are Come, and Vi is their call.
23:58:34 <alise> Vi, Vi, Vi - the number of the beast.
23:58:35 <Rugxulo> use Viper then
23:58:53 <Rugxulo> or VILE, which is loosely MicroEmacs-based
23:58:53 <alise> And yet there was one clan other, promis't under veils to differ,
23:59:05 <fizzie> Nah, maybe this sort of dual-editoring is good exercise for the brain. It certainly could use some.
23:59:07 <alise> to rid the worlde of these vi-folk numerous; all lies, a facade.
23:59:14 <alise> Do not be fooled, young ones.
23:59:23 <alise> VILE is quite nice actually.
23:59:25 <alise> Not really vile at all.
23:59:54 <Rugxulo> JED is good too, if you prefer reasonable-sized Emacs-ish editors
←2010-03 2010-04 2010-05→ ↑2010 ↑all