#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2013-11-10

Timestamps are in GMT/BST.

00:26:26Darrel Quit (Read error: Connection reset by peer)
00:31:21sam686the server pretty much dies with no errors if a levelgen runs into a line which is "os.exit()"
00:32:01Platskies has joined
00:33:54Platskies has left #bitfighter
00:36:55raptorshould we forbit that from the sandbox?
00:36:59raptor*forbid
00:37:08raptorWatusimoto: you around?
00:37:15Watusimotobraely
00:37:17Watusimotobarely
00:37:19raptorheh
00:37:26raptorok.. did you see my last commit?
00:37:41Watusimotofix assert?
00:37:45raptorwhat is xmFireTimer?
00:37:52WatusimotoI have no idea!
00:37:55raptorthere's a TODO about it saying to remove for 019
00:37:57sam686probably, if we want to allow scripts upload/download as I am just done with writing code to allow level+levelgen upload/download together
00:38:04raptorbut I've never know what that is...
00:38:41WatusimotoI see that; that sounds like me
00:39:10raptorha
00:39:15raptorit's not even used in 018a
00:39:30Watusimotolooks to me like it's a placeholder
00:39:34raptorthat TODO note is in the code right at the 018a release revision
00:39:38sam686also, endless loop in LUA can freeze the game and make server stop working
00:39:41raptordo you mind if i remove it?
00:39:45Watusimotothe value isn't used
00:40:03Watusimotoso it's probably there to keep the communication the same for 018
00:40:07Watusimotoso yes, please remove it
00:40:14raptorah ok
00:40:20raptori'll get rid of it
00:40:21raptorthanks!
00:41:07raptorsam686: os.exit() is not available in 019 - were you able to run it?
00:41:13Watusimotosam686: you are right about the loop... fixing it would be hard
00:41:25Watusimotowe;d need to monitor the script externally
00:41:37raptorman... runaway loop protection - now there's something i've heard about but have no idea about
00:41:40sam686running a simple levelgen that only have this: function main() os.exit() end
00:42:04Watusimotosince you are (theoretically) running "friendly" scripts, it hasn't seemed like a priority
00:42:08sam686it runs and... causes bitfighter to disappear
00:42:14Watusimotoha!
00:42:41raptorwhat?
00:42:47raptoris the sandbox not being applied??
00:43:35WatusimotoI did discover that the requirement for declaring globals is not being applied...
00:45:59raptorwhat the heck
00:46:06raptoros.exit is an available function
00:46:19raptori even tested some of these things when implementing the sandbox
00:47:02raptor(I get up set when something Lua-related goes wrong because I feel like I've sacrificed my sanity for it)
00:48:02raptorkaen: is there anything you can think of that you may have done in your Lua static method refactor that may have negated the sandbox?
00:48:04Watusimotomake a test for it!
00:48:25Watusimotogtest has a "death test"
00:48:38Watusimoto(never tried it, but it sounds awesome!)
00:52:39BFLogBot Commit: c51c14c1b04d | Author: buckyballreaction | Message: Properly remove unused variable (xmFireTimer) to not trigger assert
00:52:52raptorI still need to learn gtest
00:53:06raptoralso maybe we should go through our project TODOs left around...
00:53:08raptorone day
00:54:00raptorwe have 280 TODOs and FIXMEs... some are probably in tests and 3rd party sources
00:54:18Watusimotomost probably are
00:54:27WatusimotoI don't know if we have any fixmes
00:54:47raptorI've used them on occasion
00:55:11raptorat least 100 TODOs are in the zap directory
00:56:02kumul Quit (Ping timeout: 264 seconds)
00:56:56sam686one of which is if you delete a level you playing on, then restart level.. endless loop with log/console spamming saying no level is available
00:59:41koda Quit (Quit: koda)
01:00:53sam686The Assert on "Not the same??" in client.cpp keeps getting triggered when joining a server..
01:01:36sam686um, clientGame.cpp
01:03:04kaenraptor: not that I know of, all it does is hang Geom onto the global context table
01:03:24Watusimotoneeed sleeep
01:03:27Watusimotonight
01:06:47Skybax has joined
01:09:08kumul has joined
01:10:02amgine123did yyou fix my 2 crashes
01:12:30raptorsam686: it may have been fixed in my latest commit... maybe
01:12:43raptornight Watusimoto
01:13:54amgine123i found the vote down crsh and the /change serveername crash
01:14:09amgine123er server despriction
01:37:49thread_ Quit (Ping timeout: 250 seconds)
01:41:25raptoroh man... my sandbox never worked
01:41:54raptori was sure i tested it, but os.exit() fails right on the revision I introduced it...
01:51:19raptorkaen: still around? Maybe you'll have some insight...
01:51:44kaenhere I am
01:51:57raptorok, i just need you to tell me i'm crazy: http://pastie.org/pastes/8469005/text
01:52:35raptorthat looks like it sets the sandbox as the global namespace, then overwrites it with table.copy(_G)
01:53:40kaenthat appears to be exactly what it's doing
01:53:48raptorok, so then that would kill the sandbox
01:53:52kaenabsolutely
01:54:18raptorso two questions...
01:54:36raptor1. where does _G come from if it's not at the LUA_REGISTRYINDEX?
01:54:47raptor2. how should I fix this craziness
01:54:54kaen_G is a special variable
01:55:06raptorso it exists outside of everything?
01:55:10kaenalways refers to the current global scope and iirc you can' assign directly to it
01:55:11Skybax Quit (Ping timeout: 245 seconds)
01:55:13kaencan't
01:55:37kaenso anyway, at the point that table.copy is running, _G is the natural global scope
01:55:53raptorso I'm under the false assumption that LUA_REGISTRYINDEX is the current global scope?
01:56:41kaenit refers to the lua "registry" which is like special storage regarding the lua state
01:57:05kaenbut it's used to store the global object for each "context"
01:57:06kaeni.e. script
01:57:33raptorah, which later is loaded as it's own global scope..
01:57:35kaenthose lines (when working properly) will make an environment, store it in the registry using the script's id as the key
01:57:48kaenright, then that environment table is set as the script's global scope
01:58:10kaenand that table.copy copies the natural global scope into all of them
01:58:20raptorhmm, ok
01:58:24raptori think i'm getting it
01:58:26raptorso, then
01:58:28raptorto fix
01:58:37raptorI need to load the sandbox after the _G
01:58:56raptorbut load it in a manner that will reassign all the system functions, right?
01:59:40raptorat least, that's my current idea...
01:59:47kaenI think the fix is to drop the lines luaL_dostring(L, "e = table.copy(_G)"); // Copy global environment to create a local scripting environment
01:59:48kaenlua_getglobal(L, "e"); // -- environment e
01:59:48kaenlua_setfield(L, LUA_REGISTRYINDEX, getScriptId()); // Store copied table in the registry -- <<empty stack>>
01:59:53kaensorry, formatting
02:00:19raptori tried that, but the lua_helper scripts are loaded in _G
02:00:34kaenohh
02:01:32kaenok, so sandbox first, load /scripts, then you're ok to copy
02:01:53raptorso sandbox the _G
02:02:41kaenI'm reviewing the code around it, one moment
02:03:43kaenok, yes
02:03:50kaenuse a sandbox as _G
02:03:54kaenload the scripts
02:04:10kaenthen copy _G into the new contexts there in prepare environment
02:04:32kaendropping the sandbox code from prepareenvironment, since table.copy will suffice (of course)
02:04:43raptorok
02:04:56kaenlooks like table.copy is shallow
02:05:10kaenI think scripts share the same table references for e.g. Timer
02:05:17raptoroh fun
02:05:25kaenso I think you can communicate between them
02:05:27kaenamong other things
02:05:34raptorcould do some weird things with a global levelgen script...
02:06:05kaenI was thinking of a shared buffer for plugins
02:06:24kaenI think you could copy/paste between levels with that
02:06:31Watusimoto Quit (Ping timeout: 240 seconds)
02:08:35amgine123 Quit (Ping timeout: 250 seconds)
02:09:44raptorkaen: what's your take on what line 408 of LuaScriptRunner.cpp is doing?
02:13:30kaenthis bit? luaL_dostring(L, " function table.copy(t)"
02:13:38raptoryes
02:13:47raptorthat whole thing as well as the TODO above it
02:13:47kaenit's declaring (global) function and hanging it on table
02:14:38kaenah, it's also copying the table's metatable
02:15:20kaenI can make this a deep copy with three lines
02:18:43kaenhttp://pastie.org/8469031
02:18:50kaencompiling now to see if it works :P
02:19:53kaenhaha nope infinite recursion
02:20:02raptorheh
02:20:16raptorahhh, so that's what being called with table.copy(_G)
02:20:27raptorinteresting...
02:20:38kaenright, there's no table.copy in lua
02:20:56kaenbecause there's no single correct behavior
02:21:10kaenso apparently this structure has a cyclical reference
02:24:22kaenI guess I could add memoization
02:25:03raptoroh boo - one of the lua_helper_functions.lua uses functions needed outside the sandbox
02:25:17raptorjust that one file, I mena
02:25:19raptor*mean
02:25:51kaenwha?!'
02:25:53kaenwhich?
02:26:14raptorlua_helper_functions.lua uses loadfile
02:26:40kaenah and does that strict mode thing...
02:27:25amgine123 has joined
02:28:00kaeninspect.lua is using setmetatable
02:28:10amgine123raptor found many issues with the /commands
02:28:15amgine123and 2 crashes so far
02:30:33BFLogBot Commit: 0bdcf60d4fe9 | Author: sam8641 | Message: Add level script download/upload together with level download/upload
02:30:35BFLogBot Commit: 3728ff465f93 | Author: sam8641 | Message: Added progress meter for level upload and download
02:30:36BFLogBot Commit: e66dfbced9c9 | Author: sam8641 | Message: Added ini option, AllowLevelgenUpload
02:39:19BFLogBot Commit: 9c13659a1420 | Author: sam8641 | Message: Fix page down/page up error on blank server list
02:40:57amgine123foudnd a error sleect many objects and drag them turrets and forcefeildswill be displaced
02:50:01kaennoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
02:50:13raptorque pasa?
02:51:19kaen18:41 <amgine123> foudnd a error sleect many objects and drag them turrets and forcefeildswill be displaced
02:51:48raptorthat has always been a problem, no? I mean, I don't think its every worked any other way...
02:52:55amgine123well its funny it improperly drags some objects together
02:53:37kaenhuh
02:53:51kaenif you hold space and drag them and don't put them near anything else
02:53:52kaenit works ok
02:54:04kaenyou have to hold space before you start dragging
02:54:06raptormust be the snapping culprit...
02:54:15amgine123yeah
02:54:57amgine123nope doesnt work kaen
02:55:06amgine123forcefeilds and urrets still snap
02:55:12kaenprobably not reliably
02:55:25amgine123definnitly not
02:55:28raptorthat brings up an interesting question - should we default to not snapping?
02:55:31kaenbut I just did it a few times
02:55:37kaenwe should have a toggle!
02:55:51raptorso 'snap mode'
02:56:48amgine123relly i seleted a bunch of tuff and held spce and dragged some suff snapped others didnt
02:57:11raptoryou'll have to be more specific with the word 'stuff', and possibly reduce it to a simple case
02:58:06amgine1231 large barrier 4 loadout zones 1 core 4 forcefields 4 turrets.
02:58:26amgine123and 4 smallr barriers
03:00:46amgine123aha
03:01:25sam686Found out a way to make the snapping turn off without holding. hold down shift+space, press ESC, release all buttons, press ESC.
03:01:28amgine123with a forcefeildof turret on a polywll or a barrier using dragging close to the relitive object causes displacment
03:03:10amgine123i have a example level
03:05:44raptorhaha sam686, funny find...
03:06:55raptor8MB limit!?!?
03:07:23kaen8MB limit?
03:07:24kaenfor what?
03:07:37raptorim sam686's new level transfer method...
03:07:45kaenoh
03:07:52amgine123uplaoded exaple test level of snap issue to DB
03:09:09kaenoh amgine123
03:09:13kaenI think I fixed your caching bug
03:09:20kaenwhen you delete a level
03:09:20amgine123good
03:09:34amgine123uplaoded a exmple ofsnap issue to DB
03:09:40amgine123bbl piano practice
03:09:50amgine123see ya monday most likly
03:09:50raptorsam686: it looks like you left some possible debugging code in gameConnection.cpp? I'm looking at the #if 1...
03:13:08sam686that was the very old downloading stuff, you can keep the stuff between #if 1 ... else, and can remove the part between #else and #endof
03:18:44sam686Never seen a level with more then 2 MB in size..
03:19:20sam686Plus with progress meter, one can tell how long it takes to upload
03:19:41kaen8MB seems ok
03:23:07BFLogBot Commit: fb691aef34cb | Author: sam8641 | Message: Removes DataSender from GameConnection as a new way to upload level+levelgen is working
03:23:32sam686there, removed some DataSender from GameConnection, as my new code seems working even better, just fine
03:37:38kaeninstalling debian jessie (again) for to making glorious packages!
03:37:43kaenback soon
03:38:12kaen Quit (Remote host closed the connection)
03:43:22raptorsam686: have you ever used the Lua 'include()' method in a levelgen script?
03:43:34sam686I have not..
03:44:06sam686and I don't think no one used "include" on LUA
03:47:25raptorback a bit later...
03:47:28raptor Quit ()
03:52:30Nothing_Much has joined
04:08:01amgine123back
04:09:22amgine123did you see tehe drag snap issue
04:11:54sam686does this tell me much? http://sam6.25u.com/upload/screenshot_130.png
04:12:13sam686seems like a lack of saying what the problem is. (missing all levels)
04:12:31amgine123uhh i uplaoded to the db?
04:14:24amgine123try this make a really coplx oly gon or barrier and stik turrets and forcefeilds on it they drag it close to the old locataiton it iwill snap to the old locations spots
04:14:45amgine123and mess placement up
04:15:19amgine123try it
04:16:48destroyerimo has joined
04:19:52amgine123"bug draged objects snapd to the old objects location in LE"
04:25:04sam686found something strange, a folder/directory named "folder.level". it acually loads a blank level to editor, and says it did save into a folder? I see no files in it though
04:27:14amgine123did that despition make more sense sam ^-6
04:27:18amgine123^^
04:28:13sam686your diescription kindof didn't make sense, deaged? snapd? LE?
04:31:17amgine123draged snaped level edior
04:31:21amgine123edior
04:31:36amgine123snapped
04:32:02sam686dragging snapped level editor?
04:32:41kaen has joined
04:33:05kaen Quit (Changing host)
04:33:05kaen has joined
04:33:20kaenirssi!
04:33:30kaenwhile I install a desktop environment ...
04:35:47destroyerimo_ has joined
04:36:46Skybax has joined
04:37:35destroyerimo Quit (Ping timeout: 244 seconds)
04:37:41destroyerimo_ is now known as destroyerimo
04:38:41Nothing_Much Quit (Ping timeout: 272 seconds)
04:38:56Nothing_Much has joined
04:41:23Nothing_Much Quit (Read error: Connection reset by peer)
04:41:36Nothing_Much has joined
04:47:05kaen Quit (Quit: leaving)
04:47:49kaen has joined
04:49:29destroyerimo Quit (Ping timeout: 244 seconds)
04:57:11amgine123kaen
04:58:58kaenhi amgine123
04:59:07amgine123hey
04:59:11kaenhell
04:59:12amgine123founda minor bug
04:59:13kaenhello
04:59:37amgine123object snap to ther eold locationwhen being moved in the level editor
05:02:53amgine123do you see the problem kaen?
05:04:17kaen Quit (Ping timeout: 272 seconds)
05:16:02kaen has joined
05:24:14kaen_ has joined
05:24:27kaen_ Quit (Client Quit)
05:24:35kaen Quit (Quit: leaving)
05:25:02kaen has joined
05:25:02kaen Quit (Changing host)
05:25:02kaen has joined
05:30:00kaen has left #bitfighter
05:30:03kaen has joined
05:31:42Nothing_Muchkaen: what's with your internet?
05:32:31Skybax Quit (Ping timeout: 272 seconds)
05:33:32kaenjust settling back into debian 7
05:33:38kaenI'm hopping irc clients right now
05:35:15Nothing_Much Quit (Remote host closed the connection)
05:36:44Flynnn has joined
05:37:55Nothing_Much has joined
05:38:16Nothing_Muchaw kaen, what's wrong with ubuntu? :(
05:44:40kaenlol nothing
05:45:11kaenI'm trying to package bitfighter for debian (so it goes into mint, ubuntu, etc.) and I have to package against debian testing
05:45:19kaen(I'm actually on debian 8)
05:45:28kaen(or jessie)
05:45:31kaen(or whatever)
05:48:32Nothing_Muchyep
05:48:34Nothing_Muchthat's testin' dude
05:48:43Nothing_Muchor "testing"
05:48:59Nothing_Muchman, this libhybris thing is rough\
05:56:08destroyerimo has joined
05:57:49destroyerimohi guys
05:59:39kaenhi
06:00:44raptor has joined
06:00:44ChanServ sets mode +o
06:00:50raptorhowdy folks
06:00:57raptori'm only on briefly...
06:01:27raptorbut, kaen, if you're here, any ideas on how to reconcile the sandbox with the lua_helper_functions?
06:03:27amgine123 Quit (Ping timeout: 250 seconds)
06:06:28raptoractually, i'll ask again tomorrow - i'm falling asleep
06:06:35raptorthanks!
06:06:40raptor Quit ()
06:10:51Nothing_Muchkaen: do you have experience with android?
06:11:18Nothing_Mucheh, nvm, it's offtopic
06:20:14BFLogBot Commit: 702b3446a2e3 | Author: sam8641 | Message: Better handling of missing levels
06:24:39kaensam686: that does look better :)
06:24:47kaenhow do you trigger it?
06:25:26kaeni.e. what makes a level "not working"
06:25:30sam686easy, move the "Level" folder, or move all files in the level folder out of there, then restart
06:25:43sam686or change level after moving levels
06:25:53destroyerimo Quit (Read error: Connection reset by peer)
06:26:09sam686the level won't work if it can't find the level after server/ hosting started
06:26:26kaenmakes sense.
06:26:37kaendefinitely better than crashing :)
06:26:48destroyerimo has joined
06:31:50HylianSavior Quit (Quit: Leaving)
06:35:18destroyerimo Quit (Read error: Connection reset by peer)
06:36:14Skybax has joined
06:37:54destroyerimo has joined
06:39:29BFLogBot Commit: 3799f3561c23 | Author: sam8641 | Message: Fixed blank message with no levels to host, compiler was adding strings first then comparing.
06:40:42destroyerimoguys
06:40:46kaenhi
06:40:49Nothing_Muchyes?
06:40:51destroyerimohey
06:40:56Nothing_Muchhello
06:40:57destroyerimoi need to test hosting my server
06:41:12destroyerimocan anyone join?
06:42:31Nothing_Muchnot right now, sorry
06:42:37Nothing_Muchgotta recompile it
06:42:50Nothing_Muchdestroyerimo: which version?
06:43:05destroyerimoversion?
06:43:09destroyerimou mean game?
06:43:15destroyerimo18?
06:43:24sam686can't connect to ping timed out (018), it just fails
06:43:28Nothing_Muchyeah
06:43:41Nothing_Muchdestroyerimo: yeah, 018a
06:44:04destroyerimohmm
06:45:07destroyerimook thx guys
06:45:30destroyerimobut why only 3 can be joined?
06:46:08Nothing_Muchdid you set a maximum amount of players?
06:47:41sam686it may be that since you don't have your port UDP 28000 forwarded to your computer hosting/or running server, not everyone can connect
06:49:26destroyerimoactually i did
06:49:45destroyerimois there a way to set maximum players?
06:51:10HylianSavior has joined
06:51:18Nothing_Muchoh darn, how do I use cmake again? in the build dir?
06:51:46kaenyes
06:51:48kaencmake ..
06:51:53kaenor
06:52:02kaencmake .. -DCMAKE_BUILD_TYPE=Debug
06:52:12kaenif you want a debug build (crashes more but helps find bugs)
06:52:33Nothing_Muchooo debug?
06:52:36Nothing_Muchhow do I do that?
06:52:55kaenjust use the second cmake variation I just posted
06:53:14destroyerimo_ has joined
06:53:18kaenand then when you want to get crazy you can run bitfighter through gdb
06:53:24kaengdb bitfighter
06:53:29kaenthen r at the prompt
06:53:37destroyerimo_whats gdb?
06:53:43kaenactually it'd be gdb ./bitfighter
06:53:44Nothing_MuchI mean like
06:53:46kaenfrom the exe dir
06:53:52Nothing_Muchhow do I debug things? lol
06:53:54kaengdb is a debugger application
06:53:56Nothing_Muchwhat does it do?
06:53:57destroyerimo Quit (Ping timeout: 248 seconds)
06:54:06kaenwell, if you get a crash inside of gdb
06:54:09destroyerimo_ is now known as destroyerimo
06:54:18kaeninstead of just dying, the program is suspended
06:54:38kaenand you can do all sorts of nutty things from gdb, including read/modify values in memory
06:54:53kaenusually though the most useful thing is a stacktrace
06:55:13kaenif you catch a crash in gdb, when it drops to the gdb prompt, type 'bt' without quotes
06:55:33kaenand the gibberish that comes up makes it 100 times easier for us to fix the bug
06:55:53Nothing_Muchoh nice
06:55:55Nothing_Muchlemme try
06:55:56Nothing_Muchuh
06:56:03Nothing_MuchHow do I "clean" the directory?
06:56:11kaendepends on how clean
06:56:17Nothing_Much(I didn't have the glx dev files)
06:56:22kaen'make clean' will usually do
06:56:29kaenoh
06:56:40kaenif cmake fails to configure, rm CMakeCache.txt
06:56:50kaenand try again
06:57:50sam686http://sam6.25u.com/upload/text1311/131110_06-11-57.txt
06:57:53Nothing_Muchuh
06:57:55Nothing_Muchoh
06:58:22sam686not getting any data (0 bytes) incoming from that IP address destroyerimo server connection
06:58:52destroyerimohow many servers do you see sam686 ?
06:59:15sam686on a second thought, is destoryerimo able to see my server not ping timed out?
06:59:32destroyerimoi see sam server yes
06:59:35Nothing_Muchkaen: set_target_properties Can not find target to add properties to: bitfighter
06:59:43destroyerimoSAM TEST 2
07:00:12destroyerimohow many servers did u see sam686 ?
07:00:37sam686I see 4,
07:01:14destroyerimook now ur server i think its ping timed out :S
07:01:28sam686i see 2 more of my copies of server at my local LAN (192.168.3.2:28002 and 127.0.0.1:28002) but you all see my 96.2.80.131:28002
07:02:02destroyerimoi see it now
07:05:54sam686ok... destroyerimo running a server from china? there is widespread blocking of china internet access, no wonder I can't connect..
07:06:10destroyerimoyea...
07:06:19destroyerimohowever taz also the same problem
07:06:56sam686well, have you tried hosting locally? it usually list your host in the server list that way?
07:09:04BFLogBot Commit: 21445a30fb1b | Author: kaen | Message: fix test executable compilation on linux
07:09:05BFLogBot Commit: b5e3ed21eed0 | Author: kaen | Message: fix a handful of crashes in the test executable (global static initialization can *not* safely depend on other global statics having been initialized)
07:09:43kaenNothing_Much: you're missing a dependency (or a couple)
07:09:55kaenit refuses to build if you are
07:10:05Nothing_Muchalright
07:10:06Nothing_Muchwell
07:10:10Nothing_Muchlemme try the hg versin
07:10:10kaenrm CMakeCache.txt
07:10:13Nothing_Much*version
07:10:16Nothing_Muchyeah I did that
07:10:18Nothing_Muchdidn't help
07:10:29kaenI mean do it again and pastie the output of cmake :)
07:10:34Nothing_Muchhow do I change from 019 to 018a
07:10:35Nothing_Muchohh
07:10:38kaenit'll tell you what it can't find
07:10:56Nothing_Muchoh man I'm too fast or too impatient :(
07:11:02Nothing_MuchI already deleted the files
07:11:08Nothing_Muchgonna try out the hg thing
07:11:09kaenoh ok
07:11:52kaenwget https://gist.github.com/kaen/6393623/raw -O- | sh
07:12:03kaeneasy-squeezy
07:12:09kaenassuming you're still on debian that is ...
07:12:27Nothing_Muchubuntu dude lol
07:12:29Nothing_Muchon armhf :D
07:12:39kaenI mean debian in the broad sense
07:12:42kaenohhh cool
07:12:50kaenit'll be interesting to see if that still works then
07:12:56Nothing_Muchoh dude
07:13:02Nothing_MuchI already said it worked on arm
07:13:05Nothing_Muchbut the thing is
07:13:17Nothing_Muchthe sound directory and master server wasn't properly linked for some reason
07:13:21Nothing_Muchlemme try this again
07:14:55Platskies has joined
07:15:52Nothing_Muchthing is that there's no drivers that exist on linux for this cpu/gpu yet
07:16:04Nothing_Muchso I've been trying to get libhybris to work on this thing
07:18:11BFLogBot Commit: e1fa22895c9e | Author: kaen | Message: kill a handful of warnings
07:18:31kaenoh weird
07:19:02Flynnn Quit (Quit: This computer has gone to sleep)
07:19:03Nothing_Muchit's workin' now, thanx for the script (again)
07:19:12kaenmy pleasure :)
07:19:17kaengotta go to sleep ...
07:19:18Platskies Quit (Ping timeout: 244 seconds)
07:19:21Nothing_Muchyeah me too
07:19:22kaenwork in five hours
07:19:25Nothing_Muchdude!
07:19:30Nothing_Muchget to bed asap!
07:19:38kaensolid advice
07:19:41kaennight #bitfighter
07:19:44Nothing_Muchl8r dude
07:19:50Nothing_Muchoh I got an interview on monday
07:19:51Nothing_Muchwoo
07:19:52Nothing_Much:D
07:19:56kaengratz!
07:20:01Flynnn has joined
07:20:05kaengood luck if we don't make contact before then
07:20:14Nothing_Muchthanx, have a g'night
07:26:51Platskies has joined
07:30:39kumul Quit (Quit: Leaving)
07:39:02Invisible1 has joined
07:58:29Invisible1 Quit (Ping timeout: 248 seconds)
07:59:27Platskies Quit (Ping timeout: 272 seconds)
08:07:49Platskies has joined
08:15:23fordcars_xp has joined
08:15:25fordcars_xpHi
08:15:57fordcars_xpkae, in lua, is there any way to get a points values after it's created
08:16:02fordcars_xp*kaen
08:20:58fordcars_xp Quit (Quit: Page closed)
08:26:05Watusimoto has joined
08:26:11Invisible1 has joined
08:57:41Platskies Quit (Quit: Platskies)
09:02:53Platskies has joined
09:24:27Skybax Quit (Ping timeout: 265 seconds)
09:34:07Watusimoto Quit (Ping timeout: 265 seconds)
09:34:29Invisible1 Quit (Ping timeout: 248 seconds)
09:40:58destroyerimo Quit (Read error: Connection reset by peer)
09:43:38Darrel has joined
10:01:01Flynnn Quit (Quit: This computer has gone to sleep)
10:10:15HylianSavior Quit (Read error: Connection reset by peer)
11:12:34Platskies Quit (Read error: Connection reset by peer)
11:15:02Platskies has joined
11:45:49Darrel Quit (Ping timeout: 272 seconds)
11:46:04kaen Quit (Ping timeout: 264 seconds)
11:46:20Darrel has joined
11:57:55LordDVG has joined
11:59:28Platskies Quit (Quit: Platskies)
12:00:11YoshiSmb has joined
13:10:48LordDVG Quit (Remote host closed the connection)
13:25:01YoshiSmb Quit (Ping timeout: 250 seconds)
16:10:14YoshiSmb has joined
17:05:09YoshiSmb Quit (Ping timeout: 250 seconds)
17:30:22HylianSavior has joined
17:48:17LordDVG has joined
17:50:54Canseco has joined
18:25:19LordDVG Quit (Remote host closed the connection)
19:14:57Skybax has joined
19:16:03Invisible1 has joined
19:20:16sam686 has left #bitfighter
19:34:29raptor has joined
19:34:29ChanServ sets mode +o
20:03:56Invisible1 Quit (Ping timeout: 245 seconds)
21:29:57Flynnn has joined
21:58:34fordcars_xp has joined
21:58:34raptor summons another developer
21:58:51Watusimoto has joined
21:59:59Watusimotohi
22:00:06-asimov.freenode.net- *** Looking up your hostname...
22:00:06-asimov.freenode.net- *** Checking Ident
22:00:06-asimov.freenode.net- *** No Ident response
22:00:06-asimov.freenode.net- *** Couldn't look up your hostname
22:00:12BFLogBot has joined
22:00:12-ChanServ- [#bitfighter] Welcome to #bitfighter. This is an IRC channel, many or all of the users may not be paying attention. Please have patience when waiting for a response.
22:00:20raptori can't believe that worked
22:00:29raptorhi Watusimoto
22:00:35raptorfound out the sandbox issue
22:00:45raptorand I request ideas on it, if you have them
22:01:49raptorbasically, we set up the global environment, load the *helper_scripts.lua, then create a new environment for each script by copying the global one
22:02:25raptorwhen creating the new environment, the issue is that we create the sandbox as the new one, then copy the main global one (_G) over it
22:02:41raptorso negating the effects of the sandbox
22:03:42raptor pauses for acknowledgement
22:06:35Canseco Quit (Quit: Leaving)
22:07:35Watusimotowhy not put the sandbox in the main global env?
22:07:44raptoroh good, SYN ACK
22:07:49raptorok
22:07:50raptorso
22:08:00Watusimotoso when we copy that, our copies get sandboxes too
22:08:09raptorthe issue with that is that lua_helper_functions.lua uses methods prohibited
22:08:20raptorlike 'loadfile' and getmetatable
22:10:37raptorso setting up the sandbox *anywhere* will disallow the loading of that helper script
22:11:01raptorso, I need ideas on how to provide those helper methods, yet sandbox the environment
22:13:37WatusimotoI see
22:14:30Watusimotocould the helper script do its stuff then create the sandbox?
22:14:49Watusimotothe sandbox is written in lua, right?
22:15:12raptoryes, see LuaScriptRunner.cpp, look for 'sandbox'
22:18:15Watusimotomessage from bitaccel:
22:18:16WatusimotoWe were having issues with some hardware in the new server so we are postponing the move until we can make sure everything is stable.
22:18:43Watusimotoso would having the helper script establish the sandbox work?
22:19:41raptori'm not sure... can it provide those functions will having them nil'd out afterwards?
22:21:28sky_lark has joined
22:23:23sky_larkAnyone know if it's possible to make a scaled asteroid spawn?
22:23:48raptorhi sky_lark, i don't think so... unless it's levelgen'd
22:25:25sky_larkmmkay, thanks
22:25:32sky_lark has left #bitfighter
22:26:16fordcars_xpraptor, are you sure?
22:26:36fordcars_xpoh, I guess so
22:27:19Watusimoto>>> can it provide those functions will having them nil'd out afterwards? <<< why not? it does what it needs to do, then unleashes the nilling and that's the end of that
22:27:57raptorreally?
22:28:14raptorbecause it loads some stack tracer stuff, etc.
22:34:33Watusimotouh
22:35:07Watusimotoif the sandbox has functions that are niled out, then those functions are not available to anyone
22:35:20raptorcorrect
22:35:32raptorbut, for instance
22:35:42Watusimotodoes it matter if the sandbox is applied by the global environment or the startup scripts?
22:35:50raptorwe provide an include() method in lua_helper_function.lua that calls 'loadfile'
22:36:00raptorloadfile will be nil'd thus rendering useless that function
22:36:28raptorthe issue is the same - we provide functionality in one of the helper scripts that would use nil'd items
22:36:58Watusimotoif the helper does this: myinclude = include, then the sandbox later does this: include = nil, myinclude should still work
22:37:14Watusimotoat least that's my understanding
22:37:18raptoroh really
22:37:25Watusimotowell, let's do a quick test
22:37:39raptorif if 'include' uses functionality that is also nil'd out?
22:37:46raptor*even if
22:37:47raptorok
22:37:57WatusimotoLua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
22:37:57Watusimoto> print(1)
22:37:57Watusimoto1
22:37:57Watusimoto> x = print
22:37:57Watusimoto> x(1)
22:37:59Watusimoto1
22:38:01Watusimoto> print = nil
22:38:03Watusimoto> print(1)
22:38:05Watusimotostdin:1: attempt to call global 'print' (a nil value)
22:38:08Watusimotostack traceback:
22:38:10Watusimotostdin:1: in main chunk
22:38:12Watusimoto[C]: ?
22:38:14Watusimoto> x(1)
22:38:17Watusimoto1
22:38:19Watusimoto>
22:38:28raptoruhh
22:38:31Watusimotoso yes, I think that is how it works
22:39:31raptorvery interesting...
22:39:35raptortesting with a levelgen
22:40:00Watusimotoso you can keep secret or private implementations of the functions you niled out
22:40:17Watusimotothe function itself is still there... it's just the local symbol that points to it that is niled
22:40:24Watusimotoniled? nilled?
22:40:40Watusimotonil'ed?
22:40:41raptornil'd
22:40:49raptornullified
22:41:09Watusimotonil'd seems to work... it implies some letters are left out (without worring about which ones!)
22:41:31raptorok, so... right now i'm using a whitelist sandbox
22:41:45raptorand setting it to the global state, which means everything else is wiped out
22:41:50raptori should build a blacklist..
22:41:58raptorthen nil them
22:42:55Watusimotoeither approach should work
22:43:11Watusimotoor maybe not
22:43:12raptorwhitelist doesn't seem to, in my head
22:43:26Watusimotowhen you say everything, that means... everything that was previuosly loaded is gone?
22:43:39raptoryep
22:43:47raptorwhitelist becomes the new global state
22:43:50Watusimotowell, then that probably won't work ;-)
22:45:06Watusimotowow... sam fixed a lot of bugs I didn't know we had
22:45:16raptorheh, yes
22:45:52raptorI actually thought we were getting close to release, then sam686 came along and threw some chaos in the mix, but ended up fixing lots of bugs
22:48:45raptorso tell me about the 'STRICT' stuff in the lua_helper_function.lua file?
22:50:10Watusimotolet me open it up
22:52:32raptoris it just separation of global/local vars? and is that for Lua 5.2 compatibility?
22:52:53kumul has joined
22:53:31Platskies has joined
22:53:32Watusimotook
22:53:49Watusimotostrict is something I added to fix what I consider a horrible design decision in lua
22:53:59Watusimotothat is the default declaration of variables as globa;
22:54:25Watusimotothe way it works (or should work, as it is currently not working)
22:54:42Watusimotois that in main() you can declare vars as global like this:
22:54:45Watusimotox = 1
22:55:23raptorah yes
22:55:28Watusimotobut anywhere else you can do it with global x = 1
22:55:47raptordefault global decl. reduces performance, too, I think
22:56:05Watusimotoyes, probably a little, but I doub't you'd notice outisde a huge tight loop
22:56:40Watusimotobut really, it prevents stupid errors like x =1 ; xx = x + 1
22:57:02Watusimotoand there is no need to declare globals outside of main()
22:57:26Watusimotoso it helps users help themselves :-)
23:00:07raptorwell... it doesn't seem to be working
23:00:22raptorstrict mode, i mean - which was your comment yesterday, I think
23:01:07raptorwas it ever working?
23:01:22kaen_ has joined
23:01:56fordcars_xp"I actually thought we were getting close to release"
23:02:24kaen_Hi. Just wanted to drop in and say that I use require() in my plugins
23:02:38fordcars_xphi
23:02:51raptorhi kaen_
23:02:59raptorso... in my blacklist, I should provide that?
23:03:18kaen_I'm having network issues so I'm not sure how long I'll stay connected or when ill be back on a solid one
23:03:23raptorI was thinking of allowing the include()
23:03:32raptorbut killing the require, still...
23:03:38raptorok
23:03:40fordcars_xphey kaen_, did you see my irc last night?
23:03:58fordcars_xpif it's possible to get back point values in lua...
23:04:12raptorfordcars_xp: get them from where?
23:04:17fordcars_xpfrom a point :P
23:04:29fordcars_xpPoint = x, y
23:04:32raptorgive an example so I know what you mean
23:04:34fordcars_xpget x and y
23:04:41raptorpoint.x, point.y
23:04:47fordcars_xpoh crappy crap
23:04:50fordcars_xpthanks :P
23:04:50kaen_I don't use include, but in most languages include always reruns the script whereas require caches the result and always return the same one on subsequent calls
23:05:09kaen_So there's a different use case for each
23:05:16fordcars_xpsoo, later, food time
23:05:21fordcars_xp Quit (Quit: Page closed)
23:06:35Nothing_Much Quit (Remote host closed the connection)
23:06:48Watusimotoraptor: (sorry for being inattentive -- trying to do something else at the same time) it did work, yes
23:06:53kaen_I'm not familiar with our implementation though, so it could be different
23:07:25raptorkaen_: I'd want to lock down 'require' somehow to only allow pulling from the scripts/robots/editor_plugins directory, I think
23:07:43raptorunless it really isn't that UNSAFE as the docs seem to think
23:07:57raptormaybe with other stuff blacklisted it's OK
23:08:03Nothing_Much has joined
23:08:48kaen_As long as the require env is sandboxed it should be safe afaik
23:09:13Nothing_Muchkaen_: the script gave me 019, is that correct?
23:09:36kaen_If it does something weird like run in the natural global context, then it'd be easy to implement a safe one
23:09:50Watusimototake this example
23:09:52kaen_Correct, NM
23:09:58Watusimotoprint = nil
23:10:05Watusimotothen we require a functin that uses print
23:10:14Watusimotoit won't work
23:10:25Watusimotothere's no way (that I can see) to make print work again
23:10:58Watusimotoso I conclude that require won't be able to reenable a blacklisted fn
23:12:13kaen_There is no way (unless you context hop via debug)
23:12:46kaen_Or maybe getfenv :/
23:13:37kaen_Which sucks because I use getfenv and setfenv in my library and that means we should blacklist them
23:13:56Skybax Quit (Ping timeout: 245 seconds)
23:14:35Flynnn Quit (Quit: This computer has gone to sleep)
23:16:24kaen_Alright gotta boys. Good luck!
23:16:32kaen_Gotta run
23:16:43kaen_ Quit (Quit: kaen_)
23:20:07raptorWatusimoto: what you're saying is that require, with the other blacklisted stuff, would be harmless
23:20:12raptor'require'
23:20:53WatusimotoI'm saying that's what I think :-)
23:21:24raptorthis is from the sandbox page: require - UNSAFE - modifies globals (e.g. package.loaded), provides access to environments outside the sandbox, and accesses the file system.
23:21:25Watusimotounless require were able to reimport, say, debug
23:22:07Watusimotomodifying package.loaded is prob ok
23:22:18Watusimotoaccess to file system could be ok if it's read-only
23:22:46Watusimotounless you do require bitfighter.ini and somehow read the pws there
23:22:52Watusimotobut even then...
23:23:04Watusimotoaccess to environments outside sandbox is kind of vague
23:23:56Darrel Quit (Read error: Connection reset by peer)
23:24:18raptorfound VLC sandbox: https://www.videolan.org/developers/vlc/share/lua/modules/sandbox.lua
23:25:16kumool has joined
23:27:45Watusimotowe do need a way to load libs, I think
23:28:22raptorme too
23:28:49kumul Quit (Ping timeout: 272 seconds)
23:28:49raptormaybe we should hijack 'require' and only allow loading from certain dirs?
23:28:57Watusimotothat would make sense
23:31:19Watusimotonot sure how, exactly
23:31:44Watusimotomaybe remove paths from require, so only local folder access
23:32:41WatusimotoFirst, require searches for the file in a path; second, require controls whether a file has already been run to avoid duplicating the work. Because of these features, require is the preferred function in Lua for loading libraries.
23:32:56Watusimotooopps.... left off first sentence
23:32:57WatusimotoRoughly, require does the same job as dofile, but with two important differences.
23:33:21Watusimotoso we can either 1) use dofile, or 2) limit the path
23:34:25Flynnn has joined
23:34:26WatusimotoTo determine its path, require first checks the global variable LUA_PATH. If the value of LUA_PATH is a string, that string is the path. Otherwise, require checks the environment variable LUA_PATH. Finally, if both checks fail, require uses a fixed path (typically "?;?.lua", although it is easy to change that when you compile Lua).
23:34:32Watusimotofrom http://www.lua.org/pil/8.1.html
23:35:04Watusimotoso if we control LUA_PATH, we can control where require loads
23:35:32WatusimotoI do remember setting that somewhere at some time in the distant past
23:35:51Watusimotobut it's not in lua_helper_functions, which is what I would expect
23:37:53Watusimotohttp://stackoverflow.com/questions/4125971/setting-the-global-lua-path-variable-from-c-c#4156038
23:39:12Watusimotothe last answer suggests LUA_PATH is an environment var, but I thnk that is wrong
23:41:58raptoryeah, its not in the env on my system
23:42:47raptorso that first answer is our solution?
23:43:20Watusimotoaha, this is probably easiest
23:43:20WatusimotoYou can also change package.path in Lua before calling require.
23:43:57Watusimotoso we'd need to do our setup, change the path, then disable the mecahsnim used to change the path
23:44:47raptordisable means to do package = nil
23:47:43noneofmynickswor has joined
23:51:53kumool Quit (Ping timeout: 272 seconds)
23:57:37Watusimotoabout to push a set of commits... just a general warning that there is a bunch of new work disguised as a "Merge" due to a misunderstanding of how TortoiseHg works. Sorry!
23:57:51raptoruh ok
23:58:09BFLogBot Commit: 71f70c54994c | Author: watusimoto | Message: Put constructors first
23:58:11BFLogBot Commit: 6ebf70f0532b | Author: watusimoto | Message: Hide useless Namespaces page
23:58:11raptori'll... make sure it compiles, like normal :)
23:58:12BFLogBot Commit: 03d31e983054 | Author: watusimoto | Message: Improve docs
23:58:14BFLogBot Commit: 92883b6d6a95 | Author: watusimoto | Message: Whitespace
23:58:15BFLogBot Commit: 09e519e24ae0 | Author: watusimoto | Message: Example is messed up
23:58:17BFLogBot Commit: 4cedc63ed238 | Author: watusimoto | Message: Let the error message box match the screenmode of whatever is calling it
23:58:18BFLogBot Commit: 8bb708f955af | Author: watusimoto | Message: Make method a const
23:58:20BFLogBot Commit: a915acb31bd8 | Author: watusimoto | Message: Wording
23:58:21BFLogBot Commit: 9d6334b0082e | Author: watusimoto | Message: Editor UI now shown beneath scripting error message display; can hit [/] to show console directly from error window (no need to press [Esc] first),
23:58:23BFLogBot Commit: 9ba3d99e8158 | Author: watusimoto | Message: Whitespace
23:58:24BFLogBot Commit: 830d4d300078 | Author: watusimoto | Message: Merge
23:58:26BFLogBot Commit: eb6f8e56920a | Author: watusimoto | Message: Comment interesting by irrelevant
23:58:27BFLogBot Commit: 31469f6b0009 | Author: watusimoto | Message: Remove dead code
23:58:29BFLogBot Commit: d2fe9c310df3 | Author: watusimoto | Message: Merge
23:58:30BFLogBot Commit: 0d5f96e1976b | Author: watusimoto | Message: Fix lingeringMessage concurrency issues

Index Search ←Prev date Next date→

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