[00:00] I was after an opinion about the best way to store the compressed data [00:00] length / offset / literal triplets is poor if there's no match [00:01] I thought about everything being a literal, unless it's a marker, which indicates the next two values are a length / offset [00:02] the triplets are also poor at the beginning when there's no data in the sliding window [00:09] isn't there some zip method that uses lz and huffman? [00:09] deflate maybe [00:09] it has huffman codes to indicate "this is a backreference" [00:09] Yes, that's it [00:10] But I only want to program plain dictionary compression [00:10] Since it will be in redcode [00:10] * nescience nods [00:10] or maybe do something like utf does with a marker bit (what kind of input is it using?) [00:11] if it was in redcode though i think maybe you could use information other than just the numbers [00:11] like could you use the addressing mode to flag stuff? [00:11] After I've got it working in Redcode, I'll translate it to 8086 [00:11] i can't think at the moment if there's a way to test for "using this addressing mode" or something like that [00:11] There isn't [00:12] I was just going to use the a and b-fields [00:12] doesn't matter if it's going into 8086 [00:12] seems like flagging with a special bit may be simplest and best [00:12] I've written RLE encodes before [00:13] I've got an EXE compressor somewhere that I wrote. [00:13] Or a specific byte [00:13] or what about prefixing literal data with a length byte(s)? [00:14] Yes, that's the other option I wanted to consider [00:14] scuse my muddled brainstorming i'm supposed to be working [00:14] i'll be intermittent for a whil :P [00:14] Also, probably the best option :-) [00:14] I'm off to bed in a moment anyway [00:14] Just testing some code first [00:17] i'm not really sure what the characteristics of the encoded data are likely to be like [00:17] but another thought: a switch byte [00:17] (switch from literla to triplets) [00:18] better than having an extra byte for each triplet or sequence of literals if you get a bunch of the same kind in a row [00:18] Hmmm... I didn't consider that one. [00:18] I was also wondering if any of the other LZ variants solve the problem. [00:19] or maybe some kind of bitmap index [00:19] Without using an entropy encoder or messing about with bits [00:19] entropy encoder i am gonna have to look up [00:20] Just Huffmans or Arithmetic [00:22] Join: elkauka joined #corewars [00:22] hi@all [00:23] Hi El Kauka [00:24] hell, implement them all :D [00:24] :-) [00:24] have the header say which one it used based on which'd be most efficient for that data [00:25] That makes compression a bit trickier. [00:25] It's already bad enough [00:28] E.g. if we've got the seqence 1 2 3 2 3 4 5 6 1 2 3 4 5 6, it won't encode optimally unless the second one is coded as a literal [00:28] But the coder will see a match for 1 2 3 :-( [00:29] Okay, time for bed [00:36] yeah, tricksy indeed [00:37] there was an interesting encoding thing i was trying to work out a good way to do [00:37] we called it domino [00:37] the goal was to make the shortest string that contained all the supplied strings [00:37] by overlapping them [00:38] it had similar problems [00:38] (finding a non-optimal match first) [01:33] MSG: Quit: blaaaarghhh [01:41] bvowk, you around? [01:45] hey AndrewBC :) [01:45] Heya flyduck :) [01:45] How you doing? [01:48] pretty good, did you see one of my evolved warriors finally made it on the beginner hill? :D [01:48] ive been bragging about it for the past 2 days :P [01:48] I saw ;p [01:48] congratulations bud [01:49] thanks :) how have you been? [01:49] Pretty good. Busy like usual [01:52] what have you been up to? [01:53] learning Lisp, and working on SICP [01:53] neat ! [01:54] It's okay so far, but it boggles my mind every now and then [01:54] the only exposure to lisp that i had was in my programming languages class [01:55] yeah [01:55] My only exposure to assembly is through academics [01:56] it wasn't enough to help very much with redcode [01:56] what are you planning on doing with it? or learning it just for fun : ) [01:56] so I imagine it wasn't enough to help with actual assembly either [01:56] Well, I'm just learning it because I have not had great exposure to functional languages before, and I think it's better in the long run the more different ways of doing things that I'm exposed to [01:57] but, one thing that was discussed, that was interesting to me, was the possibility of Lisp being useful applied to core war warriors, as you could code a warrior in lisp, and make it reactive to it's environment [01:57] a different way of evolving [02:05] Lisp's application in the AI field would be a pretty good bonus to have [02:05] but, you know, this is for my second evolver, perhaps. [02:06] Need to finish my first before I start on my second! [02:06] Anywho, gonna go lay down for a bit [02:07] be back later [03:53] MSG: Remote host closed the connection [04:30] Part: NorthStar left #corewars [06:08] MSG: Read error: Operation timed out [06:54] * AndrewBC yawns [06:54] I think I slept too early [06:54] woke up at 1am, all ready for the day [07:03] ... Optimalist... [07:03] And the guy has an axe, in a frozen lake/river.... [07:03] Naked.. [07:03] That's not optimal! [07:04] .... You have to use a shovel! [07:04] What the heck? The canal in the netherlands [07:05] What kind of amazing crop is that? [07:05] Seeing the juxtaposition of wheat/barely/whatever with windmills, against a frozen canal is just a bit odd [07:14] Oh, gosh, just realized that all my comments on the photos I made in here were in the wrong room [07:15] http://www.boston.com/bigpicture/2009/01/icy_days_and_nights.html [07:15] ^ In case anyone is now interested [07:15] (And yes, there's a naked old man in a frozen lake/river, beating at it with an axe.) [08:05] AndrewBC: there is a game similar to Corewar, but the language used is lisp. [08:05] Oh? [08:05] Do tell :D [08:05] I'm can't recall the exact details. :-( [08:06] Oh no! You tease. [08:06] I think there's a paper on it, maybe Citeseer can help. [08:10] have never used citeseer before [08:10] it proposes I use a non-boolean search term [08:10] shall I use a quantum search term? [08:10] maybe programming game maybe using lisp maybe [08:11] it really depends on how you look at it, and you'll mess it up when you look at it anyway [08:11] ... maybe. [08:11] The paper probably has a reference to corewar, so maybe search for corewar [08:11] oh [08:11] that'd work [08:15] Hey! I have an idea [08:15] Are there any co-op hills? Or team battle hills? [08:27] No [08:30] i dont think they would be that good idea; [08:31] scanners and to part stones would be hampered by it, while papers wouldnt care [08:45] Hmmmmm [08:45] Maybe [08:47] giving your allies starting point at start would even out the scanner's penalty, while doing very little to stone and none to paper [08:49] I sometimes feel that Redcode's comparison limitations are holding back scanners and bombers [08:50] well, not just that [08:50] language limitations in general [08:50] but then, I've not looked at other hills than nano [08:51] am I wrong in thinking that a smaller size program is representative of larger programs, when facing similarly scaled constraints? [08:52] redcode-programs do not scale upwards with coresize/warriorsize [08:53] as long as tactics do not scale differently [08:53] that's the real worry [09:24] From the tiny hill (coresize 800) to the big hill (coresize 55440) the same strategies should work [09:25] Nano is a bit different. First most stategies can't be implemented in 5 instructions without making compromises and second, 5 instructions out of 80 is a big portion of core, there's a big change of being hit by random bombs. [09:31] yeah [09:31] One bomb scores 4% wins on nano. code = mov it's craziness [09:32] Neo found a solution to the call / ret problem :-) [09:33] problem? [09:33] Oh? I saw that and couldn't think of anything [09:35] Mizcu: any attempt to implement a CALL macro to emulate a CALL opcode fails [09:35] Or rather doesn't work under some circumstances, the addresses are off [09:38] hmm [09:41] Join: myndzi joined #corewars [09:43] 5 minutes of head-testing and they certainly would be off [09:44] MSG: Ping timeout: 240 seconds [09:44] One solution requests an extra macro, e.g. "call routine adjust" where adjust is a macro to fix the addresses [09:49] yeah [09:55] something like this came to my mind after thinking the problem with left lobe (while right lobe was playing civ 4, and thus the code is completely untested) [09:55] http://users.metropolia.fi/~mikaos/call.red [09:57] Will it work if embedded into a multi-line EQU? [09:59] i dont see a problem if the #(callstack+NNN) compiles correctly on the second parse [09:59] but as said, CIV4 [09:59] :-) [09:59] The problem is some of the addresses are off by 1 on the second parse :-( [10:00] should've guessed [10:01] E.g. this code is short. call and ret can be used as though they're an opcode [10:01] But unfortuately reverse calls are off by one [10:01] http://impomatic.blogspot.com/2009/01/call-return-macros-in-redcode.html [10:02] Neo and I have a solution that would work, but makes the call instructions look ugly! [10:29] Here's the best solution I've come up with http://impomatic.blogspot.com/2009/01/call-return-macros-in-redcode-possible.html [10:29] It needs an extra 6 lines of code, which is called once by each call. [12:36] yeah, my function works once the first line of the call-function is fixed from +4 to -4 [12:36] to -5 [12:36] but its a little big, i admit [12:37] wonder if some of the macro-code could be put on top of callstack [12:37] (and add an slt for overflow-protection, if one wants to be fancy) [12:47] mul atleast [13:17] Join: fiveop joined #corewars [13:42] Join: fish joined #corewars [15:26] nano is very different. [15:27] if you're so inclined and have a lot of cpu and disk.. you can actually test a huge percentage of the nano instruction space. [15:28] assuming you use some good heuristics to trim it down [15:59] Join: flyduck joined #corewars [17:47] MSG: Quit: z/ [18:08] MSG: Ping timeout: 240 seconds [20:27] Join: NorthStar joined #corewars [22:00] Join: Metcalf joined #corewars [22:01] Hi :-) [22:03] There always seems to be a few users on irc.koth.org, but not in a channel [22:06] are there other channels on koth.org? [22:07] Join: OoS joined #corewars [22:08] server doesnt list any other channels [22:09] there are personal channels of course [22:11] MSG: Ping timeout: 240 seconds [22:17] MSG: Ping timeout: 240 seconds [22:19] Join: OoS joined #corewars [22:21] bad connect, probably the weather [22:37] hrm. [22:37] disappointing. [22:40] ? [22:42] MSG: Ping timeout: 240 seconds [22:43] my tiny warrior scraped the hill and didn't hit it. [22:45] Join: OoS joined #corewars [22:47] at least it didn't GET scraped :) [22:49] MSG: Ping timeout: 240 seconds [23:37] MSG: Ping timeout: 240 seconds