Timestamps are in GMT/BST.
| 00:54:30 | | kaen has joined |
| 00:57:08 | raptor | ok, heading home |
| 00:57:12 | raptor | later! |
| 00:57:17 | | raptor Quit () |
| 01:06:31 | | Watusimoto Quit (Ping timeout: 260 seconds) |
| 01:33:15 | | HylianSavior has joined |
| 01:48:14 | | Flynnn Quit (Quit: This computer has gone to sleep) |
| 01:54:25 | | Flynnn has joined |
| 02:14:44 | | raptor has joined |
| 02:14:44 | | ChanServ sets mode +o |
| 02:24:37 | | Flynnn Quit (Quit: This computer has gone to sleep) |
| 02:30:42 | | kaen Quit (Ping timeout: 260 seconds) |
| 02:51:15 | | fordcars has joined |
| 02:54:19 | | HylianSavior Quit (Quit: Leaving) |
| 02:56:32 | | kaen has joined |
| 02:57:43 | | fordcars Quit (Ping timeout: 245 seconds) |
| 03:42:56 | | koda has joined |
| 03:54:46 | | destroyerimo has joined |
| 03:56:26 | | Flynnn has joined |
| 03:58:50 | | destroyerimo_ has joined |
| 04:00:09 | | destroyerimo Quit (Ping timeout: 272 seconds) |
| 04:13:46 | | fordcars has joined |
| 04:14:05 | | fordcars has left #bitfighter |
| 04:14:15 | | fordcars has joined |
| 04:32:47 | | kaen Quit (Ping timeout: 260 seconds) |
| 05:04:47 | fordcars | Hi |
| 05:05:10 | raptor | luajit is about 3x faster than lua-vec with my clunky implementation |
| 05:05:18 | raptor | on levelgen Carnival |
| 05:07:01 | fordcars | Nice! |
| 05:54:39 | | koda Quit (Quit: koda) |
| 06:15:38 | | raptor Quit (Ping timeout: 260 seconds) |
| 06:17:44 | | HylianSavior has joined |
| 07:30:30 | fordcars | Night! |
| 07:30:32 | | fordcars Quit (Quit: Page closed) |
| 08:19:51 | | Flynnn Quit (Quit: This computer has gone to sleep) |
| 08:40:22 | | Flynnn has joined |
| 08:42:07 | | Invisible has joined |
| 08:44:15 | | Flynnn Quit (Client Quit) |
| 09:06:30 | | watusimoto has joined |
| 09:06:31 | | ChanServ sets mode +o |
| 09:15:02 | | Invisible Quit (Ping timeout: 246 seconds) |
| 09:21:37 | | Platskies has joined |
| 09:23:50 | | Platskies Quit (Client Quit) |
| 09:25:24 | | koda has joined |
| 09:43:41 | | Platskies has joined |
| 09:44:06 | | Platskies Quit (Client Quit) |
| 09:44:22 | | Platskies has joined |
| 09:48:49 | | Platskies__ has joined |
| 09:56:37 | | Platskies Quit (Read error: Connection reset by peer) |
| 09:56:38 | | Platskies__ Quit (Read error: Connection reset by peer) |
| 09:59:31 | | Platskies__ has joined |
| 09:59:31 | | Platskies has joined |
| 10:12:40 | | Platskies__ Quit (Quit: Leaving) |
| 10:46:12 | | Nothing_Much Quit (Remote host closed the connection) |
| 10:52:40 | | Nothing_Much has joined |
| 11:40:28 | | Invisible has joined |
| 11:40:39 | | Platskies Quit (Quit: Leaving) |
| 11:55:27 | | Platskies has joined |
| 12:08:15 | | Nothing_Much Quit (Remote host closed the connection) |
| 12:20:12 | | Nothing_Much has joined |
| 12:32:11 | | koda Quit (Quit: koda) |
| 12:56:10 | | Nothing_Much Quit (Remote host closed the connection) |
| 12:57:13 | | Nothing_Much has joined |
| 12:57:46 | | Invisible Quit (Ping timeout: 245 seconds) |
| 13:12:12 | | Invisible has joined |
| 13:18:59 | | destroyerimo_ Quit (Ping timeout: 246 seconds) |
| 13:23:48 | | Nothing_Much Quit (Remote host closed the connection) |
| 13:30:49 | | destroyerimo has joined |
| 13:31:22 | | Platskies Quit (Read error: Connection reset by peer) |
| 13:46:11 | | Nothing_Much has joined |
| 13:49:20 | | LordDVG has joined |
| 14:34:31 | | Invisible Quit (Remote host closed the connection) |
| 14:36:15 | | Nothing_Much Quit (Remote host closed the connection) |
| 14:41:17 | | Nothing_Much has joined |
| 15:35:10 | | raptor has joined |
| 15:35:10 | | ChanServ sets mode +o |
| 15:45:01 | raptor | good day! |
| 15:51:53 | | Nothing_Much Quit (Remote host closed the connection) |
| 15:51:56 | | bobdaduck has joined |
| 16:04:46 | | Nothing_Much has joined |
| 16:20:52 | bobdaduck | Okay so this is a weird question |
| 16:21:05 | bobdaduck | but can I have a way to disable self-hurting-ness on bursts? |
| 16:21:42 | raptor | good morning |
| 16:22:13 | raptor | that part of the code is very hard-coded |
| 16:24:07 | bobdaduck | I tried making it in DnD so that bursts owners get set as well |
| 16:24:16 | bobdaduck | but then it was hurting the person for whacking people |
| 16:24:25 | raptor | ah yes |
| 16:24:50 | raptor | not sure how to get around that at the moment.. |
| 16:24:59 | raptor | neutral burst hurts everyone? |
| 16:25:10 | bobdaduck | yeah |
| 16:25:35 | bobdaduck | Well, I could make three phaser bullets instead of a burst, add a spybug, and then detonate the spybug somehow! |
| 16:25:49 | raptor | haha |
| 16:25:59 | raptor | good thinking out of the box... |
| 16:26:05 | raptor | spybugs have decent kickback.. |
| 16:28:59 | bobdaduck | not sure how to detonate it though |
| 16:29:24 | raptor | Carnival stress test complete |
| 16:30:05 | raptor | LuaJIT can complete on average 3x as many idle loops in the same amount of time |
| 16:31:50 | bobdaduck | AMAZING |
| 16:31:53 | bobdaduck | HOW DOES IT DO IT? |
| 16:32:51 | bobdaduck | Am I likely to even notice a difference? |
| 16:32:59 | bobdaduck | I didn't realize levelgen carnival was even laggy |
| 16:33:18 | raptor | i think on large enough levels (like DnD) you will probably will |
| 16:33:31 | raptor | this might let people host 150 bots instead of 50... |
| 16:33:45 | raptor | because, you know... the game is completely playable with 50 bots... |
| 16:33:51 | bobdaduck | lol |
| 16:34:10 | bobdaduck | Well, if fordcars ever gets around to finishing the DnD bot... |
| 16:34:52 | raptor | ok great |
| 16:35:26 | raptor | with 200000 iterations, lua-vec (old system) took 36 milliseconds to create a point.new() |
| 16:35:35 | raptor | LuaJIT took 0 millliseconds |
| 16:35:57 | bobdaduck | That's not very many milliseconds! |
| 16:36:13 | raptor | oops, that time it took 1 millisecond |
| 16:36:29 | raptor | so yeah, it's waaay faster with pure Lua stuff |
| 16:36:43 | watusimoto | but that does not count garbage collection, does it? |
| 16:36:48 | watusimoto | that's what cost us in the past |
| 16:36:53 | raptor | hi watusimoto |
| 16:36:57 | raptor | how would i test that? |
| 16:37:03 | watusimoto | I'm not sure |
| 16:37:03 | raptor | i'm doing it in a levelgen main() method |
| 16:37:09 | watusimoto | you can manually trigger gc somehow |
| 16:37:23 | watusimoto | we might already do it every tick, not sure |
| 16:37:31 | bobdaduck | What's garbage collection? |
| 16:38:01 | raptor | it what prevents you from creating too many memory leaks |
| 16:38:59 | bobdaduck | WHAT |
| 16:39:07 | bobdaduck | But what if I want to create memory leaks? |
| 16:39:14 | bobdaduck | THIS SYSTEM IS OPPRESSIVE |
| 16:39:24 | bobdaduck | AND RESTRICTIVE OF MY ABILITY TO CREATE DUNGEONS |
| 16:41:02 | watusimoto | raptor: it's likely with 2M iteratonst aht GC was triggered |
| 16:41:21 | watusimoto | you can also watch to see if memory use grows... if it stablizes, it must be collecting |
| 16:41:29 | watusimoto | if it keeps growing it might not be |
| 16:41:36 | raptor | LuaJIT has a completely rewritten garbage collector |
| 16:41:38 | raptor | and |
| 16:41:58 | raptor | and you can turn off the 'JIT' part to have a faster-than-normal standard interpreter |
| 16:42:20 | raptor | the standard interpreter is 2-3x faster than stock Lua interpreter |
| 16:43:26 | watusimoto | ok, my resistance is dropping |
| 16:43:35 | raptor | also |
| 16:43:55 | raptor | the hold-up now seems to be the C API binding overhead - |
| 16:44:11 | raptor | I had to rewrite the methods luaIsPoint() in LuaBase.cpp |
| 16:44:36 | watusimoto | interesting |
| 16:44:40 | raptor | to somehow determine if the 'point' table on the stack is a point - which has more overhead than the lua-vec lua_ispoint() method |
| 16:45:00 | raptor | so i'm open to suggestions on how to improve it |
| 16:46:19 | watusimoto | I'm not sure I understand the issue -- we have a value on the stack, in C++ we need to decide if it is a point? |
| 16:47:06 | raptor | so you understand lua-vec added a 'type' to the Lua engine |
| 16:47:31 | watusimoto | I think I know |
| 16:47:34 | raptor | and was accessible in the C API with lua_ispoint() - because it was a standard type in the type enum |
| 16:47:43 | raptor | types are like LUA_TSTRING, LUA_TBOOL |
| 16:47:44 | watusimoto | add a type like number or string |
| 16:47:48 | watusimoto | yes |
| 16:47:48 | raptor | yes |
| 16:47:52 | watusimoto | ok, I knew that |
| 16:48:30 | raptor | so... that doesn't exist in standard Lua and I rewrote luavec to a pure Lua implementation, this: http://pastie.org/pastes/8733813/text |
| 16:49:01 | watusimoto | ok |
| 16:49:03 | raptor | having a pure Lua implementation of the 'point' type now requires me to write my own lua_ispoint() |
| 16:49:24 | raptor | here it is: http://pastie.org/pastes/8733819/text |
| 16:49:42 | watusimoto | what if you had a metatable entry that specified type |
| 16:49:47 | raptor | and I think using the C API bindings is slowing it down |
| 16:50:04 | raptor | that's what i do |
| 16:50:11 | watusimoto | ok... I'm not going to be able to look at this too closely at the moment... |
| 16:50:15 | watusimoto | my train is in < 1hr |
| 16:50:19 | raptor | i added a __point entry in the MT with a boolean of true |
| 16:50:25 | watusimoto | so you can explain it to me when I get back :-) |
| 16:50:45 | raptor | i figured that was the quickest way to tell if the Lua table was a point in c++ |
| 16:51:13 | raptor | but having the Lua -> c++ -> Lua overhead is slowing down the JIT part, I think |
| 16:51:23 | raptor | ok |
| 16:53:29 | raptor | I'm open to suggestions on how to tell if a particular Lua table is a point, within c++ |
| 16:54:08 | watusimoto | isn't there a metatable method for determining type? |
| 16:54:12 | raptor | no |
| 16:54:39 | watusimoto | well, if it existed, I'd use that |
| 16:55:14 | raptor | I did patch the Lua 'type()' to return "point" within Lua |
| 16:56:23 | raptor | anyways, doing 200,000 iterations of randomly moving a testitem around using :setPos() yielded ~900ms with lua-vec, but ~600 with LuaJIT |
| 16:56:47 | raptor | and the :setPos() method uses the that luaIsPoint() method |
| 16:56:51 | raptor | with it's args check |
| 16:57:09 | raptor | but granted the overhead could also be our c++ with args checking and error checking, etc. |
| 16:59:34 | raptor | it's kind of funny to think that with LuaJIT our c++ bindings are the slow part... |
| 17:09:24 | watusimoto | we could tighten the argument restrictions |
| 17:12:11 | raptor | oh, i need to do an s_bot stress test... |
| 17:19:21 | raptor | 2000 onTick iterations took 18-25 ms with LuaJIT |
| 17:19:53 | raptor | same on lua-vec took 58-65 ms |
| 17:20:13 | raptor | so still about 3x faster |
| 17:20:26 | watusimoto | that's a representative test |
| 17:20:37 | raptor | let me do 20000 |
| 17:21:10 | raptor | LuaJIT: 346-251ms |
| 17:21:21 | raptor | (I did 5 tests) |
| 17:21:24 | watusimoto | think big.... S32_MAX |
| 17:21:34 | raptor | ha |
| 17:25:23 | raptor | i'm not sure i'm willing to tie up my CPU for that long.. |
| 17:27:58 | raptor | lua-vec: 1171 - 1479ms |
| 17:28:12 | watusimoto | ok, I'm warming |
| 17:29:07 | raptor | so yeah, so far it has beaten lua-vec in every vector usage with/without c api usage |
| 17:29:50 | raptor | it's seems to be lightning fast when comparing pure Lua stuff vs interacting with our API |
| 17:31:09 | watusimoto | ok, I'm outta here |
| 17:31:12 | watusimoto | see you in a week! |
| 17:31:51 | raptor | later! |
| 17:33:37 | | watusimoto Quit (Read error: Operation timed out) |
| 17:35:40 | | kaen has joined |
| 17:46:07 | | destroyerimo Quit (Ping timeout: 252 seconds) |
| 17:46:32 | | destroyerimo has joined |
| 17:48:12 | | kaen Quit (Remote host closed the connection) |
| 18:19:21 | bobdaduck | DANGIT |
| 18:19:22 | bobdaduck | I forgot |
| 18:19:28 | bobdaduck | Events for lua |
| 18:19:33 | bobdaduck | onShipEnteredTeleporter |
| 18:33:29 | raptor | sorry... |
| 18:34:34 | bobdaduck | Its okay |
| 18:34:38 | bobdaduck | I don't need it very bad |
| 18:34:54 | bobdaduck | It could very seriously clean up DnD.levelgen though |
| 18:43:27 | raptor | I you may need an extra developer to be able to clean up DnD... |
| 18:43:31 | raptor | *I think |
| 18:44:10 | bobdaduck | lol |
| 18:44:20 | bobdaduck | BUT WHO WOULD TAKE THAT JOB? |
| 18:44:31 | bobdaduck | Maybe when Unknown gets back. |
| 18:56:18 | | Teh_Bucket has joined |
| 18:56:47 | bobdaduck | ITS TEH BUCKET |
| 18:57:04 | bobdaduck | RUN FOR YOUR LIVES |
| 18:57:07 | bobdaduck | Also hi |
| 18:57:47 | Teh_Bucket | D: |
| 18:57:48 | | Teh_Bucket runs |
| 18:57:54 | Teh_Bucket | hi |
| 18:58:13 | | Flynnn has joined |
| 18:58:14 | bobdaduck | Who are you? |
| 18:58:15 | Teh_Bucket | figured i'd hang out here so i could actually get in when people are playing |
| 18:58:20 | Teh_Bucket | just a player |
| 18:58:24 | | Flynnn Quit (Remote host closed the connection) |
| 18:59:09 | bobdaduck | Ah okey |
| 19:02:02 | | Flynnn has joined |
| 19:27:19 | | Flynnn Quit (Quit: This computer has gone to sleep) |
| 19:32:34 | | Flynnn has joined |
| 19:44:50 | | Flynnn Quit (Quit: This computer has gone to sleep) |
| 19:55:15 | bobdaduck | Also someone should make it so turret w=mine works |
| 20:03:01 | raptor | It does work |
| 20:03:08 | raptor | I think |
| 20:03:54 | | LordDVG Quit (Remote host closed the connection) |
| 20:29:35 | bobdaduck | The turret will point around but nothing will ever happen if I remember right |
| 20:32:12 | raptor | i thought it placed neutral mines |
| 20:32:21 | raptor | so you didn't see them very well |
| 20:39:29 | | YoshiSmb has joined |
| 20:44:15 | bobdaduck | yeah no |
| 20:44:19 | bobdaduck | it just doesn't shoot anything at all |
| 20:44:36 | bobdaduck | actually doesn't even track you |
| 20:48:13 | raptor | huh |
| 21:10:34 | raptor | back later! |
| 21:10:36 | | raptor Quit () |
| 21:27:04 | | Flynnn has joined |
| 22:08:58 | | YoshiSmb Quit (Ping timeout: 245 seconds) |
| 22:33:36 | | Flynnn Quit (Quit: This computer has gone to sleep) |
| 22:37:38 | | Flynnn has joined |
| 22:40:18 | | bobdaduck Quit (Remote host closed the connection) |
| 22:43:35 | | YoshiSmb has joined |
| 23:02:26 | YoshiSmb | somebody is online? |
| 23:06:53 | | YoshiSmb Quit (Ping timeout: 245 seconds) |
| 23:54:07 | | Flynnn Quit (Quit: This computer has gone to sleep) |