User:Babbage Linden/Office Hours/2008 09 17
< User:Babbage Linden/Office Hours
Jump to navigation
Jump to search
Revision as of 22:41, 17 September 2008 by Nock Forager (talk | contribs) (Added some links to JIRA.)
Transcript of Babbage Linden's office hours:
[8:01] | Nock Forager: | Hi Cale
|
[8:02] | Cale Flanagan: | hi noch and babbage
|
[8:02] | Nock Forager: | Hi Babbage
|
[8:02] | Babbage Linden: | hi everyone
|
[8:02] | Cale Flanagan: | (i meant nock)
|
[8:03] | Cale Flanagan: | oh some steam is coming:)
|
[8:03] | Babbage Linden: | everyone, i'd like to introduce scouse
|
[8:03] | Scouse Linden: | hello
|
[8:03] | Nock Forager: | Hi Scouse
|
[8:03] | Babbage Linden: | who has been working with me on mono for the last year
|
[8:03] | Cale Flanagan: | hello scouse, the smoker:)
|
[8:03] | Babbage Linden: | hi yuu
|
[8:03] | Scouse Linden: | *crunch*
|
[8:04] | Yuu Nakamichi: | hello :)
|
[8:05] | Babbage Linden: | let's wait a couple of minutes for people to turn up
|
[8:05] | Babbage Linden: | then i'll let you know where we are with mono
|
[8:05] | Cale Flanagan: | i wanst sure where to go, in ur picksis an office but thats elsewhere
|
[8:06] | Cale Flanagan: | oh i love that, i only see he tag:)
|
[8:06] | Babbage Linden: | ok, lets kick off
|
[8:06] | Fake Fitzgerald: | hi
|
[8:06] | Babbage Linden: | hi fake
|
[8:07] | Nock Forager: | low prim, eco av :)
|
[8:07] | Cale Flanagan: | and hide is only shoes:) wow
|
[8:07] | Babbage Linden: | later today we will be starting the roll of 1.24.6 to the main grid
|
[8:07] | Hidenori Glushenko: | lol
|
[8:07] | Babbage Linden: | which has been on the preview grid since monday
|
[8:07] | Babbage Linden: | the 2 main fixes for mono are the timer/rez/state_entry event problem
|
[8:08] | Babbage Linden: | and further hardening against the problems that were causing the C# error messages and crashes
|
[8:08] | Cale Flanagan: | like seeing something like .ctor?
|
[8:08] | Babbage Linden: | SVC-2908
|
[8:08] | Babbage Linden: | and
|
[8:09] | Babbage Linden: | SVC-2973
|
[8:09] | Babbage Linden: | (which are linked here: http://jira.secondlife.com/browse/SVC-1276)
|
[8:09] | Cale Flanagan: | maybe take a poke at svc-3066?:)
|
[8:09] | Babbage Linden: | with these 2 fixes, scripts should run as before on the original scripting engine
|
[8:10] | Cale Flanagan: | ur svc doesnt exist:)
|
[8:10] | Babbage Linden: | and there are no outstanding crash bugs that we know of
|
[8:10] | Babbage Linden: | so, now we'll turn to the mono only problems
|
[8:10] | Babbage Linden: | but likely we'll bundle them together
|
[8:10] | Babbage Linden: | rather than doing a 1.24.7 roll next week
|
[8:10] | Babbage Linden: | but we'll see
|
[8:11] | Babbage Linden: | we're currently looking at VWR-8997
|
[8:11] | Babbage Linden: | and SVC-3072
|
[8:11] | Babbage Linden: | as well as tuning the application domain unloading
|
[8:12] | Babbage Linden: | as we've seen domain unloading caused by some applications which start/stop and rez many different scripts
|
[8:12] | Babbage Linden: | now you should see domain unloading unless you stop 100 different scripts
|
[8:12] | Babbage Linden: | which should be very rare in normal operation
|
[8:13] | Babbage Linden: | we've also parameterised the domain unloader
|
[8:13] | Scouse Linden: | Stop 100 scripts, and there are no other copies running
|
[8:13] | Babbage Linden: | so we can tweak the parameters more easily
|
[8:13] | Babbage Linden: | so, we can tune the process over time
|
[8:13] | Babbage Linden: | to trade off frequency of domain unloads with size of simulator memory usage
|
[8:14] | Babbage Linden: | that's where we are at the moment
|
[8:14] | Babbage Linden: | if other crash bugs or problems with the original scripting engine come up we will jump on those
|
[8:14] | Babbage Linden: | otherwise we'll work through the mono issues to get mono scripts all working correctly
|
[8:15] | Cale Flanagan: | is mine 3066 prob also domain unloading related?
|
[8:15] | Scouse Linden: | No I'd guess not
|
[8:15] | Scouse Linden: | It looks like a new problem
|
[8:15] | Scouse Linden: | We will look at it as a high priority
|
[8:16] | Cale Flanagan: | thats good, bec my c experience told me, thaere can be something bad behind it
|
[8:16] | Babbage Linden: | have you tried this on 1.24.6 on the preview grid cale?
|
[8:16] | Babbage Linden: | it looks like something we may now catch
|
[8:16] | Cale Flanagan: | no, havent tried yet, can do after this
|
[8:16] | Babbage Linden: | thanks
|
[8:17] | Babbage Linden: | if you could add a comment letting us know whether this still occurs on 1.24.6 that would be great
|
[8:17] | Cale Flanagan: | i observed a bit more on this heap crashing scripts, what was the reason to stop them
|
[8:17] | Cale Flanagan: | i saw that they eat much simtime
|
[8:18] | Cale Flanagan: | i have them runing and crashed and having up to 6ms intop scripts
|
[8:19] | Babbage Linden: | that sounds strange
|
[8:19] | Babbage Linden: | each frame, each script should only get around 185us regardless of what it's doing
|
[8:19] | Babbage Linden: | to use 6ms of frame time for scripts you should need many of them
|
[8:20] | Cale Flanagan: | its only what top scripts is telling me, in statistic window i see no big impact on script time
|
[8:20] | Babbage Linden: | so, it may be a problem with top scripts
|
[8:21] | Babbage Linden: | has anyone else seen anything we should have a look at?
|
[8:21] | Nock Forager: | Not so. calm wind this week.
|
[8:22] | Babbage Linden: | that's good to know
|
[8:22] | Nock Forager: | ah I've got some tech text about Mono optimization.
|
[8:22] | Babbage Linden: | sounds like we're making progress :-)
|
[8:23] | Babbage Linden: | thanks nock
|
[8:23] | Babbage Linden: | where did you get the text?
|
[8:23] | Nock Forager: | From the auther, Jam Leili.
|
[8:24] | Nock Forager: | I talked with him and translated it in japanese already.
|
[8:24] | Babbage Linden: | thanks
|
[8:24] | Babbage Linden: | i'll have a read through it later and let you know if there are any misunderstandings
|
[8:25] | Cale Flanagan: | thanks nock
|
[8:25] | Nock Forager: | XLR do you need a copy?
|
[8:25] | Babbage Linden: | in general you should try to write easy to understand and maintain software
|
[8:25] | Babbage Linden: | and let us (and the mono developers) optimise the runtime
|
[8:26] | Babbage Linden: | if we change things in the future there is no guarantee that any of these tricks will continue to work
|
[8:26] | Nock Forager: | hmhm
|
[8:27] | Nock Forager: | The text explained not such as voodo magic, but maybe starndard in programings.
|
[8:27] | Scouse Linden: | The statements about eliminating variables are also probably not true
|
[8:27] | Nock Forager: | So I think it's ok.
|
[8:27] | Scouse Linden: | The compiler makes good use of variables
|
[8:27] | Babbage Linden: | i'll read through and let you know
|
[8:27] | Nock Forager: | thanks.
|
[8:27] | Cale Flanagan: | oh yes, u have a same-string detector somewhere?
|
[8:28] | Cale Flanagan: | i put over 7000times a 37 bytes string in a list (thast 500k)
|
[8:28] | Babbage Linden: | the way collection operations work
|
[8:28] | Babbage Linden: | is that they copy references around where they can
|
[8:29] | Babbage Linden: | so, when you add an int or vector to a list
|
[8:29] | Babbage Linden: | it gets boxed in to an object
|
[8:29] | Babbage Linden: | and then a reference to the object is stored in the list
|
[8:29] | Babbage Linden: | as you can't change the value while it's in a list
|
[8:29] | Babbage Linden: | if you copy the list around
|
[8:29] | Babbage Linden: | it just copies the references
|
[8:29] | Babbage Linden: | instead of copying the values
|
[8:30] | Babbage Linden: | so, if you put a string in a list
|
[8:30] | Babbage Linden: | then repeatedly copy the list or append it to another list
|
[8:30] | Fake Fitzgerald: | copy on write?
|
[8:30] | Babbage Linden: | the runtime copies a 4 byte reference to the string
|
[8:30] | Babbage Linden: | instead of the (many byte) string itself
|
[8:30] | Babbage Linden: | (it's kind of copy on write, yes)
|
[8:30] | Babbage Linden: | copy on unbox
|
[8:31] | Cale Flanagan: | i counted 8 bytes foreach entry:) regardless if a string or an int
|
[8:31] | Babbage Linden: | right
|
[8:31] | Babbage Linden: | there is an overhead from the arraylist
|
[8:31] | Babbage Linden: | and the object gets a vtable and sync data which adds 8 bytes
|
[8:32] | Cale Flanagan: | very interesting stuff, will this someday documented for hardcore scripters?:)
|
[8:32] | Babbage Linden: | yes, it's already in a couple of office hour notes :-)
|
[8:32] | Scouse Linden: | yes in the CIL Standard
|
[8:32] | Cale Flanagan: | oh great, thast a small book, i think:)))
|
[8:32] | Babbage Linden: | what we're doing here is different to how LSL handled lists and strings, so it's worth knowing about
|
[8:33] | Babbage Linden: | sorry, the original scripting engine ;-)
|
[8:33] | Cale Flanagan: | i als saw a difference in strings and keys
|
[8:33] | Cale Flanagan: | if i add a key as key or as string to a list
|
[8:33] | Babbage Linden: | in order to be able to differentiate between keys and strings
|
[8:33] | Babbage Linden: | a key is represented as a wrapped list
|
[8:34] | Babbage Linden: | so a key object has a reference to the string it wraps
|
[8:34] | Babbage Linden: | whereas a string is just a CLI string
|
[8:34] | Babbage Linden: | it's unfortunate that we had to differentiate them
|
[8:34] | Babbage Linden: | but we did
|
[8:34] | Babbage Linden: | it's also unfortunate that you can store any string in a key
|
[8:35] | Babbage Linden: | which could otherwise be represented more concisely as a UUID
|
[8:35] | Cale Flanagan: | then u could have saved them as real keys:) i found a way to save some space with utf coding, ist a bit hell but 22bytes for a key is good
|
[8:36] | Babbage Linden: | hopefully one day we'll be able to provide CLI byte arrays
|
[8:36] | Babbage Linden: | and access to the GUID class
|
[8:36] | Babbage Linden: | and provide implicit conversion operators that will create a LindenLab.SecondLife.Key from a CLI GUID
|
[8:36] | Babbage Linden: | so you can store keys in a few bytes
|
[8:37] | Cale Flanagan: | sounds good
|
[8:37] | Babbage Linden: | but we can maintain compatibility with the existing API
|
[8:37] | Babbage Linden: | which allows you to pass a Key with the value "thisisnotakey"
|
[8:37] | Cale Flanagan: | y, u can simply flag them...
|
[8:38] | Yuu Nakamichi: | sorry if this has been brought up earlier but I was wondering if there's still help needed on svc-2908
|
[8:39] | Yuu Nakamichi: | (the c# error messages)
|
[8:39] | Babbage Linden: | there still seem to be some problems that cause C# error messages
|
[8:39] | Babbage Linden: | (that JIRA task became a dumping ground for many different issues)
|
[8:40] | Yuu Nakamichi nods
| |
[8:40] | Babbage Linden: | if you look at baron nowhere's last comment he can still get error messages about arrayindexoutofbounds
|
[8:40] | Babbage Linden: | so if you see anything around that, please let us know in the jura
|
[8:40] | Yuu Nakamichi: | ok
|
[8:40] | Babbage Linden: | i think it's caused by the scripts count of pending events
|
[8:41] | Babbage Linden: | and queue of pending events getting out of sync
|
[8:41] | Babbage Linden: | we could defensively code around it
|
[8:41] | Babbage Linden: | by checking the event queue before taking the next event
|
[8:41] | Babbage Linden: | but that would mask the problem
|
[8:41] | Babbage Linden: | it would be better to be able to identify how the counts get out of sync
|
[8:42] | Yuu Nakamichi: | I'm happy to lend a hand with testing on the preview grid
|
[8:43] | Yuu Nakamichi: | I see vektor has been testing it there
|
[8:43] | Babbage Linden: | yes
|
[8:43] | Babbage Linden: | probably our approach going forward will be to work on the most easily reproducable issues
|
[8:43] | Babbage Linden: | and wait for information on the others
|
[8:43] | Babbage Linden: | gathered from running the latest code on the grid
|
[8:44] | Babbage Linden: | for example, i think the c# error message issue should become clearer once 1.24.6 is deployed
|
[8:44] | Babbage Linden: | to the main grid
|
[8:44] | Babbage Linden: | which will clear away lots of reports of the errors we've fixed
|
[8:44] | Babbage Linden: | which may make the remaining issues clearer to understand
|
[8:44] | Yuu Nakamichi: | got it
|
[8:45] | Babbage Linden: | so, i'm looking forward to people playing with 1.24.6 on the main grid
|
[8:45] | Babbage Linden: | and collecting information for us to look at next week
|
[8:45] | Babbage Linden: | some of the problems we've fixed were very intermittent
|
[8:45] | Babbage Linden: | and caused by invalid memory
|
[8:46] | Babbage Linden: | making them difficult to reason about
|
[8:46] | Babbage Linden: | and meaning that many errors had the same cause but different symptoms
|
[8:46] | Babbage Linden: | hopefully we've fixed all the invalid memory issues and so should be left with more logical errors
|
[8:46] | Babbage Linden: | or even better, no errors at all :-)
|
[8:47] | Cale Flanagan: | if there are no bugs, there must be something broken:)
|
[8:48] | Babbage Linden: | any more questions?
|
[8:48] | Babbage Linden: | comments?
|
[8:48] | Babbage Linden: | suggestions?
|
[8:49] | Cale Flanagan: | if i start with my wishlist...:)
|
[8:49] | Yuu Nakamichi: | the mono OH are now here, once a week?
|
[8:49] | Babbage Linden: | periapse also holds an office hour on fridays
|
[8:49] | Babbage Linden: | at 3PM pacific time i think
|
[8:50] | Babbage Linden: | the details are in the wiki
|
[8:50] | Yuu Nakamichi: | ok thx :)
|
[8:50] | Babbage Linden: | but yes, i hold office hours here at 8AM on wednesdays
|
[8:50] | Babbage Linden: | at the moment they are mostly about the mono deploy
|
[8:50] | Babbage Linden: | but i hope to talk about scripting and technology more widely as we get the mono deploy all smoothed out
|
[8:51] | Yuu Nakamichi: | great :)
|
[8:52] | Nock Forager: | Nice. I hope you come to our convention and talk about Mono some :) http://lsl-con.org/2008/lsl-convention-2008-en.php
|
[8:53] | Babbage Linden: | i'll have to see what i can do
|
[8:53] | Nock Forager: | (Sorry, it's bit Japanese language depended).
|
[8:53] | Babbage Linden: | thanks for the invitation :-)
|
[8:53] | Babbage Linden: | are you also holding it in world?
|
[8:53] | Babbage Linden: | i imagine i could definitely come to that
|
[8:54] | Yuu Nakamichi: | wow thanks nock
|
[8:54] | Nock Forager: | Yes it's in-world event. at "New Script" region.
|
[8:54] | Babbage Linden: | excellent
|
[8:54] | Yuu Nakamichi: | what's the date?
|
[8:55] | Nock Forager: | date... ops I forgot to write it on the page. I should add.
|
[8:55] | Nock Forager: | it's 2008/10/18 to 2008/11/02.
|
[8:55] | Yuu Nakamichi: | cool thx :)
|
[8:55] | Yuu Nakamichi: | two weeks? :)
|
[8:56] | Nock Forager: | Yes, weekend for some session talk.
|
[8:56] | Yuu Nakamichi: | excellent
|
[8:57] | Yuu Nakamichi: | is this the first resident-driven convention that focuses on LSL?
|
[8:57] | Babbage Linden: | thanks nock
|
[8:57] | Nock Forager: | Not so. we did it in 2007 too.
|
[8:57] | Babbage Linden: | i'll let you know if i can make it
|
[8:57] | Yuu Nakamichi: | I see.
|
[8:58] | Nock Forager: | Thanks Babbage. We'll make your sheet reserved. :)
|
[8:58] | Babbage Linden: | ok, any last questions
|
[8:58] | Babbage Linden: | ?
|
[8:59] | Cale Flanagan: | i only have to say thanks for all answers
|
[8:59] | Babbage Linden: | np
|
[8:59] | Babbage Linden: | thanks for coming everyone
|
[8:59] | Babbage Linden: | i'll see you all next week
|
[8:59] | Fake Fitzgerald: | thanks Babbage
|
[8:59] | Yuu Nakamichi: | thanks babbage
|
[8:59] | Nock Forager: | Thanks for meeting. see you in next week.
|
[8:59] | Fake Fitzgerald: | see you next
|
[8:59] | Babbage Linden: | bye!
|
[8:59] | Cale Flanagan: | (and the teddy:))
|
[9:00] | Cale Flanagan: | bye |