User:Babbage Linden/Office Hours/2008 09 10

From Second Life Wiki
Jump to: navigation, search

Transcript of Babbage Linden's office hours:

[8:03] Babbage Linden: hi everyone

[8:03] Fake Fitzgerald: hi

[8:03] Psi Merlin: Hello

[8:03] Tomoneko Mayo: hi

[8:03] Babbage Linden: yay

[8:03] Babbage Linden: fake is sitting on the phoenix cog :-)

[8:03] Babbage Linden: feel free to stay there and get munged :-)

[8:04] Nock Forager: lol

[8:04] Babbage Linden: hmm, some of the cogs have slowed down

[8:04] Babbage Linden: weird

[8:05] Hidenori Glushenko: lol

[8:05] Fake Fitzgerald: nice suicide

[8:05] Nock Forager: yay, everyone fall at there :)

[8:05] Babbage Linden: that's better :-)

[8:06] Psi Merlin: Motion lag doesn't help :)

[8:07] Nock Forager: I heard 1.24.5 depoying in soon.

[8:07] Babbage Linden: let's wait a couple of minutes then i'll give an overview of where we are

[8:09] Babbage Linden: right, ok

[8:09] Babbage Linden: looks like we're not getting anyone else

[8:09] Babbage Linden: we're currently finishing off some fixes for 1.24.5

[8:10] Babbage Linden: which will have it's last QA pass later today

[8:10] Babbage Linden: and then we'll start a pilot deploy late this evening pacific time

[8:10] Babbage Linden: as with 1.24.4 we've prioritised crash fixes

[8:10] Babbage Linden: and fixes for issues that affect LSL

[8:11] Babbage Linden: we're still working on SVC-2973: MONO - timer() event triggers before on_rez()

[8:11] Babbage Linden: which is proving to be a tricky one

[8:11] Babbage Linden: but have fixes for

[8:12] Babbage Linden: SVC-2925: Instant Messages of certain lengths

[8:12] Babbage Linden: SVC-1571: Rezzing a coalesced objects with 1024 scripte

[8:12] Babbage Linden: SVC-2751: Mono Beta - LSL attach() event survives reset

[8:12] Babbage Linden: plus 2 other internal crash bugs

[8:12] Babbage Linden: and a security issue that could have allowed DOS

[8:13] Babbage Linden: we've made significant progress on SVC-2908: C# error messages with Mono Compiled scripts

[8:13] Babbage Linden: which is actually a meta issue

[8:14] Babbage Linden: we've significantly hardened the code

[8:15] Babbage Linden: so we'll see fewer crashes

[8:15] Babbage Linden: and better reporting

[8:15] Babbage Linden: also, objects should only report initial errors

[8:15] Babbage Linden: and then act dumb

[8:15] Babbage Linden: like LSL scripts with runtime faults

[8:15] Babbage Linden: but, there may still be more work to be done there

[8:15] Creem Pye: any idea what types of operations were triggering the C# errors seen in SVC-2908? was the culprit a certain class of functions, or were the errors random?

[8:16] Babbage Linden: from what we've seen the errors revolve around using llDie to kill scripts

[8:17] Creem Pye: ok, but no reports of llSetScriptState() to disable a script causing problems?

[8:17] Babbage Linden: that would also potentially cause problems

[8:17] Babbage Linden: what we're seeing are problems with migrating stopped scripts to a new application domain

[8:18] Babbage Linden: so, if you stop scripts

[8:18] Babbage Linden: then rez and kill lots of other mono scripts to cause the application domain to unload

[8:18] Babbage Linden: the migration of stopped scripts could cause problems

[8:18] Creem Pye: ah I see

[8:18] Babbage Linden: our plan is to fix migration of stopped scripts

[8:18] Babbage Linden: and then look at why application domain unload is happening too often

[8:19] Babbage Linden: which will cause time dilation spikes

[8:19] Babbage Linden: but not crashes

[8:19] Babbage Linden: this is why the reports were often from busy regions

[8:19] Babbage Linden: or where lots of region crossing with mono scripts was happening

[8:19] Creem Pye: yeah, people have told me about these issues when sim load gets high

[8:19] Babbage Linden: the problems are triggered by lots of cycling of mono scripts

[8:20] Babbage Linden: rezzing and killing scripts cause the problems

[8:20] Babbage Linden: so, we're making progress on it now

