←2011-02-21 2011-02-22 2011-02-23→ ↑2011 ↑all
00:01:07 <elliott> i have this crazy feeling that oerjan won't write my function for me
00:01:51 <oerjan> elliott: i just wrote the first line of the actual function
00:02:05 <oerjan> church ops@(Dup:_) = (1, [], ops)
00:02:17 * oerjan cackles evilly
00:02:29 <elliott> oerjan: good to know someone is handling the easy bits :P
00:02:53 <elliott> oerjan: aw c'mon, i'm writing this for YOUU :D
00:02:56 <elliott> (guilt works right?)
00:03:01 <oerjan> YEAH I'M GOOD AT THE EASY BITS
00:03:13 <elliott> just one teeny weeny function!
00:03:25 <oerjan> oh wait that first line was wrong XD
00:03:30 <oerjan> (should be Cat)
00:04:03 -!- augur has joined.
00:04:21 <elliott> sheesh oerjan, all this work for you
00:04:25 <elliott> AND WHAT DO I GET
00:04:28 <elliott> ;;;;''''(((
00:04:32 <elliott> piling on the guilt here
00:05:11 <elliott> i think i might have disabled oerjan
00:07:24 <elliott> oerjan: FINE THEN, I'LL TOTALLY PUSH THIS UUUUSELESS THING TO IRC
00:08:05 <oerjan> i'm not sure of this strange belief elliott has that i can program fast...
00:08:15 <elliott> oerjan: oh i wasn't aware you were actually writing the other lines :D
00:08:22 <elliott> i thought i had to coerce you into agreeing to do it first
00:10:51 <elliott> :t (<+>)
00:10:52 <lambdabot> Ambiguous occurrence `<+>'
00:10:52 <lambdabot> It could refer to either `Control.Arrow.<+>', imported from Control.Arrow at State/L.hs:5:0-19
00:10:52 <lambdabot> or `Text.PrettyPrint.HughesPJ.<+>', imported from Text.PrettyPrint.HughesPJ at State/L.hs:53:0-46
00:10:58 -!- iconmaster has joined.
00:11:11 -!- zzo38 has quit (Ping timeout: 272 seconds).
00:12:10 * iconmaster is having fun with a random EXE code generator- Most just crash, but some...
00:12:47 <elliott> iconmaster: heh
00:12:51 <elliott> .COM might have better results
00:12:57 <elliott> since it is just direct machine code
00:13:20 <iconmaster> ok! Lets se how bad I can screw up my computer!
00:13:22 <elliott> you might want to restrict the generated bytes to the valid x86 instructions plus register addresses (of course this restricts the constant literals in there too, but that might be interesting...)
00:13:32 <elliott> iconmaster: do it in dosbox :P
00:13:41 <iconmaster> Good idea.
00:14:17 <elliott> hm i think it is possible to do monads nicely in a concatenative language...
00:14:34 <elliott> if do is "() return" and ";" is >>, then we have...
00:14:40 <elliott> ... do
00:14:44 <elliott> "hello, world!" print ;
00:14:47 <elliott> "foo, bar!" print ;
00:15:02 <elliott> what about >>=...
00:15:03 <elliott> oh wait
00:15:09 <elliott> you just want that to push on to the stack, i suppose
00:15:11 <elliott> using continuations, perhaps
00:15:24 <elliott> getLine ->; print ;
00:15:32 <iconmaster> One of my random progams 'bounces' the pointer across the screen. For some reason, pressing keys speed up this process.
00:15:47 <elliott> iconmaster: as in, mouse pointer??
00:15:56 <iconmaster> No, the DOS cursor
00:16:02 <elliott> iconmaster: that's cool
00:16:05 <elliott> upload it somewhere
00:16:10 <elliott> maybe we can disassemble it and uncover its secrets :P
00:16:14 <iconmaster> Yep, I am
00:16:41 <iconmaster> But, where? Know any good file uplading sites I could use?
00:17:03 <elliott> ; : Monad m => ('a 'm 'b 'm -> 'b 'm)
00:17:07 <elliott> to use the cat syntax
00:17:16 <elliott> iconmaster: filebin.ca was good when it still existed ... how long is the file?
00:17:47 <iconmaster> 643 bytes, apparently.
00:18:00 <elliott> iconmaster: probably you could just uuencode it
00:18:12 <iconmaster> thats a good idea
00:18:18 <elliott> iconmaster: and put it on a pastebin
00:18:21 <elliott> sprunge.us say :P
00:18:26 <elliott> http://www.bastet.com/uue.zip is apparently a uuencoder for windows
00:18:29 <iconmaster> k going to now
00:18:53 <iconmaster> Wow, thanks guys! Let's find it's secrets!
00:19:24 <elliott> hey everybody else has been conspicuously silent, maybe I'm the only one who's interested >:D
00:19:26 <elliott> fear the worst!
00:19:46 <Zwaarddijk> i am reading with some interesting
00:19:49 <Zwaarddijk> *some interest
00:19:54 <Zwaarddijk> meh, muscle memory :|
00:22:32 <iconmaster> http://pastebin.com/nwwY8YTr
00:23:02 <iconmaster> That good?
00:23:39 <elliott> well pastebin.com still uses html for its raw page. but copying manually should work.
00:24:10 <iconmaster> ok thanks. Now, lemme fid some other interesting programs
00:24:24 <elliott> ---------------------------------------------------------^M
00:24:24 <elliott> --^M
00:24:24 <elliott> -- BF Joust Program Conversion Tool^M
00:24:24 <elliott> -- Converts BF Joust programs into IconJoust format.^M
00:24:24 <elliott> -- Made by Joshua Robbins^M
00:24:25 <elliott> --^M
00:24:27 <elliott> ---------------------------------------------------------^M
00:24:29 <elliott> iconmaster: FAIL
00:24:32 -!- MUILTFN_ has quit (Ping timeout: 240 seconds).
00:24:39 <elliott> try uploading the right file next time ;D
00:24:55 <iconmaster> The random EXE maker doesnt actually make them RANDOMLY.... lol
00:25:10 <Zwaarddijk> iconmaster: if you want, I can host them on infa.fi
00:25:15 <iconmaster> That is the file... put it in exe format.
00:25:33 <iconmaster> That would be very nice. Mind taking IconJoust?
00:25:38 <Zwaarddijk> if so, I'd prefer for you to dcc them to me
00:25:56 <elliott> <iconmaster> That is the file... put it in exe format.
00:25:57 <elliott> Umm.
00:26:03 <elliott> No, I decoded it, it's a BF Joust program conversion tool.
00:26:24 <iconmaster> I know. It WAS a lua script, now its an exe.
00:26:31 <elliott> Oh.
00:26:47 <elliott> wine doesn't accept it as it's an invalid exe
00:26:49 <elliott> (doesn't have the right header)
00:26:53 <elliott> what do you mean by "exe format"?
00:27:17 <iconmaster> Basically, i copied 'convert.lua' to 'conver.exe'
00:27:23 <iconmaster> *convert.exe
00:27:50 <oerjan> newtype Quote = Quote [Op]
00:27:50 <oerjan> data Op = Dup | Cat | Drop | Push Quote | SomethingElse
00:27:55 <iconmaster> Smart of me. (No, Fail!)
00:27:57 <elliott> iconmaster: it shouldn't even run, I don't think
00:28:00 <oerjan> elliott: is that compatible with what you have?
00:28:03 <iconmaster> It does on my comp
00:28:03 <elliott> it lacks the MZ header
00:28:18 <elliott> oerjan: s/newtype Quote/data Obj/
00:28:24 <elliott> oerjan: also SomethingElse isn't there
00:28:25 <elliott> obviously
00:28:31 <elliott> is that the same as invalid code? or just "anything else" in your model
00:28:40 <elliott> oerjan: oh and s/Push Quote/Push Obj/
00:28:41 <oerjan> elliott: well i just put that to ensure i included a catch-all option
00:28:46 <elliott> right
00:28:52 <iconmaster> lol. Invalid programs make interesting results.
00:29:02 <elliott> oerjan: note that the argument to Push is an Obj and can be other things than a Quote
00:29:04 <elliott> for instance a Church
00:29:10 <elliott> data Obj = Church Integer Obj -- Obj is for printing
00:29:10 <elliott> | Quote [Op]
00:29:10 <elliott> | Catn Obj Obj
00:29:10 <elliott> | Rept Integer Obj -- FIXME: Use for more things
00:29:10 <elliott> deriving (Show)
00:29:46 <iconmaster> The Insert key seems to speed lol.exe up the most. Other keys speed up lol.exe to a lesser degree.
00:30:04 <oerjan> elliott: ok but this is during parsing stage. may i assume church has already been run when creating that Obj?
00:30:25 <elliott> oerjan: er. your function _is_ church. but yes, your input will only ever contain (Quote) objects.
00:30:29 <oerjan> which means i should really look for Push (Church _), not Push (Quote _)
00:30:33 <elliott> oerjan: oh right
00:30:34 <elliott> yes
00:30:36 <elliott> it is done recursively
00:30:48 <elliott> i.e., in (...(...)...), when church gets the outer () pair, the inner pair will have been churched already.
00:30:55 <oerjan> good
00:31:03 <elliott> oerjan: (Church _ _)
00:31:08 <elliott> oerjan: the second argument is the actual original quote
00:31:11 <elliott> which is important
00:31:25 <elliott> (to concatenate two Objs, use the cat function)
00:31:44 <oerjan> i don't think i will concatenate Obj's
00:31:52 <oerjan> just [Op]'s
00:32:08 <elliott> oerjan: you shouldn't really do that. cat is more efficient, in theory
00:32:17 <elliott> but whatever, i'll see it before i comment
00:32:18 <Gregor> Pot of boiling peppermint extract and water: Great way to BURN THE HELL OUT OF YOUR EYES
00:32:26 <elliott> (because cat makes decisions as to what kind of concatenation to do)
00:32:28 <oerjan> elliott: i am not _returning_ an Obj
00:32:33 <elliott> oerjan: right.
00:32:39 <oerjan> and i won't be changing anything inside a Push
00:32:58 <oerjan> just checking if it's a church numeral
00:34:29 <elliott> oerjan: of course note that this function must return the actual /value/ of the numeral
00:34:34 <elliott> not just check it
00:34:43 <oerjan> church :: [Op] -> (Integer, [Op], [Op])
00:34:46 <oerjan> at this time
00:34:50 <elliott> right
00:37:28 <oerjan> oh wait i also need to check for ()
00:37:53 <oerjan> and what's more, not for every Church 1 _
00:38:37 <elliott> oerjan: () will always be parsed as Church 1 (Push (Quote []))
00:38:38 <elliott> if that helps
00:38:42 <oerjan> elliott: () will become Push (Churc ... right
00:38:44 <elliott> (i am considering making a separate Nil, though)
00:38:48 <elliott> (but don't worry about that)
00:39:28 <oerjan> um don't you mean Push (Church 1 (Quote []))
00:39:51 * oerjan assumes so
00:39:58 <elliott> oerjan: no
00:40:00 <elliott> er
00:40:02 <elliott> well, right
00:40:04 <elliott> inside an [Op]
00:42:07 * iconmaster is sad- no other random program does cool stuff. Oh well.
00:43:52 <elliott> oerjan: do you handle ":!"? :D
00:43:57 <elliott> I think subtraction produces that or something
00:44:15 * elliott will have to figure out when to try and convert things to church numerals. maybe whenever you call them?
00:44:39 <elliott> oerjan: btw it _might_ be useful if you took an Obj instead...
00:44:40 <elliott> >_>
00:44:50 <elliott> and with that, I've ensured oerjan hates me
00:48:41 <oerjan> argh
00:50:03 <elliott> oerjan: you can just make it [Op] if you want to keep your sanity
00:50:14 <elliott> and i can bug you about it another day ;D
00:50:53 <oerjan> i am doing a lot of "parse this, then whatever follows, then combine"
00:51:01 <oerjan> lists are _useful_ for that
00:51:07 <elliott> oerjan: that's what everyone who writes a parser manually in haskell ends up with :P
00:51:23 <elliott> oerjan: also, yes, it's fine; it's just that this way, I can't use your function to detect church numerals _created_ by the program
00:51:27 <elliott> which is a bit of a problem
00:51:35 <oerjan> elliott: what's your ^ constructor? i want to handle (numeral)^
00:51:50 <elliott> data Op = Swap
00:51:51 <elliott> | Dup
00:51:51 <elliott> | Drop
00:51:51 <elliott> | Cat
00:51:51 <elliott> | Push Obj
00:51:51 <elliott> | Wrap
00:51:53 <elliott> | Call
00:51:55 <elliott> | Print
00:51:57 <elliott> | Invalid String
00:51:59 <elliott> deriving (Show)
00:52:01 <elliott> data Obj = Church Integer Obj -- Obj is for printing
00:52:03 <elliott> | Quote [Op]
00:52:05 <elliott> | Catn Obj Obj
00:52:09 <elliott> | Rept Integer Obj -- FIXME: Use for more things
00:52:11 <elliott> deriving (Show)
00:52:13 <elliott> YOU'RE WELCOME :P
00:58:36 <oerjan> break
00:59:03 <elliott> verily
01:07:02 -!- Mathnerd314 has joined.
01:07:02 -!- elliott has quit (Read error: Connection reset by peer).
01:07:20 -!- elliott has joined.
01:07:53 <elliott> oerjan's breaks are way too long, i should consider firing him
01:11:34 <Mathnerd314> since when was he hired?
01:12:13 <elliott> since he was born
01:12:17 <elliott> contract for life
01:12:27 <Mathnerd314> I thought slavery was illegal
01:14:16 <elliott> Mathnerd314: not in elliottia.
01:15:59 <iconmaster> I gtg. An idea before I leave- How about a compititave version of Underload!
01:16:02 -!- iconmaster has quit (Quit: Yummy, like ircing on a cake! [ http://www.bersirc.org/ - Open Source IRC ]).
01:17:44 <elliott> compitatave. INTERESTING!
01:18:02 <elliott> $ ./relief '(:::::::):(:((^:()~((:)*~^)a~*^!!()~^))~*()~^^)~(^a(*~^)*a~*()~^!()~^)a~**^!!^S'
01:18:02 <elliott> relief: out of stack (church 1)
01:18:03 <elliott> WHOOPS.
01:26:11 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
01:31:16 <elliott> Church 0 (Quote [Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,
01:31:17 <elliott> NOT QUITE.
01:31:55 <elliott> oh, I think I parse () as 0, heh
01:33:58 <elliott> 1.1 Mio file in 18.4 seconds, not bad
01:34:05 <elliott> for ()(~:S(/)S(:*)*~:^):^
01:34:14 <elliott> hmm, I could do better
01:35:09 <elliott> $ time ./relief '(:*)(~:S(/)S:*~:^):^' >foo
01:35:10 <elliott> ^C
01:35:10 <elliott> real0m19.891s
01:35:10 <elliott> $ ls -lh foo
01:35:10 <elliott> -rw-r--r-- 1 elliott elliott 41M 2011-02-22 02:04 foo
01:35:11 <elliott> not bad.
01:35:24 <elliott> (in most interpreters that causes blowup... I think it does in mine too, but only because of one thing)
01:35:31 <elliott> specifically, "cat x x" needs to use Rept.
01:35:39 <elliott> also preferably cat would find common substrings and use Rept on those, but...
01:35:43 <elliott> (and Eq on Obj is non-trivial)
01:35:51 <elliott> well not that non-trivial now I guess
01:49:28 <oerjan> <elliott> oerjan's breaks are way too long, i should consider firing him <-- had a shower
01:49:46 <elliott> programmers need to be productive. hygiene is not a requirement.
01:49:52 <elliott> i find your time management inefficient >:)
01:50:05 <elliott> here's a wonderful patch of code i just wote
01:50:06 <elliott> *wrote
01:50:07 <elliott> -- FIXME: Probably *very* slow
01:50:08 <elliott> -- FIXME: Choose the "smallest" object of the two somehow
01:50:08 <elliott> -- FIXME: For Repts, just increment the repeat, don't nest
01:50:08 <elliott> -- FIXME: Blah blah blah...
01:50:08 <elliott> cat x y | x == y = Rept 2 x
01:50:24 <elliott> i am pretty sure this is a severe pessimisation but that could change!
01:50:35 <elliott> hmm, maybe i could use ghc's "is the exact same pointer" equality instead ;;DD
01:50:50 <oerjan> wth is Rept does church actually have to _know_?
01:51:00 <oerjan> oh right
01:51:02 <elliott> oerjan: (Rept n x) is just x repeated n times
01:51:07 <oerjan> gah
01:51:14 <elliott> used e.g. in this generic case:
01:51:16 <elliott> call (Church n _) (x:xs) = (Rept n x : xs, "")
01:51:20 <elliott> (for non-zero n, non-church x)
01:51:26 <elliott> oerjan: but don't make church take an Obj as an argument
01:51:28 <elliott> no point to at this point
01:51:33 <elliott> that can home later :P
01:51:46 <oerjan> elliott: um the point is it's hard to retrofit
01:51:59 <elliott> well er, good luck then
01:52:05 <cheater-> hello oerjan
01:52:05 <elliott> oerjan: (Catn x y) might give you some trouble...
01:52:20 <oerjan> also i doubt the wisdom of church'ing on concatenations
01:52:21 <cheater-> how's your ~! quest coming along?
01:52:26 <elliott> unfortunately i think unrolling Catn in general requires expanding Repts
01:52:36 <elliott> oerjan: don't support that, then
01:52:37 <cheater-> after reaching the heights, did you decide to continue and reach out to new heights?
01:52:49 <elliott> cat :: Obj -> Obj -> Obj
01:52:49 <elliott> cat (Church m xs) (Church n ys) = Church (m*n) (cat xs ys)
01:52:49 <elliott> cat (Quote xs) (Quote ys) = Quote (xs ++ ys)
01:52:49 <elliott> cat x y = Catn x y
01:53:01 <elliott> so Catn is just used for e.g. (cat x x), (cat rept church), and all that stuff
01:53:02 <oerjan> cheater-: um it was finished the last time i spoke about it
01:53:07 <elliott> (cat x x where x is neither Church nor Quote that is)
01:53:24 <oerjan> elliott: well without supporting that it's useless to support Obj's at all
01:53:38 <oerjan> since almost everything which builds a new church numeral is a Catn
01:53:42 <cheater-> oerjan: but i thought maybe you went on to eliminate yet another command
01:53:50 <elliott> oerjan: are you sure?
01:53:52 <oerjan> cheater-: i may.
01:53:55 <elliott> (:)(*)*, sure
01:53:57 <cheater-> oerjan: such as???????
01:54:06 <elliott> but e.g. (:*)(:*)*? well...
01:54:07 <elliott> you're right
01:54:10 <elliott> oerjan: support Catn then :-P
01:54:17 <elliott> but unrolling isn't an option so uh... good luck
01:54:27 <oerjan> cheater-: either that or prove that you cannot.
01:54:48 <cheater-> well get on with it already
01:55:02 <oerjan> cheater-: shut up
01:55:13 <elliott> I don't think there's any more TC sets smaller than or equally small as ~:()^ and :*()a^
01:55:22 <elliott> oerjan: good luck getting cheater to shut up ...
01:55:44 <oerjan> elliott: i don't _want_ to support Catn becaus church'ing on them can have _horrible_ asymptoticity. consider concatenating ::::::::::::: with **************
01:55:55 <elliott> oerjan: then what on earth do you suggest?
01:55:58 <elliott> reallyUnsafePtrEquality# :: a -> a -> Int#
01:55:58 <elliott> woot
01:56:24 <elliott> oerjan: i mean, forming integers like that is quite important
01:56:29 <elliott> oerjan: at least, you can do that with just counting up then counting down
01:56:41 <elliott> ofc that doesn't handle :*:*: and *:*, but nobody does that
01:56:45 <elliott> this is basically a heuristic
01:56:48 <oerjan> elliott: Data.Sequence would help, although that would reduce sharing
01:56:57 <elliott> STOP SUGGESTING SEQ FOR THINGS :D
01:57:13 <elliott> oerjan: i mean :^n with *^n is I think fairly common
01:57:16 <elliott> is it not?
01:57:22 <cheater-> oerjan: no u
01:57:23 <oerjan> elliott: well unbalanced Catn trees is what i see as the problem here
01:57:37 -!- ChanServ has set channel mode: +o oerjan.
01:57:40 <elliott> oerjan: I don't think you can really get those actually
01:58:01 <elliott> [+o: about time too]
01:58:02 <elliott> oerjan: hmm
01:58:10 <elliott> oerjan: in fact, ::: with *** will produce a single Quote
01:58:15 <elliott> so in fact [Op] should be fine for everything
01:59:17 <elliott> oerjan: btw will your function give up immediately if e.g. the input doesn't start with :? that's desirable for cat. otoh churchising _substrings_ (i.e. transforming {:^n}{*^n} in some code to Push (Church n ...), Call) might be useful...
02:00:33 <elliott> hmm perhaps I should optimise :* as a preprocessing step ...
02:00:49 <elliott> @hoogle Int# -> Int
02:00:49 <lambdabot> Data.Generics.Schemes gdepth :: GenericQ Int
02:00:49 <lambdabot> Data.Generics.Schemes glength :: GenericQ Int
02:00:49 <lambdabot> Data.Generics.Schemes gnodecount :: GenericQ Int
02:01:50 <oerjan> elliott: the [Op] one i have started writing only looks at the church numerals at the beginning
02:02:02 <elliott> I could always search or something, sounds inefficient though :)
02:03:11 <oerjan> but it gives the remaining [Op] in the tuple, so you can easily continue with it
02:03:14 <elliott> right
02:04:23 <oerjan> i think i'll right it this way, and then you can write the Obj version if you want >:)
02:04:26 <oerjan> *write
02:05:10 <oerjan> GODAMMIT I'M CHANNELING A NATIVE ENGLISH SPEAKER WITH BAD SPELLING
02:05:51 <cheater-> you know, they say you're good at english when you start making the same mistakes they do
02:05:51 <elliott> "write" -> "*write" :-D
02:05:54 <elliott> oh
02:05:55 <elliott> heh
02:05:56 <elliott> -- FIXME: WORST THING EVER
02:05:56 <elliott> cat x y | I# (reallyUnsafePtrEquality# x y) == 1 = Rept 2 x
02:06:25 <elliott> -- FIXME: WORST THING EVER, PROBABLY MUTILATES KITTENS IN ITS
02:06:25 <elliott> -- FREE TIME
02:06:28 <oerjan> cute
02:06:34 <pikhq> cheater-: oerjan is certainly better at English than many native speakers.
02:06:47 <cheater-> not saying he isn't
02:07:15 <pikhq> Granted, this probably says more about the native speakers than oerjan. It continues to disturb me how very bad many people were in my high school English classes.
02:07:25 <oerjan> pikhq: well with most of english being typing i just don't expect to switch _homophones_...
02:07:30 <oerjan> *my
02:07:38 <pikhq> oerjan: Hah.
02:07:41 <coppro> This is very true.
02:08:36 <cheater-> pikhq: i was told by the british that there was a period on the uk when learning english wasn't mandatory at all
02:09:03 <coppro> my university actually has a mandatory english exam for all students
02:09:05 <pikhq> cheater-: The UK or the Kingdom of Great Britain or the Kingdom of England?
02:09:08 <pikhq> It matters. :P
02:09:10 <coppro> on the basis that the high schools aren't good enough
02:09:29 <cheater-> pikhq: i have said "the uk"
02:09:30 <oerjan> oh food
02:09:38 <cheater-> i think it was in the late 80s or early 90s
02:09:42 <elliott> "by the british"
02:09:49 <elliott> I talked to the British the other day.
02:09:54 <elliott> They had bad teeth.
02:10:02 <cheater-> they have.
02:10:24 <cheater-> at least they make copious use of mouthwash when prompted.
02:11:26 <pikhq> cheater-: Yes, but many people end up using it to refer to geographic regions that are now part of the United Kingdom of Great Britain and Northern Ireland. Not to mention telling me which name for the kingdom in use lets me have a rough idea *when* you're talking about.
02:12:07 <elliott> pikhq: [troll feed etc.]
02:12:14 <pikhq> TL;DR: I'm a pedant.
02:13:44 <cheater-> i told you the dates
02:13:56 <pikhq> Hadn't when I asked.
02:13:57 -!- elliott has quit (Read error: Connection reset by peer).
02:14:17 -!- elliott has joined.
02:14:22 -!- zzo38 has joined.
02:14:25 <cheater-> head explodes
02:15:27 -!- elliott has quit (Read error: Connection reset by peer).
02:15:53 -!- elliott has joined.
02:16:47 <elliott> pikhq: can i call you sartre
02:20:57 -!- amca has joined.
02:20:57 -!- elliott has quit (Read error: Connection reset by peer).
02:21:17 -!- elliott has joined.
02:24:30 -!- elliott has quit (Client Quit).
02:24:37 -!- elliott has joined.
02:25:50 <elliott> WHERE IS OERJAN
02:25:51 <elliott> er
02:25:53 <elliott> AIS523
02:27:02 <elliott> oerjan: done yet ;D
02:27:29 <oerjan> BE CAREFUL I HAVE THE OPS
02:27:35 <zzo38> ais523 does not appear to be connected.
02:27:58 <elliott> oerjan: yeah but to the disappointment of all right-thinking people you have not yet exercised them. OBVIOUSLY I AM TALKING ABOUT GIVING VOICE TO PIKHQ
02:28:09 <elliott> LET US UNITE IN FAVOUR OF GIVING PIKHQ +V
02:29:09 <zzo38> I do not care whether or not to give voice to pikhq. What effect would be given? To exempt a quiet mode on the channel?
02:29:22 <elliott> FOR DEMOCRACY
02:29:23 <elliott> AND FREEDOM
02:29:31 <elliott> oerjan: MAKE OUR DREAM COME TRUE
02:29:34 <Gregor> oerjan: Give me +o! I just want a taste of ops! JUST A TASTE
02:29:37 -!- amca has quit (Quit: Farewell).
02:29:45 <oerjan> Gregor: YOU DON'T SAY
02:29:53 <elliott> LET US STAND AGAINST THOSE OPPRESSORS OF DEMOCRACY, THOSE TYRANTS WHO WOULD GAIN THEIR OPS TO DISCARD ALL RATIONALITY
02:29:55 <pikhq> Only him who wanteth it not may have op!
02:29:56 <Gregor> You can even /mode +o-o Gregor Gregor
02:29:57 <zzo38> Gregor: Create a new # type channel you automatically get +o (but can still remove it)
02:30:03 <pikhq> And I wanteth it not!
02:30:06 <elliott> HAVE FAITH THAT WITH VOICE PRIVILEGES, PIKHQ WILL LEAD US INTO A LAND OF HAPPINESS AND JOY!
02:30:11 <elliott> LOOK AT HIS DESERVING HUMBLENESS!
02:30:12 <zzo38> Gregor: What happens if you type conflicting modes like that?
02:30:17 <pikhq> elliott: ALSO BEER.
02:30:18 <elliott> I THINK THIS IS A CAUSE WE CAN ALL GET BEHIND!!!!!!!!
02:30:25 <Gregor> zzo38: They're applied in order, you can't really "conflict"
02:30:27 <elliott> oerjan: DO IT! DO IT NOW! DON'T DELAY! OR HESITATE!
02:30:29 <Gregor> The operation is atomic in principle.
02:30:37 <oerjan> sheesh
02:30:41 -!- oerjan has set channel mode: -o oerjan.
02:30:47 <Gregor> Awwwwwwwwwwww
02:30:54 <zzo38> (There is also & and ! type which you get +o automatically but Freenode has neither.)
02:30:57 <oerjan> IT SEEMED TO JUST ENCOURAGE PEOPLE
02:30:58 <elliott> WE ARE ALL DISAPPOINTED IN YOU. also, ban cheater- already.
02:31:14 -!- pikhq has set topic: No happiness and joy for us; oerjan hath spoken. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
02:31:19 <zzo38> elliott: I think we do not need to ban them? But I don't say.
02:31:25 <oerjan> MWA
02:31:26 <oerjan> HA
02:31:27 <oerjan> HA
02:31:39 <elliott> zzo38: he's a persistent troll recognised as such by pretty much everyone i've spoken to.
02:31:45 <elliott> pikhq: LET'S RISE UP AGAINST OERJAN
02:31:48 <elliott> AND HIS ANTI-HAPPINESS, ANTI-JOY,
02:31:49 <elliott> ANTI-BEER WAYS
02:31:57 <oerjan> hey i am _not_ anti-beer!
02:32:00 <Mathnerd314> cheater-: are you a troll?
02:32:01 <elliott> IT'LL BE LIKE LYBIA, BUT WITH +B INSTEAD OF GUNS
02:32:10 <pikhq> He just is against *happy* drunks.
02:32:20 <elliott> Mathnerd314: I would love to a legal system based on your last line.
02:32:29 <elliott> "DID YOU KILL THE PUPPY?" "No." "Oh."
02:32:38 <elliott> "Mwahahahaha! [kills a puppy]" "DID YOU JUST-" "No."
02:32:41 <zzo38> As far as I know we do not need to ban them.
02:32:57 <Mathnerd314> elliott: then you ask "did you lie" under a polygraph test
02:32:58 <elliott> i didn't ask you :p
02:33:21 <elliott> Mathnerd314: Genius! Then everyone will go to jail, instead of noone.
02:34:03 <Mathnerd314> elliott: well, I think evidence factors in somehow
02:34:17 <elliott> so basically your legal system is boring and not at all like that line
02:34:21 <pikhq> Polygraphs are about as reliable as medicine by a witch doctor.
02:34:29 <pikhq> But less awesome.
02:34:32 <elliott> pikhq: THAT'S OFFENSIVE TO OERJAN'S BELIEFS
02:34:45 <pikhq> elliott: I try!
02:34:56 <Mathnerd314> elliott: no, it's just based around intention first and evidence later
02:35:22 <pikhq> Mathnerd314: So, estabilishing mens rea, then.
02:35:29 <elliott> mens' rear
02:35:36 <elliott> *men's
02:35:51 <pikhq> elliott: Only in Gayland, the state that is always happy.
02:36:01 <elliott> that sounds gay.
02:36:11 <pikhq> Why yes, yes it does.
02:36:29 <Mathnerd314> pikhq: if they admit wrongdoing, you're halfway there
02:37:03 <elliott> Mathnerd314: considering that most people who have done wrong will not admit so, and plenty of people who have done no wrong will admit so, that seems shaky at best.
02:37:23 * oerjan starts overengineering church
02:37:43 <elliott> oerjan: aargh :D
02:37:48 <elliott> oerjan: as long as it's /vaguely/ efficient...
02:37:58 <Mathnerd314> elliott: what? insane world.
02:38:05 <elliott> Mathnerd314: YOU DON'T SAY.
02:38:37 <Mathnerd314> elliott: the first thing will be brainwashing peopel to be rational
02:38:44 <Mathnerd314> s/pel/ple/
02:38:58 <elliott> Mathnerd314: that would pretty much eliminate wrongdoing. well, assuming you mean rational according to the same system of values.
02:39:17 <elliott> e.g. rational utilitarians, rational self-interest with /some/ concession to not killing everyone else and taking theirs poils, ...
02:39:28 <elliott> *their spoils,
02:41:30 <pikhq> elliott: Well, if you're going with perfectly idealness, Cant's moral imperative works. :)
02:41:49 <elliott> i don't agree with the moral imperative
02:42:49 <pikhq> Feh.
02:43:52 <Gregor> <elliott> IT'LL BE LIKE LYBIA, BUT WITH +B INSTEAD OF GUNS
02:43:58 <elliott> Lybia is the country's real name.
02:43:59 <Gregor> <elliott> IT'LL BE LIKE LYBIA, BUT WITH /b/ INSTEAD OF GUNS *fixt*
02:44:00 <elliott> Do not question me.
02:44:26 <Mathnerd314> I don't know, though... could the world be better off if everyone was dead?
02:44:41 <pikhq> Mathnerd314: Where "everyone" = ?
02:45:05 <pikhq> All life? All hominoids? All Homo sapiens?
02:45:14 <Mathnerd314> every living thing currently within the solar system
02:45:21 <Mathnerd314> say the sun went nova suddenly
02:45:27 <elliott> Mathnerd314: no, that would not be better.
02:45:38 <elliott> sentient life is valuable; that would destroy sentient life; Q.E.D.
02:45:49 <Mathnerd314> lol why
02:45:56 <elliott> lol why what
02:46:26 <Mathnerd314> why is sentient life valuable?
02:46:30 <pikhq> Mathnerd314: The world would certainly not be better off if all life on it stopped.
02:46:44 <pikhq> It would instead just be a giant chunk of rock in orbit.
02:46:48 <elliott> Mathnerd314: if x and y are sets, why does there exist a set which contains x and y as elements?
02:46:52 <elliott> OH RIGHT: because that's an axiom.
02:47:02 <pikhq> And who gives a fuck about that? There's trillions of those.
02:47:04 <elliott> More generically, _intelligence_ is valuable.
02:47:14 <elliott> And sentient life is what can be intelligent.
02:47:47 <Sgeo> "Better off" really is only in relation to something
02:47:50 <pikhq> elliott: Heck, life in and of itself seems to be valuable. It certainly doesn't seem to be all that common.
02:47:56 <Sgeo> Intelligent life seems to be the best thing to put there.
02:48:10 <elliott> pikhq: Certainly, but it is only valuable /because/ of sentient life.
02:48:24 <elliott> Because we like it, basically.
02:48:34 <pikhq> elliott: Well, without sentient life there is no such thing as "valuable".
02:48:41 <elliott> Same way that causing the Earth to disintegrate would be a bad idea, even though the Earth is not inherently valuable: it is valuable because we consider it valuable, and intelligence is intrinsically valuable.
02:48:47 <Sgeo> I don't think there is an inherent "valuable" except what we consideer ... ok, basically what everyone else is saying
02:48:56 <elliott> pikhq: There is in our models.
02:49:46 <Sgeo> elliott, what models?
02:50:20 <elliott> oerjan: HOW'S IT GOIN'
02:50:24 <elliott> WRITTEN A LINE YET
02:50:53 <Sgeo> When will EgoBot be lance-enabled?
02:52:43 <Sgeo> Ooh
02:52:49 <Sgeo> List of preloaded HSTS sites
02:55:28 -!- pikhq has quit (Ping timeout: 240 seconds).
02:55:41 -!- pikhq has joined.
02:57:11 -!- elliott has quit (Read error: Connection reset by peer).
02:57:48 -!- elliott has joined.
02:59:48 <elliott> oerjan: :|
03:00:11 <elliott> Sgeo: never; it's the buggy gearlance now. :p
03:00:23 <Sgeo> elliott, hmm? Why?
03:00:36 <elliott> Well, if Gregor wanted me to I can integrate it after the fixed-point scoring stuff is in, I suppose.
03:03:51 <elliott> Sgeo: Erm, what do you mean why>
03:03:53 <elliott> *why?
03:04:06 <Sgeo> Is gearlance based on lance?
03:04:18 <elliott> 18:52:49 <Sgeo> List of preloaded HSTS sites
03:04:18 <elliott> Err... http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security?
03:04:29 <Sgeo> Yes
03:05:01 <elliott> How on earth is that "ooh".
03:05:12 <Sgeo> There's a list of websites
03:05:18 <Sgeo> Not on that page what I was looking at
03:05:29 <Sgeo> http://dev.chromium.org/sts
03:05:41 <Sgeo> ^^Wow I can be incoherent sometimes
03:06:44 <elliott> I just don't see how on earth that's interesting.
03:07:44 <elliott> oerjan: :|
03:07:51 <oerjan> sheesh
03:07:57 <elliott> ;D
03:12:25 <elliott> oerjan: is it bad if your turing machine gets progressively slower each step?
03:12:48 <oerjan> um the 3 thousand something characters one?
03:12:53 <elliott> oerjan: no
03:12:53 <elliott> (( )S)(^!!)(((~:^~(~)S(^!!)~(^)~:^^)(!~(:^!^)~^^^)(!!~(:^!!^)~^^!^))(
03:12:54 <elliott> )!(!(~:^~(^!!)~:^^)(!~(:^!^)~^^!^)(!!~(:^!^)~^^^))(!!(~(:^!!^)~^^!!^)(
03:12:54 <elliott> )!(!(:)S(^!)~:^^)(!!(~)S(^)~:^^))):^^!^!!^
03:12:54 <elliott> that one
03:13:07 <elliott> $ ./relief '(:^):^'
03:13:08 <elliott> Stack space overflow: current size 8388608 bytes.
03:13:08 <elliott> Use `+RTS -Ksize -RTS' to increase it.
03:13:09 <elliott> wat.
03:13:17 <elliott> ok time to restructure this evaluation result mechanism :D
03:13:18 <oerjan> well it _does_ get a longer number ...
03:13:19 <Sgeo> <3 TOMT
03:13:55 <oerjan> elliott: but it shouldn't be approximately constant with respect to the no. of characters printed, i think
03:13:58 <oerjan> er
03:13:58 <oerjan> *should
03:14:45 <oerjan> the gap between printing one number and the next should increase proportionally with length
03:14:54 <elliott> oerjan: that's what i mean
03:15:00 <elliott> oerjan: but if church numeral arithmetic is O(1)
03:15:03 <elliott> should it not be constant?
03:15:18 <oerjan> elliott: er my turing machine uses absolutely no church numerals
03:15:28 <elliott> ah.
03:15:34 <elliott> well i'm sure I can optimise it SOMEHOW ;D
03:15:45 <oerjan> (note the hideous lack of * and ())
03:16:38 <elliott> oerjan: hey i just found a function where
03:16:42 <elliott> f (C x) _ = C x
03:16:42 <elliott> works
03:16:43 <elliott> but
03:16:47 <elliott> f o@(C _) _ = o
03:16:48 <elliott> doesn't
03:17:27 <oerjan> that seems impossible
03:17:39 <oerjan> anything to do with your unsafe equality? :D
03:17:44 <elliott> oerjan: nope
03:17:47 <elliott> data Result a e = End e
03:17:48 <elliott> | Failure String
03:17:48 <elliott> | Chunk a (Result a e)
03:17:48 <elliott> deriving (Show)
03:17:48 <elliott> instance Monad (Result a) where
03:17:48 <elliott> return = End
03:17:50 <elliott> End xs >>= f = f xs
03:17:52 <elliott> Failure s >>= _ = Failure s
03:17:54 <elliott> Chunk s r >>= f = Chunk s (r >>= f)
03:17:56 <elliott> fail = Failure
03:17:59 <elliott> oerjan: this works
03:18:02 <elliott> with @, it doesn't
03:18:04 <elliott> oerjan: it doesn't work because you have to return (m b) from >>=
03:18:06 <elliott> whereas the input is (m a)
03:18:10 <elliott> it's just that Failure is polymorphic in the a
03:18:14 <elliott> but the individual _value_ isn't
03:18:22 <elliott> this is vaguely screwy.
03:18:36 <oerjan> oh
03:19:05 <oerjan> ok that's understandable
03:19:16 <oerjan> i thought you meant a runtime difference
03:19:20 <elliott> ah
03:19:20 <elliott> heh
03:19:49 <elliott> oerjan: arguably it should be "Failure :: String -> (forall a e. Result a e)", but I'm not sure that would even help
03:19:54 <elliott> doubt it would
03:20:24 <elliott> let (xs',o1) = call p xs
03:20:25 <elliott> (xs'',o2) = call q xs'
03:20:25 <elliott> in (xs'', o1 ++ o2)
03:20:25 <elliott> --->
03:20:31 <elliott> call p xs >>= call q
03:20:34 <oerjan> no, that wouldn't pass the >>=
03:20:35 <elliott> Monads solve every problem.
03:20:37 <elliott> oerjan: right
03:20:45 <oerjan> elliott: if that passed, newIORef would be type unsafe
03:20:55 <elliott> oerjan: arguably it should be :P
03:21:08 <oerjan> huh?
03:21:14 <elliott> oerjan: ok for a very vague definition of arguably
03:21:26 <elliott> oerjan: because the unsafeperformio -> coerce trick relies on newIORef's polymorphism
03:21:54 <elliott> hm i hope this is as strict as the previous version...
03:22:57 <oerjan> elliott: yes that is precisely because unsafePerformIO bypasses the >>= restriction against forall types
03:24:43 <elliott> oerjan: yes yes :D
03:25:10 <elliott> @hoogle (a -> m b) -> Int -> a -> m b
03:25:10 <lambdabot> No results found
03:25:16 <elliott> hmm
03:25:28 <elliott> > iterate (g . f) x
03:25:29 <lambdabot> Ambiguous type variable `a' in the constraints:
03:25:29 <lambdabot> `SimpleReflect.FromExpr ...
03:25:32 <elliott> > iterate (g . f) x :: [Expr]
03:25:33 <lambdabot> Ambiguous type variable `a' in the constraints:
03:25:33 <lambdabot> `SimpleReflect.FromExpr ...
03:25:36 <elliott> >_<
03:25:42 <oerjan> what would you want that to do...
03:25:58 <elliott> oerjan: f x >>= f >>= f >>= ...
03:25:59 <elliott> n times
03:26:00 <oerjan> that @hoogle thing
03:26:06 <elliott> threadN, basically
03:26:15 <elliott> call (Rept n p) xs = sequence $ genericReplicate n (call p)
03:26:16 <oerjan> ah
03:26:17 <elliott> which is blatantly wrong
03:26:41 <oerjan> iterate (>>= f)
03:26:50 <elliott> right
03:27:31 <elliott> call (Rept n p) xs = iterate (>>= call p) (return xs) `genericIndex` n
03:27:33 <elliott> ugly, but whatever
03:27:45 <elliott> gah, and it _still_ blows the stack
03:28:16 <elliott> at least Thue-Morse still seems fast
03:29:17 <elliott> putResult :: Result String a -> IO ()
03:29:17 <elliott> putResult (End _) = return ()
03:29:17 <elliott> putResult (Chunk s x) = putStr s >> putResult x
03:29:17 <elliott> putResult (Failure s) = hPutStrLn stderr s >> exitFailure
03:29:26 <elliott> i _think_ this should be unwinding the stack as fast as >>= can fill it up
03:31:42 <elliott> oerjan: any progress >:D
03:31:52 <oerjan> iterate (>>= f) might build a large chunk, btw
03:32:24 -!- elliott has quit (Read error: Connection reset by peer).
03:32:28 <oerjan> *thunk
03:32:42 <oerjan> maybe you have large unevaluated ones
03:32:44 -!- elliott has joined.
03:32:47 <elliott> oerjan: laziness is the best thing ever that makes me want to claw my eyeballs out.
03:32:53 <elliott> and my internet connection is definitely lazy.
03:33:26 <elliott> oerjan: not sure how to avoid building a large thunk there, anyway
03:33:33 <elliott> oh i see what you mean
03:33:35 <elliott> i could write my own threader
03:34:21 <elliott> where thread 0 f x = return x
03:34:21 <elliott> thread n f x = thread (n-1) f x >>= f
03:34:26 <elliott> ok _that_ strikes me as an unwise way to write the function
03:34:59 <elliott> call (Rept n p) xs = return xs >>= thread n (call p)
03:35:00 <elliott> where thread 1 f = f
03:35:00 <elliott> thread n f = f >>= thread (n-1) f
03:35:00 <elliott> better.
03:35:07 <elliott> argh
03:35:12 <elliott> infinite type bullcrap
03:35:28 <elliott> hey oerjan write my trivial function for me, i'm too retarded to :D
03:36:07 <elliott> "Watson, bomb that Libyan city!
03:36:07 <elliott> [Bombs Toronto]" --reddit
03:41:26 -!- elliott has quit (Read error: Connection reset by peer).
03:41:47 -!- elliott has joined.
03:41:50 <zzo38> I thought of idea of a shogi variant called "Copper, Silver, Gold: An Indestructible Metallic Alloy" where if the copper, silver, gold generals are next to each other, then they cannot be captured?
03:43:16 <oerjan> elliott: thread 0 f x = return x; thread n f x = f x >>= thread (n-1) f
03:43:39 <elliott> OKAY THAT MAKES SENSE
03:44:02 <elliott> Still my /main/ problem is a stack overflow on (:^):^, because it's calling "call" recursively.
03:44:05 <elliott> Except it's a tail call.
03:44:09 <elliott> Then it calls run recursively, which does
03:44:13 <elliott> run [] xs = return xs
03:44:14 <elliott> run (i:p) xs = one i xs >>= run p
03:44:17 <elliott> so I think the >>= run p is killing it.
03:44:26 <elliott> Because it never reaches it, because it calls call again, etc.
03:44:35 <elliott> No?
03:45:06 <oerjan> elliott: if i is call then that run is not tail recursive is it?
03:45:18 <elliott> oerjan: well, precisely
03:45:21 <elliott> but i don't see how it could be, really
03:45:26 <elliott> without some continuation-passing style rubbish
03:45:47 <elliott> oerjan: more importantly, even if I fixed that, (:^x):^ would fail
03:45:51 <elliott> because it wouldn't be a tail-call
03:45:52 <Sgeo> WTF?
03:45:56 <oerjan> run (Call:p) (x:xs) = run (x++p) xs
03:45:58 <Sgeo> "wget is depreciated"
03:46:02 <Sgeo> --from a Reddit comment
03:46:16 <elliott> oerjan: lol, my call model isn't that simple
03:46:18 <elliott> I have a whole function for calling
03:46:26 <elliott> that wouldn't really work at all
03:46:33 <elliott> x can be a Church, for instance
03:46:38 <elliott> but I suppose I could condition on it
03:46:48 <elliott> and have call say "no, you handle it" for Quotes and Catns and Repts...
03:46:55 <elliott> actually for Repts that'd be ugly. argh.
03:47:07 <oerjan> elliott: indeed (:^x):^ _should_ build call stack afaict unless you're very clever
03:47:41 <elliott> oerjan: hm right
03:47:56 <elliott> run [] xs = return xs
03:47:56 <elliott> run [i] xs = one i xs
03:47:56 <elliott> run (i:p) xs = one i xs >>= run p
03:48:00 <elliott> there's the cheap-skate version
03:48:11 <elliott> I'd still like to optimise Call in general not to eat stack, though, but I doubt it'll be easy
03:48:15 <zzo38> Why is wget is depreciated?
03:48:15 <elliott> maybe if i do...
03:48:19 <elliott> zzo38: what
03:48:20 <elliott> ?
03:48:48 <elliott> run (Call:p) (Quote p':xs) = run (cat p' p) xs
03:48:52 <elliott> oerjan: i suppose that special case should be enough
03:49:02 <elliott> even if it is upsettingly specialcasey.
03:49:07 <elliott> e.g. doesn't handle Catn, Rept
03:49:11 <elliott> hmm I could handle Catn/Rept actually.
03:49:15 <elliott> wait. issue here is that run only does [Op].
03:49:16 <elliott> argh.
03:49:16 <zzo38> Sgeo posted a quotation so that is why I ask question.
03:49:24 <elliott> run (Call:p) (p':xs) = call (cat p' p) xs
03:49:26 <elliott> ok this should work.
03:49:28 <elliott> probably.
03:49:47 <elliott> even though it's stupid
03:49:54 <elliott> no, that won't work. well maybe
03:49:58 <oerjan> zzo38: i suspect he was pointing out the stupidity of the comment
03:50:22 <elliott> well it appears to work.
03:50:26 <elliott> it's hideous but it seems to work.
03:50:36 <Sgeo> http://www.reddit.com/r/netsec/comments/fo6zs/this_link_will_most_likely_crash_any_browser_and/c1hehj8
03:50:46 <Sgeo> Maybe I shouldn't take =) comments so literally
03:50:55 <elliott> oerjan: it just froze my computer.
03:50:58 <elliott> so maybe it's eating heap instead :D
03:51:02 <elliott> well obviously
03:51:18 <oerjan> i have a vague feeling of this project going down in flames
03:51:18 <elliott> thue-morse still runs.
03:51:22 <elliott> fast, too.
03:51:53 <elliott> oerjan: how's church coming along AHEM
03:52:07 <elliott> !help
03:52:07 -!- augur has quit (Remote host closed the connection).
03:52:12 <elliott> !info
03:52:25 <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>.
03:52:25 <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
03:52:41 <elliott> hm seems like there's no space leak... yes there is
03:52:41 <oerjan> i keep wavering on whether to use a stack of quotes seen in order to get things like (:*):*:*^
03:52:47 <elliott> it's approx. doubling its memory every now and then
03:52:51 <elliott> does the thue-morse program leak memory?
03:53:16 <elliott> oerjan: i can't think of any algo that would produce _that_
03:53:22 <elliott> oerjan: remember that this is a heuristic :P
03:53:30 <elliott> hm not even gcs seem to stop thue-morse leaking memory
03:53:53 <oerjan> well it's a reasonable way to write 2^4
03:54:07 -!- mr_mojo_risin has joined.
03:54:19 <elliott> oerjan: handle it then :P
03:54:20 <elliott> hi mr_mojo_risin
03:54:24 <zzo38> Can you make c command from Unlambda in the variant of Underload that has continutations?
03:54:25 <oerjan> argh
03:54:26 <mr_mojo_risin> hi
03:54:38 <elliott> zzo38: that's exactly what oerjan/mine/ais' (he came up with it too) C is
03:54:43 <elliott> mr_mojo_risin: this channel is about esoteric programming languages
03:54:50 <mr_mojo_risin> ok
03:55:27 -!- mr_mojo_risin has left (?).
03:55:27 -!- elliott has quit (Read error: Connection reset by peer).
03:55:47 -!- elliott has joined.
03:55:50 <elliott> mr_mojo_risin: see http://esolangs.org/ for more info :p
03:56:16 <zzo38> I mean in "Unlambda to Underload" section of the article, they have s,k,i,v (I added v) then can you add c and d as well, and what would it be, exactly?
03:56:26 <elliott> zzo38: oh. ais and oerjan did that too
03:56:27 <elliott> separately
03:56:39 <oerjan> elliott: i think he means directly, if we have C
03:56:57 <elliott> oh right
03:56:58 <oerjan> well it probably won't help with d
03:57:01 <elliott> it'd just be C, basically :-P
03:57:23 <elliott> oh that mojo guy left?
03:57:25 <elliott> i am SO SURPRISED
03:57:48 <oerjan> well assuming the Unlambda to Underload section preserves strict evaluation order, i think c should be buildable from C
03:58:26 <oerjan> elliott: another of the desperate masses looking for an occult irc channel
03:58:46 <oerjan> but none with the skills to actually make one
03:59:09 <zzo38> They should know to look on other IRC network, then?
03:59:16 <oerjan> or maybe they are prevented by demons. yeah that's the ticket.
03:59:55 <oerjan> zzo38: i looked on an irc channel directory once, couldn't find any remotely big ones
03:59:59 <zzo38> I have also my own IRC server, which I can add channels if requested and not intended for large amount of clients all connecting at once.
04:00:14 <oerjan> (just to see if there was any place to refer the next guy coming to)
04:00:30 <zzo38> oerjan: At least it is not bad thing to check.
04:00:35 <elliott> oerjan: i doubt they'd have the capability of logical thought required to figure out how to make a channel.
04:00:44 <oerjan> elliott: THAT WAS THE JOKE
04:00:44 <elliott> and OUCH that lagged my computer, wonder why
04:00:52 <elliott> oerjan: ;D
04:00:58 <elliott> oerjan: i was making a SUBTLE JAB at YOUR BELIEFS
04:01:00 <elliott> -rw-r--r-- 1 elliott elliott 129M 2011-02-22 04:29 foo
04:01:03 <elliott> NOT BAD FOR 50 SECONDS
04:01:12 <oerjan> elliott: AND NOT NOTICING I ALREADY JABBED MYSELF
04:01:13 <zzo38> To make channel just use JOIN command, it is not difficult?
04:01:30 <Sgeo> Wait
04:01:35 <elliott> hey that lines up weirdly (thue-morse wrapped to 80 chars)
04:01:38 <Sgeo> elliott was not being weird, and the person left anyway?
04:01:44 <Sgeo> It's an #esoteric miracle!
04:01:50 <elliott> oerjan: you failed to mention SYNCHRONICITY
04:01:54 <elliott> like
04:02:03 <elliott> "clearly it is synchronicity that they cannot make a channel because of logic"
04:02:35 <oerjan> elliott: DEMONS, I SAID
04:02:36 <zzo38> Try converting some Unlambda program with c to Underload and see if it works.
04:02:42 <elliott> zzo38: no
04:02:49 <elliott> oerjan:any porgress :DDDDDDDD
04:06:59 <oerjan> elliott: overengineering more
04:07:09 <elliott> oerjan: how many catamorphisms
04:07:17 <elliott> <oerjan> TWENTY
04:15:36 -!- elliott has quit (Read error: Connection reset by peer).
04:15:54 -!- elliott has joined.
04:15:58 <elliott> <elliott> oh no, oerjan died in a catamorphism accident
04:16:02 <elliott> discuss catamorphism conspiracy
04:20:33 <copumpkin> rotten bananas?
04:20:43 <copumpkin> http://comonad.com/reader/2008/rotten-bananas/
04:20:48 <elliott> rotten spacenanas
04:21:53 <elliott> hmm, i should really formulate these thoughts down sometime
04:21:58 <elliott> (a purely-functional, strongly-typed concatenative language)
04:22:18 <oerjan> elliott: you are familiar with Cat?
04:22:50 <elliott> oerjan: yes. not only is it seemingly dead or at least dormant, but WP says that the official implementation does no actual typechecking or inference, and it's definitely not pure.
04:22:52 <elliott> but it is an inspiration.
04:23:14 <elliott> oerjan: i figured out that at least a subset of do notation can be done without any special syntax, which is promising for actually using it
04:23:20 <elliott> let do = () return
04:23:24 <elliott> and let ; be >>
04:23:26 <elliott> then you can just say
04:23:30 <elliott> ... do
04:23:32 <elliott> "hello" print ;
04:23:35 <elliott> "goodbye" print ;
04:23:42 <elliott> it gets a bit harder with <-
04:23:48 <elliott> my current thought is to use continuations somehow to write
04:23:49 <elliott> ... do
04:23:53 <elliott> getLine ->;
04:23:58 <elliott> "You typed: %s\n" printf ;
04:24:03 <elliott> but I'm not sure the types will check out
04:24:08 <elliott> or if that will behave sanely
04:24:32 <elliott> I might just bite the bullet and add real do-notation, but that would compromise concatenativeness
04:24:33 -!- augur has joined.
04:25:40 <elliott> anyway, bedtime
04:25:41 <elliott> goodnight!
04:25:53 <oerjan> goodnight
04:28:32 -!- pikhq has quit (Read error: Connection reset by peer).
04:29:52 -!- pikhq has joined.
04:29:55 -!- elliott has quit (Ping timeout: 240 seconds).
04:30:36 <Sgeo> WTF is the point of unique local addresses?
04:37:52 <quintopia> gregor: i cannot disclose any info about bfjml until it is complete
04:46:23 <Sgeo> There is an IPv6 address :: ?
04:50:12 <quintopia> GREGOR: I WOULD PLAY THE CHILDMAULING BEAR GAME
04:51:02 <Sgeo> "Again, the concept of scope is important in a multicast of this type because we don't want to try to send a message to all nodes on the global Internet, for example. "
04:51:08 <Sgeo> LIES. I WANT TO TRY IT.
04:51:20 <Sgeo> Oh, ""Valid Scope Values"
05:07:25 <fizzie> They went and deprecated site-local addresses because nobody can be bothered to handle the scope ID stuff correctly in code.
05:08:12 <fizzie> And also because nobody knew what a "site" was.
05:08:50 <fizzie> And replaced that with the unique local addresses, which at least are more or less unique.
05:09:44 <fizzie> So that if you have address X stored in a file somewhere, you don't need to separately keep track to which site it refers to, if it's in a box which visits multiple "sites".
05:29:53 -!- pikhq has quit (Ping timeout: 240 seconds).
05:30:01 -!- pikhq has joined.
05:33:23 -!- zzo38 has quit (Ping timeout: 272 seconds).
05:39:56 -!- sftp has quit (Remote host closed the connection).
06:27:30 <olsner> holy crap I'm up early
06:27:44 <oerjan> *MWAHAHA*
06:30:29 <olsner> this meeans I can be at work before 9 if I don't end up spending a few hours here
06:33:39 <fizzie> Heh: Conference registration for non-IEEE-member students: $300. Conference registration for IEEE + signal processing society member students: $175. One year's graduate student membership in IEEE and SPS: $42. Sum of last two: $217. Finally, $217 < $300.
06:33:50 <fizzie> Must be their clever ploy to get more members.
06:34:41 <olsner> they should have registration with 1 year membership instead
06:35:03 <olsner> that's not as much money though, so they're probably trying to get more members *and* make more money, at the same time
06:35:39 <quintopia> interesting that Signal Processing Society and Society of Physics Students share an acronym
06:36:34 <fizzie> I'd appreciate the main SPS membership benefits -- access to IEEE Trans. on {Audio, Speech and Language Processing; Image Processing; Information Forensics and Security; Signal Processing} -- more if I didn't already get close to everything in the IEEE library for free simply by tagging the university proxy suffix to the domain name.
06:37:11 <fizzie> At least they'll send a print copy of their glossy magazine, if I understood correctly. After the inevitable collapse, I can use it to keep warm, I guess.
06:38:12 <pikhq> fizzie: Even better: the inevitable collapse will probably have hyperinflation.
06:38:15 <pikhq> And you know what that means!
06:38:33 <pikhq> Billion dollar toilet paper!
06:41:22 <fizzie> I think I have a 50 million mark stamp from Germany (circa 1923) somewhere at home.
06:41:35 <fizzie> (They did make a 50 billion mark stamp too.)
06:47:40 -!- Zwaarddijk has quit (Ping timeout: 240 seconds).
06:48:57 <oerjan> elliott: http://oerjan.nvg.org/esoteric/underload/Numerals.hs
06:48:58 <cheater-> Mathnerd314: are you a troll?
06:50:07 <fizzie> "For each new member you recruit, you earn an award which can be used toward IEEE dues, IEEE Society fees or the purchase of IEEE products and services -- Student Members can earn: US$2 for each Student or Graduate Student member recruited; ..."
06:50:11 <fizzie> It's like a pyramid scheme.
06:50:23 <quintopia> a very cheap one :|
06:50:43 <cheater-> haha
06:50:43 <fizzie> Yes, and only one level deep.
06:50:59 <cheater-> Amwieeey
06:51:29 <fizzie> You do get $15 instead of $2 if you manage to recruit a real person instead of a student.
06:51:39 <quintopia> haha
06:51:43 <cheater-> fizzie: so it's like a simplex scheme, without being a simplicial complex scheme?
06:54:08 <fizzie> After recruiting 12 students I could turn my prize into three IEEE-logo-equipped golf balls: http://www.ieee.corpmerchandise.com/ProductDetail.aspx?did=6180&pid=50132
06:54:11 <fizzie> The amazing.
06:54:44 <fizzie> Not just any golf balls: these have "high lift design for greater distance".
06:55:11 <cheater-> do they use any IEEE published papers in their production?
06:55:23 <cheater-> and if so, would the papers be available for the same cost or less?
06:56:21 <fizzie> The "gifts" section has a "golf umbrella" and those golf balls. I'm getting the impression that a lot of IEEE members play golf.
06:57:23 <cheater-> or, someone *wants* you to be under this impression
06:57:39 <cheater-> in fact it's an international crime ring. the golf is only a cover.
06:57:53 <cheater-> ieee is a cover for the golf is a cover for the crime organization.
06:58:02 <cheater-> is a cover for a pianist club.
06:59:10 <fizzie> Nefarious.
06:59:44 <quintopia> they are the most evil pianists in the world
07:00:03 <cheater-> they are so evil, ALL the keys are black
07:00:13 <pikhq> And electric pianists, no less.
07:00:25 <cheater-> "I feel a disturbance in the black to white key ratio."
07:01:39 <quintopia> they are so evil, they play prepared piano pieces exclusively
07:01:55 <quintopia> and they use chains and brass knuckles to prepare it
07:02:16 <cheater-> oh i thought that's just for bling
07:02:35 <quintopia> they are so evil, they commission pieces from John Cage
07:04:44 <fizzie> Yet another membership benefit: the IEEE Spectrum magazine, the magazine with headlines like "Snakebot Worms Its Way Into Your Heart, Literally: CardioARM, a snake robot from CMU, is designed to navigate around your heart, since what we all definitely need are more robot snakes in our chests"
07:05:49 <fizzie> (Somehow they've managed to make that sound like Annals of Improbable Research.)
07:06:38 <fizzie> Ah, it's a blog: well, that explains the tone.
07:07:32 <cheater-> wtf
07:11:19 <cheater-> fizzie: does ieee have any fight club like rules?
07:12:09 <quintopia> well
07:12:14 <quintopia> you can talk about it
07:12:17 <quintopia> so the first two are out
07:12:33 <quintopia> i think they keep the one about "if this is your first night, you must fight"
07:12:50 <fizzie> They're still just processing my order, so I don't know yet.
07:13:18 <fizzie> There is the Code of Ethics the form asks you to accept, with a delightful drop-down menu that has only "Yes" as an option.
07:13:28 <fizzie> Won't take no for an answer, you see.
07:13:34 <cheater-> if what quintopia says is right, they're about to process your ribcage, too
07:13:38 <fizzie> http://www.ieee.org/about/corporate/governance/p7-8.html
07:17:50 <cheater-> it is ten degrees in my room
07:17:52 <cheater-> what do
07:18:27 <oerjan> first, don't use fahrenheit
07:18:40 <cheater-> it's celsius
07:18:50 <oerjan> YOU DON'T SAY
07:18:56 <cheater-> JUST DID
07:18:58 <oerjan> i left out kelvin as then you would be dead
07:18:59 <cheater-> WHAT U GONNA DO HUH
07:19:03 <quintopia> how many servers do you have turned off that could be turned on :P
07:19:13 <cheater-> well, who knows, maybe i'm a crystalline being
07:19:53 <cheater-> quintopia: haha, so true, well, this 450W psu is only lukewarm if that puts it in perspective for you
07:20:02 <cheater-> and the huge CRT monitor is just plain ol cold.
07:20:15 <fizzie> Start a for(;;); on every box.
07:20:20 <quintopia> :D
07:20:25 <cheater-> i feel like ted kaczynski in his hut
07:20:27 <quintopia> or run LINPACK
07:20:33 <cheater-> i'm already a mathematician
07:20:43 <oerjan> NO RELATION
07:20:44 <cheater-> there's only one thing missing
07:21:01 <fizzie> The monkey?
07:21:02 * cheater- sends elliott a package
07:22:12 <quintopia> IS IT A PARTY HAT?
07:22:15 <quintopia> A CAKE?
07:22:31 <oerjan> THIS PARTY IS THE BOMB
07:23:09 <cheater-> in polish there's this word
07:23:17 <cheater-> or perhaps phrase, "rozerwac sie"
07:23:22 <cheater-> which means to enjoy yourself.
07:23:22 <oerjan> that no one can pronounce
07:23:35 <cheater-> it also means to literally tear yourself apart
07:23:50 <quintopia> so suicide bombers greatly enjoy themselves
07:23:51 <quintopia> got it
07:23:55 <cheater-> not in the "you're tearing me apart lisa" way, more in the "party cake" way
07:23:57 <cheater-> yep
07:24:03 <cheater-> :D
07:24:10 <cheater-> "to treat fairly all persons regardless of such factors as race, religion, gender, disability, age, or national origin;"
07:24:13 <cheater-> aha
07:24:24 <cheater-> but NOT according to text editor!!
07:24:42 <oerjan> there must be _some_ limits
07:25:13 <cheater-> sadly no good hits: http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=vi+4+lyfe+tattoo
07:25:18 <quintopia> they are going to shun vi users. because of the close ties between emacs and lisp. and the elitism of lispers
07:25:25 <cheater-> but i'm sure soemone has that
07:25:39 <cheater-> quintopia: lies, emacs is just a TECO script.
07:25:50 <quintopia> VI 4 CHOICE!
07:25:56 * quintopia is pro-choice
07:26:17 <cheater-> quintopia: notice how oerian is very quiet
07:26:25 <cheater-> quintopia: i think oerjan might be non-modal
07:26:54 <quintopia> no, he's definitely modal. he can't talk to us until he is finished engaging in the work of the moment
07:27:04 <cheater-> "oh nooo i use viper mode" yeah whatever oerjan! we know all about your wrongdoings
07:27:09 <cheater-> quintopia: hmm
07:27:35 <cheater-> quintopia: i remember telling him in the past to work on something! so that might be true
07:27:58 <cheater-> quintopia: on the other hand he might just be making a diversion to win time.
07:28:09 <quintopia> he's going to defeat us all
07:28:20 <quintopia> by reducing ul to ():^
07:28:24 <quintopia> :O
07:28:24 <cheater-> no.
07:28:31 <cheater-> he will not defeat..
07:28:34 <cheater-> the pianist club.
07:28:54 <cheater-> although i would be somewhat reluctant to call them "us"
07:29:01 <quintopia> they are already packing up a gift for him
07:29:04 <quintopia> it's a grand piano
07:29:19 <quintopia> like the one that yosemite sam designed
07:29:48 <cheater-> got a pic?
07:30:14 <quintopia> http://en.wikipedia.org/wiki/Ballot_Box_Bunny
07:34:09 <cheater-> heh look what i found
07:34:10 <cheater-> http://en.wikipedia.org/wiki/File:1674_liten.jpg
07:34:19 <cheater-> yes, the file name has the creation date
07:43:25 -!- quintopia has set topic: A bottle of Moxie for everyone; Bugs Bunny hath spoken. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
07:51:47 <cheater-> http://en.wikipedia.org/wiki/File:Basic_interpreter_on_the_DVK_computer.JPG
07:52:05 <cheater-> is there an esoteric language in cyrillic?
07:53:55 <fizzie> Heh, they write the "BASIC" part as "BEJSIK", basically.
07:54:16 <cheater-> yeah
07:54:44 <cheater-> GOST 27975-88 Programming language ALGOL 68 extended - Язык программирования АЛГОЛ 68 расширенный
07:55:42 <cheater-> ohhhh http://en.wikipedia.org/wiki/Chinese_BASIC
07:55:55 <cheater-> Chinese BASIC
07:55:55 <cheater-> commands are printed in blue Applesoft BASIC
07:55:55 <cheater-> 10 卜=0 10 Y=0
07:55:55 <cheater-> 20 入 水, 火 20 INPUT E, F
07:55:55 <cheater-> 30 從 日 = 水 到 火 30 FOR A = E TO F
07:55:55 <cheater-> 40 卜 = 卜+對數(日) 40 Y = Y + LOG (A)
07:55:57 <cheater-> 50 下一 日 50 NEXT A
07:55:59 <cheater-> 60 印 卜 60 PRINT Y
07:57:27 <cheater-> http://en.wikipedia.org/wiki/Rapira
07:57:43 <cheater-> ПРОЦ СТАРТ()
07:57:43 <cheater-> ВЫВОД: 'Привет, мир!!!'
07:57:43 <cheater-> КОН ПРОЦ
07:58:31 <quintopia> /kick cheater-
07:58:50 <cheater-> wat
07:58:52 <cheater-> why now
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:11:01 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
08:13:41 <cheater-> i have really underestimated ftp://publications.ai.mit.edu/ - it is 20 gigabytes
08:19:59 <cheater-> capital at sign: http://scienceblogs.com/pharyngula/2008/08/atheism_symbol.php
08:38:57 -!- MigoMipo has joined.
09:01:23 -!- cheater- has quit (Ping timeout: 240 seconds).
09:01:54 -!- cheater00 has joined.
09:13:15 -!- FireFly has joined.
09:34:50 -!- MigoMipo has quit (Read error: Connection reset by peer).
09:52:28 -!- oerjan has quit (Quit: leaving).
10:06:33 -!- cheater00 has quit (Ping timeout: 240 seconds).
10:19:58 -!- cheater00 has joined.
10:33:06 -!- ais523 has joined.
10:38:26 -!- BeholdMyGlory has joined.
11:01:02 -!- azaq23 has joined.
11:01:05 -!- BeholdMyGlory has quit (Remote host closed the connection).
11:05:32 -!- pikhq has quit (Ping timeout: 246 seconds).
11:05:36 -!- pikhq_ has joined.
11:20:39 -!- qweqwe has joined.
11:20:44 <qweqwe> eee
11:20:54 <qweqwe> nobody here?
11:21:53 -!- qweqwe has left (?).
11:28:44 -!- FireFly has quit (Quit: swatted to death).
11:37:15 -!- Mannerisky has quit (Ping timeout: 250 seconds).
12:15:49 -!- miekko has joined.
12:26:02 -!- myndzi has quit (Ping timeout: 260 seconds).
12:39:52 -!- augur has quit (Remote host closed the connection).
12:55:36 -!- pikhq has joined.
12:55:52 -!- pikhq_ has quit (Ping timeout: 272 seconds).
13:00:02 -!- sftp has joined.
13:00:35 -!- myndzi has joined.
13:02:41 <ais523> hmm, I just put a new language, http://esolangs.org/wiki/Checkout, onto the wiki
13:02:49 <ais523> its aim is to be faster than machine code, by being lower-level than machine code
13:03:01 <ais523> (that's doable nowadays, because processors have evolved and yet machine codes haven't)
13:03:27 <ais523> a side effect of this is that it can only really be run on a GPU without an abstraction inversion, as there's no way to instruct CPUs to deal with things at the right level
13:06:24 * Sgeo wonders if Clojure has stuff similar to Racket's send* and with-method
13:06:31 <Sgeo> It would be pretty stupid not to, but
13:06:53 <Sgeo> I know that Clojure calls send .
13:07:11 <Sgeo> No, I'm not learning Clojure right now. I'm re-picking-up Racket
13:17:58 -!- FireFly has joined.
13:19:54 -!- augur has joined.
13:53:06 -!- cheater00 has quit (Ping timeout: 246 seconds).
13:54:41 -!- augur has quit (Remote host closed the connection).
13:55:08 -!- cheater00 has joined.
14:05:58 -!- BeholdMyGlory has joined.
14:15:45 -!- ais523 has quit (Remote host closed the connection).
14:17:01 -!- augur has joined.
14:30:30 -!- iconmaster[1] has joined.
14:31:59 -!- iconmaster[1] has quit (Read error: Connection reset by peer).
14:44:22 -!- iconmaster[1] has joined.
14:48:30 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:59:51 -!- pikhq_ has joined.
14:59:55 -!- pikhq has quit (Ping timeout: 246 seconds).
15:03:36 -!- Sgeo has quit (Ping timeout: 240 seconds).
15:15:18 -!- copumpkin has joined.
15:20:28 -!- pikhq has joined.
15:20:49 -!- pikhq_ has quit (Ping timeout: 272 seconds).
15:27:51 -!- Phantom_Hoover has joined.
15:29:40 -!- pumpkin has joined.
15:32:06 -!- copumpkin has quit (Ping timeout: 246 seconds).
15:34:46 -!- pumpkin has quit (Ping timeout: 250 seconds).
15:35:12 <Phantom_Hoover> http://www.freedom2measure.org/
15:35:33 -!- copumpkin has joined.
15:36:00 <Phantom_Hoover> I can't think of something worth saying on that.
15:36:44 <Phantom_Hoover> Apparently metric units are sexist.
15:37:40 <Phantom_Hoover> And undemocratic.
16:04:46 -!- elliott has joined.
16:05:46 <Gregor> laaaaaaaaaaawl
16:05:48 <Gregor> "The metric system has been almost wholly created and standardized by male scientists and bureaucrats. At the time, during which women were considerably less liberated than today, woman had virtually no say in the creation and, in many countries, the imposition of these units. Perhaps, if they had, the value of the practical units used in those tasks undertaken by woman at the time would have been recognized."
16:05:57 <Gregor> That is the most sexist way you could possibly claim that metric units are sexist.
16:05:58 <elliott> Gregor: what
16:06:11 <elliott> "Perhaps, if they had, the value of the practical units used in those tasks undertaken by woman at the time would have been recognized."
16:06:12 <elliott> like what
16:06:14 <elliott> cooking units?
16:06:15 <elliott> :>
16:06:21 <Gregor> Apparently :P
16:07:03 <elliott> 22:48:57 <oerjan> elliott: http://oerjan.nvg.org/esoteric/underload/Numerals.hs
16:07:12 <elliott> today i discovered the meaning of overengineering
16:07:18 <elliott> - Detect initial numeral by partial emulation.
16:07:19 <elliott> - church' <emulated stack with program positions>
16:07:19 <elliott> - <remaining operations with program positions>
16:07:19 <elliott> - = <stack at last emulatable point with program positions>
16:10:32 <elliott> 05:02:41 <ais523> hmm, I just put a new language, http://esolangs.org/wiki/Checkout, onto the wiki
16:10:32 <elliott> 05:02:49 <ais523> its aim is to be faster than machine code, by being lower-level than machine code
16:10:32 <elliott> 05:03:01 <ais523> (that's doable nowadays, because processors have evolved and yet machine codes haven't)
16:10:32 <elliott> 05:03:27 <ais523> a side effect of this is that it can only really be run on a GPU without an abstraction inversion, as there's no way to instruct CPUs to deal with things at the right level
16:10:32 <elliott> <3
16:11:44 <elliott> Gregor: "You should not have to defend your right to keep your heritage"
16:11:49 <elliott> Gregor: That's why interracial marriage is illegal.
16:11:56 <Gregor> elliott: I nose, rite
16:12:14 <elliott> [[As for evidence of this, consider the fact that man was put on the Moon, a task requiring almost unimaginable accuracy and precision, using American units. If you think that that is out of date ... the Space Shuttle Program runs with American units ... as does every Boeing coming off the assembly line today.]]
16:12:22 <elliott> I seem to recall an accident with a Mars rover...
16:12:31 <elliott> "Metricators will sometimes say that decimals are more accurate than fractions."
16:12:32 <elliott> What?
16:12:55 <Gregor> This whole site is so hilariously retarded, but I can't read it because of that obnoxious waving flag X-P
16:13:28 <elliott> "This is because we do not convert between different scales of units of temperature (i.e. we do not speak in millidegrees of Petadegrees etc.)"
16:13:31 <elliott> Maybe you don't.
16:13:52 <elliott> "Furthermore, since the size of a degree Fahrenheit is smaller that that of a degree Centigrade, when describing the temperature around us Fahrenheit is more accurate!"
16:13:58 <Gregor> Apparently we do speak in "millimeters of petameters" though?
16:14:09 <elliott> I love how they dismiss things as useless and then say that Fahrenheit is INFINITESIMALLY MORE ACCURATE
16:14:21 <elliott> "Another factor is that our customary units are simply more human because they are developed in reference to the scale of the human body."
16:14:24 <elliott> This guy must have gigantic feet.
16:14:34 <elliott> "The naming system of the metric system is systematic but repetitive. Humans find words that are distinct easier to store."
16:14:38 <elliott> Now you're just fucking with me.
16:21:47 <elliott> Gregor: "Strictly speaking, the international bureaucrats who try to impose measurements on people, do not promote the metric system but the Système International (or "SI"). The difference is that SI excludes many metric units. For example, centimeters are not part of SI. For measurement of distance, millimeters are ok, meters too and also kilometers but not centimeters."
16:21:48 <elliott> Phantom_Hoover: ^
16:21:50 <elliott> ...
16:21:55 <elliott> Prefixes. wut are dey?
16:22:22 -!- azaq23 has quit (Ping timeout: 264 seconds).
16:22:48 -!- azaq23 has joined.
16:24:28 <elliott> argh
16:24:31 <elliott> it won't work
16:25:23 <elliott> Gregor: "Also write to companies. Companies listen to consumers for commercial reasons. If they realize that a law is making their customers unhappy they will lobby against that law."
16:25:35 <elliott> Gregor: It takes a special kind of person to look corporatism straight in the face and say, "I like it."
16:25:44 <elliott> (From that metric page.)
16:35:21 <elliott> Gregor: http://www.mail-archive.com/usma@colostate.edu/msg26369.html SECRET METRICATORS PLOTTING AGAINST AMERICAN WEBSITES
16:37:11 <fizzie> elliott: You're such a METRICATOR.
16:37:30 -!- elliott has set topic: Metricator's Association of Anti-America | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:37:44 <fizzie> Also I wrote that as a response to the "metricators will sometimes" comment, not the latest.
16:39:27 -!- Gregor has set topic: Metricators' Association of Anti-America | Togethre we can destroy American heritage with metric units | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:41:53 <elliott> Togethre :D
16:42:02 <elliott> *Metricatre's
16:42:08 <elliott> *Metricatres'
16:44:56 <iconmaster[1]> Lol, Down with the American measurment system!
16:45:02 -!- MigoMipo has joined.
16:45:50 -!- iconmaster[1] has changed nick to iconmaster.
16:46:04 <iconmaster> I like Metric better btw
16:52:00 <fizzie> Down with uppity reptiles.
16:53:24 * elliott posts a longcat-is-long comment on http://esolangs.org/wiki/Talk:Chalcraft-Greene_train_track_automaton
17:09:51 -!- zzo38 has joined.
17:16:16 -!- Behold has joined.
17:18:45 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
17:19:15 <fizzie> elliott: You're an "elitist leftie academic"?
17:19:21 <elliott> ABSOLUTELY.
17:19:33 <elliott> fizzie: I support the metric system so how could I not be?
17:19:39 <fizzie> Well, there's that.
17:19:45 <elliott> Maybe I should insert "metricator" in there.
17:25:43 -!- BeholdMyGlory has joined.
17:28:33 <zzo38> Is the IRC logs searchable?
17:28:43 -!- cheater00 has quit (Ping timeout: 240 seconds).
17:29:23 <elliott> zzo38: If you grep them.
17:29:39 -!- Behold has quit (Ping timeout: 276 seconds).
17:30:09 <zzo38> elliott: So that means I would need to download all of them? Is it possible to telnet to there to avoid downloading all of them?
17:30:29 <elliott> zzo38: No. You can get them from hg, Gregor has a repository.
17:30:34 <elliott> You can keep it updated with "hg pull; hg update".
17:30:37 <elliott> Ask him for the link.
17:30:50 -!- cheater00 has joined.
17:34:29 -!- Sgeo has joined.
17:36:29 -!- Behold has joined.
17:37:14 <fizzie> Or "hg pull -u". Still involves a local copy, tho.
17:37:29 <cheater00> good afternoon
17:37:36 <cheater00> how is the life of everyone here?
17:37:36 <fizzie> Google does index some of the logs, I think I've hit them in searches.
17:39:24 <fizzie> Something like "url:tunes.org/~nef/logs/esoteric site:tunes.org <search term here>" can work.
17:39:26 -!- BeholdMyGlory has quit (Ping timeout: 246 seconds).
17:39:53 <fizzie> It's not very good, though.
17:40:29 <zzo38> I tried Google, it doesn't work very wekk
17:41:28 <cheater00> Did you mean: I tried Google, it doesn't work very wekk?
17:41:32 <cheater00> Did you mean: I tried Google, it doesn't work very well?
17:43:07 <elliott> !info
17:43:11 <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
17:43:52 -!- elliott has set topic: hmm.
17:43:56 <elliott> Cool, EgoBot is broken
17:44:00 <elliott> *broken.
17:44:01 <elliott> (https://codu.org/projects/egobot/hg/index.cgi/rev/c6a7fee953ca)
17:44:25 <zzo38> s/wekk/well/
17:44:51 <elliott> !gforth_quit
17:45:28 <elliott> 308 /* Tailcat optimisation: if nothing else is using the stack
17:45:28 <elliott> 309 element we're catting to, just change its next pointer to do
17:45:28 <elliott> 310 the catting directly. */
17:45:29 <elliott> tailcat :3
17:45:32 <elliott> oerjan still isn't here, gah
17:45:52 -!- jix has quit (Quit: leaving).
17:46:03 -!- jix has joined.
17:46:44 -!- BeholdMyGlory has joined.
17:47:06 <cheater00> http://9gag.com/gag/80950
17:47:10 <cheater00> NOOOOOOOOOOOOOOOOOoooooooooooooooooooooooooooooooooooooooooooooooooooooooo
17:48:13 <elliott> WHERE IS OERJAN
17:48:17 <elliott> fizzie: summon him with your op powers.
17:48:59 <fizzie> /cast summon bigger fi.. I mean, oerjan
17:48:59 <fizzie> * CAST :Unknown command
17:49:07 <zzo38> How do you summon him with op powers?
17:49:53 -!- pikhq has quit (Ping timeout: 240 seconds).
17:50:04 -!- pikhq has joined.
17:50:07 <fizzie> What's this about oerjan, anyway?
17:50:16 <fizzie> Maybe if you just speak his name thrice.
17:50:30 <zzo38> Mine in the only one with SUMMON and even in that case you can only call the users on the computer which is the server computer.
17:50:35 -!- Behold has quit (Ping timeout: 276 seconds).
17:50:57 <zzo38> fizzie: Three is not enough. You need pi at least.
17:51:14 <elliott> oerjan oerjan oerjan (oerjan)
17:51:20 <elliott> fizzie: His function is inadequate :P
17:53:09 <fizzie> Even the latest ircnet ircd (2.10.3p3) still supports SUMMON if you just define ENABLE_SUMMON in config.h, but people generally don't.
17:53:23 <fizzie> It's not like there's usually really people logged on the servers.
17:55:41 <zzo38> I am the only one then, that has enabled SUMMON
17:56:11 <variable> https://blogs.msdn.com/b/ericlippert/archive/2011/02/14/what-would-feynman-do.aspx -> semi funny (very) semi serious
17:56:22 <fizzie> irc.netsplit.de lists 753 known networks, I'm sure at least *one* has some sort of a summon, if only by accident. :p
17:56:45 <elliott> oh, hey, it might work.
17:56:58 -!- Xawu has joined.
17:57:37 <zzo38> fizzie: Then, see if there are some
17:57:42 <Xawu> Helli
17:57:42 <Phantom_Hoover> "The site's security certificate is not trusted!"
17:57:44 <Phantom_Hoover> XD
17:57:56 <variable> Phantom_Hoover: hrm? doesn't do that for me
17:57:58 <zzo38> Xawu: Yes?
17:58:12 <Xawu> Yes
17:58:29 <Vorpal> Phantom_Hoover, same
17:58:34 <elliott> [Church 18446744073709551616 (Quote [Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,C
17:58:34 <elliott> at,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat]),Quote [Swap,Dup,Cat,Swap,Dup,Call]]
17:58:37 <elliott> Now I just need "deduplication".
17:59:26 -!- Xawu has left (?).
17:59:29 -!- zzo38 has quit (Remote host closed the connection).
18:00:48 <elliott> Now it's niiice and slow.
18:02:14 <elliott> What an odd infinite loop.
18:02:27 <elliott> Oh, hah.
18:02:52 <elliott> Huh? That didn't fix it?
18:04:03 <Phantom_Hoover> elliott, what was the name of that differentiation thing you were fiddling with a while back?
18:04:09 <elliott> Automatic differentiation?
18:04:13 <elliott> (= Dual numbers)
18:06:00 <Phantom_Hoover> Yeah.
18:06:32 <Vorpal> elliott, hm what are you doing.
18:06:34 <Phantom_Hoover> Did you actually link to a proof that f(x+d) = df'(x) + f(x)?
18:06:43 <elliott> Vorpal: You mean the debug output?
18:06:46 <Vorpal> elliott, I suspect something related to underload
18:06:48 <Vorpal> elliott, yes
18:06:56 <elliott> Vorpal: Yes, I'm writing an advanced Underload interpreter (more advanced than derlo).
18:07:05 <Vorpal> elliott, advance as in optimising?
18:07:07 <elliott> Phantom_Hoover: I think I trivially proved it; it's a simple algebraic derivation, ISTR.
18:07:20 <olsner> elliott: you're calling it nderl, right?
18:07:26 <elliott> Vorpal: As in structure sharing (not string-based), recognises Church numerals.
18:08:01 <elliott> olsner: Actually my compiler was going to be called unad because it's Underload with the derlo taken out, but no, this one's called relief (overload -> ... -> opposite -> relief)
18:08:04 <Vorpal> elliott, right
18:08:42 <olsner> overload -> opposite -> boredom?
18:08:55 <elliott> I think it was like overload -> burdened -> stress -> relief.
18:09:03 <elliott> Because of course underload is the opposite of overload.
18:09:07 <elliott> (being a tarpit of overload)
18:09:07 <cheater00> (about a haskell-based Coq-alike) "i'd love for it to become more mainstream"
18:09:15 <Vorpal> <Phantom_Hoover> Did you actually link to a proof that f(x+d) = df'(x) + f(x)? <-- err... Are there any special assumptions for that statement?
18:09:44 <Phantom_Hoover> d^2 = 0.
18:10:26 <Vorpal> Phantom_Hoover, is this in R? If so yes f(x+0) = 0*anything + f(x) :P
18:10:37 <elliott> Obviously, it's not in R.
18:10:44 <Vorpal> elliott, then what is the domain.
18:10:52 <elliott> Read.
18:10:57 <elliott> <elliott> (= Dual numbers)
18:10:59 <Vorpal> elliott, how far back?
18:11:03 <elliott> That far back.
18:11:05 <elliott> Whole lines.
18:11:11 <elliott> Three, in fact, before his message.
18:11:32 <Vorpal> ah.
18:11:37 <elliott> [[One application of dual numbers is automatic differentiation. Consider the real dual numbers above. Given any real polynomial P(x) = p0+p1x+p2x2+...+pnxn, it is straightforward to extend the domain of this polynomial from the reals to the dual numbers. Then we have this result: P(a+bε) = P(a)+bP ′(a)ε, where P′ is the derivative of P. By computing over the dual numbers, rather than over the reals, we can use this to compute derivatives of
18:11:37 <elliott> polynomials. More generally we may define division of dual numbers and then go on to define transcendental functions of dual numbers by defining f(a+bε) = f(a)+bf ′(a)ε. By computing compositions of these functions over the dual numbers and examining the coefficient of ε in the result we find we have automatically computed the derivative of the composition.]]
18:11:42 <elliott> Mrf, doesn't prove it.
18:11:53 <elliott> Phantom_Hoover: Perhaps I copied the proof from elsewhere; I recall it was quite elegant
18:12:04 <elliott> *elegant.
18:12:08 <elliott> Phantom_Hoover: Although I suspect a proof would likely depend on the operator definitions.
18:12:13 <elliott> Since those are the things that do the "real" differentiation.
18:12:29 <elliott> Also: "There's not really a need to explicitly write out the expressions for operations such as exponentiation. For any binary function on the reals, f, the natural extension to dual numbers is given by f(a+be,c+de) = f(a,c)+(b f1(a,c)+d f2(a,c))e, where f1 and f2 are the two partial derivatives of f with respect to its arguments. Sigfpe 01:02, 14 December 2006 (UTC)"
18:13:06 -!- Sgeo has quit (Ping timeout: 240 seconds).
18:13:26 <Phantom_Hoover> Oh, of course, it's just expanding the polynomial.
18:13:30 -!- cheater00 has quit (Ping timeout: 240 seconds).
18:15:02 -!- cheater00 has joined.
18:31:06 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
18:31:36 -!- Sgeo has joined.
18:40:18 <elliott> So what's a decent Nintendo 64 emulator.
18:49:55 <elliott> p == q = toQ p == toQ q
18:49:57 <elliott> Where toQ is Obj -> Obj.
18:50:00 <elliott> HURF DURF
18:53:08 <elliott> $ time ./relief '(:*)(~:*:S(/)S~:^):^' >foo
18:53:08 <elliott> real0m10.685s
18:53:08 <elliott> $ ls -lh foo
18:53:08 <elliott> -rw-r--r-- 1 elliott elliott 156M 2011-02-22 19:22 foo
18:53:10 <elliott> I think that's a record.
19:01:52 <elliott> str Main 57.8 66.4
19:01:52 <elliott> putResult Main 18.2 1.0
19:01:52 <elliott> cat Main 18.2 32.5
19:01:52 <elliott> strOp Main 5.9 0.0
19:01:54 <elliott> str: SO EXPENSIVE.
19:10:35 -!- pikhq_ has joined.
19:10:39 -!- pikhq has quit (Ping timeout: 260 seconds).
19:13:20 <elliott> OK, running with oerjan's insane disclaimed Turing machine gives a better profile.
19:13:44 <elliott> Unsurprisingly the interpreter itself is taking most of the time; cat is second and == is fourth.
19:13:49 <elliott> cat's time is probably mostly taken up by ==.
19:13:55 <elliott> cat Main 742 49504232 27.3 43.1 43.5 49.7
19:13:55 <elliott> ==_a1ie Main 743 30527845 10.1 6.6 16.1 6.6
19:13:55 <elliott> ==_a1hS Main 745 30056779 4.3 0.0 4.3 0.0
19:13:56 <elliott> Indeed.
19:14:07 <elliott> So if I can optimise == somehow...
19:14:15 <elliott> Maybe deduplicate slightly less.
19:17:36 <olsner> implement == using an unsafe pointer comparison? :D
19:17:59 -!- Wamanuz5 has quit (Remote host closed the connection).
19:18:15 <olsner> look at the core, make stuff more strict, add some inline pragmas
19:18:15 -!- miekko has quit (Ping timeout: 250 seconds).
19:18:28 -!- Wamanuz5 has joined.
19:18:55 <elliott> olsner: I tried that pointer comparison thing in fact
19:19:02 -!- miekko has joined.
19:19:05 <elliott> but it didn't work, and besides, i think I need to deduplicate slightly smarter than that
19:19:09 <elliott> although I'm not sure about that
19:19:29 <elliott> olsner: I dunno why it didn't work though, in (x:x:xs) I'd expect the two xs to be pointerdentical. is that a word?
19:20:00 <elliott> I've added some strictness annotations to the stack that seem to help but that was a while ago. inlining might help.
19:20:03 <olsner> you can never be sure about pointerdenticality
19:20:08 <elliott> olsner: yes yes :)
19:20:11 <elliott> what is it again, just {-# INLINE #-} above the function?
19:20:20 <elliott> olsner: Possibly I could reimplement it as pointerdentical || slow.
19:20:43 <olsner> exactly, use pointerdentity as a fast-and-ugly comparison that sometimes works
19:20:51 -!- ineiros_ has quit (Ping timeout: 250 seconds).
19:21:00 <elliott> olsner: yeah but afaict it _never_ works :)
19:21:09 <elliott> as in, the only time cat would ever call it, it never seems to trigger
19:21:15 <olsner> hmm, that sucks
19:21:24 -!- ineiros has joined.
19:21:51 <olsner> but you should probably start by looking at the core to see what's being done lazily that doesn't have to
19:21:56 <elliott> two finns in several minutes returning, INTERESTING
19:22:02 <elliott> olsner: yeah, I guess I had better learn Core sometime ...
19:22:10 <elliott> at least thanks to oerjan i can reasonably claim the title of "smartest" underload interpreter, if perhaps not the fastest
19:22:26 <elliott> olsner: I have this sneaking feeling that this project will end up being converted to C once I figure out how it should work :)
19:23:01 <olsner> one trick, if those x's are something small like bytes, is to make your own list that is only lazy in the spine, but stores them unboxed
19:23:22 <elliott> olsner: They are *so* not something small.
19:23:25 <elliott> Big complex structures.
19:23:35 <elliott> data Obj = Church Integer Obj -- Obj is for printing
19:23:35 <elliott> | Quote [Op]
19:23:35 <elliott> | Catn Obj Obj
19:23:36 <elliott> | Rept Integer Obj -- FIXME: Use for more things
19:23:38 <olsner> oh noes
19:23:38 <elliott> deriving (Show)
19:23:40 <elliott> That's an x :P
19:23:52 -!- iconmaster has quit (Ping timeout: 240 seconds).
19:24:09 <elliott> olsner: I never access more than one element down, too, so an array probably wouldn't help
19:28:07 <olsner> hmm, how boring
19:28:15 <elliott> hmm, I forgot to use -O2 when profiling
19:28:20 <elliott> let's try that again
19:28:22 <olsner> uh oh
19:28:28 <elliott> olsner: i doubt it'll change much :P
19:29:10 <olsner> probably not that much no :)
19:29:47 <elliott> heh, well it did a bit actually
19:29:51 <elliott> cat is now only 2.1%, somehow
19:29:57 <olsner> elliott: cabal install ghc-core now, then ghc-core foo.hs
19:30:02 <elliott> but, indeed, looks like == is still a major cost centre.
19:30:08 <elliott> and... >>= ... is apparently taking 5.1% of the time
19:30:09 <elliott> X-D
19:30:16 <elliott> olsner: oh i was gonna use -fext-core
19:30:18 <elliott> but that sounds nice
19:30:26 <elliott> you forgot -O2 though :)
19:30:30 <olsner> it's super convenient
19:30:37 <olsner> and I think it adds -O2 by default
19:30:40 -!- Sgeo has quit (Ping timeout: 240 seconds).
19:30:40 <elliott> ah
19:31:15 <elliott> [1 of 6] Compiling Language.Haskell.Lexer.Tokens ( Language/Haskell/Lexer/Tokens.hs, dist/build/Language/Haskell/Lexer/Tokens.o )
19:31:15 <elliott> Language/Haskell/Lexer/Tokens.hs:1:0:
19:31:15 <elliott> Warning: Module `Prelude' is deprecated:
19:31:16 <elliott> :-D
19:32:01 <olsner> I think that's the base-3 prelude getting imported
19:32:30 <elliott> olsner: I carefully redacted that to make it more amusing
19:33:01 <elliott> olsner: Oh gosh, it's all colourised and fancy.
19:33:05 <olsner> it's a bit annoying the whole base-3/4 thing and the weird stuff that cabal does with it
19:33:11 <olsner> yes, super convenient!
19:33:17 <elliott> I have to question the readability of medium purple on dark purple, though. Thanks Ubuntu!
19:33:34 <elliott> main11 =
19:33:34 <elliott> unpackCString#
19:33:34 <elliott> "Pattern match failure in do expression at relief.hs:217:2-7"
19:33:38 <elliott> Heh.
19:33:41 -!- Slereah has quit (Ping timeout: 240 seconds).
19:33:43 <elliott> (I do [foo] <- getArgs.)
19:34:12 <elliott> a1_r2Yc :: ChElem
19:34:12 <elliott> GblId
19:34:12 <elliott> a1_r2Yc = ChStr a_r2Ya
19:34:12 <elliott> a2_r2Ye :: (ChElem, Int)
19:34:12 <elliott> GblId
19:34:13 <elliott> a2_r2Ye = (a1_r2Yc, $fShowResult1)
19:34:14 <elliott> olsner: super convenient.
19:34:35 <elliott> I think Parsec does insane things to core X-D
19:34:43 <olsner> you can read that as "omg why is it doing all this crap"
19:34:45 -!- Slereah has joined.
19:34:52 <olsner> and then you remove it and it goes faster :P
19:34:58 <elliott> olsner: that's just from church'. which is only called during parsing.
19:35:04 <elliott> ok i plan to call it in cat, but don't yet
19:35:25 <elliott> a6_r2Yu =
19:35:26 <elliott> __inline_me (\ (@ b_X2eh)
19:35:28 <elliott> best primitive name evar
19:35:41 <olsner> __inline_me?
19:35:51 <elliott> GHC put it there, it seems :P
19:36:39 <olsner> not quite sure what it means though - obviously it wasn't inlined
19:36:51 <elliott> olsner: Probably it gets inlined after Core.
19:36:55 <elliott> I hear there are multiple stages of inlining.
19:37:16 <elliott> main3 :: forall a_aUA.
19:37:17 <elliott> Result String a_aUA
19:37:17 <elliott> -> State# RealWorld
19:37:17 <elliott> -> (# State# RealWorld, () #)
19:37:19 <elliott> Gotta love IO's real type.
19:37:32 <olsner> I guess you can check the assembly to see what actually happened to it in the end
19:37:48 <elliott> Yeah, reading GHC-generated assembly is not on my todo list.
19:37:59 <elliott> So wait, what do I grep for laziness :-)
19:38:04 <elliott> I haven't seen any explicit laziness yet.
19:38:28 <olsner> you see it as pattern matching
19:38:45 <elliott> Just "case" then?
19:38:56 <elliott> case elem
19:38:56 <elliott> @ Char $fEqChar c_a2bL lvl2_r2Yo
19:38:56 <elliott> of _ {
19:38:56 <elliott> False -> True; True -> False
19:38:56 <elliott> }
19:38:57 <elliott> lol, parsec
19:39:30 <olsner> and I think you can see when thunks get allocated instead of plain values getting returned
19:39:54 <elliott> This would probably be readable if I put my Parsec shit into another module.
19:40:32 <olsner> for something simple like Int, you can see if it gets unboxed by checking if it's pattern matched to I#
19:41:22 <elliott> case ds_d1pK of wild_B1 {
19:41:22 <elliott> __DEFAULT ->
19:41:22 <elliott> case dataToTag# @ Op wild_B1 of a#_aQ5 { __DEFAULT ->
19:41:22 <elliott> case dataToTag# @ Op ds1_d1pL
19:41:22 <elliott> of b#_aQ6 { __DEFAULT ->
19:41:23 <elliott> ==# a#_aQ5 b#_aQ6
19:41:25 <elliott> }
19:41:27 <elliott> };
19:41:29 <elliott> "What the hell is going on here."
19:41:41 <elliott> olsner: No results for I#, hooray :P ... but I don't really have ints in my program
19:41:48 <elliott> Mostly Integers.
19:41:53 <olsner> hmm, dataToTag#, does that imply you're using Data and stuff?
19:42:08 <elliott> I'm not.
19:42:27 <elliott> I've absolutely no idea what that is about; it looks to be the automatically-generated ... yeah.
19:42:31 <elliott> olsner: it's the auto-derived Eq instance
19:42:37 <elliott> seems like it handles all zero-argument constructors
19:42:42 <elliott> with the recursive ones and ones with strings handled
19:42:47 <elliott> I guess it's doing some kind of direct comparison
19:42:59 <elliott> *handled separately
19:43:21 <olsner> aha, I see, it's checking if it's the same constructor in both arguments
19:43:31 <olsner> by extracting the magic
19:44:07 <elliott> Glad _you_ can read it.
19:44:41 <olsner> the "case ds_d1pK of foo" might imply that it's being lazy (do you need laziness here?)
19:45:56 <olsner> is there some way for me to test this? the source?
19:47:15 <elliott> olsner: I could give you the source if you really want to de-lazify my program :-P ... although it does rely on laziness for the Result structure... anyway
19:47:17 <elliott> It's pretty ugly though
19:47:32 <elliott> But hey, it contains the code of oerjan, writer of half the Haskell-98 report, how bad can it be?
19:47:47 <elliott> olsner: http://sprunge.us/EXjf
19:47:51 <olsner> what, oerjan wrote the report?
19:49:25 <elliott> olsner: he wrote, er, several typo corrections!
19:49:30 <elliott> By which I mean: several MILLION
19:50:31 <olsner> bork bork, which parsec does that need?
19:51:03 <elliott> olsner: 3. it's shiny
19:51:07 <elliott> olsner: (You can tell because 3 = Text.Parsec)
19:51:17 <elliott> And Text.ParserCombinators.Parsec = 2 or 3's back-compat :P
19:51:43 <elliott> olsner: I half plan to port it over to bytestring/attoparsec but I don't see that as a huge bottleneck right now
19:51:54 <olsner> crap, I have 2
19:53:21 <elliott> olsner: Just cabal install 'parsec>=3', works fine
19:53:22 <elliott> :P
19:53:34 <elliott> It's only a problem if you have dependencies which end up depending on both IME
19:59:38 <quintopia> http://andrewvos.com/2011/02/21/amount-of-profanity-in-git-commit-messages-per-programming-language/
20:00:43 <elliott> So basically, PHP devs are really carefree.
20:00:44 <elliott> Or just stuck-up.
20:00:54 <elliott> Pythonerifiers... definitely stuck-up.
20:04:02 <elliott> I bet olsner's made my code SO FAST
20:06:34 -!- augur has quit (Remote host closed the connection).
20:07:58 -!- TLUL has joined.
20:09:24 -!- augur has joined.
20:11:35 -!- cheater00 has quit (Ping timeout: 240 seconds).
20:11:48 -!- ineiros has quit (*.net *.split).
20:11:49 -!- BeholdMyGlory has quit (*.net *.split).
20:11:49 -!- EgoBot has quit (*.net *.split).
20:11:49 -!- Zuu has quit (*.net *.split).
20:11:49 -!- quintopia has quit (*.net *.split).
20:11:49 -!- Ilari has quit (*.net *.split).
20:11:49 -!- Ilari_antrcomp has quit (*.net *.split).
20:12:57 -!- cheater00 has joined.
20:14:55 <olsner> elliott: when you have "one Swap !(x:y:xs)", the pattern matching itself makes sure the second argument is forced - and it will stay forced for the remaining patterns as well :)
20:15:05 <olsner> (so most of the !'s are redundant)
20:15:15 <elliott> olsner: right, those were added as a really quick-hack attempt to see if it went faster
20:15:19 <elliott> when it did, i didn't bother cleaning it up :)
20:15:27 <Deewiant> Well, it's nice to have behaviour that doesn't depend on the pattern order
20:18:24 <Gregor> lawl @ the JS chunk :P
20:18:25 <Gregor> JSers curse like sailors.
20:20:15 <elliott> Gregor: It's because their language is just so, so bad.
20:20:18 <elliott> They can barely cope.
20:20:39 -!- BeholdMyGlory has joined.
20:22:29 <Gregor> elliott: Frankly I think it's because most of them have been /forced/ to use it, rather than coming to it like any other language *shrugs*
20:22:41 <Gregor> Uhhh, this is a bad /topic
20:22:59 <elliott> Gregor: Yeah, I was trying to see if your evil EgoBot force-"esoteric programming languages"-to-be-in-topic thing worked.
20:23:01 <elliott> It doesn't.
20:23:06 <elliott> (Thank god.)
20:23:37 <Gregor> I removed it after everybody complained.
20:23:50 -!- Gregor has set topic: It sure is boring around here, I just wonder what Gannon's up to! | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:24:30 <Gregor> Apparently it's "Ganon" :P
20:24:35 -!- Gregor has set topic: It sure is boring around here, I just wonder what Ganon's up to! | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:26:19 -!- Sgeo has joined.
20:30:14 -!- iconmaster has joined.
20:30:14 -!- ineiros has joined.
20:30:14 -!- EgoBot has joined.
20:30:14 -!- Zuu has joined.
20:30:14 -!- quintopia has joined.
20:30:14 -!- Ilari has joined.
20:30:14 -!- Ilari_antrcomp has joined.
20:30:14 -!- zelazny.freenode.net has set topic: hmm.
20:30:16 <iconmaster> ...
20:30:16 <iconmaster> OK, im seriouly freaked out now.
20:30:16 <iconmaster> SAY SOMETHING GUYS!!!!!!
20:30:16 -!- iconmaster has left (?).
20:30:16 -!- iconmaster has joined.
20:30:24 <Gregor> ... wtf
20:30:26 -!- Gregor has set topic: It sure is boring around here, I just wonder what Ganon's up to! | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:30:31 <iconmaster> That was crazy.
20:30:43 <Gregor> iconmaster: That was a netsplit :P
20:30:53 <iconmaster> You guys kept coming and leaving and not saying anything.
20:30:57 -!- pumpkin has joined.
20:31:22 <Gregor> <iconmaster> I'm afeared o' the big bad netsplit waaaaah
20:31:33 <Gregor> :P
20:31:35 <elliott> That wan't a netsplit.
20:31:48 <elliott> Well, might have been.
20:31:51 <iconmaster> Exept Ilari. He managed to say something to me. Is that normal?
20:31:52 <elliott> It looks like one of those strange desyncs.
20:32:01 <elliott> iconmaster: Well that sounds like a netsplit.
20:32:03 <elliott> But Ilari is just a ghost.
20:32:21 * Sgeo nutrientizes iconmaster
20:32:25 <iconmaster> Lol, ok, im fine now.
20:32:39 <elliott> olsner: superoptimised my program yet ;D
20:33:33 -!- copumpkin has quit (Ping timeout: 272 seconds).
20:35:07 <olsner> elliott: no, still rewriting it :P
20:35:12 <elliott> olsner: X_X
20:35:17 -!- dbc has quit (*.net *.split).
20:35:17 -!- augur has quit (*.net *.split).
20:35:17 -!- variable has quit (*.net *.split).
20:35:17 -!- aloril has quit (*.net *.split).
20:35:17 -!- rodgort has quit (*.net *.split).
20:35:17 -!- Deewiant has quit (*.net *.split).
20:35:18 -!- lambdabot has quit (*.net *.split).
20:35:18 -!- comex_ has quit (*.net *.split).
20:35:18 -!- BeholdMyGlory has quit (*.net *.split).
20:35:18 -!- miekko has quit (*.net *.split).
20:35:19 -!- yorick has quit (*.net *.split).
20:35:19 -!- fungot has quit (*.net *.split).
20:35:19 -!- tswett has quit (*.net *.split).
20:35:19 -!- iconmaster has quit (*.net *.split).
20:35:19 -!- ineiros has quit (*.net *.split).
20:35:19 -!- EgoBot has quit (*.net *.split).
20:35:19 -!- Zuu has quit (*.net *.split).
20:35:19 -!- quintopia has quit (*.net *.split).
20:35:19 -!- Ilari has quit (*.net *.split).
20:35:20 -!- Ilari_antrcomp has quit (*.net *.split).
20:35:20 -!- cheater00 has quit (*.net *.split).
20:35:20 -!- jix has quit (*.net *.split).
20:35:21 -!- HackEgo has quit (*.net *.split).
20:35:21 -!- shachaf has quit (*.net *.split).
20:35:21 -!- Vorpal has quit (*.net *.split).
20:35:21 -!- lifthrasiir has quit (*.net *.split).
20:35:21 -!- pumpkin has quit (*.net *.split).
20:35:22 -!- FireFly has quit (*.net *.split).
20:35:22 -!- pingveno has quit (*.net *.split).
20:35:22 -!- mycroftiv has quit (*.net *.split).
20:35:22 -!- TLUL has quit (*.net *.split).
20:35:22 -!- MigoMipo has quit (*.net *.split).
20:35:23 -!- jcp has quit (*.net *.split).
20:35:23 -!- olsner has quit (*.net *.split).
20:35:24 -!- myndzi has quit (*.net *.split).
20:35:24 -!- cal153 has quit (*.net *.split).
20:35:24 -!- azaq23 has quit (*.net *.split).
20:35:25 -!- Leonidas has quit (*.net *.split).
20:35:25 -!- fizzie has quit (*.net *.split).
20:35:25 -!- yiyus has quit (*.net *.split).
20:35:26 -!- Lymia has quit (*.net *.split).
20:35:26 -!- Gregor has quit (*.net *.split).
20:35:26 -!- Sgeo has quit (*.net *.split).
20:35:26 -!- Wamanuz5 has quit (*.net *.split).
20:35:27 <elliott> olsner: There is nothing wrong with the code structure :P
20:35:33 -!- elliott has quit (Quit: Leaving).
20:36:50 -!- lambdabot has joined.
20:36:50 -!- comex_ has joined.
20:37:05 -!- dbc has joined.
20:37:05 -!- pumpkin has joined.
20:37:05 -!- iconmaster has joined.
20:37:05 -!- Ilari_antrcomp has joined.
20:37:05 -!- Ilari has joined.
20:37:05 -!- quintopia has joined.
20:37:05 -!- Zuu has joined.
20:37:05 -!- EgoBot has joined.
20:37:05 -!- ineiros has joined.
20:37:05 -!- Sgeo has joined.
20:37:05 -!- BeholdMyGlory has joined.
20:37:05 -!- cheater00 has joined.
20:37:05 -!- TLUL has joined.
20:37:05 -!- miekko has joined.
20:37:05 -!- Wamanuz5 has joined.
20:37:05 -!- jix has joined.
20:37:05 -!- MigoMipo has joined.
20:37:05 -!- azaq23 has joined.
20:37:05 -!- FireFly has joined.
20:37:05 -!- myndzi has joined.
20:37:05 -!- pingveno has joined.
20:37:05 -!- yorick has joined.
20:37:05 -!- Lymia has joined.
20:37:05 -!- fungot has joined.
20:37:05 -!- HackEgo has joined.
20:37:05 -!- tswett has joined.
20:37:05 -!- cal153 has joined.
20:37:05 -!- Gregor has joined.
20:37:05 -!- jcp has joined.
20:37:05 -!- shachaf has joined.
20:37:05 -!- Leonidas has joined.
20:37:05 -!- fizzie has joined.
20:37:05 -!- Vorpal has joined.
20:37:05 -!- olsner has joined.
20:37:05 -!- yiyus has joined.
20:37:05 -!- lifthrasiir has joined.
20:37:05 -!- mycroftiv has joined.
20:37:13 -!- elliott has joined.
20:37:13 <Sgeo> dbc, I don't think clog can se... darn
20:37:13 -!- elliott has quit (Changing host).
20:37:13 -!- elliott has joined.
20:37:15 <elliott> olsner: Why does it need rewritin'
20:37:17 <Sgeo> I thought the netsplit managed to have dbc on both halves or somethng
20:37:17 <fizzie> Some sort of quantum superposition dbc?
20:37:26 -!- augur has joined.
20:37:26 -!- variable has joined.
20:37:26 -!- aloril has joined.
20:37:26 -!- rodgort has joined.
20:37:26 -!- Deewiant has joined.
20:37:27 -!- elliott has quit (Read error: Connection reset by peer).
20:37:46 -!- elliott has joined.
20:37:55 <Gregor> elliott: HALLO 91.105.78.253 HOW ARE U
20:38:05 <olsner> elliott: I'm only rewriting a small part of it, dunno if this will work out at all though, the Chunk thing is confusing me
20:38:13 <elliott> olsner: The Chunk thing is necessary.
20:38:16 <elliott> olsner: The old system reaally sucked.
20:38:25 <elliott> olsner: Basically it's just a stream of output that can end in an error.
20:38:29 <elliott> So (hello)S(world)Sx will be
20:38:38 <elliott> Chunk "hello" (Chunk "world" (Failure "LOL NO X INSTRUCTION"))
20:38:47 <elliott> olsner: Or if the function e.g. returns the stack after the computation, it will end with (End stack).
20:39:24 <elliott> olsner: The structure is essentially ([a],Either e String)
20:41:38 <olsner> right, starting to see how it fits together
20:42:43 <elliott> Result I copied from an earlier project, which is why it's not hideous :P
20:43:17 <dbc> I'm here :)
20:43:25 <elliott> olsner: Basically it lets me thread computations without explicit concatenation of output.
20:44:36 <dbc> The accusation that I only show up to announce that I'm here and never say anything else is accurate enough.
20:45:06 <Gregor> PROVED
20:45:13 <elliott> dbc: You're ABUSING your ESOLANG TENURE.
20:45:26 <dbc> I've been busy having lots of sex with a ton of people. Actually more like three metric tons in literal terms.
20:46:04 <Gregor> So, dbc has been having sex with someone who weighs three metric tons.
20:46:05 <dbc> I haven't written a brainfuck program since factorial in probably two years.
20:46:24 <Gregor> Itself not an unimpressive feat, unless you consider fat-flap-sex as sex.
20:47:08 <dbc> I said "people", not "person". Nobody much over 200 kilos.
20:49:12 <dbc> Also I'm doing a master's in computer science. That's mostly been easy and fun, but it does eat some more time.
20:49:12 -!- elliott has quit (Read error: Connection reset by peer).
20:50:12 -!- elliott has joined.
20:50:16 <elliott> I welcome this new age of precisely weighing people before engaging in intercourse. Also, do not welcome my internet connection to anything because it sucks.
20:50:50 <fizzie> That's not necessarily a disadvantage during intercourse.
20:52:37 -!- elliott_ has joined.
20:52:43 <elliott_> Eurgh.
20:52:58 <dbc> Again, this is an estimate. :P
20:53:03 <Gregor> dbc: I'm doing a PhD in CS, and yet HERE I AM :P
20:53:22 <elliott_> Gregor: Yeah, but what's the sum total of the weight of the this sentence is getting out of hand, structurally?
20:53:30 <elliott_> dbc is juggling, like, TWO responsibilities here.
20:53:48 <Gregor> Right, I'm not having sex with a behemoth >_>
20:54:10 <elliott_> Someone has to do it.
20:55:09 -!- elliott has quit (Ping timeout: 264 seconds).
20:55:20 <fizzie> Gregor: Are you at least trying to integrate your PhD and the channel somehow? (E.g. I used our department's variable-length n-gram language model toolkit to build fungot's babble models, which I can sort-of count, since I learned (hypothetically in theory, anyway) more about the thing.)
20:55:21 <fungot> fizzie: godel is fnord fnord. mies fnord fnord fnord fnord koko
20:55:34 <fizzie> As you can see, a job well done.
20:55:53 <fizzie> fungot: Can't you not embarrass me *once*?
20:55:53 <fungot> fizzie: if your drscheme is correctly installed, just typing: ( require ( lib " 1.ss" " srfi"
20:55:54 <Gregor> fizzie: My "real" language design stuff is all an amalgam of #esoteric and my PhD.
20:56:02 <dbc> What's a godel?
20:56:12 <fizzie> It's a fnord fnord.
20:56:13 <Gregor> dbc: Idonno, whats a godel with you HAW HAW HAW
20:56:23 -!- Sgeo has quit (Ping timeout: 276 seconds).
20:56:41 <fizzie> Also fi:mies = man, fi:koko = size, and having those two words in the same sentence is awfully suggestive.
20:57:25 <Gregor> Not happy with your mieskoko? Just send $49.95 in an unmarked envelope to ...
20:57:31 <elliott_> Yeah, and fi:fnord = !
20:57:36 <fizzie> (There's a tiny bit of Finnish text mangled in fungot's "irc" model, courtesy of one channel that has been sporadically bilingual.)
20:57:37 <fungot> fizzie: ( 3 4.0 7.0) to ( iterate ( :list var list) body)) val...)
20:57:50 <elliott_> fizzie: I can't wait until fungot starts quoting your PMs.
20:57:50 <fungot> elliott_: well amusing as it might be a good space optimization for the common case, shadowing is the only gui framework, although unlike emacs it can only have one
20:57:51 <Gregor> `translate fnord
20:57:55 <elliott_> CAN'T WAIT
20:58:05 -!- pumpkin has changed nick to copumpkin.
20:58:19 <elliott_> Ha, I can hear fizzie's shock as he realises that that might happen.
20:58:28 <fizzie> It... shouldn't happen.
20:58:41 <elliott_> fizzie: Is that "it would be bad if that happened", or "it can't happen"?
20:58:48 <fizzie> Both, I guess.
20:59:00 <elliott_> fizzie: Are you SURE?
20:59:08 <fizzie> I'm a bit suspicious of irssi's logging, so I can't completely rule it out.
20:59:32 <HackEgo> No output.
20:59:53 <elliott_> fizzie: I think if you did /msg foo bar in-channel it shows in the channel screen and therefore gets logged there.
21:00:10 <elliott_> Let's just hope all your DCC requests for donkey porn were in /query.
21:00:46 <fizzie> It shouldn't happen for autolog logs with a target-based file name, just for window-logging logs. But again, I'm not entirely sure.
21:01:05 <elliott_> I can hear you hyperventilating over IRC, you know.
21:01:26 <fizzie> To satisfy your curiosity, however, I picked a random private message, and here it is (!): [2006-12-08 02:28:09] <fizzie> There's a whole pile of code that just disappears somewhere.
21:01:51 <fizzie> That was, perhaps, a bit anticliquematic.
21:02:49 <elliott_> Aw man, so boring.
21:02:54 <elliott_> PICK AGAIN.
21:03:08 <elliott_> Set up an IRC bot that picks one at random. It'll be like five minutes before we discover all your secrets.
21:03:12 -!- Phantom_Hooveer has joined.
21:03:19 <Phantom_Hooveer> Back.
21:03:24 <Phantom_Hooveer> Argh.
21:03:32 -!- Phantom_Hooveer has changed nick to Phantom_Hoover.
21:03:36 <fizzie> Nnnah, sooner or later I'd get unlucky. (Also picking ineiros as the recipient rather non-randomly, and selecting only the message itself randomly, might have helped my chances of hitting an innocuous one.)
21:03:50 <Phantom_Hoover> Does... does qwebirc not have /nick?
21:03:56 <Phantom_Hoover> FFs.
21:04:04 -!- Phantom_Hoover has quit (Client Quit).
21:04:31 -!- relic930 has joined.
21:04:39 -!- Phantom_Hoover has joined.
21:04:54 <fizzie> Phantom_Hoover: Your latest comment, coming as it did immediately after a nick change, was a bit curious.
21:05:20 <Phantom_Hoover> Oh, it just musn't actually *tell* you your nick changed.
21:05:23 <dbc> Anyway! Leaving again. Bye. :)
21:10:00 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds).
21:10:16 -!- Phantom_Hoover has joined.
21:13:56 <elliott_> <fizzie> Nnnah, sooner or later I'd get unlucky. (Also picking ineiros as the recipient rather non-randomly, and selecting only the message itself randomly, might have helped my chances of hitting an innocuous one.)
21:14:04 <elliott_> We know all about your SECRET MESSAGES to dbc and, uh...
21:14:10 <elliott_> Deewiant. Yes. Him.
21:14:14 <Deewiant> Yes.
21:14:25 <elliott_> Deewiant: What a demented man is fizzie, eh.
21:14:29 <Deewiant> Yes.
21:16:38 <Phantom_Hoover> We can't exactly trust Deewiant on such matters.
21:16:44 <Deewiant> Yes.
21:18:09 <Phantom_Hoover> He's probably one of those crazy Finns who tricks gullible foreigners to roll around naked in the snow with them.
21:18:32 <Deewiant> No.
21:18:58 -!- Phantom_Hoover has quit (Quit: Page closed).
21:19:01 -!- dbc has quit (*.net *.split).
21:19:01 -!- BeholdMyGlory has quit (*.net *.split).
21:19:01 -!- miekko has quit (*.net *.split).
21:19:01 -!- yorick has quit (*.net *.split).
21:19:01 -!- fungot has quit (*.net *.split).
21:19:01 -!- tswett has quit (*.net *.split).
21:19:01 -!- iconmaster has quit (*.net *.split).
21:19:01 -!- ineiros has quit (*.net *.split).
21:19:01 -!- EgoBot has quit (*.net *.split).
21:19:01 -!- Zuu has quit (*.net *.split).
21:19:02 -!- quintopia has quit (*.net *.split).
21:19:02 -!- Ilari has quit (*.net *.split).
21:19:02 -!- Ilari_antrcomp has quit (*.net *.split).
21:19:53 -!- calamari has joined.
21:20:03 -!- pumpkin has joined.
21:20:03 -!- dbc has joined.
21:20:03 -!- iconmaster has joined.
21:20:03 -!- Ilari_antrcomp has joined.
21:20:03 -!- Ilari has joined.
21:20:03 -!- quintopia has joined.
21:20:03 -!- Zuu has joined.
21:20:03 -!- EgoBot has joined.
21:20:03 -!- ineiros has joined.
21:20:03 -!- BeholdMyGlory has joined.
21:20:03 -!- miekko has joined.
21:20:03 -!- yorick has joined.
21:20:03 -!- fungot has joined.
21:20:03 -!- tswett has joined.
21:20:28 -!- copumpkin has quit (Ping timeout: 250 seconds).
21:20:43 <iconmaster> Is it me, or does it fell more crowded in here now?
21:20:45 <iconmaster> *feel
21:20:46 -!- pumpkin has quit (Changing host).
21:20:46 -!- pumpkin has joined.
21:22:02 <cheater00> iconmaster: who are you
21:23:12 <elliott_> iconmaster: Define now.
21:23:27 <elliott_> Deewiant: Is the answer to this question no?
21:23:38 <Deewiant> I'm not sure.
21:24:40 <elliott_> Deewiant: ITYM "Mu."
21:24:49 <Deewiant> ITYM "FILE_NOT_FOUND"
21:25:00 -!- relic930 has quit (Quit: .oO(blubb)).
21:25:29 <cheater00> i never see iconmaster say anything
21:25:34 <cheater00> how come is that!
21:26:15 <olsner> elliott: I got a segmentation fault :/
21:26:54 <iconmaster> cheater00: Umm, idk? CAN YOU HEAR ME NOW?
21:27:07 <cheater00> HELLO TRY SPEAKING IN BIGGER LETTERS
21:27:16 <iconmaster> OK
21:27:31 <cheater00> WE NEED TO TENSE UP THE THREAD BETWEEN OUR CANS
21:27:38 <cheater00> I FIND!
21:27:41 <elliott_> olsner: What.
21:27:43 <elliott_> olsner: From /GHC/?
21:27:59 <olsner> yes, from a modified version of relief
21:28:07 <cheater00> olsner: phew
21:28:09 <elliott_> olsner: Niice. How many unsafes?
21:28:15 <olsner> I didn't even add *any* unsafe stuff
21:28:31 <olsner> may have had a buggy ghc version, ghc-6.12.3 didn't segfault
21:28:33 -!- azaq23 has quit (Read error: Connection reset by peer).
21:28:46 -!- azaq23 has joined.
21:29:52 <olsner> it did however use up all my disk space when I tried that small program you pasted above (that seemed to take 10s to produce a 165MB file when you did it)
21:30:48 <olsner> I think you gave me a broken version
21:31:03 <elliott_> olsner: Uhh, I did not :P
21:31:14 <elliott_> olsner: But if it used up all your disk space... cool.
21:31:21 <elliott_> Does the file look like :*:*:* with /s in there?
21:31:28 <elliott_> I'm on an SSD.
21:31:33 <elliott_> So you might have much faster sequential writes.
21:32:18 <olsner> yep, and the /'s seem to double their distance for each one
21:32:40 <olsner> so this program just writes infinity of that crud?
21:32:43 <elliott_> olsner: That's right then. And yes.
21:32:50 <elliott_> It starts with :*, and concatenates it with itself forever.
21:33:00 <elliott_> olsner: I did ^C it to get that 10 second thing.
21:33:04 <elliott_> Did you just leave it running? X-D
21:33:15 <olsner> I thought I was supposed to :P
21:33:35 <elliott_> olsner: So have you sped it up on 6.12.3? :-P
21:33:42 <elliott_> spedified
21:34:06 <olsner> my version seems to have run out of disk space 1.2s faster than yours (which took 30s)
21:34:26 <elliott_> Wooooo
21:34:32 <elliott_> olsner: A better benchmark is:
21:34:42 <elliott_> ./relief '(0)S((0)(1))(~:^:S*a~^~*a*~:^):^'
21:34:44 <elliott_> Again outputs infinitely.
21:34:54 <elliott_> Just pipe to a file, run approx. same time, compare sizes. :p
21:35:01 <elliott_> (It's Thue-Morse.)
21:35:29 -!- Phantom_Hoover has joined.
21:35:29 <elliott_> olsner: Also http://oerjan.nvg.org/esoteric/underload/tmcount.disclaimed.ul, which outputs lots and then pauses a while, forever.
21:37:00 <elliott_> olsner: how small is your disk anyway that it can be filled in 30 seconds?
21:37:14 <elliott_> or how full :P
21:37:35 <olsner> this one is both small and full, it has about 500MB free right now
21:38:26 <elliott_> ah
21:39:34 <Phantom_Hoover> There's yet another alexithymia IAmA on Reddit.
21:39:49 <Phantom_Hoover> Like the previous one, it misdefines alexithymia.
21:40:44 <elliott_> Phantom_Hoover: Oh it gets better -
21:40:55 <elliott_> "Glad you asked.. over the last 15 years or so I have actually worked out how language works from the ground up (from neurons to Shakespeare as I have termed it). This has led me to work out a mechanism to allow a computer to understand language and act upon it as a person does. I have been able to work all of this out because of my condition, it has given me an internal and excellent insight into lan
21:40:55 <elliott_> guage at the core."
21:41:00 <elliott_> So either troll or egotistical idiot.
21:41:17 <elliott_> When called on his bullshit and asked what his credentials are:
21:41:18 <elliott_> "Just postgraduate studies in lingustics, which i stopped doing due to not actually learning anything (even though I was getting top scores).
21:41:18 <elliott_> As for your contempt for new ideas, that is EXACTLY why I don't have any thesis published.
21:41:18 <elliott_> I am $200,000 short on getting the thesis published."
21:41:26 <elliott_> tl;dr actually I lied, I have no fucking clue how to do this unless someone gives me a lot of money
21:42:05 <elliott_> Phantom_Hoover: Not even worth reading. Also he apparently has this AMAZINGLY GREAT NOVEL all written in his head with the sole problem that he is TOTALLY PHYSICALLY UNABLE TO WRITE FICTION.
21:42:14 <elliott_> tl;dr bunch of horseshit.
21:43:59 <Ilari> APNIC down 0.10. v4: 3x8k+2x4k+2x2k+1k to JP, 4x256k+512k to CN, 4k to HK, 256 to NZ. v6: /48 to NZ, /32+2x/48 to AU, 2x/32 to ID, /32 to NC, /32 to NP, /32 to PH.
21:50:03 <fizzie> Is there any sort of reason what e needs the $200k for?
21:50:11 <fizzie> I mean, just plain publishing things isn't quite that expensive.
21:50:48 <elliott_> fizzie: It puts him beyond questioning, obviously.
21:50:58 <elliott_> I can't imagine he's not a troll. Or if he isn't, then he's just an idiot.
21:52:10 <Ilari> This month so far, APNIC has gave out 0.790 blocks (13 257 984 addresses). On v6 front: 4 063 248x/48 (62.0 microblocks, 1 039 178.9 microblocks free).
21:53:58 <Ilari> APNIC still has eqiuivalent of 514 891 /32s to allocate before it can even ask for IANA for new allocation (half-block rule).
21:58:05 <Ilari> So APNIC IPv6 free pool: 0.991 blocks.
21:58:10 <elliott_> Lazy concatenative languages are possibly the worst best idea ever.
21:58:19 <elliott_> The best thing is that you NEED a type system to do it.
21:58:27 <elliott_> Because you have to know how many stack elements get eaten up.
21:59:11 <Ilari> Total APNIC IPv6 pool: 1.018 blocks.
22:01:29 <Ilari> Heh. Last update date on IANA IPv6 unicast space: 2008-08-27. Hasn't been updated for over 2 years.
22:01:40 -!- Mathnerd314 has joined.
22:01:41 -!- elliott_ has quit (Quit: Leaving).
22:01:47 -!- elliott_ has joined.
22:02:39 <Ilari> And the last allocation date marked there is 2006-10-03 (the day 5 blocks were allocated, one to each RIR)
22:04:44 <olsner> elliott_: it didn't end up any faster, so I give up for now
22:04:56 <elliott_> olsner: Care to share your code?
22:05:00 <olsner> nah :)
22:05:18 <olsner> it sucks a lot, and I cheated
22:05:26 <elliott_> olsner: :(
22:05:28 <elliott_> olsner: I wanna seeee.
22:05:31 <elliott_> I need inspiration. :p
22:05:33 -!- copumpkin has joined.
22:05:35 <elliott_> Also I like cheating
22:06:40 <olsner> the cheating was that I baked IO and most of putResult directly into Result
22:06:57 <elliott_> olsner: ouch. well right. ew.
22:07:04 <olsner> exactly :P
22:07:12 <elliott_> changed anything else?
22:07:41 <olsner> changed Result into continuation-passing style
22:07:49 <elliott_> hmm, like howso/
22:07:50 <elliott_> *howso?
22:08:01 -!- pumpkin has quit (Ping timeout: 260 seconds).
22:08:01 -!- iconmaster has quit (Ping timeout: 260 seconds).
22:09:26 <olsner> at first it was really complicated due to Chunk, but then I put all the IO stuff directly into it so now it's pretty much type Result a e = (e -> IO ()) -> IO ()
22:09:31 -!- pikhq_ has quit (Read error: Operation timed out).
22:10:11 <elliott_> what was it with Chunk? I don't feel that baking the IO in would be beneficial ever, because it's basically just constructing a value and then immediately destructing it, with putResult
22:10:15 <elliott_> so the overhead should be minimal
22:10:42 -!- pikhq has joined.
22:11:01 <olsner> hmm, I just wanted to try rewriting Result and see what fell out
22:12:01 <elliott_> I think Result is probably not my bottleneck :)
22:12:19 <elliott_> I have a feeling that if I optimised (==) a lot or made cat more loose, it'd be a lot faster.
22:13:49 <elliott_> hmm, dunno if it's going faster with reallyUnsafePtrEquality# :P
22:15:43 -!- Sgeo has joined.
22:16:15 <elliott_> $ ./relief "$(cat 99.ul)"
22:16:15 <elliott_> IT'S REALLY TRUE
22:16:19 <elliott_> ok so ptr equality is doing _something_
22:16:37 <elliott_> but :* doesn't do it
22:19:01 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:20:07 <Mathnerd314> what are you doing? cat in Haskell?
22:20:33 -!- calamari has left (?).
22:20:58 <elliott_> Mathnerd314: cat? lol, no, underload
22:21:36 -!- Phantom_Hoover has quit (Remote host closed the connection).
22:21:39 * Mathnerd314 checks esolang wiki
22:21:45 <elliott_> it's rather famous
22:21:49 <elliott_> and much worked on recently
22:22:00 <elliott_> i'm just writing a very smart interpreter (smarter than the current smartest, derlo)
22:22:06 <elliott_> Mathnerd314: cat in haskell: main = mapM_ (readFile >=> putStr) getArgs :-P
22:22:09 <elliott_> er
22:22:11 <elliott_> *=<< getArgs
22:22:18 <elliott_> that doesn't handle - for stdin though.
22:22:21 <elliott_> or an empty arg list for stdin
22:24:06 <elliott_> huh... that never calls ==...
22:28:54 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
22:31:11 <Gregor> http://9gag.com/gag/38704/ ... I hate people.
22:31:45 <elliott_> Gregor: How much is 9gag.com paying you?
22:31:54 <Gregor> elliott_: $3/hr
22:32:34 <elliott_> Gregor: but lmao @ that
22:34:36 -!- augur has quit (Remote host closed the connection).
22:34:56 <elliott_> olsner: ha, I don't actually force conatenation in *
22:35:01 <elliott_> which is why == never seemed to be called
22:35:06 <elliott_> because i didn't bother outputting anything
22:37:15 -!- augur has joined.
22:37:18 <elliott_> aaand after removing a trace call, the two pointers are no longer equal.
22:37:19 <elliott_> wait.
22:37:22 <elliott_> hmm
22:37:37 <elliott_> maybe it's thunked
22:37:42 <Sgeo> elliott_, is DrRacket ok to use with SICP as long as it's in R5RS mode?
22:40:48 -!- Mathnerd314 has quit (Ping timeout: 272 seconds).
22:47:42 <elliott_> translating relief to C will be a pain
22:53:22 -!- Mathnerd314 has joined.
22:59:22 -!- FireFly has quit (Quit: swatted to death).
23:29:45 -!- augur has quit (Remote host closed the connection).
23:30:57 <elliott_> /* TODO: figure out memory situation, i.e. refcounts, freeing
23:30:57 <elliott_> * function (because structures are dynamically sized), ... */
23:31:05 <elliott_> now i remember why i love haskell
23:33:56 -!- oerjan has joined.
23:36:28 <elliott_> hi oerjan
23:37:05 <elliott_> oerjan: i integrated your code :)
23:37:07 <Ilari> APNIC last 30 days: 20 719 616 addresses (1.235 blocks).
23:40:00 <oerjan> yay
23:40:26 -!- pikhq_ has joined.
23:40:26 -!- pikhq has quit (Ping timeout: 246 seconds).
23:40:39 <pikhq_> Gaaah, today.
23:40:49 <elliott_> pikhq_: wat
23:41:11 <pikhq_> Egg on car is a bitch.
23:41:12 <elliott_> oerjan: i'm tentatively rewriting the whole thing in C now. although that might be a _loss_ for sufficiently pathological programs, as I'm not using bignums and so will have to fall back or whatever
23:41:24 <Ilari> That's almost but not quite the rate on January (excluding the first day): 21227264 (which is about 500k more).
23:41:37 <elliott_> oerjan: but anyway, it's hard to tell when the majority of underload programs are unpublished :(
23:41:52 <oerjan> hm
23:42:26 <elliott_> oerjan: (every time something UL-related is mentioned, ais is all "OH YEAH I WROTE THAT")
23:42:35 <elliott_> apparently he has a more concise full unlambda translation than you or something :)
23:42:51 <oerjan> elliott_: actually i think he said that was accidentally deleted
23:43:05 <elliott_> oerjan: shut up, i'm busy being annoyed :D
23:43:15 <elliott_> oerjan: you have to give me a benchmark then :P
23:43:17 <oerjan> maybe that includes some of the other programs as well
23:43:39 <pikhq_> What sort of asshat eggs cars, anyways?
23:44:04 <elliott_> oerjan: btw you may (likely not) find my comment on http://esolangs.org/wiki/Talk:Chalcraft-Greene_train_track_automaton worth reading :-P
23:44:10 <elliott_> (it's not very interesting, but it is MULTIPLE PARAGRAPHS!)
23:46:13 <elliott_> gah
23:46:15 <elliott_> why is C so stupid
23:46:52 <oerjan> elliott_: i could give you my unlambda conversion, even if it's worse than the one ais523 supposedly made. i haven't made an automatic convert for it though.
23:47:13 <elliott_> oerjan: hmm, can it translate your self-interpreter? given some appropriate input program
23:47:20 <elliott_> i mean, if there were a translator program
23:47:29 <oerjan> no, it cannot do input
23:47:40 <elliott_> basically the issue is that there are no (afaik) underload programs that do a lot of computation and take a long but _finite_ time to output something
23:47:48 <oerjan> heh
23:48:16 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:50:06 <oerjan> well it _should_ be possible to adapt something else to use a church numeral for number of iterations
23:50:57 <oerjan> oh and you want there to be a long time _between_ outputs as well?
23:51:00 <oerjan> hm
23:51:19 <elliott_> oerjan: oh, i don't care about that
23:51:25 <elliott_> i just want a benchmark, you know
23:51:27 <oerjan> ok
23:51:38 <elliott_> a program that does a lot of computation and then stops, preferably outputting the entire result (or laziness could bite me :))
23:52:02 <elliott_> oerjan: and if it does a lot of arithmetic that wouldn't go amiss either, because i'm the only one to optimise that >:D
23:52:10 <elliott_> (but i'm not sure if + would get optimised properly)
23:52:15 <elliott_> (so that would be interesting)
23:52:32 <oerjan> i'm pretty sure those :^):^ at the end of 110.ul must be an ordinary top-level loop
23:53:05 <oerjan> elliott_: i'm afraid as i said my programs don't use church numerals very heavily
23:53:53 <oerjan> also there still is the issue that you always need that final unary application of the church numeral
23:54:00 <oerjan> to actually use it
23:54:32 <oerjan> unless you have some optimization at a higher level than i thought we were aiming at
23:54:57 -!- pikhq has joined.
23:55:06 -!- pikhq_ has quit (Ping timeout: 250 seconds).
23:55:41 -!- augur has joined.
23:56:34 <elliott_> oerjan: well, I optimise * and ^ on them
23:56:42 <elliott_> all the way through the program
23:56:54 <elliott_> if you do (:*)(::**)*, or replace that last * with a ^, it will simply do the arithmetic
23:57:09 <elliott_> (and also, *lazily*, form :*::**, but that will only get formed when it's printed)
23:57:20 <elliott_> (or, well, checked for equality but that's an implementation detail right now :))
23:58:06 -!- cheater- has joined.
23:58:32 <elliott_> 83 lines of C already to do about a dozen lines of haskell. yay.
23:59:58 <oerjan> ^ul (^^:^^^:^^^^^:^^^^^^:::^^^^^^^^:::^^^:^^^^::^)()~((())~:a~*):a~*~^!(~((!())(!:^(^)*)(!!:^(!^)*))~*^!!^):^(~((()())(:a~*:(*(!^)(:)S)~*~(!*(^)(^)S)~*):a~**((!^)~^!^)(!(^)~^^))~*^( )S!!a:(*)*~(~*)**^~*(()()(!)()(!)(:a~*:(!^(!^((!^)*)(!(^)*))(!^((^)*)(!(^)*)))~*~(!^(!^((!^)*)(!(^)*))(!^((^)*)(!(!^)*)))~*):^)~*^!!!!!!~^)(()~^)(::**)^^
23:59:58 <fungot> ^^:^^^:^^^^^:^^^^^^:::^^^^^^^^:::^^^:^^^^::^ ...out of stack!
←2011-02-21 2011-02-22 2011-02-23→ ↑2011 ↑all