←2009-06-02 2009-06-03 2009-06-04→ ↑2009 ↑all
00:00:15 * oerjan swats ais523 -----###
00:00:18 <ais523> ouch!
00:00:24 <ehird> ais523: pretty epic story, though
00:01:26 <ais523> yes
00:01:33 <ais523> I wonder what she was meant to be employed for?
00:02:09 <ehird> ais523: er?
00:02:18 <ehird> ais523: what do you mean?
00:02:29 <ais523> I mean, presumably there was some reason he was involved with her in the first place
00:02:33 <ehird> ais523: girlfriend
00:02:35 <ehird> read the post
00:02:36 <ais523> ah
00:03:36 <ehird> oh god, a jeff atwood post
00:03:38 * ehird runs for cover
00:09:04 <GregorR-L> wowwtfbbq
00:19:17 <jix> !bfjoust foobar >>>+>+[]<[--](-)*111(+)*100000
00:19:48 <EgoBot> Score for jix_foobar: 0.0
00:20:11 <jix> what was the stepcount again?
00:20:18 <ais523> 100000
00:20:37 <jix> hum
00:27:34 <ehird> ais523: Wolfram Research are hard at work adding pointless hardcoded gags to Wolfram|Alpha instead of improving it: http://www65.wolframalpha.com/input/?i=Where+is+Waldo%3F
00:28:12 <coppro> Are you Skynet?
00:28:52 <ehird> Totally.
00:31:29 <jix> !bfjoust foobar >>>>>>>>(>[+[+[+[+[+[-[-[-[@-----]]]]]]]]])*20
00:31:36 <EgoBot> Score for jix_foobar: 13.2
00:33:11 <oerjan> @?
00:46:23 -!- AnMaster has joined.
00:49:52 <jix> breakpoint in my debugger ^^
00:50:34 <oerjan> ah
00:53:09 <jix> !bfjoust foobar >>>>>>>>(>[+[+[+[+[+[-[-[-[@-----]]]]]]]]])*30
00:53:16 <EgoBot> Score for jix_foobar: 13.3
00:55:09 <jix> !bfjoust foobar (+>[<(+++++[->-<]>+++++[-])*30])*30
00:55:17 <EgoBot> Score for jix_foobar: 7.0
00:56:39 -!- inurinternet has quit (Read error: 113 (No route to host)).
01:00:24 -!- ais523 has quit (Remote closed the connection).
01:01:07 -!- ais523 has joined.
01:03:07 -!- oerjan has quit ("Good night").
01:06:45 <jix> !bfjoust wiggle3 (>+>-)*4 (>([-)*5 [+++++ ([+)*20 [-] (])*20] (])*5)*30
01:06:54 <EgoBot> Score for jix_wiggle3: 35.1
01:07:48 <jix> my goal is a short, readable version of wiggle that gets good results
01:08:59 <ehird> "Why GIMP is Better than Adobe Photoshop"
01:09:00 <ehird> RAGE
01:11:12 <lament> Why emacs is better than visual studio
01:11:39 -!- Corun has changed nick to Corun|away.
01:11:39 <jix> !bfjoust wiggle3 (>+>-)*4(>([-)*5[+++++([+)*8(+)*15[-](])*8](])*5+>([+)*5[-----([-)*8(-)*15[+](])*8](])*5-)*15
01:11:47 <EgoBot> Score for jix_wiggle3: 35.6
01:13:26 -!- Corun|away has changed nick to Corun.
01:15:35 <jix> !bfjoust wiggle3b (>+>-)*4(>([-)*5[+++++([+)*8(+)*15[-.](])*8](])*5+>([+)*5[-----([-)*8(-)*15[+.](])*8](])*5-)*15
01:15:42 <EgoBot> Score for jix_wiggle3b: 34.6
01:16:02 <jix> !bfjoust wiggle3b <
01:16:08 <EgoBot> Score for jix_wiggle3b: 0.0
01:18:35 <jix> !bfjoust wiggle3b (>+>-)*4(>([-)*5[+++++([+)*8(+)*15[-.](])*8](])*5+>([+)*5[-----([-)*8(-)*15[+.](])*8](])*5-)*2(>([-)*5[+++++([+)*8(+)*15[-](])*8](])*5+>([+)*5[-----([-)*8(-)*15[+](])*8](])*5-)*15
01:18:43 <EgoBot> Score for jix_wiggle3b: 26.9
01:19:55 <jix> !bfjoust wiggle3b <
01:20:01 <EgoBot> Score for jix_wiggle3b: 0.0
01:30:36 <nescience> jix: i don't suppose you could cut out that putting a dozen clones of the same thing on the hill bit?
01:31:21 <nescience> unless you think it'd be fun if the rest of us did the same thing
01:33:11 <jix> all wiggle versions on the server are different
01:33:40 <jix> except the wiggle3b version which was a try to get better than wiggle3 and thus got removed as it wasn't
01:34:00 <nescience> they'r esame enough to have the same name eh?
01:34:01 <ehird> jix: same basic implementation = same name
01:34:24 <jix> well they are as similar as defend*
01:34:46 <jix> they share the same concept
01:35:02 <nescience> there's 3 defends, one is majorly different from the other two.. but when i said that i saw like 5 wiggles on the hill
01:35:17 * nescience shrugs
01:35:18 <jix> nescience: there were 4 and one was already deleted by sucide
01:35:36 <nescience> correction: 5 and one is now a suicide
01:35:41 <nescience> jix__wiggle1.bfjoust
01:35:43 <nescience> jix_wiggle1.bfjoust
01:35:46 <nescience> jix_wiggle2.bfjoust
01:35:49 <nescience> jix_wiggle3.bfjoust
01:35:50 <nescience> jix_wiggle3b.bfjoust
01:35:53 <jix> oh didn't saw that jix__ one
01:35:58 <jix> that is left there by accident
01:36:00 -!- jix has changed nick to jix_.
01:36:05 <jix_> !bfjoust wiggle1 <
01:36:11 <EgoBot> Score for jix__wiggle1: 0.0
01:36:14 -!- jix_ has changed nick to jix.
01:36:15 <nescience> if you want to try something else, just reuse the name.. that way you don't bump all the variety (?) off the hill
01:36:16 <nescience> heh
01:36:27 <ehird> jix: you could have just done !bfjoust _wiggle1
01:36:32 <nescience> i mean, if you want to try and see if some code does better than som eother code
01:36:37 <jix> nescience: ais523 just told me a few hours ago to not do that....
01:36:55 <nescience> wat
01:36:59 <jix> but instead use a different name and then suicide or replace it
01:37:11 <jix> so i don't delete my good programs with bad testing programs
01:37:17 <nescience> you can always put them back
01:37:28 <nescience> but i'm talking variants, not new programs
01:37:57 <ehird> yeah ais523's wrong; his suggestion would clutter the hill
01:38:05 <jix> well wiggle1,2,3 are different programs
01:38:08 <nescience> if you are testing if having 3 +s does better than 1, it doesn't make sense to submit a bunch of warriors, thus knocking off stuff for no reason
01:38:10 <ehird> he was angry jix lost space 4 or sth
01:38:15 <ais523> ehird: I don't like good programs being deleted
01:38:22 <ais523> if you have a program that does well, use another name for testing
01:38:25 <ehird> ais523: even for 3 seconds?
01:38:27 <ehird> that's ridiculous
01:38:33 <ais523> and replace the good program even when one of the tests does better
01:38:59 <jix> well i for myself don't really care ^^
01:39:20 <jix> so i'll just do _something_ now as someone will complain anyway
01:39:30 <nescience> lol
02:02:11 <ehird> AnMaster: btw you can do watercooling without a pump
02:02:14 <ehird> w/ a reserator
02:02:29 <ehird> can cool more things than heatpipes but less than pumpful watercooling
02:15:42 -!- Patashu has joined.
02:18:28 <jix> !bfjoust wiggle3 http://nopaste.com/p/a2wMZwDJe/txt
02:18:37 <EgoBot> Score for jix_wiggle3: 33.7
02:32:47 <jix> !bfjoust wiggle3 http://nopaste.com/p/axaXCQAjY/txt
02:32:56 <EgoBot> Score for jix_wiggle3: 35.2
02:37:48 <jix> !bfjoust wiggle3 http://nopaste.com/p/aP6cwk1x5/txt
02:37:56 <EgoBot> Score for jix_wiggle3: 35.2
02:40:15 <jix> !bfjoust wiggle3 http://nopaste.com/p/aUeFcpPwdb/txt
02:40:23 <EgoBot> Score for jix_wiggle3: 36.6
02:45:13 <jix> !bfjoust wiggle3 http://nopaste.com/p/aJDTST6eN/txt
02:45:20 <EgoBot> Score for jix_wiggle3: 37.0
02:48:23 <jix> !bfjoust wiggle3 http://nopaste.com/p/aWq3CeYTo/txt
02:48:30 <EgoBot> Score for jix_wiggle3: 42.3
02:53:10 <myndzi> wtf pasting readable code
02:53:10 <myndzi> ;p
02:53:15 <myndzi> you have one too many decoys
02:53:37 <jix> what is a decoy?
02:53:46 <myndzi> er, your "farm"
02:53:48 <myndzi> is one cell too big
02:53:53 <myndzi> you'll lose on field length 10
02:53:56 <jix> i do?
02:54:04 <ais523> jix: a tape element near your flag set to a nonzero value in order to slow down the opponent
02:54:12 <jix> ah
02:54:19 <myndzi> near or far from your flag, it doesn't really matter
02:54:30 <myndzi> more effective near because there's less chance your opponent will already be past where you are putting it
02:54:38 <myndzi> anyway,
02:54:46 <myndzi> !........!
02:54:54 <myndzi> field length 10, 8 cells between your flag and their fla
02:54:54 <myndzi> g
02:54:59 <myndzi> so 9 is too far
02:55:02 <jix> yeah
03:03:47 -!- myndzi has quit (Remote closed the connection).
03:05:30 -!- inurinternet has joined.
03:05:30 -!- inurinternet has quit (Remote closed the connection).
03:05:46 <jix> !bfjoust wiggle3 http://nopaste.com/p/ao0IKplNq/txt
03:05:50 -!- inurinternet has joined.
03:05:53 <EgoBot> Score for jix_wiggle3: 52.8
03:05:54 <jix> might be overtuned to one opponent
03:05:57 <jix> or not ^^
03:07:28 -!- myndzi has joined.
03:10:55 <jix> !bfjoust wiggle3 http://nopaste.com/p/apkixpgyr/txt
03:11:04 <EgoBot> Score for jix_wiggle3: 46.4
03:12:07 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
03:12:23 <Patashu> it's interesting what you can do in just bf
03:12:44 <jix> !bfjoust wiggle3 http://nopaste.com/p/avON2JNox/txt
03:12:51 <EgoBot> Score for jix_wiggle3: 52.6
03:13:17 -!- puzzlet has joined.
03:13:26 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
03:13:36 <jix> hmmm i'm getting close to the top with my original idea :)
03:13:41 <jix> (and even readable code)
03:16:47 <jix> !bfjoust wiggle3 http://nopaste.com/p/aCZN6xEspb/txt
03:16:56 <EgoBot> Score for jix_wiggle3: 40.8
03:17:00 <jix> :/
03:18:23 -!- puzzlet has joined.
03:18:29 <jix> !bfjoust wiggle3 http://nopaste.com/p/aiTnviDic/txt
03:18:38 <EgoBot> Score for jix_wiggle3: 38.0
03:20:07 <jix> !bfjoust wiggle3 http://nopaste.com/p/a50Zu4QqJ/txt
03:20:15 <EgoBot> Score for jix_wiggle3: 52.6
03:21:48 <kerlo_> Everyone knows that sentence fragments make perfectly good sentences.
03:22:02 <kerlo_> Received bobcat instead of office chair. Would not buy again.
03:23:17 <jix> !bfjoust wiggle3 http://nopaste.com/p/aY58XLAaO/txt
03:23:26 <EgoBot> Score for jix_wiggle3: 43.7
03:25:51 <jix> !bfjoust wiggle3 http://nopaste.com/p/a1e2qbAt6/txt
03:26:01 <EgoBot> Score for jix_wiggle3: 44.4
03:26:35 <jix> !bfjoust wiggle3 http://nopaste.com/p/aLm9yG2V6/txt
03:26:44 <EgoBot> Score for jix_wiggle3: 42.0
03:29:58 <jix> !bfjoust wiggle3 http://nopaste.com/p/aUXmYc81t/txt
03:30:08 <EgoBot> Score for jix_wiggle3: 41.9
03:30:48 <jix> !bfjoust wiggle3 http://nopaste.com/p/agI369nDf/txt
03:30:58 <EgoBot> Score for jix_wiggle3: 41.8
03:31:19 <jix> !bfjoust wiggle3 http://nopaste.com/p/alPD4N8vv/txt
03:31:28 <kerlo_> !
03:31:29 <EgoBot> Score for jix_wiggle3: 42.0
03:31:35 <kerlo_> jix is walling again.
03:32:44 <jix> !bfjoust wiggle3 http://nopaste.com/p/ar4WKzf4L/txt
03:32:53 <EgoBot> Score for jix_wiggle3: 46.7
03:33:31 <jix> !bfjoust wiggle3 http://nopaste.com/p/aJfWVa4lp/txt
03:33:40 <EgoBot> Score for jix_wiggle3: 44.0
03:33:45 <kerlo_> Hmm.
03:34:03 <jix> !bfjoust wiggle3 http://nopaste.com/p/aiUNLWjC7/txt
03:34:09 <kerlo_> !bfjoust evil http://normish.org/ihope/evil
03:34:12 <EgoBot> Score for jix_wiggle3: 45.3
03:34:19 <jix> once you fix one another one breaks
03:34:53 <kerlo_> http://normish.org/ihope/evil blocks.
03:35:04 <kerlo_> Hopefully, EgoBot is not thereby dead. :-P
03:35:15 <kerlo_> If it is, I can free it.
03:35:46 <kerlo_> !help
03:35:46 <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:35:52 <kerlo_> Doesn't seem dead.
03:35:53 <kerlo_> !ps
03:36:19 <kerlo_> Wä wä wä.
03:36:35 <jix> !bfjoust wiggle3 http://nopaste.com/p/aZLIIPjWjb/txt
03:36:44 <EgoBot> Score for jix_wiggle3: 41.8
03:37:52 <jix> !bfjoust wiggle3 http://nopaste.com/p/anH9RMHwdb/txt
03:38:02 <EgoBot> Score for jix_wiggle3: 45.2
03:39:03 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
03:45:14 <jix> !bfjoust wiggle3 http://nopaste.com/p/aNJawZgp3/txt
03:45:25 <EgoBot> Score for jix_wiggle3: 46.2
03:47:29 <jix> !bfjoust wiggle3 http://nopaste.com/p/a3Zw4eM4Z/txt
03:47:39 <EgoBot> Score for jix_wiggle3: 47.2
03:51:17 <jix> !bfjoust wiggle3 http://nopaste.com/p/aSiaC5KB6/txt
03:51:27 <EgoBot> Score for jix_wiggle3: 51.2
03:52:12 <jix> !bfjoust wiggle3 http://nopaste.com/p/ak84GnaGeb/txt
03:52:22 <EgoBot> Score for jix_wiggle3: 48.9
03:52:58 <jix> !bfjoust wiggle3 http://nopaste.com/p/aGqKUZTLnb/txt
03:53:08 <EgoBot> Score for jix_wiggle3: 48.6
03:53:29 <jix> !bfjoust wiggle3 http://nopaste.com/p/alRX7Ro1eb/txt
03:53:40 <EgoBot> Score for jix_wiggle3: 48.2
03:54:14 <jix> !bfjoust wiggle3 http://nopaste.com/p/aG16QnTGY/txt
03:54:24 <EgoBot> Score for jix_wiggle3: 49.5
03:55:09 <jix> !bfjoust wiggle3 http://nopaste.com/p/adi0Sfe7c/txt
03:55:19 <EgoBot> Score for jix_wiggle3: 42.1
03:55:58 <jix> !bfjoust wiggle3 http://nopaste.com/p/aEKIPPU7nb/txt
03:56:09 <EgoBot> Score for jix_wiggle3: 50.9
03:56:46 <jix> !bfjoust wiggle3 http://nopaste.com/p/aTcBwdEocb/txt
03:56:57 <EgoBot> Score for jix_wiggle3: 52.3
03:57:50 <jix> !bfjoust wiggle3 http://nopaste.com/p/aH8BwhaPdb/txt
03:58:00 <EgoBot> Score for jix_wiggle3: 52.6
03:58:39 <jix> !bfjoust wiggle3 http://nopaste.com/p/aZ0bbURY6/txt
03:58:48 <EgoBot> Score for jix_wiggle3: 57.2
03:58:54 -!- coppro has quit ("The only thing I know is that I know nothing").
03:59:21 <jix> !bfjoust wiggle3 http://nopaste.com/p/alx52eZ50/txt
03:59:31 <EgoBot> Score for jix_wiggle3: 57.3
03:59:31 <Patashu> oo, 57.2
03:59:33 <Patashu> .3 :D
03:59:46 <jix> so close
04:00:10 <jix> experimental:
04:00:14 <jix> !bfjoust wiggle3 http://nopaste.com/p/ajrNY51ag/txt
04:00:23 <EgoBot> Score for jix_wiggle3: 56.7
04:00:45 <jix> !bfjoust wiggle3 http://nopaste.com/p/aRluO2Qhnb/txt
04:00:54 <EgoBot> Score for jix_wiggle3: 53.1
04:01:33 <jix> !bfjoust wiggle3 http://nopaste.com/p/av8GVZbvn/txt
04:01:43 <EgoBot> Score for jix_wiggle3: 57.3
04:02:10 <jix> !bfjoust wiggle3 http://nopaste.com/p/awkAoi7wj/txt
04:02:21 <EgoBot> Score for jix_wiggle3: 57.3
04:02:26 <jix> hah
04:02:28 <jix> finally
04:03:26 <ais523> now you can delete 1, 2, and 3b
04:03:31 <ais523> unless they use a radically different strategy
04:03:42 <ais523> which reminds me, I should delete defend6
04:03:46 <ais523> !bfjoust defend6 <
04:03:52 <EgoBot> Score for ais523_defend6: 0.0
04:04:09 <jix> thanks -_-
04:04:15 <jix> and i thought i could go to bed now ^^
04:04:20 <ais523> I'm leaving 7 there, anyway
04:05:08 <jix> !bfjoust wiggle3 http://nopaste.com/p/aORaPkjSt/txt
04:05:18 <EgoBot> Score for jix_wiggle3: 59.4
04:05:58 <myndzi> ais523: this is why your thing about submitting duplicates sucks
04:06:06 <ais523> myndzi: why?
04:06:12 <ais523> because it messes up the scoreboard
04:06:13 <ais523> ?
04:06:17 <myndzi> now there's 3, possibly to be 4 or 5 suicides on the hill
04:06:25 <ais523> they'll disappear in due course
04:06:34 <myndzi> but there's no reason for them to be there
04:06:47 <myndzi> instead they alter the scores
04:06:59 <Patashu> I don't think having a suicide alters anything?
04:07:02 <myndzi> by favoring certain strategies (namely, fast attack)
04:07:13 <myndzi> Patashu: did you watch what just happened?
04:07:17 <Patashu> sorry, no
04:07:29 <Patashu> hmm
04:07:34 <jix> i tuned my program against defend
04:07:34 <Patashu> oh, I can see how it might have an effect
04:07:39 <Patashu> it gives the same number of wins to everyone
04:07:39 <jix> (there were three variants)
04:07:45 <jix> now were there are only two left...
04:07:48 <jix> i lost points of course
04:08:04 <myndzi> Patashu: excuse me, i was confusing myself :P
04:08:14 <myndzi> you are correct of course, it gives the same points to everyone
04:08:21 <myndzi> but it still shortens the playing field too
04:08:28 <Patashu> just submit filler
04:08:40 <myndzi> i'd rather have whatever warriors got knocked off back
04:08:48 <Patashu> hehe
04:08:49 <Patashu> !bfjoust lazy >(+)*5>(-)*5>(+)*5>(-)*5>(-)*5>(+)*5>(+)*5>(-)*5(>(+.)*129)*21[-]((-)*2048(+)*2048.)*2
04:08:49 <myndzi> submitting filler isn't much better than submitting < :P
04:08:56 <EgoBot> Score for Patashu_lazy: 15.7
04:09:00 <Patashu> !bfjoust matador >+[]<(++-)*1000+(--+)*1000(>)*9(>[+][-])*21
04:09:01 <Patashu> !bfjoust waiter ((+--)*10000(-++)*10000)*2(+)*10000(-)*10000(+-)*10000(-+)*10000
04:09:13 <myndzi> lol. they were yours? :P
04:09:18 <Patashu> which ones?
04:09:23 <myndzi> the ones that got knocked off
04:09:25 <EgoBot> Score for Patashu_matador: 8.9
04:09:26 <EgoBot> Score for Patashu_waiter: 17.4
04:09:27 <Patashu> no
04:09:30 <Patashu> I'm just subbing them now
04:09:30 <Patashu> !bfjoust juggernaut >+>+>->->+>+>->-(>(-)*128.-.+)*29
04:09:37 <EgoBot> Score for Patashu_juggernaut: 10.5
04:09:38 <Patashu> !bfjoust 2_3weave (>(+)*23>(-)*23)*1>+>->->+>+>-(>[(-)*20[+]]->[(+)*21[-]]+>+)*10
04:09:47 <EgoBot> Score for Patashu_2_3weave: 17.1
04:10:13 <Patashu> anything's better than <
04:10:15 -!- Corun has quit ("Leaving...").
04:10:25 <jix> i think that my 3 wiggles are different enough to have a place on the hill
04:10:45 <myndzi> i'll wiggle you you.. wiggly... thing!
04:10:46 <myndzi> :P
04:11:30 <jix> they use a different structure... the only thing they share is that they try to get a cell to zero fast by using nested loops going in different directions
04:11:46 <Patashu> oh interesting
04:11:47 <Patashu> :)
04:11:53 <jix> wiggle1 is just a very simple implementation of that
04:12:06 <myndzi> someone was doing that a few days ago, but you seem to have had much more success with it ;)
04:12:06 <Patashu> so it goes...+--+++----+++++ etc and keeps checking?
04:12:13 <Patashu> or something more optimized
04:12:23 <myndzi> i tried using nested loops for a similar reason, but it didn't work out
04:12:27 <jix> it does -[-[-[-[++++[+ ...
04:12:28 <myndzi> i thought it was the speed loss because of ]]]]]]]
04:12:30 <Patashu> yeah
04:12:33 <Patashu> I was thinking
04:12:37 <Patashu> check five values one way, check five the other, etc
04:12:38 <Patashu> would be faster
04:12:42 <myndzi> but it might have been the hash rng at that time
04:13:08 <myndzi> on the other hand, i guess it's faster than -.-.-.-. for example
04:13:13 <jix> in wiggle 2 i did exactly the same... but "elminated" the ]]]]]
04:13:15 <myndzi> in cases where all those aren't necessary
04:13:29 <jix> which turns it into a rather large program
04:13:31 <myndzi> i see plenty of them?
04:13:42 <jix> myndzi: but they will be evaluated much less
04:13:56 <jix> worst case every 4 cells i think
04:14:14 <myndzi> i was going to make one where i nested everything so it never executes ]]]]] at all ;p
04:14:24 <jix> myndzi: would have been to large for that
04:14:34 <jix> (my definition of too large)
04:14:42 -!- Patashu has quit ("Patashu/SteampunkX - MSN = Patashu@hotmail.com , AIM = Patashu0 , YIM = Patashu2 , Googletalk = Patashu0@gmail.com .").
04:14:44 <myndzi> indeed, it was a pain in the ass
04:14:55 <jix> just take a look at that http://codu.org/eso/bfjoust/in_egobot/jix_wiggle2.bfjoust
04:15:03 <myndzi> i did
04:15:26 <jix> and in wiggle3 i tried to do a tradeoff
04:15:36 <jix> a) i setup proper decoys
04:15:50 <jix> b) i combine the "wiggle" technique with the +++++[-] thing
04:15:52 <myndzi> (i should have let you take those 1/20th losses ;)
04:16:03 -!- bsmntbombdood has joined.
04:16:10 <myndzi> i noticed a lot of contstant fiddling
04:16:26 <myndzi> the way you did it allows you to be pretty highly tuned to the hill contents
04:16:32 <jix> c) i use [-.] [+.] to defeat defend
04:16:42 <jix> (but only for the 2nd and 3rd non zero cell)
04:17:00 <ais523> jix: what about for the 4th? do you go back to [-] and [+]?
04:17:06 <ais523> if so, that's what's defeating defend9
04:17:15 <myndzi> he does
04:17:16 <myndzi> +
04:17:18 <myndzi> -.
04:17:19 <myndzi> -.
04:17:20 <myndzi> +.
04:17:21 <myndzi> +
04:17:25 <ais523> ah
04:17:35 <jix> myndzi: you got one additional -. there
04:17:43 * myndzi refreshes
04:17:45 <ais523> well, in that case I could probably beat wiggle just by giving defend7 a few more decoys
04:17:59 <myndzi> and then he could beat defend by adding a few more lines too
04:18:03 <myndzi> lols
04:18:09 <myndzi> why don't you just add 30 decoys
04:18:10 <myndzi> :)
04:34:18 <GregorR-L> Mao mao mao mao mao mao mao mao mao mao mao mao mao mao mao mao mao mao mao mao.
04:39:58 -!- pikhq has joined.
04:44:00 -!- ais523 has quit (Remote closed the connection).
04:46:00 -!- pikhq has quit (Read error: 54 (Connection reset by peer)).
04:46:10 -!- ais523 has joined.
04:49:36 -!- pikhq has joined.
04:51:42 <psygnisfive> GregorR: i dont think mao is like buffalo, in that respect.
05:11:57 -!- psygnisfive has quit (Read error: 104 (Connection reset by peer)).
05:17:04 <EgoBot> Score for kerlo__evil: 4.6
05:17:53 <kerlo_> Oh.
05:17:56 -!- pikhq has quit (Read error: 54 (Connection reset by peer)).
05:18:10 <kerlo_> Wow. EgoBot was loating http://normish.org/ihope/evil for that long.
05:21:16 -!- pikhq has joined.
05:22:53 -!- psygnisfive has joined.
05:57:01 -!- myndzi\ has joined.
05:58:29 -!- psygnisfive has quit (Read error: 60 (Operation timed out)).
05:59:22 -!- psygnisfive has joined.
06:04:36 -!- myndzi has quit (Read error: 60 (Operation timed out)).
06:18:33 <pikhq> dbc: Ah, yes. You're in here, too. XD
06:18:43 <dbc> Yeah :)
07:19:27 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:12:54 -!- KingOfKarlsruhe has joined.
08:20:18 -!- amca has joined.
08:39:59 -!- inurinternet has quit (Success).
08:56:39 <lifthrasiir> AnMaster: http://lifthrasiir.jottit.com/exe i revised the spec. does it look reasonable?
09:00:45 -!- Slereah has joined.
09:53:28 -!- Patashu has joined.
09:56:40 <amca> lifthrasiir: Is it only possible to have sync io in such an OS, or would async io be also possible?
10:13:16 <lifthrasiir> amca: have you looked at $05 xxxx 06..08 commands?
10:13:33 * amca looks
10:15:53 * GregorR-L puts forth again that any esolang-to-OS-through-stdout protocol should require or at least allow a \n at the end of every command sent.
10:16:24 <GregorR-L> Since some annoying interps (read: any interp that uses C stdio and doesn't fflush) will otherwise not send its data.
10:16:33 <lifthrasiir> GregorR: oh, that's good idea.
10:17:14 <GregorR-L> I've mentioned that twice in previous (aborted or at least mostly aborted) such systems :P
10:17:29 <lifthrasiir> :p
10:17:36 <amca> "# $05 xxxx 09 returns ??, which is true only if the handle is available for reading. On failure it returns error. # $05 xxxx 0a is same to $05 xxxx 09, but it's for writing." <- does that refer to checking if the io is ready-to-send/receive?
10:17:47 <GregorR-L> And in a week, somebody will ask why that's required, nobody will be able to answer, and it will disappear again, only for me to come back and explain it again. Oh, the cycle of annoying X-P
10:18:03 <lifthrasiir> amca: something like select(2) system call.
10:18:16 <amca> Ah
10:18:21 <amca> tnx
10:18:31 <lifthrasiir> (maybe i have to mention such equivalences)
10:18:44 <lifthrasiir> GregorR-L: :p
10:18:58 <GregorR-L> lifthrasiir: Sorry, it's just happened before :P
10:19:05 <lifthrasiir> GregorR-L, do you have any suggestions didn't make it into previous systems?
10:19:24 <GregorR-L> That's the only suggestion I ever had, I waited for them to mature a bit so I could poke around, and they never did.
10:19:38 <GregorR-L> Nobody can seem to get past the "idea" stage and to the "interpreter" stage for some reason.
10:20:13 <lifthrasiir> that's bad.
10:20:26 <lifthrasiir> but afaik PSOX has some implementation...
10:20:27 <lifthrasiir> had*
10:21:38 <amca> lifthrasiir: Which part deals with signals, or h/ware interrupts/handlers?
10:22:44 <lifthrasiir> amca: currently not, maybe added soon.
10:22:52 * lifthrasiir afk
10:35:19 <Gracenotes> :o
12:41:13 -!- clog has joined.
12:41:13 -!- clog has joined.
12:41:48 <GregorR-L> clog: We missed you!
12:44:08 * oerjan hugs clog
13:12:48 -!- tombom has joined.
13:13:01 -!- GregorR-L has quit (Read error: 110 (Connection timed out)).
13:34:27 <AnMaster> From the spam directory: "Subject: Fortune cookies help cops naab suspect"
13:35:06 * oerjan has a naaging doubt about the spelling there
13:35:15 <AnMaster> heh
13:43:02 <AnMaster> lifthrasiir, the long integer format seems screwy
13:43:19 <AnMaster> but interesting
13:49:45 <oerjan> rofl (but old) http://www.theonion.com/content/node/30832?utm_source=onion_rss_daily
14:10:48 -!- tombom has quit ("Peace and Protection 4.22.2").
14:14:44 -!- Corun has joined.
15:34:31 -!- oerjan has quit ("leaving").
15:50:36 -!- Slereah has quit ("Leaving").
15:59:51 -!- amca has quit ("the teacher I mean").
16:14:55 -!- impomatic has joined.
16:15:41 -!- Slereah has joined.
16:24:38 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
16:35:50 -!- Corun has changed nick to Corun|away.
17:05:40 -!- KingOfKarlsruhe has quit (Remote closed the connection).
17:09:56 -!- M0ny has quit (Read error: 60 (Operation timed out)).
17:13:59 -!- Corun|away has changed nick to Corun.
17:14:44 <MigoMipo> I'm still thinking about a good I/O model for Migol. I want something elegant that jumps to the I/O subroutine, executes the I/O, modifies the memory and jumps back to the main program, without messing up the language.
17:16:09 -!- Patashu has quit ("Patashu/SteampunkX - MSN = Patashu@hotmail.com , AIM = Patashu0 , YIM = Patashu2 , Googletalk = Patashu0@gmail.com .").
17:19:53 -!- Gracenotes has quit ("Leaving").
17:21:26 <tetha> hm, what about sections, similar to actual assembly languages?
17:23:29 -!- Judofyr has joined.
17:23:30 <MigoMipo> tetha: Sections?
17:25:16 <tetha> MigoMipo: define a section as a sequence of statements, and entering a statement as setting the program counter to the first element in a section
17:25:46 <tetha> MigoMipo: that way, you could have interrupt-based IO by simply executing the IO-section whenever the input-interrupt occurs (besides executing the code-section by default)
17:26:32 <tetha> this would also generalize nicely to all kinds of interrupts :)
17:28:02 <MigoMipo> tetha: Sounds interesting, can it be used as an interface to for example C libraries? Jumping to an another Migol code section seems pointless.
17:29:33 <tetha> MigoMipo: I think so. If you can map C's calling conventions into your memory model (which should be possible), then you could define something like a c-section which is entered upon the right interrupt
17:29:38 -!- Judofyr has quit (Remote closed the connection).
17:35:08 -!- Judofyr has joined.
17:36:45 -!- AnMaster has quit ("ZNC - http://znc.sourceforge.net").
17:49:07 -!- inurinternet has joined.
17:57:51 -!- M0ny has joined.
18:00:45 -!- kar8nga has joined.
18:03:35 -!- kar8nga has quit (Read error: 131 (Connection reset by peer)).
18:04:59 -!- kar8nga has joined.
18:11:47 -!- Sgeo has joined.
18:26:36 -!- olsner has joined.
18:28:42 -!- AnMaster has joined.
18:47:18 -!- jix_ has joined.
19:01:52 -!- jix has quit (Read error: 110 (Connection timed out)).
19:02:58 -!- sebbu2 has joined.
19:03:32 -!- jix_ has changed nick to jix.
19:18:10 -!- sebbu has quit (Read error: 110 (Connection timed out)).
19:25:35 -!- Judofyr_ has joined.
19:27:00 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
19:38:58 -!- tetha has quit (Nick collision from services.).
19:39:06 -!- tetha has joined.
20:03:29 -!- Corun has changed nick to Corun|away.
20:06:35 -!- tombom has joined.
20:22:08 -!- Corun|away has changed nick to Corun.
20:24:58 -!- oerjan has joined.
20:30:57 <AnMaster> yay back on usable screen resolution
20:31:30 <impomatic> 320x200 CGA
20:31:36 <oerjan> ___
20:31:42 <oerjan> __ _ _ __ ___ _ _ ___ _ _ ___ _ _ _ __ __|__ \
20:31:42 <oerjan> / _` | '__/ _ \ | | | |/ _ \| | | | / __| | | | '__/ _ \/ /
20:31:42 <oerjan> | (_| | | | __/ | |_| | (_) | |_| | \__ \ |_| | | | __/_|
20:31:42 <oerjan> \__,_|_| \___| \__, |\___/ \__,_| |___/\__,_|_| \___(_)
20:31:42 <oerjan> |___/
20:32:39 * pikhq high-fives Ørjan
20:32:49 <impomatic> Can't read that in my IRC client, had to paste it to notepad.
20:33:07 <pikhq> impomatic: ... You don't have monotype IRC?
20:33:14 <pikhq> Monospaced, rather.
20:33:19 <pikhq> That's... Wow.
20:33:33 <impomatic> No, it seems not
20:34:02 <oerjan> well it's probably not _that_ important
20:37:41 -!- impomatic has quit ("connection terminated by profanity filter").
20:40:51 <AnMaster> oerjan, 1400x1050
20:41:25 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
20:41:38 -!- Corun has changed nick to Corun|away.
20:41:57 <AnMaster> oerjan, instead of 1280x1024 on TFT with 1400x1050 as native res!
20:42:03 <AnMaster> (which seriously sucked)
20:44:53 <Asztal> why were you using that again?
20:45:34 <pikhq> Argh, LCDs not being run at native resolution!
20:46:10 <Asztal> usually either the graphics or the monitor is able to do letterboxing
20:46:55 <pikhq> Monitors don't letterbox. Evil, isn't it?
20:55:15 -!- Corun|away has changed nick to Corun.
21:11:45 -!- Corun has changed nick to Corun|away.
21:14:01 -!- M0ny has quit ("Read error: 182 (Connection reset by beer)").
21:44:05 -!- Slereah_ has joined.
21:47:34 -!- Judofyr has joined.
21:52:25 <ehird> 11:03 GregorR-L: Since apparently the master logging bots are prone to deadeadead.
21:52:27 <ehird> clog is rock-solid
21:52:37 <ehird> tunes.org is not
21:52:57 <ehird> 19:33 pikhq: impomatic: ... You don't have monotype IRC?
21:52:57 <ehird> 19:33 pikhq: Monospaced, rather.
21:52:58 <ehird> 19:33 pikhq: That's... Wow.
21:53:00 <ehird> nor I
21:53:39 <ehird> i wrote two silly things today:
21:53:48 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server").
21:54:06 <ehird> http://pastie.org/499629.txt?key=turhqwrztzeyugdoq3wzq
21:54:07 <ehird> http://pastie.org/499631.txt?key=cosj6kske51habowtnh5qa
21:54:20 <ehird> both have a rather complex backstory only comprehensible if your mind is identical to mine.
21:54:55 <oerjan> <ehird> clog is rock-solid <ehird> tunes.org is not <-- huh?
21:55:01 <ehird> oerjan: what?
21:55:15 <oerjan> clog logs on tunes.org
21:55:18 <ehird> i know
21:55:28 <ehird> i'm saying that tunes.org is the problem; clog itself is rock-solid software that never crashes
21:55:38 <oerjan> hm
21:55:39 <ehird> it just lacks, y'know, any open source code.
21:55:45 -!- Corun|away has changed nick to Corun.
21:55:52 <ehird> it doesn't help that the tunes project is dead^A(g64,g64)
21:56:38 -!- Slereah has quit (Read error: 110 (Connection timed out)).
21:58:25 <Slereah_> dead?
22:00:19 -!- kar8nga has quit (Read error: 104 (Connection reset by peer)).
22:02:49 <oerjan> !c printf("%d\n", 0xdead)
22:02:51 <EgoBot> 57005
22:03:19 <Slereah_> o
22:03:41 <Slereah_> Busy beaver instead
22:04:40 <ehird> busy beaver is computable isn't it
22:04:46 <ehird> if you have a machine more powerful than what you're trying to busy beaver
22:05:14 <oerjan> um...
22:05:28 <Slereah_> Well, you know it halts, so I guess you could just run every possible program of that length in parallel
22:05:33 <ehird> exactly
22:05:42 <ehird> takes a fuck of a long time, but very possible
22:05:59 <Slereah_> And then count the 1's
22:06:12 <ehird> yep
22:06:15 <Slereah_> Maybe by using the LOVE MACHINE 9000
22:06:19 <ehird> oerjan: prove me wrong
22:06:46 <Slereah_> Here is a little beaver of hers :
22:06:47 <Slereah_> [
22:06:47 <Slereah_> a[0:P1RI:b;1:P1LE:b]|
22:06:47 <Slereah_> b[0:P1LE:a;1:P0LE:c]|
22:06:47 <Slereah_> c[0:P1RIHA:c;1:P1LE:d]|
22:06:47 <Slereah_> d[0:P1RI:d;1:P0RI:a]
22:06:49 <Slereah_> ]
22:06:51 <Slereah_> [0=0;ims=a;d13;vh;etTecT;t1]
22:06:53 <Slereah_> :D
22:06:54 <oerjan> assuming you mean what i think you mean, it seems fine
22:07:09 <ehird> oerjan: yeah; so why is busy beaver considered uncomputable?
22:07:18 <ehird> a turing machine can calculate BB(x) for all x in finite time
22:07:22 <ehird> well
22:07:25 <ehird> apart from non-halting things
22:07:30 <oerjan> ehird: because it doesn't work if some of the programs you test might _not_ halt
22:07:43 <ehird> oerjan: if it was an FSM this'd be trivial
22:07:44 <ehird> grumble
22:08:05 <ehird> oerjan: if you run it all in parallel and keep a running total you can oslev it practically (with a few billion years or thereabouts)
22:08:09 <ehird> but that's not a pure solution
22:08:21 <oerjan> "oslev"?
22:08:23 <Slereah_> oslev?
22:08:31 <ehird> oerjan: solve
22:08:33 <FireFly> solve?
22:08:35 <FireFly> Ah
22:08:44 <ehird> oslev: Solve practically but not theoretically.
22:08:44 <ehird> :P
22:09:00 <Slereah_> But yeah, it's true that you might have one that seems to not stop, but will
22:09:03 <oerjan> ehird: it's not a few billion years. once you get up to the length where you can embed an ackermann function...
22:09:05 <Slereah_> In the distant future
22:09:09 <ehird> oerjan: true
22:09:14 <ehird> Slereah_: yeah
22:09:17 -!- Judofyr_ has quit (Read error: 113 (No route to host)).
22:09:22 <ehird> BB(x,y) where y is a parameter for size of an FSM can be done trivially
22:09:23 <ehird> though
22:38:35 -!- nooga has joined.
22:39:26 <nooga> hello þar
22:39:49 <pikhq> Ð.
22:40:12 -!- tombom has quit ("Peace and Protection 4.22.2").
22:42:56 <ehird> pikhq: gimme one of those fancy f's
22:43:15 <pikhq> You mean s?
22:43:18 <ehird> Yes.
22:43:23 <pikhq> I think I can ſee about getting you one.
22:43:27 <ehird> \o/
22:45:05 <FireFly> ſoo þar
22:45:08 <FireFly> soo thar
22:45:16 <ehird> pikhq: Argh. Unicode has small-caps, but not for all letters.
22:45:20 <ehird> (They're just for IPA)
22:45:30 <pikhq> Ugh.
22:45:43 <ehird> wait
22:45:44 <ehird> yes they do
22:45:45 <ehird> \o/
22:50:56 <ehird> pikhq:
22:50:57 <ehird> Brethren, and Fellow Citizens !
22:50:58 <ehird>
22:50:59 <ehird> Yᴏᴜ may depend, that thoſe odius Miſcreants and deteſ–
22:51:01 <ehird> table Tools to Miniſtry and Governor, the Tᴇᴀ Cᴏɴꜱɪɢɴᴇᴇꜱ,
22:51:03 <ehird> (thoſe Traitors to their Country, Butchers, who have done, and are do–
22:51:05 <ehird> ing every Thing to Murder and deſtroy all that ſall ſtand in the Way
22:51:07 <ehird> of their private Intereſt,) are determined to come and reſide again in
22:51:09 <ehird> the Town of Boſton.
22:51:11 <ehird>
22:51:13 <ehird> I therefore give you this early Notice, that you may hold yourſelves
22:51:15 <ehird> in Readineſs, on the ſhorteſt Notice, to give them ſuch a Reception, as
22:51:17 <ehird> ſuch vile Ingrates deſerve. J O Y C E, jun.
22:51:19 <ehird> (Chairman of the Committee for Tarring and Feathering.
22:51:21 <ehird>
22:51:23 <ehird> ☞ If any Perſon ſhould be ſo hardy as to Tear this down, they may
22:51:25 <ehird> expect my ſevereſt Reſentment. J. jun.
22:51:30 <pikhq> I can't see all of that; not all of the smallcaps show up right.
22:52:02 <ehird> pikhq: I can give you a plaintext document with which to use another font on.
22:52:18 <pikhq> Mmkay; URL?
22:52:28 <ehird> http://pastie.org/499720.txt?key=thydhbk8cjeonqchaaagq (also added a space to the first line, to align as in the original letter)
22:52:35 <ehird> well, notice
22:52:43 <ehird> http://upload.wikimedia.org/wikipedia/en/0/07/BostonTeaPartyJoyceNotice.jpg ← I think I did a pretty good reproduction
22:52:52 <pikhq> Thare.
22:52:52 <ehird> Designed for a monospaced font
22:55:23 -!- Patashu has joined.
22:55:35 <ehird> heh— [[In the colonies, Benjamin Franklin stated that the destroyed tea must be repaid, all 90,000 pounds.]]
23:02:02 -!- FireFly has quit ("Later").
23:02:12 <ehird> loeb loeb loeb loeb loeb loeb
23:02:36 -!- BeholdMyGlory has quit (Remote closed the connection).
23:02:40 <ehird> Who's (a) around, (b) knows haskell?
23:02:49 <Asztal> hi
23:02:57 * pikhq pokes oerjan
23:04:24 <oerjan> 'lo there
23:04:36 <ehird> ...aw damn, I had an idea but I realised that it required a type of (a = a -> b)
23:04:55 <ehird> specifically: a function which, when given a function of its type, probes it with inputs to attempt to determine if it's itself.
23:05:07 <ehird> so mirror :: a = a -> Bool
23:05:36 <oerjan> newtype Mirror = Mirror (Mirror -> Bool)
23:06:16 <oerjan> needs only a little additional pattern matching
23:07:30 <Asztal> I seem to remember seeing that before
23:08:26 <ehird> oerjan: ah, goo
23:08:27 <ehird> d
23:09:24 <ehird> oerjan: I'm not sure it's possible
23:09:32 <oerjan> i wonder if it isn't going to be hard creating one that isn't constant or non-terminating
23:09:47 <ehird> yeah
23:10:02 <ehird> you can pass special functions as "signals" to the questionee, but how do you detect if you get one?
23:10:05 <ehird> infinite regress
23:10:06 <oerjan> well, ok you have const True and const False
23:10:55 <oerjan> hm it may not be that impossible to get some information
23:11:02 * ehird writes a draft implementation
23:11:13 <ehird> oerjan: it can't be perfect, of course
23:11:36 <oerjan> newtype Mirror = M { runM :: Mirror -> Bool } for a little convenience, perhaps
23:11:53 <comex> 18:04 < ehird> ...aw damn, I had an idea but I realised that it required a type of (a = a -> b)
23:11:54 <oerjan> then M (const True), M (const False) are examples
23:12:01 <comex> is this Haskell?
23:12:05 <comex> if so, what does that mean
23:12:14 <oerjan> and from those you can make M ($ const False), etc.
23:12:16 <ehird> comex: yes
23:12:23 <ehird> mirror :: Mirror -> Bool
23:12:23 <ehird> mirror (Mirror f) =
23:12:24 <ehird> let r1 = f $ const True
23:12:26 <ehird> r2 = f $ const False
23:12:28 <ehird> it's a start
23:12:37 <oerjan> and you can do boolean operations on the result
23:13:14 <ehird> err, wrap of course
23:13:30 <ehird> oerjan: the problem is that if you do "f (Mirror f)", you don't terminate when passed yourself
23:13:39 <oerjan> right
23:13:53 <comex> I mean, what does a type of (a = a -> b) mean
23:13:58 <comex> or is that pseudo-syntax
23:14:00 <ehird> comex: pseudo
23:14:08 <ehird> comex: it means "type a such that a -> b"
23:14:13 <ehird> as in, f f f f f f
23:14:14 <ehird> is valid
23:14:19 <ehird> you can't represent it; it's not sound
23:14:23 <ehird> but you can do it w/ a newtype
23:14:29 <ehird> (since that adds a safety boxing layer
23:14:30 <ehird> )
23:14:35 <ehird> er
23:14:40 <ehird> f $ f $ f $ f $ that is
23:14:41 <ehird> well
23:14:43 <GregorR> OMG Gregor is back in Indiana.
23:14:45 <ehird> that's for (a = a -> a)
23:14:58 <oerjan> newtype actually does only virtual boxing, it doesn't show up in the compiled result
23:15:02 <ehird> yes
23:15:05 <ehird> but it's boxing in theory
23:15:28 <oerjan> it's not non-strict boxing
23:15:36 <ehird> oerjan: it's theoretical boxing
23:15:37 <ehird> type boxing
23:16:17 <ehird> mirror :: Mirror -> Bool
23:16:17 <ehird> mirror (Mirror f) =
23:16:19 <ehird> let r1 = f $ Mirror (const True)
23:16:21 <ehird> r2 = f $ Mirror (const False)
23:16:23 <ehird> in traceShow (r1, r2) False
23:16:25 <ehird>
23:16:27 <ehird> *Main> mirror (Mirror mirror)
23:16:29 <ehird> (True,True)
23:16:31 <ehird> (False,False)
23:16:33 <ehird> (False,False)
23:16:35 <oerjan> ehird: Mirror ($ const True)
23:16:35 <ehird> False
23:16:37 <ehird> i'm doubting this is possible without specially-crafted sentinel functions
23:16:39 <ehird> and I'm unsure how to craft them
23:16:43 <ehird> oerjan: ehm, what's that do?
23:16:53 <ehird> oerjan: that doesn't type yo
23:16:54 <oerjan> er wait
23:16:56 <Asztal> mirror (Mirror `on` the wall)...
23:17:00 <ehird> Asztal: yeah :)
23:17:24 <ehird> Asztal: the pun was of course on the magic mirror detecting who the fairest of them all is, and introspection
23:18:37 <oerjan> ehird: you're probably going to get some diagonalized non-terminating counterexample anyway
23:18:50 <nooga> coke mixed with coffee
23:18:58 <nooga> evil
23:18:58 <ehird> oerjan: nontermination on some inputs is fine
23:19:07 <ehird> but mirror (Mirror mirror) should always be True
23:19:14 <ehird> and most random functions of the tpe should be False
23:19:15 <ehird> *type
23:19:18 <ehird> nooga: the drug or the drink?
23:19:34 <nooga> the drink
23:19:39 <ehird> boring
23:19:41 <nooga> the drug is yuck btw
23:19:55 <ehird> :)
23:20:29 <oerjan> ehird: hm with wrapping my ($ const True) should become M ($ M (const True))
23:20:38 <ehird> oerjan: what would that do?
23:20:42 <ehird> I don't follow how it works
23:21:00 -!- Corun has quit (Read error: 104 (Connection reset by peer)).
23:21:04 <ehird> *Main> Mirror ($ Mirror (const True))
23:21:04 <ehird> <interactive>:1:8:
23:21:05 <ehird> Couldn't match expected type `a -> b'
23:21:07 <ehird> against inferred type `Mirror'
23:21:08 <oerjan> it tests by applying f to M (const True)
23:21:09 <ehird> if only it typed.
23:21:16 <ehird> erm
23:21:17 <ehird> oerjan:
23:21:18 <ehird> let r1 = f $ Mirror (const True)
23:21:20 <ehird> r2 = f $ Mirror (const False)
23:21:22 <ehird> oh, I see
23:21:24 <ehird> wait
23:21:26 <ehird> no I don't
23:21:31 <ehird> doesn't my example do that?
23:21:31 <nooga> what do we call mutable variables?
23:21:38 <ehird> nooga: evil.
23:21:40 <ehird> but: state
23:21:43 <oerjan> ehird: yes
23:21:53 <nooga> what are them? ;f
23:21:59 <oerjan> ehird: but then you could test more by using _that_ as the test
23:22:08 <ehird> oerjan: follow i don't
23:22:10 <ehird> nooga: state
23:22:11 <oerjan> to apply to
23:22:21 <ehird> oerjan: what does f get?
23:22:25 <nooga> lige
23:22:28 <nooga> like*
23:22:36 <oerjan> ehird: for any test function you make, you get a new test by applying to the first
23:22:54 <nooga> define a,b,c here { something something } forget a,b,c ?
23:22:58 <ehird> oerjan: sorry?
23:23:04 <ehird> oerjan: gimme a function (test->newTest)
23:23:06 <ehird> and I'll understand
23:23:15 <ehird> nooga: what?
23:23:28 <oerjan> ehird: yodawg t (Mirror f) = f (Mirror t)
23:23:46 <ehird> oerjan: no, not function and test
23:23:48 <ehird> test->newTest
23:23:51 <ehird> give an argument to f, get a new one back
23:24:21 <oerjan> ehird: t is the old test, yodawg t the new one
23:24:38 <ehird> oerjan: so (\test -> Mirror test)
23:24:47 <ehird> aka Mirror
23:24:50 <ehird> i'm not sure of the effects, oerjan
23:24:59 <ehird> what happens to the function?
23:25:04 <oerjan> sheesh
23:25:07 <nooga> ehird: i'm not sure if i understand
23:25:23 <nooga> could you give my an example?
23:25:32 <oerjan> ehird: why don't you just try yodawg out?
23:25:33 <ehird> nooga: I have no idea what the heck yo're talking about
23:25:35 <ehird> *you're
23:25:47 <nooga> ehird: about mutable vars
23:25:54 <ehird> oerjan: because I can blindly apply functions all day but my mirror doesn't return reasonable results so I'd have no idea at all what it does
23:25:58 <ehird> nooga: be more specific dammit
23:26:54 <nooga> http://llvm.org/docs/tutorial/OCamlLangImpl7.html << about wtf is that chapter about
23:27:14 <ehird> nooga: that is not what I meant!
23:27:17 <ehird> WHAT is your question to me?
23:27:53 <ehird> oerjan: wait, I get it
23:27:59 <nooga> ehird: about wtf is that chapter about
23:27:59 <oerjan> whew
23:28:03 <ehird> oerjan: we're asked: detect this function. we give it (const True).
23:28:06 <ehird> we pass that result on.
23:28:19 <nooga> what are those "mutable variables"
23:28:22 -!- Judofyr has quit (Remote closed the connection).
23:28:25 <ehird> nooga: variables you can change
23:28:30 <ehird> as opposed to invariable variables
23:28:36 <nooga> erm
23:28:51 <nooga> if domething is called a variable it's variable, right?
23:28:55 <ehird> no
23:28:59 <ehird> for instance,
23:29:03 <ehird> a :: Integer; a = 2
23:29:07 <ehird> in haskell, that's (informally) a variable
23:29:10 <ehird> but you can't reassign it
23:29:13 <ehird> nooga: it's a relic of old names
23:29:18 <ehird> we made variables, then we made immutable variables
23:29:21 <ehird> and now they're commons
23:29:24 <ehird> so we say mutable variables
23:29:34 <ehird> immutable variables: just names for values
23:29:43 <ehird> mutable variables: names for changable state that contains values
23:30:09 <nooga> okay
23:30:16 <nooga> now it's clearer
23:30:33 <ehird> oerjan: but I'm not sure how wrapping it helps us decide about the function
23:30:38 <oerjan> nooga: an immutable variable, like in mathematics, doesn't vary in a _single_ use, it varies _between_ uses
23:31:03 <ehird> i mean, not only should mirror interrogate its argument; if we think we're being called by mirror (i.e., it's responding like we would), we should try and pass information it expects back
23:31:08 <ehird> oerjan: erm
23:31:10 <ehird> oerjan: no
23:31:17 <ehird> don't say that, that's wrong
23:31:21 <ehird> that's not what it means in this context
23:31:24 <ehird> in fact I've never heard that
23:31:33 <oerjan> it's maybe too vague
23:31:41 <ehird> no, it's just wrong
23:32:19 <nooga> i wonder if it's possible to use partial evaluation to generate all possible cases of type usage in a SADOL program
23:32:42 <nooga> to generate fast code that doesn't care about types in runtime
23:33:21 <oerjan> hm put it differently, it doesn't vary within its scope, but it can have a different value if you enter its scope again
23:33:35 <ehird> oerjan: nope
23:33:37 <ehird> that's not what it means
23:33:39 <ehird> simply wrong
23:34:06 <oerjan> ehird: in mathematics?
23:34:12 <ehird> i don't know about mathematics
23:34:14 <ehird> I am talking about programming
23:34:17 <ehird> and language design
23:34:22 <nooga> okay okay
23:34:22 <ehird> and the term is never meant as you say
23:34:25 -!- sebbu has joined.
23:34:28 <oerjan> programming borrowed the word from math
23:34:34 <nooga> now i moved my thoughts to partial evaluation
23:36:27 <ehird> nooga: why not write a sadol interp, and a specializer?
23:36:31 <ehird> that'd be so more futamura.
23:36:51 <nooga> hm
23:37:15 <nooga> probably harder than a compiler
23:37:25 * oerjan read that as futurama
23:37:36 <oerjan> i guess he gets that a lot
23:37:38 <nooga> and with llvm i can make something quite optimal
23:37:42 * nooga either
23:37:47 <ehird> nooga: do you know what a specializer is?
23:37:47 <ehird> well
23:37:48 <ehird> in this cas
23:37:50 <ehird> e
23:37:51 <nooga> yea
23:37:53 <ehird> it's (interpreter → compiler)
23:37:57 <ehird> so the specializer could make an LLVM compiler
23:37:58 <nooga> i've read that twisted paper
23:38:04 <ehird> yes, a bit harder, but fuck, a lot coole.
23:38:05 <ehird> r
23:39:38 <nooga> porbably i'm too stupid to make it work
23:40:07 <nooga> probably* (destroy all mac keyboards)
23:40:39 <ehird> nooga: buy another keyboard, foo
23:40:43 <ehird> and it's an apple kb
23:40:51 <pikhq> Man, a specialiser would be cool. If tricky.
23:41:24 <ehird> pikhq: they exist
23:41:27 <ehird> they're crap, but they exist
23:41:31 -!- coppro has joined.
23:41:47 <ehird> hey
23:41:51 <ehird> greenity.
23:42:04 <nooga> i assume that the specialiser is a program that modifies the code of interpreter to obtain an instance of the interpreter suited for interpreting specific program
23:42:10 <nooga> and then the interpreter is compiled
23:42:11 <ehird> no
23:42:17 <ehird> nooga: that's one of the projections, pretty much
23:42:19 <ehird> (but more detailed)
23:42:25 <ehird> nooga: but another projection, is you give it an interpreter
23:42:27 <nooga> and we've got relatively fast running program
23:42:30 <ehird> and it gives you a compiler (interpreter → program)
23:43:02 <ehird> nooga: http://blog.sigfpe.com/2009/05/three-projections-of-doctor-futamura.html read this, it'll get you psyched about futamura
23:43:14 <ehird> pikhq: huh, youtube hd is 720p
23:43:17 <ehird> i thought it was 540p
23:43:18 <nooga> i've read that once, at night
23:43:19 <ehird> or w/e
23:43:25 <nooga> and it was too much
23:44:20 <pikhq> ehird: Yeah.
23:44:36 <pikhq> ... There *are* specialisers?
23:44:39 <ehird> you know what's awesome? <video>
23:44:41 <ehird> pikhq: yes
23:44:41 <pikhq> Hot damn.
23:44:45 <ehird> pikhq: well, here's a trivial specializer:
23:44:54 <ehird> (\f x -> "(" ++ sourceOf f ++ ") " ++ x)
23:45:02 <ehird> but yes
23:45:07 <ehird> there are ones that do optimization
23:45:31 <pikhq> So, they're just somewhat crappy, but whoo.
23:45:41 <pikhq> The future is promising.
23:46:07 <ehird> the Futamura Projections could be the plot for a good anime, I'm relatively certain of this
23:46:09 <ehird> bizarre, but good
23:46:16 <ehird> (It's probably the name)
23:46:38 <ehird> nooga: btw partial evaluation ~= specialization
23:46:50 <nooga> stop stop stop
23:47:05 <nooga> what do you mean "compiler (interpreter → program)" ?
23:47:11 <ehird> nooga: er
23:47:13 <ehird> I wrote that wrong
23:47:18 <ehird> nooga: let's start with some definitions
23:47:33 <ehird> program x = source to a program that, when run, produces a value of type x
23:47:39 <ehird> interpreter = program x -> x
23:47:44 <ehird> er
23:47:45 <ehird> okay
23:47:47 <ehird> nooga: stop
23:47:49 <ehird> new definitions:
23:47:59 <ehird> program lang x = source to a program written in language lang that, when run, produces a value of type x
23:48:09 <ehird> interpreter lang = program lang x -> x
23:48:19 <ehird> compiler lang targetLang = program lang x -> program targetLang x
23:48:25 <ehird> nooga: now, one of the Futamura Projections is:
23:48:32 <ehird> interpreter lang -> compiler lang targetLang
23:48:33 <ehird> thus
23:48:40 <ehird> interpreter lang -> program lang x -> program targetLang x
23:48:42 <ehird> thus
23:48:46 <ehird> (program lang x -> x) -> program lang x -> program targetLang x
23:49:01 <ehird> nooga: so, you give the specializer an interpreter
23:49:08 <ehird> and out pops a compiler - optimizing, is the whole point
23:50:12 <GregorR> System -> well-defined-but-impossible magic -> new, spectacular system.
23:51:03 <ehird> GregorR: Impossible?
23:51:10 -!- sebbu2 has quit (Connection timed out).
23:51:10 <fizzie> Oh, helloes.
23:51:13 <ehird> GregorR uses PULL THINGS OUT OF ASS. It's super uneffective!
23:52:29 <nooga> uhu
23:52:59 <nooga> maybe i'll start with something simpler than sadol
23:53:00 <oerjan> it's the shit
23:54:33 <pikhq> GregorR: Specialisers exist, they're just not very good, ehird says. ;)
23:55:44 <ehird> "Mr Meiwes spoke of how he felt ignored by his father, and longed for a good-looking younger brother[...]"
23:55:53 <ehird> Where [...] is defined as " - whom he would bind to himself forever by consuming."
23:58:36 <oerjan> ah that Meiwes
23:58:56 <ehird> Since entering prison, Meiwes has become a vegetarian[4] and has joined a prisoners' group favoring Green Party politics.[5][6]
23:58:57 <ehird> LOL
23:59:20 <nooga> that futurama thing melted my grey matter
23:59:26 <ehird> nooga: futamura
23:59:29 <nooga> i can't think about building a specialiser
23:59:33 <nooga> ehird: i know
23:59:50 <ehird> nooga: also, first you have to invent a simple language to write the interpreter in
23:59:52 <ehird> then, write the interpreter
←2009-06-02 2009-06-03 2009-06-04→ ↑2009 ↑all