Timestamps are in GMT/BST.
| 00:08:14 | | Darrel has joined |
| 01:37:14 | | koda has joined |
| 02:02:13 | | watusimoto has joined |
| 02:02:13 | | ChanServ sets mode +o watusimoto |
| 03:19:56 | | LordDVG has joined |
| 04:11:57 | | Darrel Quit (Read error: Connection reset by peer) |
| 04:14:00 | | Darrel has joined |
| 04:28:45 | | Darrel Quit (Quit: IRC client killed.) |
| 05:07:20 | | Watusimoto_ has joined |
| 05:47:07 | | Watusimoto_ Quit (Ping timeout: 256 seconds) |
| 07:04:06 | | koda Quit (Read error: Connection timed out) |
| 07:04:44 | | koda has joined |
| 07:22:23 | | LordDVG Quit (Remote host closed the connection) |
| 07:57:26 | | bobdaduck has joined |
| 08:25:45 | | punsit has joined |
| 08:37:42 | | bobdaduck is now known as IFOUNCMYTHUMBDRI |
| 09:07:17 | | raptor has joined |
| 09:07:17 | | ChanServ sets mode +o raptor |
| 09:07:31 | raptor | IFOUNCMYTHUMBDRI: hooray! |
| 09:08:00 | | IFOUNCMYTHUMBDRI proceeds to not back up anything |
| 09:08:42 | | IFOUNCMYTHUMBDRI is now known as bobdaduck |
| 09:15:32 | | Skybax has joined |
| 09:15:42 | Skybax | Goodmorning |
| 09:15:51 | raptor | buenos! |
| 09:16:11 | Skybax | lol spanish |
| 09:17:03 | raptor | espanglish? |
| 09:17:30 | Skybax | Englanish |
| 09:17:53 | bobdaduck | warning: Found team flag spawns but no flags (nexus gametype) |
| 09:18:03 | raptor | ? |
| 09:18:08 | raptor | hi watusimoto |
| 09:18:23 | raptor | did you see my e-mail? (I think I wrote it when too tired) |
| 09:18:23 | Skybax | That happens to me a lot |
| 09:18:27 | Skybax | The game runs anyways |
| 09:18:36 | raptor | editor warning? |
| 09:18:39 | Skybax | Yes |
| 09:18:40 | bobdaduck | yeah |
| 09:18:50 | bobdaduck | Nexus doesn't have team flags but you can team flagspawns |
| 09:18:55 | bobdaduck | What do? |
| 09:19:04 | bobdaduck | would teamed flags be a good addition to nexus or... |
| 09:19:09 | Skybax | Just hit "Y" and run it anyways lol |
| 09:19:26 | bobdaduck | Yeah I know |
| 09:21:55 | raptor | sigh - now it's my turn to revert the system java to Sun JRE... |
| 09:25:43 | watusimoto | hi raptor; saw your email; didn't read it; am reading it now |
| 09:25:55 | raptor | hello |
| 09:28:37 | bobdaduck | Okay so this looks like I've got a winning contest level here |
| 09:28:49 | raptor | yeah... you and 3 others! |
| 09:29:09 | bobdaduck | So what I'm gonna do now is cover the level with asteroids... |
| 09:30:14 | raptor | shhhh... don't give it away! |
| 09:30:34 | watusimoto | raptor: so the memory errors |
| 09:30:40 | bobdaduck | Asteroids are the frosting on the cake |
| 09:30:41 | bobdaduck | so to speak |
| 09:30:51 | raptor | watusimoto: they don't stop appearing! |
| 09:30:54 | watusimoto | from your message, my understanding is that when you do not create proxies, you get errors trying to delete proxies |
| 09:31:04 | watusimoto | is that a reasonable assessment? |
| 09:31:13 | raptor | i don't think so |
| 09:31:33 | raptor | if I *only* open the editor and run plugins, and exit the game |
| 09:31:46 | raptor | i get no memory errors (which is an improvement from before) |
| 09:31:54 | watusimoto | ok |
| 09:31:59 | watusimoto | that's good |
| 09:32:08 | watusimoto | no proxies are created at all in that scenario |
| 09:32:11 | raptor | if i only host a game (i.e use the proxy system) then i get no errors |
| 09:32:23 | watusimoto | ok, proxies are created and deleted in that scenario |
| 09:32:41 | raptor | but if i do editor stuff, then exit editor, then host game... i can get random crashes |
| 09:33:01 | watusimoto | like it crashes in mid-game? |
| 09:33:01 | raptor | but only hosting levels that use levelgens, of course |
| 09:33:08 | raptor | i've had it crash twice |
| 09:33:16 | raptor | on start-up |
| 09:33:25 | raptor | start-up of hosting the game, i mean |
| 09:33:42 | raptor | other times it doesn't crash until exit or not at all |
| 09:33:44 | bobdaduck | Is there something I can test for you? |
| 09:33:55 | raptor | in all cases valgrind gives me those invalid read errors in LuaProxy |
| 09:34:14 | watusimoto | so it seems tath running a levelgen after using the editor causes a problem |
| 09:34:22 | raptor | yes |
| 09:34:33 | watusimoto | do you need to run a plugin to make the problem occur? |
| 09:34:36 | raptor | forgive my late-night incoherence in that e-mail... |
| 09:34:49 | watusimoto | (i.e. could you use the editor without plugins and run the game without errors?) |
| 09:35:35 | raptor | let me test that... I think the answer will be 'no' because plugins are loaded and scanned upon editor start-up, thus triggering the no-proxy logic |
| 09:38:44 | | kodab has joined |
| 09:38:55 | raptor | man... i can't get my patch applied... |
| 09:39:01 | raptor | stupid line endings |
| 09:39:52 | raptor | ah there we go.. |
| 09:40:25 | watusimoto | ok, don't worry too much about it |
| 09:41:00 | watusimoto | Could it be that after disabling proxy creation, it is not fully re-enabled? i.e. proxies are being malformed in the game? |
| 09:41:32 | | koda Quit (Ping timeout: 256 seconds) |
| 09:41:40 | raptor | i thought about that... but my control logic is only in things that are 'actions' so to speak, not initializations |
| 09:43:17 | raptor | ohhhh |
| 09:43:23 | raptor | I think I see what's happening.. |
| 09:44:22 | raptor | the garbage collector for the plugin junk isn't being run until it's out of the PluginContext, thus triggering the clean-up as though it had proxies |
| 09:44:50 | watusimoto | ok, is that an easy fix? |
| 09:44:56 | raptor | i have no idea how to fix |
| 09:45:16 | watusimoto | in that case I guess I need to better understand what you just wrote :-) |
| 09:45:18 | raptor | because in the luaW_gc method, it needs to know which system it's using to clean up |
| 09:45:27 | watusimoto | I was hoping I could just nod knowlingly and pat you on your back |
| 09:45:36 | raptor | me too! :) |
| 09:45:44 | watusimoto | yes |
| 09:45:52 | raptor | but |
| 09:46:08 | raptor | the _gc method isn't running until I'm in the 'levelgen' context |
| 09:46:25 | raptor | since it's in that context, it thinks "I must have a proxy for this object" |
| 09:46:46 | raptor | and so tries to delete one... but it doesn't have one.. |
| 09:47:39 | raptor | simplified: start editor -> plugins are scanned, objects created *without* proxies (because it detects it's running as a plugin) |
| 09:47:41 | watusimoto | in luaw_gc, we have this: |
| 09:47:42 | watusimoto | if(proxy) |
| 09:47:43 | watusimoto | delete proxy; |
| 09:47:48 | raptor | exit editor |
| 09:47:51 | watusimoto | that check is insuffieicnet? |
| 09:48:26 | watusimoto | I feel like we should be able to detect on an object-by-object basis whether there is a proxy to delete |
| 09:48:50 | raptor | host game -> _gc method is run on plugin objects, but now it detects it as in levelgen context, so it tries to clean up a non-existant prox |
| 09:48:53 | raptor | *proxy |
| 09:50:20 | watusimoto | so luaW_toProxy should me made to return a nil if there is no proxy |
| 09:50:45 | watusimoto | then we change luaW_gc to not assert if luaW_toProxy returns nil |
| 09:50:54 | raptor | ok, i think i'm not saying explaining something fundamental... |
| 09:51:11 | raptor | in LuaW |
| 09:51:17 | raptor | i created a method: useLuaProxy() |
| 09:51:27 | raptor | that detects the context (plugin, levelgen, etc.) |
| 09:51:42 | watusimoto | am I looking at old code? or is that code not checked in? |
| 09:51:49 | raptor | my e-mail |
| 09:51:51 | raptor | has a diff |
| 09:51:55 | watusimoto | right |
| 09:51:56 | raptor | that explained my changes |
| 09:52:36 | raptor | i use useLuaProxy() in _push() and _gc() |
| 09:52:59 | raptor | to determine whether to use upstream _push() or our proxy system |
| 09:53:20 | watusimoto | looking at that now |
| 09:53:38 | raptor | and I made lots of nice notes |
| 09:53:59 | watusimoto | yes, ok, I see how you changed lauW_gc |
| 09:54:40 | watusimoto | however, my suggestion still stands |
| 09:54:56 | raptor | which was? |
| 09:55:13 | watusimoto | we need to check on an object-by-object basis whether there is a proxy |
| 09:55:21 | watusimoto | I don't think doing it in "modes" will work |
| 09:55:23 | raptor | ahhh |
| 09:55:24 | raptor | ok |
| 09:55:44 | watusimoto | and I think the best place to do that is in luaW_toProxy |
| 09:56:03 | watusimoto | if there is no proxy for a particular object, that would return nil |
| 09:56:18 | watusimoto | now how to detect if there is a proxy is a different question |
| 09:56:33 | watusimoto | it might be easy from what we have, or we might need to set a flag, I'm not sure |
| 09:57:16 | watusimoto | so the mode appraoch would only be used when creating an objct |
| 10:00:08 | raptor | ah |
| 10:00:24 | raptor | then the _gc method needs to just adapt to whatever it has |
| 10:02:38 | watusimoto | yes, exactly.... |
| 10:03:10 | raptor | this seems like it is waaay more complicated than it needs to be... |
| 10:08:22 | | kodab Quit (Ping timeout: 246 seconds) |
| 10:13:47 | watusimoto | well, is it difficult to tell from an object if it has a proxy? |
| 10:16:00 | raptor | i suppose each object has a getLuaProxy() |
| 10:16:20 | raptor | that *should* be instantiated to NULL |
| 10:27:06 | watusimoto | yes, that is what I was thinking |
| 10:27:47 | raptor | so I a problem... luaW_to must be able to decide if the object has a proxy or not.. |
| 10:28:17 | watusimoto | if that returns null, no proxy! |
| 10:28:53 | raptor | but the guts of it needs to convert a stack object into a real object |
| 10:29:31 | raptor | and it does that by: static_cast the userdata on the object as a proxy, grabbing the proxiedObject |
| 10:31:47 | raptor | i'm not sure how to test if the userdata is a proxy or the object itself without a dynamic cast.. |
| 10:32:14 | raptor | this may be where we need another flag.. |
| 10:32:21 | watusimoto | do the dynamic cast |
| 10:32:41 | raptor | but.... |
| 10:32:44 | raptor | dynamic_cast... |
| 10:32:49 | watusimoto | I know we like to aviod them,but sometimes they are the right tool for the job |
| 10:34:17 | raptor | yeah... |
| 10:34:22 | raptor | dynamic_cast fails |
| 10:34:31 | watusimoto | where is this code? |
| 10:35:01 | raptor | ok, want me to get you a proper diff of my changes? |
| 10:35:13 | watusimoto | of course, if dynamic_casting won't work, then we'll need the flag! |
| 10:35:24 | watusimoto | I don |
| 10:35:37 | watusimoto | 't want a diff right now, as I'm about to head home |
| 10:35:38 | raptor | don quixote? |
| 10:35:42 | raptor | okey doke |
| 10:35:53 | watusimoto | but why does dynamic_cast fail? |
| 10:36:10 | raptor | error: cannot dynamic_cast ‘pud->luaW_Userdata::data’ (of type ‘void*’) to type ‘class LuaProxy<Zap::CoreItem>*’ (source is not a pointer to class) |
| 10:36:34 | raptor | the luaW_userdata has not RTTI associated with it |
| 10:36:37 | raptor | *no |
| 10:37:05 | watusimoto | then maybe we need a flag isProxy or whaever |
| 10:38:18 | raptor | so in luaW_push() we have userdata to set |
| 10:38:18 | raptor | if we use a proxy, we set that as the userdata |
| 10:38:30 | raptor | if we don't, we use the original obejct as the userdata |
| 10:38:40 | raptor | (with my new code, that is) |
| 10:38:49 | raptor | where else are we going to keep a flag? |
| 10:40:01 | raptor | ok, if you're headed home, i'll wait for you later |
| 10:40:10 | watusimoto | I'm puzzling over your question |
| 10:40:31 | watusimoto | did you mean "where aer we going to keep a flag?" |
| 10:40:40 | raptor | heh, yes |
| 10:41:20 | watusimoto | maybe we create a table with a key being the userdata? |
| 10:41:32 | watusimoto | in the registry somewhere? |
| 10:41:41 | watusimoto | userdata: hasProxy |
| 10:42:16 | raptor | using standard Lua C mechanisms? |
| 10:42:27 | watusimoto | because we need to know before we cast, that is before we have the C++ obejct |
| 10:42:32 | raptor | yes |
| 10:43:03 | raptor | maybe we need to think about everything differently... |
| 10:43:03 | watusimoto | using the same mechanism we use to keep the cache and other stuff that luaW keeps |
| 10:43:24 | raptor | is there a way we could unify the userdata objects? |
| 10:43:41 | watusimoto | what do you mean? |
| 10:44:00 | raptor | so we either use a proxy as the userdata OR use the object itself |
| 10:44:05 | raptor | is there a way to avoid that? |
| 10:44:28 | watusimoto | well, we could always use a proxy, which doesn't work |
| 10:44:37 | raptor | haha |
| 10:44:38 | watusimoto | or we could never use a proxy, which also doesn't work |
| 10:44:44 | watusimoto | so... no? |
| 10:44:58 | raptor | i'm just trying to think outside the problem a bit... |
| 10:45:04 | watusimoto | yes, and that's good |
| 10:45:29 | watusimoto | ok, I'm going to head out... we can duscuss further tonight, and I can try applying your patch so I can see the actual code in context |
| 10:45:40 | raptor | ok, i'll get the patch ready... |
| 10:45:42 | watusimoto | because right now I feel rather blind |
| 10:45:50 | watusimoto | ok, back in a few hours |
| 10:45:53 | raptor | later! |
| 10:46:36 | raptor | patch: http://sam6.25u.com/upload/luaW_context_patch.diff |
| 10:50:43 | | watusimoto Quit (Ping timeout: 246 seconds) |
| 11:04:05 | bobdaduck | can I have logbot keep track of my bitfighter todo list for me? |
| 11:04:49 | raptor | you have a TODO list? |
| 11:04:53 | bobdaduck | Yeah |
| 11:05:14 | raptor | well, logbot can spit out links.. |
| 11:05:17 | raptor | on commands |
| 11:06:51 | bobdaduck | can logbot have just an array and I be like "logbot todo: 'draw promo art for contest'" |
| 11:07:27 | bobdaduck | and then like, !todo and it'll spit out alll the items. And I can be like "logbot complete: 1" and it'll remove whatever item is at that index |
| 11:08:10 | raptor | uhh, i'm afraid he's a bit too dumb for that |
| 11:08:29 | bobdaduck | It is? |
| 11:08:38 | raptor | but you could use etherpad!: http://beta.etherpad.org/ |
| 11:09:41 | bobdaduck | Why is logbot too dumb for that? I could program what I described as a levelgen using like less than 30 lines of code |
| 11:10:45 | raptor | hmm... maybe logbot should be Lua-ized? |
| 11:10:56 | bobdaduck | lol |
| 11:13:24 | bobdaduck | Like I don't see why it would be hard to add that |
| 11:14:09 | raptor | it's written in Java... |
| 11:14:18 | raptor | probably wouldn't be that hard |
| 11:14:26 | raptor | it whould be written in python.. |
| 11:15:09 | bobdaduck | I'm attempting to learn java at codecademy! |
| 11:15:18 | raptor | oh yay! |
| 11:15:39 | bobdaduck | on and off. |
| 11:15:40 | raptor | you're on your way to learning c++! |
| 11:15:43 | bobdaduck | xD |
| 11:15:52 | bobdaduck | I already have a class I took in C++ |
| 11:16:07 | raptor | oh yeah.. |
| 11:16:25 | bobdaduck | Bitfighter isn't coded in C++ though |
| 11:16:54 | bobdaduck | Bitfighter's source is practically a language of its own |
| 11:18:14 | bobdaduck | Anyway back on subject can I upgrade logbot? |
| 11:19:10 | raptor | or... |
| 11:19:31 | raptor | well, you can look at the soruce code here: http://code.google.com/p/bitfighter/source/browse/?repo=tools |
| 11:20:51 | bobdaduck | pircbot.jardesc |
| 11:20:54 | | LuaBot has joined |
| 11:20:54 | bobdaduck | these filenames |
| 11:20:55 | raptor | oh hey, we have a new lurker |
| 11:21:00 | raptor | hi punsit |
| 11:21:17 | raptor | look! I made LuaBot connect! |
| 11:21:34 | | punsit has left |
| 11:21:54 | bobdaduck | WHAT DID I TELL YOU |
| 11:21:58 | bobdaduck | ABOUT NOT MENTIONING LURKERS BY NAME |
| 11:22:25 | | raptor is ashamed |
| 11:22:48 | bobdaduck | Hi luabot |
| 11:22:54 | bobdaduck | !bot |
| 11:22:54 | BFLogBot | I'm a real boy! |
| 11:22:54 | raptor | LuaBot: speak |
| 11:23:48 | raptor | !sunset |
| 11:24:01 | raptor | !die |
| 11:24:06 | bobdaduck | !selfdestruct |
| 11:24:13 | bobdaduck | !kryptonite |
| 11:24:14 | raptor | hmmm... i think LuaBot is broken |
| 11:24:18 | bobdaduck | Maybe. |
| 11:24:59 | | LuaBot Quit (Remote host closed the connection) |
| 11:25:18 | | LuaBot has joined |
| 11:25:24 | raptor | hi |
| 11:25:40 | raptor | ohhh... you have to PM it... |
| 11:25:58 | raptor | or not.. |
| 11:26:44 | raptor | huh |
| 11:27:03 | | Watusimoto has joined |
| 11:28:30 | bobdaduck | I like luabot |
| 11:29:04 | raptor | let me restart him with some logging.. |
| 11:29:04 | | LuaBot Quit (Remote host closed the connection) |
| 11:29:15 | bobdaduck | He's just shy. I bet I can get him to open up! Can I see his code? |
| 11:29:31 | raptor | stole him from here: https://github.com/davidshaw/ircbot.lua |
| 11:29:38 | raptor | but you need to install Lua and LuaSocket |
| 11:29:45 | raptor | to run him |
| 11:34:41 | bobdaduck | hm |
| 11:34:53 | raptor | i think LuaBot is slightly broke |
| 11:35:01 | bobdaduck | slightly |
| 11:35:51 | bobdaduck | How do I get "lua" and "luasocket"? |
| 11:38:03 | raptor | well... i think this bot is broke |
| 11:38:31 | Watusimoto | raptor: only here for a minute, but did you look at py2exe for the status checker? |
| 11:38:31 | | LuaBot has joined |
| 11:38:36 | Watusimoto | or only cython? |
| 11:39:04 | raptor | I'm using pyinstaller which is a competitor (but newer) than py2exe |
| 11:39:10 | raptor | and that's how I make the EXE |
| 11:39:16 | Watusimoto | ah, ok |
| 11:39:27 | | LuaBot Quit (Remote host closed the connection) |
| 11:39:29 | Watusimoto | and it works well enough? |
| 11:39:43 | raptor | yes... did I not give you a newly compiled EXE? |
| 11:39:46 | | raptor goes to look |
| 11:40:23 | Watusimoto | you did |
| 11:40:28 | Watusimoto | but I didn't download it |
| 11:40:31 | raptor | here: http://sam6.25u.com/upload/bitfighter-notifier-windows.zip |
| 11:40:41 | Watusimoto | ok, downloading it now |
| 11:40:59 | raptor | it's simple, but uses a unified-ish code base with the other platforms |
| 11:41:20 | Watusimoto | that's kind of important for us, I think |
| 11:41:38 | Watusimoto | ok, dinner time... back later! |
| 11:41:42 | raptor | I wrote instructions on how to get it running and build in windows in the 'tools' repo |
| 11:41:44 | raptor | ok |
| 11:42:59 | bobdaduck | what's wrong with the bot being broke? |
| 11:43:21 | raptor | it doesn't connect when trying to debug it.. |
| 11:43:46 | raptor | and when it connects, it doesn't respond to commands.. |
| 11:44:53 | bobdaduck | yeah |
| 11:45:49 | | Watusimoto Quit (Ping timeout: 245 seconds) |
| 11:45:55 | bobdaduck | I'm confused by logbots code |
| 11:46:07 | bobdaduck | I always get confused by lots of interlinking files... |
| 11:47:31 | bobdaduck | like... Where is the actual code? xD |
| 11:47:46 | raptor | do you knwo how to use an IDE? |
| 11:47:49 | raptor | like eclipse? |
| 11:48:09 | raptor | here, check out the code repository: http://code.google.com/p/bitfighter/source/checkout?repo=tools |
| 11:48:15 | raptor | frommercurial |
| 11:48:28 | raptor | then load the sub directory 'BitfighterLogBot' in eclipse |
| 11:49:04 | bobdaduck | No I don't have any idea |
| 11:49:40 | raptor | any experience with Java? |
| 11:49:44 | bobdaduck | I... TortoiseHG? |
| 11:49:45 | bobdaduck | No |
| 11:49:52 | raptor | hmm... then this will hurt |
| 11:49:57 | bobdaduck | lol |
| 11:50:06 | raptor | yeah, you can check out the code in hg |
| 11:50:19 | bobdaduck | I've managed to open bitfighter 019's source code before |
| 11:50:35 | bobdaduck | but other than that I have little idea what you're even talking about |
| 11:50:43 | raptor | :) |
| 11:51:34 | raptor | well, if you *really* want to delve into the logbot code, i'll help you get it set up |
| 11:52:01 | bobdaduck | Um |
| 11:52:07 | bobdaduck | I'm gonna say "later" |
| 11:52:10 | raptor | ok |
| 11:52:22 | bobdaduck | I want to but I'm at work and am uncomfortable installing random software on my work computer xD |
| 11:52:45 | raptor | heh, ok |
| 11:53:20 | raptor | eclipse is an IDE like visual studio c++, but mostly for Java - and it's magical |
| 11:53:34 | bobdaduck | magical? |
| 11:53:47 | raptor | yeah, like it does half the coding work for you |
| 11:54:04 | raptor | with things like auto-completion and method look-up |
| 11:54:42 | bobdaduck | ah |
| 12:02:11 | bobdaduck | yay I get to learn things |
| 12:02:29 | bobdaduck | BUT FOR NOW it is lunchtime |
| 12:03:00 | | bobdaduck Quit (Remote host closed the connection) |
| 12:58:15 | | bobdaduck has joined |
| 13:02:57 | bobdaduck | kback |
| 13:07:32 | | fordcars has joined |
| 13:26:22 | | Watusimoto has joined |
| 13:32:40 | raptor | well what do you know - egypt has reset itself again |
| 13:34:18 | bobdaduck | it has? |
| 13:36:40 | raptor | yeah, the military has suspended the constitution |
| 13:50:44 | bobdaduck | huh. |
| 14:10:44 | fordcars | later guys. gtg |
| 14:15:15 | | fordcars Quit (Ping timeout: 250 seconds) |
| 14:39:54 | bobdaduck | CONTEST SUBMISSION FINISHED RAPTOR |
| 14:40:38 | raptor | HOORAY |
| 14:40:55 | raptor | do another! |
| 14:42:26 | bobdaduck | Maybe |
| 14:42:32 | bobdaduck | I'll have to get inspired |
| 14:43:10 | bobdaduck | Also I upgraded your gravity well code to work with unlimited gravity wells in the level |
| 14:43:22 | raptor | ha! |
| 14:44:15 | Watusimoto | hey raptor: is this a good time to talk about the lua stuff? |
| 14:44:40 | raptor | uh sure |
| 14:44:56 | raptor | Watusimoto: patch: http://sam6.25u.com/upload/luaW_context_patch.diff |
| 14:49:01 | | koda has joined |
| 14:49:09 | raptor | problems we face are that we can't use the script context in the _gc() method... and probably not in the _to() or _check() methods ither |
| 14:49:20 | raptor | definitely not in the _to() |
| 14:49:28 | raptor | because it's used in _gc() |
| 14:51:03 | | Watusimoto_ has joined |
| 14:52:57 | | Watusimoto Quit (Ping timeout: 276 seconds) |
| 14:58:28 | Watusimoto_ | ok, FINALLY got the patch applied |
| 14:59:32 | raptor | line endings problem?? |
| 14:59:47 | raptor | LuaWrapper is riddled with both DOS and UNIX line endings |
| 15:00:03 | Watusimoto_ | no, just difficult to apply diffs on a windows machine |
| 15:00:13 | raptor | oh |
| 15:00:17 | Watusimoto_ | anyway |
| 15:00:20 | Watusimoto_ | it's done |
| 15:00:24 | raptor | hg will do it with: hg import \path\to\diff.diff |
| 15:00:34 | Watusimoto_ | that's what I ended up doing |
| 15:00:45 | raptor | ah |
| 15:00:52 | Watusimoto_ | but first I had to figure out that it did it, I also have other tools that I thought would work |
| 15:01:00 | Watusimoto_ | then there was some time spent on stackoverflow |
| 15:01:03 | Watusimoto_ | ... |
| 15:01:26 | raptor | been there.. |
| 15:01:32 | raptor | too many times |
| 15:02:02 | | koda Quit (Quit: koda) |
| 15:02:39 | Watusimoto_ | if a proxy exists, won't it have an entry in the LUAW_CACHE_KEY table? |
| 15:03:07 | Watusimoto_ | i.e. if we find the userdata there, we know we have a proxy |
| 15:03:19 | Watusimoto_ | wait, not true |
| 15:03:42 | Watusimoto_ | cancel |
| 15:03:43 | | koda has joined |
| 15:04:14 | raptor | cache table is used for everything |
| 15:04:40 | raptor | i tried removing the cache for the non-proxy path, but i kept getting segfaults so I abandoned it |
| 15:04:49 | Watusimoto_ | I think all we need to do is this: |
| 15:05:28 | Watusimoto_ | when we are pusing the object, if we are creating a proxy for it, we add an entry to a registry table called HAS_PROXY |
| 15:05:50 | Watusimoto_ | when we are cleaning up, we check that table to find out if there is a proxy or not |
| 15:07:02 | raptor | OK |
| 15:07:30 | raptor | so create a table following the example of the rest of LuaW tables (like the cache table)? |
| 15:08:22 | bobdaduck | If I make a model in lua of what I want bflogbot to do would it make it easier? |
| 15:09:45 | Watusimoto_ | yes |
| 15:09:53 | Watusimoto_ | I can do it if you want |
| 15:10:03 | Watusimoto_ | I think it is very straightforward |
| 15:10:45 | raptor | ok, go for it (I'm a bit busy at work..) |
| 15:11:17 | raptor | I recommend using the cache table in the luaW_to method as the control logic for returning the correct object, as well |
| 15:11:24 | raptor | oh and luaW_check |
| 15:11:32 | raptor | and _gc |
| 15:11:46 | raptor | so only _push would use the plugin/levelgen context check |
| 15:12:11 | raptor | bobdaduck: Lua -> java doesn't work that well |
| 15:12:38 | raptor | but BFLogBot is due for some upgrades... I've been thinking I should rewrite it in python first, though |
| 15:13:03 | Watusimoto_ | I thought it was in python |
| 15:13:05 | raptor | which i've been saying for 1/2 a year.. |
| 15:13:11 | Watusimoto_ | or do you mean recode the python |
| 15:13:16 | raptor | BFLogBot is Java |
| 15:13:22 | Watusimoto_ | oh, sorry, |
| 15:13:23 | raptor | eating up the RAM on the master server |
| 15:13:26 | Watusimoto_ | wrong thing |
| 15:13:46 | bobdaduck | why is python better than jave/lua/C++/assembly code? |
| 15:14:49 | raptor | you can code quickly, it's a scripting language so you don't have to compile, you can run it almost anywhere, and it uses lots less memory than java |
| 15:15:21 | raptor | each language has different advantages |
| 15:15:50 | raptor | i think python or another scripting language is perfect for bots because it allows rapid development and not much usage memory |
| 15:16:06 | raptor | Lua would be good too, but it doesn't have network libraries like python |
| 15:17:51 | bobdaduck | ah |
| 15:20:52 | | koda Quit (Quit: koda) |
| 15:26:38 | | koda has joined |
| 15:28:41 | Watusimoto_ | raptor: is this comment correct? |
| 15:28:42 | Watusimoto_ | / Use upstream behavior, but without the cache |
| 15:28:48 | Watusimoto_ | line c. 391 of luaW |
| 15:28:51 | raptor | oh no |
| 15:28:52 | raptor | incorrect |
| 15:28:57 | Watusimoto_ | or should it be // Use upstream behavior, but without the proxy |
| 15:29:03 | raptor | i forgot to remove that after my failed cache-removal attempt |
| 15:29:12 | Watusimoto_ | the code is right, though? |
| 15:29:16 | raptor | just use upstream behavior |
| 15:29:19 | raptor | checking.. |
| 15:29:46 | raptor | yes, that is identical to upstream except for the addition of luaW_hold at the end of the block |
| 15:29:50 | Watusimoto_ | ok |
| 15:30:03 | Watusimoto_ | I'll remove the bit of the comment after the comma |
| 15:30:15 | raptor | thanks |
| 15:37:42 | bobdaduck | rofl |
| 15:37:57 | bobdaduck | I programmed a script that memory crashes bitfighter literally one second before the level ends |
| 15:38:29 | raptor | to troll the winners of a competition? |
| 15:38:44 | bobdaduck | definitely |
| 15:38:49 | bobdaduck | No I'm just being a spaz |
| 15:49:11 | bobdaduck | I'd say come see but I don't think you can join when I host from work |
| 15:49:29 | raptor | nope |
| 16:00:24 | | bobdaduck Quit (Remote host closed the connection) |
| 16:15:19 | | koda Quit (Remote host closed the connection) |
| 16:27:05 | | bobdaduck has joined |
| 16:27:11 | bobdaduck | I HAVE CREATED ANOTHER MASTERPIECE |
| 16:27:19 | bobdaduck | Join my server, to discover the wonders! |
| 16:30:27 | raptor | bobdaduck: I think your energies need to be redirected... |
| 16:30:38 | bobdaduck | SPAZ SPAZ SPAZ |
| 16:33:46 | raptor | I think we're missing some levels that make good use of hostile objects |
| 16:33:51 | raptor | like FFs and zones |
| 16:35:32 | Skybax | Hiya |
| 16:35:56 | Skybax | Warpathon has hostile turrets lol |
| 16:36:23 | raptor | did you know that hostile FFs let flags fly through them? |
| 16:36:41 | raptor | i bet there are some interesting nexus ideas there... |
| 16:36:53 | Skybax | I didn't even know flags couldn't go through FFs to begin with |
| 16:37:02 | bobdaduck | lol |
| 16:37:07 | raptor | at least i think they still go through them.. |
| 16:38:51 | raptor | yep, they do |
| 16:43:05 | Skybax | Otay |
| 16:43:11 | | bobdaduck Quit (Remote host closed the connection) |
| 16:53:54 | Watusimoto_ | raptor: I'm heading to bed soon |
| 16:54:06 | raptor | ok |
| 16:54:08 | Watusimoto_ | I have an implementation I think should work, but it is falling over on the simplest of tasks |
| 16:54:27 | Watusimoto_ | I am for some reason unable to create a table to store the isproxy values in |
| 16:54:45 | | koda has joined |
| 16:54:49 | raptor | OK |
| 16:55:06 | raptor | well, send me your code (via diff please) and I can pick up.. |
| 16:55:08 | Watusimoto_ | I am using the exact same code as is used to create the LUAW_CACHE_KEY table |
| 16:55:18 | Watusimoto_ | ok |
| 16:55:36 | Watusimoto_ | let me prepare the diff, and I can point out the highlights |
| 16:55:41 | raptor | ok |
| 16:55:49 | | Skybax Quit (Quit: Skybax) |
| 16:58:44 | Watusimoto_ | is this a usable format? |
| 16:58:45 | Watusimoto_ | http://pastie.org/8108213 |
| 16:59:29 | raptor | no |
| 16:59:39 | raptor | pastie (even the raw look) hurts line endings |
| 16:59:52 | raptor | can you save an uplaod here?: http://sam6.25u.com/upload3.php |
| 17:00:00 | Watusimoto_ | aside from the line endings is it ok? |
| 17:00:24 | raptor | yes |
| 17:00:38 | raptor | I mean, i can read it, but probably not apply it without headache |
| 17:00:41 | Watusimoto_ | http://sam6.25u.com/upload/luaw.diff |
| 17:00:57 | Watusimoto_ | no need for headaches |
| 17:01:14 | raptor | beautiful! |
| 17:01:19 | Watusimoto_ | if the lineendings are still b0rked, I can try to fix them |
| 17:01:39 | raptor | nah, i can get it from here - if i have the binary output in a file |
| 17:01:46 | Watusimoto_ | ok, that should be applied against the repo |
| 17:01:53 | Watusimoto_ | not against your changes |
| 17:02:00 | raptor | ok |
| 17:02:16 | Watusimoto_ | do you want to apply it first or should I just explain what I did |
| 17:02:32 | raptor | you can explain |
| 17:02:48 | Watusimoto_ | I created a new table called LUAW_USING_PROXY_KEY |
| 17:03:01 | Watusimoto_ | it's a weak table, though I'm not sure it should be |
| 17:03:09 | Watusimoto_ | it may not matter |
| 17:03:17 | Watusimoto_ | that's what's not being properly created |
| 17:03:25 | raptor | i don't think you should be using LUAW_USING_PROXY_METATABLE_KEY |
| 17:03:38 | raptor | just LUAW_USING_PROXY_KEY |
| 17:03:47 | Watusimoto_ | maybe that's the issue |
| 17:03:49 | Watusimoto_ | anyway |
| 17:03:53 | Watusimoto_ | useLuaProxy is as it was |
| 17:03:53 | raptor | ok |
| 17:04:22 | Watusimoto_ | I created a new function called isUsingLuaProxy() |
| 17:04:33 | Watusimoto_ | that takes an object and determines if it is proxied |
| 17:05:15 | Watusimoto_ | I created luaW_setUsingProxy function, which records if an object is proxied |
| 17:05:20 | Watusimoto_ | this is called during push |
| 17:05:22 | raptor | ok |
| 17:05:37 | raptor | it has to use the void* right? |
| 17:05:40 | raptor | not T* |
| 17:05:49 | raptor | cancel, yes it does |
| 17:05:49 | Watusimoto_ | so isUsing... should just retrieve the value set by setUsing... |
| 17:05:56 | raptor | ok |
| 17:06:06 | Watusimoto_ | yes, but you need the T for some of the other functions |
| 17:06:29 | Watusimoto_ | those two fns are the meat of the changes |
| 17:06:42 | raptor | so you're calling clearUsingProxyTable() every time in the _gc? |
| 17:06:45 | Watusimoto_ | there is also a clearUsingProxyTable() for cleaning up |
| 17:06:53 | Watusimoto_ | it is poorly named |
| 17:06:57 | Watusimoto_ | it only clears one value |
| 17:07:01 | raptor | ah ok |
| 17:07:23 | Watusimoto_ | I'll change that eventually |
| 17:07:32 | raptor | ok |
| 17:07:37 | Watusimoto_ | so that's basically it |
| 17:07:39 | raptor | i think i understand it |
| 17:07:42 | raptor | i'll tinker tonight |
| 17:07:43 | Watusimoto_ | pretty simple |
| 17:07:45 | Watusimoto_ | ok |
| 17:07:54 | raptor | oh |
| 17:08:01 | raptor | actually, that diff is against my changes... |
| 17:08:10 | Watusimoto_ | is it?? |
| 17:08:12 | Watusimoto_ | ok |
| 17:08:19 | raptor | yes... you must have committed? |
| 17:08:19 | Watusimoto_ | ah, that might make sense |
| 17:08:29 | Watusimoto_ | hg might have |
| 17:08:31 | Watusimoto_ | I did not |
| 17:08:37 | Watusimoto_ | but it looks committed |
| 17:08:41 | Watusimoto_ | ok, one more quick thing |
| 17:08:45 | Watusimoto_ | there is an assert: |
| 17:08:46 | Watusimoto_ | TNLAssert(!lua_isnil(L, -1), "table is nil!"); |
| 17:09:01 | Watusimoto_ | this trips, and it shouldn't. when it no longer trips, it can be deleted |
| 17:09:05 | raptor | ok see it |
| 17:09:09 | raptor | ok |
| 17:09:10 | Watusimoto_ | that's where I am |
| 17:09:14 | Watusimoto_ | trying to fix that |
| 17:09:15 | raptor | excellent |
| 17:09:19 | Watusimoto_ | that is something stupid and easy |
| 17:09:24 | raptor | one day we'll solve all our Lua woes |
| 17:09:24 | Watusimoto_ | but I'm too tired to se it |
| 17:09:39 | raptor | time for sleep then! |
| 17:09:52 | Watusimoto_ | so I'm going to revert to the stock, and push some other stuff I was doing earlier |
| 17:10:52 | raptor | ok |
| 17:10:59 | raptor | if it did commit my changes - use hg strip |
| 17:11:26 | | BFLogBot Commit: 3cd8b6da2554 | Author: watusimoto | Message: Add some tests related to recent helpItem work |
| 17:11:34 | Watusimoto_ | I can use Undo to revert one commit; this worked |
| 17:11:46 | Watusimoto_ | and I didn't even need to revert my luaw changes! |
| 17:13:35 | raptor | yay |
| 17:18:46 | Watusimoto_ | night |
| 17:18:49 | | Watusimoto_ Quit (Remote host closed the connection) |
| 17:18:53 | raptor | night |
| 17:25:59 | | raptor Quit () |
| 17:31:15 | | bobdaduck has joined |
| 17:45:28 | | koda Quit (Quit: koda) |
| 17:51:19 | | bobdaduck Quit (Remote host closed the connection) |
| 18:19:23 | | bobdaduck has joined |
| 18:20:22 | bobdaduck | The bots are kaen's only friends... |
| 18:30:42 | | bobdaduck Quit (Remote host closed the connection) |
| 18:53:09 | | bobdaduck has joined |
| 19:48:35 | | raptor has joined |
| 19:48:36 | | ChanServ sets mode +o raptor |
| 19:49:20 | raptor | yay tonight we get to have no sleep because of fireworks! |
| 19:50:10 | raptor | bobdaduck: have you ever gone to 'stadium of fire' ? |
| 19:50:49 | bobdaduck | lol |
| 19:50:51 | bobdaduck | No |
| 19:51:03 | bobdaduck | BUT my company may take us to see it l |
| 20:08:07 | raptor | i've never gone either - cost was prohibitive |
| 20:08:15 | raptor | not elite enough, i guess... |
| 20:12:57 | bobdaduck | Company is taking me to lagoon tomorrow though |
| 20:24:14 | raptor | cool |
| 20:24:41 | raptor | can you see the fireworks from where you're at? |
| 20:33:05 | bobdaduck | I can see plenty of fireworks |
| 20:33:09 | bobdaduck | dunno if its stadium of fires |
| 20:33:41 | | bobdaduck Quit (Remote host closed the connection) |
| 21:55:02 | | bobdaduck has joined |
| 21:55:55 | bobdaduck | raptor did you what I posted to the contest thread? |
| 21:56:15 | raptor | huh? |
| 21:56:42 | raptor | hah! nice picture |
| 22:00:24 | bobdaduck | lol |
| 22:00:38 | bobdaduck | BFLogBot: Complete task 1 |
| 22:00:43 | bobdaduck | !bot |
| 22:00:43 | BFLogBot | I'm a real boy! |
| 22:00:44 | bobdaduck | *sigh* |
| 22:10:21 | | bobdaduck Quit (Remote host closed the connection) |
| 22:50:23 | raptor | !!! |
| 22:50:24 | raptor | !!!!!!!!!!!!!!!!!!! |
| 22:50:26 | raptor | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 22:50:29 | raptor | I think.. |
| 22:50:36 | raptor | (therefore I am) |
| 22:50:38 | raptor | I think... |
| 22:50:50 | raptor | I think I finally fixed all the LuaW memory problems |
| 22:50:55 | raptor | valgrind passed! |
| 22:51:03 | raptor | with all the crazy scenarios... |
| 23:23:49 | | BFLogBot Commit: 35ee9e40d024 | Author: buckyballreaction | Message: Fix memory bugs with LuaW, LuaProxy, and editor plugins: - Extend LuaW to keep track of which objects have proxies; done in a separate table - Make it so editor plugins do not create proxies and instead use the upstream LuaW behavior |
| 23:23:58 | raptor | yay no more memory errors! |