#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2014-12-05

Timestamps are in GMT/BST.

00:02:11Invisible has joined
00:06:53Invisible Quit (Ping timeout: 260 seconds)
00:23:01Watusimoto Quit (Ping timeout: 264 seconds)
00:25:46raptor Quit (Ping timeout: 258 seconds)
00:55:05Platskies Quit (Quit: Platskies)
01:17:59fordcars Quit (Quit: Page closed)
01:24:56Platskies has joined
02:17:58Watusimoto has joined
03:02:36Platskies Quit (Read error: Connection reset by peer)
03:07:10Platskies has joined
03:10:21Darrel Quit (Ping timeout: 272 seconds)
03:10:47Darrel has joined
03:21:26Platskies Quit (Quit: Sleep time…)
03:25:40LordDVG has joined
03:29:02LordDVG Quit (Remote host closed the connection)
03:57:35Platskies has joined
04:11:44Platskies has left #bitfighter
05:05:11LordDVG has joined
05:23:17Watusimoto Quit (Ping timeout: 240 seconds)
06:50:46LordDVG Quit (Remote host closed the connection)
06:56:19watusimoto has joined
06:56:19ChanServ sets mode +o
06:57:37watusimoto1 Quit (Ping timeout: 240 seconds)
10:36:52Xavi92 has joined
10:57:09Watusimoto_ has joined
11:05:22Watusimoto_ Quit (Ping timeout: 256 seconds)
11:10:09Xavi92 Quit (Remote host closed the connection)
11:30:58Xavi92 has joined
12:07:17LordDVG has joined
12:11:56Xavi92 Quit (Remote host closed the connection)
12:56:48Watusimoto_ has joined
12:58:51Invisible has joined
13:33:15raptor has joined
13:33:15ChanServ sets mode +o
13:33:36raptorgood day!
13:33:59raptoroops... back in a bit...
13:34:01raptor Quit (Client Quit)
14:02:46raptor has joined
14:02:47ChanServ sets mode +o
14:03:01raptorgood day!
14:05:55raptor Quit (Client Quit)
14:21:21Invisible Quit (Ping timeout: 260 seconds)
14:22:24LordDVG Quit (Remote host closed the connection)
14:32:48Watusimoto_ Quit (Ping timeout: 250 seconds)
15:06:40Canseco has joined
15:57:10LordDVG has joined
16:35:55Canseco Quit (Read error: Connection reset by peer)
17:03:48raptor has joined
17:03:49ChanServ sets mode +o
17:18:12raptorhi again
17:18:15raptorwatusimoto: are you around?
18:02:26watusimotohi
18:02:37watusimotoI wasn't, but I am
18:02:56watusimotohi raptor
18:15:12raptorhi watusimoto
18:15:15raptorstill around?
18:16:40raptori keep missing you, sorry
18:18:32watusimotohi, yes, somewhat
18:18:37raptorah ha!
18:18:43watusimotoso we meet again!
18:19:02raptorI have the merge stuff completed
18:19:07watusimotogreat!
18:19:19raptorand am ready to merge with what you pushed most recently
18:19:23watusimotook
18:19:29watusimotothose were pretty modest changes
18:19:40raptorI just wanted to check - do you have anything else coming in soon?
18:19:56watusimotonothing worth waiting for/can't be redone if need be
18:19:58raptorbecause when I do this push, i'd like you to work off of it
18:20:06raptorok
18:20:08watusimotook, go for it
18:20:12raptorok great
18:20:19raptorthat's all, then.. glad I caught you
18:20:25watusimotoThere is one thing we need to discuss
18:20:39watusimotoa recent commit had a comment with your name in it
18:20:49watusimotoand a line marked with a bunch of xxxxxx's
18:21:04raptoroh? i didn't see that
18:21:07raptori saw the xxxxx one
18:21:11watusimotono worries. the situation is this
18:21:25watusimotowe have a lua function to find objects
18:21:37watusimotoyou can optionally pass a table to save a tiny bit of overhead
18:21:49watusimotowe need to decide how this should work; either
18:21:59watusimoto1) the table should be cleared and then filled
18:22:01watusimotoor
18:22:15watusimoto2) the table should be appended to, like our fillVector system
18:22:31raptoris that that serious bug you found?
18:22:33watusimotoright now it does a third thing that I am delcaring The Wrong Thing.
18:22:38raptorhah
18:22:38watusimotono
18:22:42watusimotothis is the mild one
18:23:12watusimotothe serious bug was that objects weren't being found
18:23:13raptorhuh, i thought it did #2
18:23:26watusimotothe tests you wrote suggested #2
18:23:31watusimotoand the tests did work at one point
18:23:53watusimotowhat happens now is that the table is refilled without clearing
18:23:53raptori remember the function was built to be like #2 for performance reasons, because it could be called multiple times each tick
18:24:18raptor"refilled without clearing" <-- how does that manifest itself
18:24:22watusimotothat is, if the table had 4 items, and you are finding 2, slots 1 and 2 get overwritten, and 3 and 4 don't
18:24:33watusimotoso you still have a table with 4 items
18:24:42raptoroh yuk
18:25:00watusimotoThe Wrong Thing. It must have gotten broken along the way. perhaps by me
18:25:01raptorthat's The Wrong Thing
18:25:17watusimotobut before I do anything, I wanted to check in with you about what it should do
18:25:23raptori believe #2
18:25:38watusimotoso I thik it did #2 as well, but I doubt anyone uses it in any way that it matters
18:25:45raptor#1 incures some overhead which we I believe we do not want
18:25:58raptornow that you mention it - i remember fordcars complaining about this method
18:25:59watusimotobecause if you want to find multiple things, you just pass multiple object types
18:26:20watusimotoI think #1 would be better; I don't think there is any overhead in practice
18:26:36raptorif #1, then there's no point in passing it a table
18:26:39watusimotoI think in practice, if we do #2, users will clear the table first, incurring the overhead
18:26:42watusimotonot true
18:26:44raptorjust return a new table
18:26:51watusimotoif you pass a table, you don't need to build a new one
18:26:51raptorno?
18:27:57watusimotothe reason for passing a table is if you are searching for objects every tick, or perhaps multiple times (looking for bullets in different directions, for example), reusing the table, even in #1, avoids the garbage collection associated with creating tons of objects
18:28:40watusimotoif the c++ code clears the table, it's more-or-less the same as if the lua code cleared the table (I assume)... but creating a new table (either in lua or c++) incurs more penalty
18:28:52watusimotoit would be useless to create a table then pass it to c++
18:29:04watusimotobut if you reusue the table every tick, that's where you save
18:29:10watusimotobut the table has to get emptied somehow
18:29:28watusimotootherwise you have last tick's results in addition to this tick
18:29:39watusimoto's results, and some of those references may be stale
18:30:11amgine123 has joined
18:30:13watusimotoI think #1 is best, but could live with #2. #3 is just stupid.
18:30:20amgine123hello
18:30:25watusimotohi
18:30:34amgine123whats #1 #2 and #3 ?
18:30:45amgine123jsut getting up to pace on whats going on
18:30:47watusimotolong story about a very techincal detail
18:31:02watusimotoyou can look at the logs; it probably won't be interesting
18:31:49amgine123btw is it possible to change a equation in the form of A(B^X) to (A/B)^ X
18:31:53raptorhmmm
18:32:10watusimotoamgine123: http://pastie.org/9763499
18:32:31amgine123so like 10x^2 to somthing like A/B ^ X
18:32:41watusimotothe (only) advantage of #2 is it's how our c++ code works
18:33:14raptordo we *know* that clearing a table is better than creating one?
18:33:26watusimotoclearing incurs no gc overhead
18:33:34raptoris there ever a case were we want to just append?
18:33:36watusimotoand that's what was killing us before
18:33:41watusimotoI don't think so
18:33:53watusimotoeven in the C++ code, we only do so in one or two places
18:34:15watusimotoI mean if you wanted to search two different rectangles and combine the results, maybe
18:34:35amgine123what are you using that parciular section of lua for
18:34:50watusimotoamgine123: bots finding objects
18:35:05amgine123oh then #1 is definitly better
18:35:53watusimotoI beleive the originally implemented logic was #1, and I probably even voted for it
18:36:20watusimotoI now think #2 is marginally better because it takes the load off the bot programmer to clear the table
18:36:40watusimotoI doubt it would affect any existing bots, but if we changed, there is always that risk
18:36:51amgine123yeah #2 is more user friendly
18:37:43amgine123Use Pastie in your quest to save humanity, not in your evil plots to take over the world! >> guess we cant use pastie since bitfighter is polybuis
18:37:49amgine123^_^
18:38:15amgine123have you ever heard of the curse of oak island btw
18:38:29amgine123theere is a show on history channel about it im obessed with it
18:38:39amgine123my father thinks its a big hoax
18:38:46watusimotoamgine123: send me a link
18:40:08amgine123there is this treasure buried on this one island thats has misllions but its booby trapped and no one can gety legend also says 7 people will die before anyone can get it
18:40:13raptorok, we clear the table in c++
18:40:15raptori'm on board
18:40:23amgine123'and 6 epople have died so far trying to get it
18:40:33watusimotowhat do you mean "we clear the table in c++"?
18:40:33amgine123raptor i think #2 is better its more user friendly
18:40:43watusimotoI think it is
18:41:25amgine123problem is taking shortcuts when there is a superior way can cause serious headach later
18:42:56amgine123raptor I really im leaning towards # 2 but its your call
18:43:15amgine123you want bitfighter to be user friendly ;)
18:44:10watusimotoreality tv!
18:51:59raptori think we unknowningly switch 1 and 2 in our conversation, but if the option of auto-clearing the table is the good one, then I agree
18:52:48raptorwait what?
18:53:18raptori'm having a hard time filtering out the noise; watusimoto, which option is the one you want, without saying the numbers?
18:54:46watusimotoI vote we clear the table before filling it
18:54:54raptoryes, ok
18:54:59watusimotoyou too?
18:55:06raptorthat was #1 above
18:55:09watusimotooops
18:55:18raptorand yes, i agree - if we do the clearing in c++ (Lua C API)
18:55:23watusimotoyes, ok
18:55:29raptorwhich i what I think you meant, too
18:56:05watusimotoone other quick thing -- do you know how to do that? I did a quick search and came up dry, but I find most of the lua docs rather hard to grok. If you don't know, don't worry; it's not hard
18:56:18watusimotoI'll also update the tests and documentation
18:56:33raptorI would have to research again... the Lua docs aren't the clearest reading
18:56:38watusimotoamen to that!
18:56:50watusimotobut I'll do the research unless you atually want to
18:58:15raptori suspect there is a simple one-line shortcut, but i'm not sure
18:58:51raptorI want to complete this merge... you're not working in code right now are you?
19:03:56raptoruh actually... isn't clearing a Lua table the same as iterating through it setting all items to nil?
19:12:49LordDVG Quit (Remote host closed the connection)
19:12:54raptorcould that be more expensive than table construction?
19:14:07fordcars has joined
19:19:29raptorgotta go!
19:19:33raptor Quit ()
19:25:04BFLogBot Commit: 35d71099d2 | Author: buckyballreaction | Message: Merge with Watusimoto's latest changes, before he does the crazy merge
19:25:05BFLogBot Commit: 1f9b46ebdd | Author: buckyballreaction | Message: Merge in 019d changes
19:25:07BFLogBot Commit: e9c068fed3 | Author: buckyballreaction | Message: Merge the two great merges
19:25:08BFLogBot Commit: 7016576e38 | Author: buckyballreaction | Message: Merge watusimoto's latest test fixes
19:26:41BFLogBot ok watusimoto, raptor has finished committing his merge work. You're good to go if you work off of the latest tip.
20:22:17amgine123reality tv what ?
20:38:41Watusimoto_ has joined
20:40:56Invisible has joined
21:06:46Invisible1 has joined
21:09:13Invisible Quit (Ping timeout: 260 seconds)
21:12:57Invisible1 Quit (Ping timeout: 240 seconds)
21:24:16Invisible has joined
21:27:55watusimotoyour show the curse of oak island
21:32:37Invisible Quit (Ping timeout: 240 seconds)
21:36:52raptor has joined
21:37:04ChanServ sets mode +o
21:37:04raptorok, i did research into table.clear
21:38:08fordcarsIt seems to clear tables
21:38:10Invisible has joined
21:38:39raptorwe build our own function for it in lua_helper_functions.lua
21:39:00raptorand it just iterates all entries and set them to nil
21:39:10raptorwhich then frees up the objects for GC
21:39:10fordcarsOh
21:39:22raptor(in response to a previous conversation with watusimoto)
21:39:55fordcarsKnew that ;)
21:42:26raptorLuaJIT 2.1 (experimental, not yet released) added an efficient table.clear optimized for speed: http://repo.or.cz/w/luajit-2.0.git/commitdiff/4593fb5e29adc09cd53beaba8777f5656434c08d
21:42:49raptorsee the description in the first file
21:47:44raptori wonder if we shouldn't set up our own test cases to actually prove our ideas about performance
21:52:45watusimotoheading out... but it would be easy to test -- fix the function, then write a lua test that runs 10000x passing a table and 10000x not passing a table. easy!
21:53:04raptorthere would be at least 3 tests
21:53:37raptorclear the table in lua, clear it in the c++, new table each tick in Lua, new table in c++
21:53:41raptor4 tests
21:54:19watusimototalk to you later!
21:54:33raptorlater
21:54:47watusimoto Quit (Read error: Connection reset by peer)
21:56:45raptor Quit ()
23:20:46Watusimoto_ Quit (Ping timeout: 244 seconds)
23:23:59Invisible Quit (Ping timeout: 250 seconds)
23:48:01Watusimoto has joined
23:53:50fordcarsNight!
23:53:52fordcars Quit (Quit: Page closed)
23:54:35Invisible has joined

Index Search ←Prev date Next date→

These logs were automatically created by BFLogBot on irc.freenode.net.