[00:27] MSG: Ping timeout: 240 seconds [05:08] Join: flyduck joined #corewars [05:11] MSG: Client Quit [09:17] Join: fiveop joined #corewars [17:07] Join: Metcalf joined #corewars [17:07] Hi :-) [17:16] greetings. [17:19] Hi Bvowk [17:19] What are you working on? [17:23] freebsd deadlocks [17:25] freebsd dreadlocks? [17:26] heh [17:26] * Metcalf is busy implementing an interpreter in Redcode [17:26] no.. I've got a deadlock in my raid server.. [17:27] it hangs [17:27] and makes everyone angry [17:27] finally figured out the cause tho [17:27] cut it off and tell the server not to smoke weed on public [17:27] with crash dumps :) [19:16] JM: Silly man... [19:16] Nick Change: yoRGone changed nick to yoR [19:17] Join: raven joined #corewars [19:17] couple of redcode problem! [19:18] yah? [19:18] oh no! [19:19] 1. call / ret routines. each procedure should only be in the final compiled code if it is called [19:21] dont see that as a problem unless using redcode-libraries [19:22] 2. given the following code: dt a /dt b / dt c / dt d / dt e / dt f where dt is a macro, output the following compiled code: dat a,b / dat c,d / dat e,f [19:22] mizcu: that`s exactly what I want to use it for! [19:24] in case 2 you can use an internal counter for paired/unpaired number, and change onto new line accordingly [19:24] now writing a redcode oisc interpretter ;-) [19:24] having a match, no too much time to think [19:24] raven == Metcalf!? [19:26] Yes, just in a different room at home! [19:26] Which one are you implementing? [19:27] rssb - one operand [19:30] Already implemented subleq/subneq? [19:32] not yet [19:33] I prefer the fact rssb has a consistant spec for i/o [19:33] Ah, and you program it in macros!? [19:34] and I am purposely ignoring the mov oisc [19:35] I want to define the stored program with macros [19:39] So you can insert the 'program' (the one to be interpreted) easily.. [19:39] yes [19:40] to begin with I`ll store 1 instruction per redcode instruction [19:40] but obviously 2 are possible [19:42] bleh. [19:42] * bvowk sells yoR on ebay [19:42] * raven bids $5 [19:43] bah. [19:43] I should have specified a higher reserve. [19:45] * yoR was removed from ebay, due to various policy violations [19:46] bah. [19:46] See: http://pages.ebay.com/help/policies/offensive.html [19:47] "Items related to natural disasters or human tragedies" [19:47] Join: Fizmo joined #corewars [19:47] hi hi [19:47] well.. I've always thought you were a natural disaster. [19:48] disaster with most people is forced... it doesn't come easy.. not for yoR [19:48] No, but I lack substancial social, artistic or political value [19:49] I think you've submitted some fairly reasonable warriors. [19:49] Else I'll call on this policy: http://pages.ebay.com/help/policies/food.html [19:49] (as a last resort) [19:50] assuming I can use double indirection and absolute addressing, this isn`t too tricky [19:58] DynaHill is updated [19:58] Not bad Roy [20:00] whatcha hacking Yor? [20:01] Join: flyduck joined #corewars [20:02] does anyone know of a fast mars that has the -P flag (for running the simulation with every possible offset between two warriors) besides pmars? [20:03] I'm now trying to implement subleq/subneq in corewars :P [20:03] Hi fizmo, flyduck [20:03] And still struggling with Restricted Bolzmann Machines in the Netflix Prize [20:03] hi [20:03] hi flyduck [20:03] Fizmo: Indeed looking good, 14-1 :) [20:04] hello ;) [20:05] im struggling with trying to make a fitness() function thats both fast and good (ideally exhaustive) [20:07] Err, can't you just fight some round robin fights and determine a fitness from that? [20:07] but running exhaust 69 consecutive times is much, much slower than doing something like -r 250, for which you'd get more battles but no guarantee as to the legitimacy of the results... [20:07] yoR, you can, but the problem is that the fitness will change ! [20:07] yeah.. it will :) [20:07] and thats a big problem for a GA... [20:08] you should look at the -P option in pmars [20:08] Is it? [20:08] ive implemented some workarounds, like a progressive averaging of the fitness for individuals that survive for more than one generation [20:08] GA's are used to noisy fitness functions. [20:08] bvowk, i did that, but pmars is way too slow, and also the gui prevents me from using its output :P.. [20:08] You can always fight -P against a set benchmark... but my experience is that changing fitness isn't a bad thing [20:09] well [20:09] flyduck, try the -K option [20:09] Err, -k (lowercase( [20:09] a noisy fitness function is *ok* but i dont like the idea that a good individual gets one lousy fitness while a bad individual gets a good one and thus the bad individual procreates over the good one [20:10] well.. part of the problem is that wins are noisy. [20:10] they count for 3x more points.. [20:10] so scores are biased pretty heavily upwards [20:11] i can always adjust that though [20:13] within my fitness() i mean [20:13] not sure howd that affect the warriors performance on a hill.. [20:13] badly [20:13] I usually start with low numbers of rounds and lots of noise.. [20:13] clearing the scores often [20:14] and then work up the number of rounds and thus lowering the noise [20:14] as things improve.. [20:14] at the start however, better warriors are *MUCH* better than others [20:14] so the noise doesn't *REALLY* matter [20:16] I`m pretty sure I can implement rssb in 17 lines of redcode [20:17] hm [20:17] bvowk, have you ever caught the warrior that gets the highest overall fitness, even though it might score a low fitness one round and get knocked out of the gene pool ? [20:18] caught? [20:19] like.. [20:19] storing it, i mean? [20:20] RSSB including output? [20:20] yeah [20:20] Input and output from commandline? [20:20] with high noise, the top members of the current generation might not be the individuals that had the highest alltime fitness, i mean [20:21] No, but you don't want to search for the warrior with the alltime highest fitness because its based on the current pool (?) [20:22] If the pool changes the fitness changes (as long as you do normal GA, not testing against a benchmark) [20:24] what do you mean normal GA? testing the pool against itself ? [20:24] right now i am indeed doing a benchmark against a preset pool of handwritten warriors.. [20:25] Well a much used way of GA (in corewar) is to test the warriors in the pool against eachother, and pick the winners [20:25] In that case it doesn't matter if the one with the highest fitness dies the next round [20:26] MSG: Quit: DSOrganize IRC [20:28] Join: raven joined #corewars [20:29] yor: yes 17 with i/o [20:39] I've implemented the first basic stuff for SUBNEQ, but its a bit tricky, already around the 20 lines, without IO :( [20:41] that`s why I chose rssb! [20:42] I've implemented the halt instruction now, only the IO left :( [20:50] so... any comments on methods of crossbreeding ? [20:50] My RSSB is now 19 lines, but I'm probably being over-cautious. E.g. if the operation modifies the IP [20:50] at first i was doing a random set of points in the two parents, but now ive implemented crossbreeding at points that are meaningful to the final warrior, like line markers, swapping instructions, offsets, etc [20:51] MSG: Ping timeout: 240 seconds [20:53] crossbreed between to related parents [20:53] MSG: Quit: ChatZilla 0.9.84 [Firefox 3.0.5/2008120122] [21:05] It's difficult enough in redcode, imagine building it with 7400 logic chips :-) http://bitstuff.blogspot.com/2007/02/subtract-and-branch-if-negative.html [21:47] Join: Neogryzor joined #corewars [21:49] Met: Got it kind of working, mailed it to your digitalw address [21:49] It only outputs, no input [21:49] Thats because input wasn't explained :) [21:49] And it includes my SUBNEQ Hello World program [21:50] Hi Neo [21:51] Nice work Roy, will take a look now [21:51] I finished my RSSB, it's now 17 lines. [21:51] Input, output, halting included. [21:51] (although input won't work until I get a recompiled exmars streams) [21:52] Blegh, I only have output and halting :( [21:56] Ok, next move is a Corewar interperter in SUBNEG! [21:56] (or maybe a self-interperter) [21:58] There's already a self-interpretter in subneg [21:59] Yeah, but I must decypher the macro's first [21:59] I'll try that :) [22:00] Good evening all [22:02] Hmmm... nice code yoR [22:02] Hi Neo, what are you up to? [22:03] wee, getting pretty close to evolving a warrior that makes it on nano@SAL :D [22:03] Good work flyduck [22:04] just don't knock me off koth. [22:04] I'll be disappointed. [22:05] I'll type my RSSB in now to check if it works! [22:05] MSG: Quit: flyduck [22:07] By the way, I used MOD to only allow the virtual machine access to part of the core, so it can't overwrite the interpretter. If I remove the MODs, it's only 15 lines. [22:08] For anyone who hasn't got a clue what yoR and I are on about, http://retrocode.blogspot.com/2009/01/ultimate-risc-one-instruction-set.html [22:20] Now translating the websites Hello World (which is much larger!?) [22:21] Met: Not much [22:21] bbl [22:22] Nick Change: Neogryzor changed nick to Neo_away [22:23] I don't think there are many programs for the RSSB [22:23] Bah, didn't work :( [22:24] I translated the program to my interpreter, but no correct output :( [22:24] :-( [22:42] Ah! Solved it :) [22:42] What a job, debugging this code [22:42] ;-) [22:42] I forgot that the program was SUBLEQ instead of SUBNEG (stupid me! [22:43] Aha! [22:43] So Z Z 0 (which would be 0 and jump) didn't jump and ended... [22:43] I can't find a RSSB hello world so I'm just figuring out the best way to write one [22:44] Ill rewrite my program to SUBLEQ and then run the self-interpreter :) because the code seems to work well, can even debug it [22:56] w00t, their Hello World is working too :-D [22:57] * Metcalf is still writing his own Hello World [22:57] It's a bit trick without proper branches [22:57] I need to modify the instruction pointer by subtracting memory from it! [22:59] Pffft, no fun translating it... it would become 156 redcode lines! (the self-interpreter) [23:00] To big for exmars streams :-( [23:00] It is? [23:00] Doh! But I just replace sts with mov X <1000 for debugging ;-) [23:00] Then read it backwards in the debugger [23:02] Yes, unless you want to recompile it [23:03] I have a Quine in redcode, but it's too big for exmars streams [23:03] shit. [23:03] Quine? [23:03] I'm supposed to find a windows box to recompile that for you wasn't I? [23:03] Program which prints it's own source code [23:03] * Metcalf harasses bvowk! [23:04] It'd be a big help, but don't worry if you haven't got one handy [23:08] Ah ok [23:16] Nick Change: Neo_away changed nick to Neo [23:17] what is subleq, subneg, rssb...? [23:18] Those are programming languages with One Instruction Set [23:18] A virtual computer whose assembly language only has one instruction [23:18] Err... one instruction (period) [23:18] ??? [23:18] For example (Subleq) http://mozaika.com.au/oleg/subleq/hw3.sq [23:18] http://mozaika.com.au/oleg/subleq/ [23:19] I've just implemented this interpreter in redcode and translated the 'Hello World' example and ran it (works!) [23:21] Is it used for anything? [23:22] Other then showing off? [23:22] Not really [23:22] No.. [23:22] * yoR feels so silly now [23:22] hehe, sorry [23:22] There's a real Micro-controller which uses something similar. Also someone built one with 7400 logic chips [23:23] I prefer not to get hooked with that [23:23] * yoR wants to get a job as assembly programmer now [23:23] To hell with Java, this is much more fun :) [23:40] Just for fun I send an email to the Mozaika guy :) Maybe we can convince him to write redcode programs instead [23:40] He could even write them in SUBLEQ heh [23:40] :-) [23:41] Next project, a subleq to redcode compiler? [23:41] Pointed him to your blog(s) [23:41] Noo no nooo [23:41] I'm still struggling with my implementation here :-( [23:41] * yoR got a live (a silly one, but hey) [23:42] I'm about to add code to print out a step by step trace [23:42] hehe [23:45] Oh, by the way my implementation of your technique to print decimals fails when the last digit is 8 or 9. [23:45] I assume yours works by leaving the first loop earlier than mine [23:45] pfft :-) no idea what it was [23:46] Couldn't find that code just now, no idea where I put it [23:46] Reversing the number, so 3039 becomes 9303 [23:55] Nah, can't find it, nor remember 'my technique' :) so can't help you there haha [23:56] bed; roy Z; Z bed; [23:56] (means:) clear bed, put Roy in bed :-) [23:57] Nick Change: yoR changed nick to yoRnotSee [23:57] Nick Change: yoRnotSee changed nick to yoR_Gone [23:58] WOW! [23:59] Neo: mov.i Neo,bed [23:59] JM: See mail, very surprising email from Oleg! [23:59] He was just reading through your post, 5 minutes before I mailed him hehe