[00:52] hmm, im one to something.. [00:52] ye shall see, ye shall see [01:25] MSG: [10:21] Join: fiveop joined #corewars [10:29] Join: Fluffy joined #corewars [10:29] :) [10:30] I've just played a little bit with PyCorewar and let it determine the frequencies of executed instructions. [10:31] It is interesting to see, that it is enough to implement about 35 instructions (e.g. spl.a > $, mov.i # $) to cover more than 90 % of all executed instructions [10:31] (that's for 94nop, standard settings) [10:32] For nano you need to implement about 50 instructions to cover 90 % [10:32] but one instruction (mov.i # $) is enough to cover 22 % [10:44] hmm ... nobody [10:45] aparently the Sun Dragon has eaten you all and not only the sun [11:01] that means, that now you are all dead [11:01] and can't speak anymore [11:02] and I only talk to myself ... doh [11:06] exactly [11:42] MSG: Quit: Lost terminal [12:33] Join: Mizcu joined #corewars [13:11] Join: Snurglewo joined #corewars [13:11] hi Snurgle [13:11] Mizcu hi [13:11] Mizcu hi [13:12] dont remember right our seeing ou here before, though i havent read the logs for few days [13:12] Nick Change: Snurglewo changed nick to sundragon [13:12] new nick :-P [13:13] I can't use mine since it's already in use [13:13] interesting [13:14] Snurglewo doesnt sound like a common name to me [13:22] MSG: Quit: CGI:IRC 0.4.2 [EOF] [14:35] Join: Roy joined #corewars [14:36] So Fluffy, the biggest gain in speed might lay with the mov instruction.. [14:36] When do you have my 'special' version ready?? ;-) [14:54] Nick Change: Roy changed nick to RoyAway [15:11] spcial? [15:11] special [15:12] * RoyAway is going to (try to) make a Windows version [15:12] Well, compile it.. Fluffy is programming it [16:49] Join: Fluffy joined #corewars [16:49] :) [16:52] Roy! [16:52] Roy! [16:52] ROY! [16:52] You no longer need to try to compile a Windows version. [16:52] Have done it myself today in 25 mins. [16:53] I've used the usual amount of "divine inspiration" ;-) [16:53] All it took was to download and install Cygwin [16:53] PyCorewar did compile OUT OF THE BOX!! :-) [16:55] And did I mention, that it is faster than pMARS, exhaust, exhaust-ma and exmars? ;-) [16:57] Join: joonas joined #corewars [16:57] Hi joonas :) [16:57] hi fluffy [16:57] Nice to see you [16:57] was just browsing the logs and noticed you said you had pycorewars ready. [16:58] depends on how you define ready [16:58] -ish? [16:58] it correctly parses 99% of all warriors from Koenigstuhl [16:58] and seems to be the second fastest MARS [16:58] are the remaining ones the ones that break due to pmars bugs? [16:58] only fmars is faster [16:58] did you test qmars? [16:59] couldn't compile it :-( [16:59] :/ [16:59] well.. c++, what can you expect. [16:59] congrats tho [16:59] I've tried several different gcc version, but not one worked [16:59] i'm pretty sure 2.95.4 used to work. [16:59] well ... so it might be the third fastest MARS, but I don't that [16:59] heh [17:00] *don't -> doubt [17:00] seen will lately? [17:00] 2 weeks ago [17:00] k [17:00] but I haven't been here very often [17:01] so you have some kind of clustering thing going on? [17:01] or maybe that was someone else... [17:01] Nice FlufF! [17:01] Nick Change: RoyAway changed nick to Roy [17:01] joonas: I think, that was someone else [17:02] Roy: :-) [17:02] ah. [17:02] * joonas has to pay more attention when reading logs [17:02] * joonas waves at absent roy [17:02] Nenad.. [17:02] Nenad was clustering I think [17:03] Roy: When did Nenad start to consist of clusters? ;-) [17:03] Where can we download the latest version? And what are you struggling with (the final 1%?) [17:03] that's what i was going to ask [17:04] But then I joined and ruined the fun :P [17:04] do you use any gccisms in it? [17:04] I'm writing the docs, but if you give me 5 mins I'll upload the lastest (working) version [17:05] * joonas waits impatiently [17:05] hey, I only have a Pentium MMX, 133 MHz at the moment [17:05] and it takes some time to compress it with bzip2 [17:06] yes, i understand your pain. [17:06] * Roy just had his second job-interview, and they are still positive :) [17:06] what sort of jobs are you looking for, roy? [17:07] oh, btw, congratulations on graduations? [17:07] Java programming (sorry brx) [17:07] ns->ing [17:07] Not yet :) almost [17:08] http://corewars.jgutzeit.de/pycorewar/download/pycorewar-0.2.0.beta-2.tar.bz2 [17:08] did you get your evolver working roy? [17:09] Heh no.. still that silly bug, never looked at it again afterwards.. got annoyed with the bug [17:09] joonas: You need Python (>= 2.3) and a GCC to compile it [17:09] joonas: python setup.py install [17:09] k. what version of gcc? [17:10] 3.3.2 and up was tested [17:10] but should work with older versions [17:10] grr ... I forgot to uncomment all the tests in the testsuite [17:11] Now I have a reason to publish a beta-3 tomorrow ;-) [17:11] is "python setup.py install" going to write things outside the PyCorewar dir? [17:11] yes [17:11] :/ [17:11] /usr/lib/python2.4/site-packages/Corewar [17:11] is there a way to do local builds only? [17:11] python setup.py build [17:11] * joonas builds! [17:11] but then you have to change the rest of the files [17:11] or no [17:11] t [17:12] error: invalid Python installation: unable to open /usr/lib/python2.3/config/Makefile [17:12] eh? [17:12] it's a stock sarge python install! [17:12] it works here very well with debian [17:12] And where is the binary?? :P [17:12] Roy? [17:13] Roy: Install Cygwin and then you have an acceptable shell, where you can easily build it [17:13] www.cygwin.com [17:13] MSG: [17:13] * Roy wants a binary ;-) [17:14] Roy: I only had 40 mins to test it on windows [17:14] Roy: There won't be a binary during the next weeks, because I won't have access to a WinXP-machine [17:14] PyCorewar.exe hullabaloo.red reepicheep.red -r 100 [17:14] Maybe I'll make it then, I think I'll have some time soon [17:14] ah.. python-dev wants to be installed [17:15] Roy: It is "pymars -N -r 100 -b hullaballo.red reepicheep.red" [17:15] Roy: It's already been a miracle, that I only needed 25 mins to get it up and working under windows [17:16] can't import Corewar.Redcode [17:17] did you run "python setup.py install"? [17:17] because otherwise it WON'T work out of the box [17:17] no. [17:17] I set PYTHONPATH to `pwd` [17:17] had to rename corewar to Corewar to get the Corewar import to work [17:18] copy all files from build/lib.blah into Corewar [17:18] that might work [17:18] excellent [17:18] PyCorewar-0.2.0.beta-2 $ ./pymars [17:18] P-Space not yet implemented. [17:18] :) [17:19] pymars -N [17:19] -N --> no pspace [17:19] k. [17:19] I will write a sparate MARS with p-space support [17:19] that's for version 0.3.0 [17:19] should be fairly easy to do [17:19] does it work no, joonas? [17:19] *now [17:19] yes [17:20] it sais "Results for mw-fights not yet implemented [17:20] " [17:20] i->y [17:20] but yeah, it works as in runs. [17:20] that's because I haven't finished yet [17:20] (just a few lines for pymars to do mw-fights) [17:21] you can use the benchmark to compare PyCorewar with other MARS [17:21] Documentation/USING_PYCOREWARS show an incomplete overview about using it [17:24] is BenchmarkMARS94nop.c the actual source for the simulator? [17:24] or is that generated? [17:26] yes, that the source for the '94nop-MARS [17:26] it is partially generated with a python-script than manually tweaked [17:26] *than ->that is [17:27] there is an '88-MARS, which is almost as fast as fmars [17:27] BenchMARS88.c [17:27] I've stolen tons of code from exhaust/exhaust-ma/fmars [17:29] the src-subdirectory contains some useless files, too [17:29] they were for a debug-version, which I haven't worked on for a while [17:29] how did you test for correctness? [17:30] I've taken all warriors from '94nop Koenigstuhl [17:30] and run thousands of fights [17:30] k [17:30] and compared the results to pmars [17:30] mars_94nop_compare might sill run, but is only a part of the test [17:31] if you remove all the comments in the testsuite you can run the whole thing [17:32] did you do include any in-battle checksums? [17:32] no [17:32] at least not in this version [17:32] like, checksum core/pspace/process queues after an instruction is executed, etc. [17:32] I did while I was working on the MARS, but later removed the code [17:33] * joonas thinks that's the best way to test a mars, really [17:33] Might be a good idea to reimplement that and check, that everything is all right [17:33] run_94nop is pretty nice [17:34] But comparing the results of thousands of fights worked quite well [17:34] I've found a lot of bugs that way [17:34] nods [17:34] i think the process queue was the hardest to get right in the first place, iirc. [17:34] I've copied it from exhaust-ma [17:35] but tried several other versions, but couldn't find one, that worked better than the one from exhaust-ma [17:35] it looks good. [17:35] I've even tried to allocate MAXCYCLES+MAXPROCESS slots for the process queue [17:35] but it wasn't faster [17:35] yeah [17:36] odd though [17:36] but i suppose it's the caches that are killing it [17:36] then I only have to wait a couple of years [17:36] then most cpus will have big enough caches [17:36] well, before you know it, some enterprising soul has put a mars on an fpga. :) [17:37] The question might be how expensive it is [17:38] apparently some xilinx boards are pretty cheap right now. [17:38] 33 MIPS semms to be already quite fast :) [17:38] (on an AMD Athlong XP 2700+) [17:38] they're supposed to be pushing all their stuff out to make room for a new model or something. [17:38] *Athlon [17:39] what's an fpga? [17:39] yeah [17:39] fiveop: Wikipedia :) [17:39] it's like a piece of hardware that you get to program yourself [17:39] hrmpf :P [17:40] erh.. that didn't really give the full effect. [17:41] it's like having a circuit board that you get to rewire at will, using in software. [17:41] -in [17:41] joonas: No, there are tiny dwarfs on it, which do all the work! [17:41] heh. imps to carry the signals, no doubt. :) [17:41] They do all the stuff in their heads [17:42] people called fluffy and such [17:48] hm. [17:48] In any case, version 0.2.0 should work quite well now [17:49] only mw_run for '94nop is missing [17:49] can you make up your mind re: corewar vs. Corewar? :) [17:49] joonas: where? [17:49] setup build wants "corewar" but the import wants Corewar [17:49] the directory name [17:49] I can't use Corewar as directory name [17:49] the build will fail then [17:50] why's that? [17:50] err ... the testsuite, not the built [17:50] ah [17:50] If I have a directory named "Corewar" in the pwd [17:50] the all imports are done from that directory [17:51] and there you can only find the Python-Sources, but not the C-extensions [17:51] Maybe I should rename it to sth. else [17:51] well, i just symlinked Corewar to corewar and reran pythong setup.py build [17:51] seems to work? [17:51] hmm [17:51] will try that [17:52] but maybe I should rename the directory to "Fluffy's magic directory" [17:52] hm. [17:52] heh [17:52] and rename setup.py to "blahblash.py" [17:53] should be more intuitive that way [17:53] the build works on solaris too [17:53] and on windows :) [17:53] w/py2.4 and gcc 2.4 [17:53] 3.4 [17:53] wow.. that was pretty painless [17:53] Now I only need to publish the debugger (PyCorewar + PyGTK) [17:54] that sounds interesting [17:54] but at first I have to fix the little bugs in the parser [17:55] (multine EQUs and line continuations and FOR/ROF-loops with zero iterations) [17:55] hey.. all my code uses for/rof loops with 0 iterations. :p [17:56] I should have said nested for/rofs with 0 iterations [17:56] for 0 ... stuff ... rof works [17:56] but for 0 ... for 10 ... stuff ... rof rof does not [17:56] i see [17:56] in any case the parser need to be cleaned up [17:57] *needs [17:57] in your parser, can the for loop counter depend on labels that occur later than the rof? [17:57] yes, but that's another simple bug [17:57] that could be good. [17:58] is is easy to fix, but I won't do it, because I want to change the handling of labels [17:58] it's annoying that in pmars you can't do "for label2-label1 ...stuff rof label1: ... label2" [17:58] oh ... I thought, that you meant sth. different [17:58] PyCorewar's parser can't do that either [17:59] and as long as PyCorewar isn't the standard parser I see no need to implement it [17:59] It already was quite a pain to understand how pMARS' parser works [17:59] *groan* yeah. [17:59] (I still don't fully understand it) [17:59] pmars' asm.c is scary [18:00] I've settled to work with examples and how they are handled [18:00] That way I've found the bug in pMARS' parser [18:00] the - associativity one, or another? [18:00] yes, that one [18:00] it took quite a while to notice, that pMARS is wrong and not PyCorewar [18:01] do you follow pmars or the -94 draft when it comes to immediate mode in the b-field? [18:02] I don't know, what you mean [18:02] in pmars the value of an immediate b-field cannot be changed by the evaluation of the a-field. [18:03] yes, that's what I do, too [18:03] so something like: jmz <0, #1 [18:03] has different semantics in -94 draft and pmars. [18:03] hmm .. [18:03] no I'm not so sure [18:03] *now [18:04] no, I haven't tested it, but after execution, it should be "jmz <0, # 0" [18:04] yes [18:04] of course [18:05] but the point is that the b-field's b-value should be 0 if you follow the draft. [18:05] the used value for B-field it 1 [18:05] in pmars it's 1 [18:05] not 0 [18:05] because it is all read into registers (ra_a, ra_b, rb_a, rb_b like exhaust) [18:06] yes. exhaust is wrong. :( [18:06] oh [18:06] will test that [18:06] this is only an issue because chip wendell said he'd noticed it actually made a difference in (some battle between two warriors) [18:07] or not.. i might misremember. but chip found the bug in pmars, for sure. he'd implemented it the -94 draft way. [18:07] Maybe it is time for a new standard :) [18:07] that's what I said too. :) [18:08] but then he twisted my arm and made me push out a patch for pmars. [18:08] ;) [18:08] how about "The Fluffy Standard" [18:08] yeah.. [18:08] so how about those late labels in for/rof, eh? ;) [18:08] it'd be *really* handy. :) [18:09] Let's make a deal [18:09] uhoh.. [18:09] You publish a new warrior, which uses that feature [18:09] deal [18:09] and version 0.3.0 will support it [18:09] erh.. when you say "new"... [18:09] fuck [18:09] ok, deal. [18:09] deal :) [18:09] * joonas was going to punt and find all the old warriors that want to use it. :) [18:10] I've parsed a lot of warriors from Koenigstuhl [18:10] I'll noticed, if it isn't new [18:10] * notice [18:10] yes, and none of them can use it, so they use MAXLENGTH - constant instead. [18:11] the use case goes something like: "I want to pad with dat 0,0, yet leave space for the fixed length stuff that comes after." [18:12] yes, it took me a while to make that work ... it is still an ugly hack [18:12] (for PyCorewar's parser) [18:12] so that case actually does work? [18:12] pmars' parser doesn't support it, iirc. [18:13] nice [18:14] * Fluffy is confused [18:14] It might be, that we talk about different things [18:14] but at least I know, what I have to implement for 0.3.0 [18:17] so basically something like this: [18:17] boot: [18:17] z for (imp_end - imp_start) [18:17] mov imp_start+z-1, boot + 1000 + z-1 [18:17] rof [18:17] jmp boot+1000 [18:17] ...morestuff... [18:17] imp_start: [18:17] mov 0,1 [18:17] imp_end: [18:18] should recognise that (imp_end - imp_start) == constant [18:19] won't work in 0.2.0, will work in 0.3.0, but should be interesting to implement [18:19] is that doable without too much trouble in pycorewars' parser? [18:19] (and does that counta as a warrior? ;) [18:19] -a [18:20] Hmm ... I expect a better warrior from you [18:20] how about creating a new SoV? [18:20] ew [18:20] I mean one, that lives longer than SoV [18:20] shouldn't be that hard [18:20] besides, i think roy's got that one licked. [18:20] ;-) [18:20] a better sov, i mean. [18:21] As far as I know Roy != joonas [18:21] you still need to write a new warrior [18:21] yesyes... [18:21] fortunately, you did not specify the hil [18:21] l [18:21] * joonas chooses 94xm [18:22] then I expect you too finish the handshaking problem [18:22] ok [18:22] MSG: [18:23] mh. i need to get going though [18:23] * Fluffy waves [18:23] bye [18:23] MSG: Quit: [gone] [19:13] Join: erus` joined #corewars [19:13] hi erus` [19:14] hello :) [19:14] i have been looking at nano warriors [19:14] really clever stuff :) [19:15] and lots of evolved stuff :) [19:15] what like, GE warriors? [19:15] yes [19:15] omg thats crazy [19:15] no, evolved ;-) [19:17] No, it's crazy [19:19] Join: booh joined #corewars [19:19] Neo? [19:19] hi Pluffy :) [19:19] * Fluffy kicks booh [19:19] Nick Change: booh changed nick to ouch [19:20] hrm.. [19:20] good, mangling my nick is prohibited [19:20] Nick Change: ouch changed nick to Neogryzor [19:21] So, what's up, anything new? [19:22] Depends on the definition of "new" [19:22] Since 2-3 days ago [19:22] And no, I don't know, what you know and what you don't know [19:23] hmm ... RF 25 [19:23] Did you forget to close the canister of glue? ;) [19:23] Hi Neo [19:24] hi John [19:24] Neogryzor: Canister? Glue? Me? [19:25] Glue vapors can make you say odd things.. [19:25] I always say odd things regardless of the proximity of glue [19:26] oh, RF25. I took a fast look at it, and dind't understand well how it works [19:26] Maybe that's the challenge ... to understand how it works [19:26] * Fluffy doesn't understand it, too [19:26] heh [19:26] But I will submit two warriors [19:27] That's, what I have understood so far [19:27] Me too: imp+clear [19:27] How about two imps [19:27] then your score is 0 [19:27] which might be good enough [19:28] or imp and gate [19:28] I think, that "dat.f $ 0, $ 0" and "dat.f < 1, $ 0" might work as well [19:29] Why <1? [19:29] why not [19:29] :) [19:29] I like to leave traces [19:31] So John, what are you thoughts about RF25? [19:32] hey [19:32] if I remember correctly you all have been eaten by the Sun Dragon [19:32] You can't speak! [19:33] ? [19:33] read the start of today's logs [19:33] I only talked to myself [19:34] Tsk, tsk... the glue .... [19:34] Sun Dragon, not glue [19:35] It ate the sun today [19:35] and spat it out later [19:35] aw, the eclipse. [19:37] ... and ate all the lurker in #corewars [19:37] *lurkers [19:38] Seems so. It has been too quiet here lately. [19:38] hmm ... still not fast enough :( [19:39] Forget that ... again talking to myself [19:40] YES! I know how to win RF 25 [19:40] First I create several different email accounts [19:40] then I submit from each account two warriors [19:41] all of them made to support my "own" warriors [19:42] .. and then i hack Nenad's computer and rig the results to make my stupid entries win! :) [19:42] I usually want to win without committing crimes ;-) [19:44] Crimes? mmm... I didn't mean kill him... good idea though.. }:-D [19:45] hmm ... you know, that this channel is already under surveillance [19:45] Oh! Are cops looking?! [19:46] here it was talked about porn, making copies of (useless) programs, detonating nuclear devices, mass murder and killing Nenad [19:47] all are capital crimes [19:47] porn, nukes, mass murder.. when? [19:47] maybe except detonating nuclear devices ... that can't be that bad [19:48] porn ... a while (2 months) ago [19:48] nukes ... yesterday? [19:49] mass murder ... can't remember [19:50] In any case I know now, that it is that bad to use nukes [19:50] Join: Mizcu joined #corewars [19:51] I'd only get max. 5 years of prison here in Germany for detonating one nuke [19:51] * Fluffy is again only talking to himself [19:51] doh [19:52] hi Miz [19:52] is 12 ins/20 cycles too big/slow for a boot? [19:52] no [19:52] think about an 8 process paper ... it needs more than 16 cycles [19:52] but probably depends on the warrior [19:53] depends what are you booting, but seems you loose a few cycles [19:53] Let's assume, that I've answered "yes". Now you can abandon your new warrior [19:54] Its not really about the speed, i know that im booting a bit more stuff than usually, but i could drop the size to almost half, with couple cycles wasted on useless stuff [19:55] Are you booting more than one component? [19:55] about 3 [19:55] it that a large 3 or a small 3? [19:55] stone/clear/imp :) [19:56] since i boot two components and some extra stuff [19:56] it takes time and space.. [19:57] I'll suggest to reduce the code if you don't waste much time. Though, benchmarking gives the answer [19:57] but another component needs exact amount of processes, which creates a challenge [20:01] Join: DrewHK joined #corewars [20:01] hi [20:02] hi [20:02] Welcome to this nice channel, DrewHK! [20:05] Screw you guys ... I'm going home ;-) [20:05] * Fluffy waves [20:05] * DrewHK waves [20:05] MSG: Quit: dat.f # 0, < 1 [20:05] * Neogryzor waves [20:06] have you seen brx lately? [20:06] No. I haven't entered here lately. Take a look at the logs. [20:07] hmm, whowas ... [20:13] i wonder what is with him.. joins and quits... [20:14] slightly worse score, but not surprising, because had to de-tweak few places [20:16] DrewHK: Brx has been here briefly a few times [20:18] 2 lines and 3-4 cycles saved [20:24] fock [20:27] mm, lot better [20:27] though i cannot automize certain number [20:30] MSG: Quit: bye [20:33] mm.. me likes [20:34] 140 wilfiz without optimization [20:35] but dont have optimax on this comp [21:45] gotta go [21:46] bye all [21:46] bb [21:46] MSG: Quit: Physical Wreck IRC webscript: http://www.pswclan.com/cgi-bin/irc/irc.cgi [22:55] MSG: Quit: humhum [23:41] is anyone there? [23:58] well, are you?` [23:59] yep [23:59] im trying to compare just an instruction with another [23:59] leaving out fields