User:Babbage Linden/Office Hours/2008 09 17

From Second Life Wiki
Jump to navigation Jump to search

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:

[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 :)

[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