[8:20] Creem Pye nods

[8:20] Babbage Linden: it's lower priority than SVC-2973 as it only affects mono scripts

[8:21] Babbage Linden: so, we're concentrating on SVC-2973

[8:21] Babbage Linden: then will look further at DEV-19712

[8:21] Babbage Linden: sorry, SVC-2908

[8:22] Babbage Linden: so, that's where we are now

[8:22] Babbage Linden: 1.24.5 should start being deployed later today

[8:22] Babbage Linden: and will hopefully fix everything that isn't mono

[8:22] Creem Pye: uh and I guess SVC-2908 would affect sim crossing of mono scripts as well

[8:22] Babbage Linden: yes

[8:22] Babbage Linden: a sim crossing is a rez in one region

[8:23] Babbage Linden: and a collection in the other

[8:23] Babbage Linden: any questions or comments?

[8:24] Creem Pye: nope, I'm set =)

[8:24] Babbage Linden: 1.24.5 is deployed on aditi now if you'd like to test it there

[8:25] Babbage Linden: but we hope to include a couple more fixes in it before we deploy it to agni

[8:26] Babbage Linden: are there any other issues that we should be looking at?

[8:26] Fake Fitzgerald: SVC-2365 will not be fixed in 1.24.5?

[8:26] Babbage Linden: i see a few more new issues in http://jira.secondlife.com/browse/SVC-1276

[8:26] Babbage Linden: but they seem to all be affecting Mono scripts

[8:26] Creem Pye: http://wiki.secondlife.com/wiki/Release_Notes/Second_Life_Beta_Server/1.24 looks like only 2 Jira issues for the time being, Fake

[8:27] Babbage Linden: which we'll get to once the crash bugs and LSL bugs are done

[8:27] Fake Fitzgerald: thanks Creem

[8:27] Creem Pye: oh Babbage, I have a general Mono question about something you said a week or two ago

[8:28] Babbage Linden: sure

[8:28] Creem Pye: you recommended copying identical scripts after compiling them, instead of placing them in an object before batch-recompiling

[8:28] Babbage Linden: yes

[8:28] Creem Pye: there's a performance increase,

[8:28] Creem Pye: but is that only in terms of having a lighter footprint, or is there other optimization?

[8:28] Babbage Linden: it's just a smaller footprint

[8:28] Creem Pye: because I'm wondering how much it might help in an object with 2 identical scripts

[8:28] Creem Pye: ok

[8:29] Creem Pye: so maybe saving 64KB

[8:29] Babbage Linden: the copied scripts share bytecode memory

[8:29] Babbage Linden: (at the moment the savings are not given back to the scripts, but it saves the simulator memory)

[8:30] Creem Pye: I guess it would'be worth having identical scripts load different configuration data from the prim description, then =)

[8:30] Babbage Linden: or a notecard, yes

[8:31] Babbage Linden: any more questions?

[8:32] Ricken Flow: Hello Everyone

[8:32] Creem Pye: howdy

[8:32] Object: Hello, Avatar!

[8:32] Babbage Linden: hi ricken

[8:32] Nock Forager: Hi Ricken

[8:32] Fake Fitzgerald: hi

[8:33] Nock Forager: Is there any way to find out which bytecode being used for each script?

[8:33] Babbage Linden: nock, only by rezzing the object and examining it

[8:33] Babbage Linden: we don't store whether a script is mono in the database

[8:34] Babbage Linden: so you can't tell just by looking at it in your inventory, unfortunately

[8:35] Nock Forager: So if same script compiled one by one, no one can tell they are sharing bytecode or not.

[8:36] Nock Forager: (Sorry my english is bit broken, not my 1st language ;( )

[8:36] Babbage Linden: so, in the case of bytecode s

[8:36] Babbage Linden: sorry

[8:36] Babbage Linden: the best way to do it is to contact someone who looks after the canonical copy

[8:37] Babbage Linden: so, someone gives or makes available the canonical xytext or whatever

[8:37] Babbage Linden: and changes the name or description as appropriate if it's updated

[8:37] Babbage Linden: right clicking and copying the asset id would be a great way to do it, but that's no longer supported

[8:38] Babbage Linden: in general the description of the script is unique enough#

[8:38] Babbage Linden: to determine sharing

[8:38] Nock Forager: I see.

[8:39] Nock Forager:

[8:40] Nock Forager: ah it's just my curiousity, but some voodo magics in scripting is work on Mono too?

[8:41] Nock Forager: Such as better way to writing script, optimize code.

[8:41] Babbage Linden: i hope not

[8:41] Babbage Linden: :-)

[8:41] Nock Forager: ;)

[8:41] Babbage Linden: with luck mono will reduce the need for voodoo

[8:42] Babbage Linden: supporting the current voodoo people do with lsl has been challenging :-)

[8:42] Creem Pye: does logic evaluate from left-> right in mono now?

[8:42] Babbage Linden: no, it can't

[8:42] Babbage Linden: as that would break scripts

[8:42] Ricken Flow: If someone wants to learn scripting/programming where is a good place to start. Since Mono looks like the way to go I want to start learning LSL /Mono?

[8:42] Creem Pye: er, so is it right->left?

[8:42] Babbage Linden: yes

[8:42] Babbage Linden: as with the original scripting engine

[8:43] Creem Pye: but mono can terminate early, I guess

[8:43] Babbage Linden: relying on the order of evaluation is bad in general

[8:43] Babbage Linden: but people were doing that with lsl

[8:43] Babbage Linden: so we've had to support it

[8:43] Creem Pye: if(a==b || c==d) if the first one evaluates to TRUE, I guess it can skip the 2nd

[8:43] Babbage Linden: again, no

[8:44] Babbage Linden: lsl would evaluate both terms

[8:44] Babbage Linden: so that's what we need to do to avoid breaking scripts

[8:44] Creem Pye: oh damn

[8:44] Babbage Linden: we have tried to copy the behaviour of lsl on the original scripting engine as closely as possible

[8:45] Babbage Linden: hopefully we will get to languages that operate more rationally in the future

[8:45] Babbage Linden: but with this release we want to make it as easy as possible to convert a script to run on mono

[8:45] Babbage Linden: without changing its behaviour

[8:46] Fay Tal: if mono is patched, do you need to recompile?

[8:46] Creem Pye: well, I hope we can get a more optimized profile in the future =)

[8:47] Babbage Linden: it depends where the fix is

[8:47] Babbage Linden: if the problem requires a compiler fix

[8:47] Babbage Linden: recompiling the script will be needed

[8:47] Babbage Linden: if the problem is a simulator fix, no changes are needed

[8:47] Babbage Linden: once the simulator restarts the problem will go away

[8:48] Babbage Linden: we haven't needed to make any compiler changes since the mono deploy

[8:48] Babbage Linden: if we do, we'll let people know

[8:50] Babbage Linden: anything else?

[8:51] Babbage Linden: any other questions?

[8:51] Babbage Linden: if not, i'll get back to fixing bugs

[8:51] Fay Tal: may i have your bear :)

[8:51] Nock Forager: :)

[8:52] Babbage Linden: sure

[8:52] Babbage Linden: i'll leave it here to autoreturn in 15 minutes

[8:52] Babbage Linden: ok, i'm going to head off

[8:52] Babbage Linden: thanks for coming everyone

[8:52] Creem Pye: thanks for your time

[8:53] Nock Forager: Thanks for the meeting.

[8:53] Babbage Linden: and thanks for your help with bug reports

[8:53] Ricken Flow: If I want to learn scripting where would be the best place to start.. I want to learn in mono at the same time if thats possible?

[8:53] Babbage Linden: if you see anything amiss, please put it in jira

[8:53] Babbage Linden: ricken, if you learn lsl you will be able to use mono

[8:53] Babbage Linden: the language doesn't change

[8:53] Babbage Linden: your scripts just go faster

[8:53] Psi Merlin: Thanks Babbage.

[8:53] Fake Fitzgerald: thanks Babbage, see you next week

[8:53] Creem Pye: I"d recommend getting freebie scripted objects, and tweaking the scripts to suit your taste

[8:53] Babbage Linden: see you all next time

[8:54] Creem Pye: and rely on the wiki for documentation

[8:54] Creem Pye: see you

[8:54] Ricken Flow: thanks Crree,

[8:54] Tomoneko Mayo: thanks Babbage

[8:54] Fay Tal: tc babble :)

[8:54] Ricken Flow: Creem

[8:54] Creem Pye: sure thing

[8:55] No room to sit here, try another spot.

[8:55] Fake Fitzgerald: bye all

[8:56] Nock Forager: cya