Mono/Forum Transcripts

From Second Life Wiki
< Mono
Revision as of 19:13, 12 February 2008 by Madhavi Linden (talk | contribs)
Jump to navigation Jump to search

Intro & Overview

Madhavi Linden (you): first, thank you all for your patience and for joining us today

Periapse Linden: hopefully soon I'll be joined by some other members of the Mono team

You: shall we start?

Periapse Linden: sure. Let me start by telling you who I am

Periapse Linden: I'm the PM for LL's Studio Icehouse, which started this incarnation of the Mono project last summer


Periapse Linden: The project is now in the hands of Babbage's Studio Blighty, and I'm sticking with it through the beta

Periapse Linden: I would like to gauge ppl's familiarity with the Mono project before I go on.

Periapse Linden: I don't want to give background on what it is and all if you are all already familiar.

Periapse Linden: Who needs basic info on what Mono is, and what this project is about?

Eshi Otawara does

Gerome Mayne: me

Periapse Linden: Mono is an open source virtual machine, part of the .net framework

Periapse Linden: as such it is known for its speed and stability

joejack Iuga: aha

Periapse Linden: About three years ago Babbage Linden considered how to bring Mono technology into Second Life.

Periapse Linden: It has the promise of making scripts run faster, and the hope of using other languages to script SL

Gerome Mayne: ty

Eshi Otawara: ah

Gerome Mayne: i think i am in picture now

IntLibber Brautigan: Isnt' there already some functionality with this? The PN's Shooped Life client can script with Ruby already

Eshi Otawara realizes there will be more geeky stuff to SL she will have NO CLUE about... :D

Periapse Linden: Because of several difficulties, and priorities, it wasn't until this summer that Babbage was able to really focus on this project

Periapse Linden: For this phase the purpose is to implement Mono as an alternative VM to the LSL2 VM that currently runs all SL scripts

Periapse Linden: So the focus is on getting LSL scripts to compile to Mono bytecode, and then have them run compatibly with the same script run under LSL2

Periapse Linden: Since the focus is on compatibility, we aren't changing LSL in any way for this project.

Periapse Linden: Once the LSL -> Mono bytecode compiler was in place, around September, we went into QA.

Periapse Linden: You can imagine how long a process this was, since there is just so much to test.

Periapse Linden: After about three months of our internal QA hitting Mono with every script they could find, vehicles, communications, math scripts, even griefer scripts, we had come to the point

Periapse Linden: where we knew there must still be plenty of bugs, but they were beyond the ability of even our dedicated and passionate QA team to find

Periapse Linden: So that's how this public beta was born. We unleashed Mono on the beta grid for all of our ace resident scripters to bash at it and find bugs.

Periapse Linden: Which we've been finding aplenty -- over three dozen in the past two weeks of our beta.

Periapse Linden: Before I open this up for questions let me just give you some resources

Periapse Linden: https://wiki.secondlife.com/wiki/Mono

Periapse Linden: That's a good starting point

Periapse Linden: It has links to our beta FAQ, and tells you how you can download the beta client

Periapse Linden: which is the same one for havok4, since we are sharing aditi (the beta grid) with them.

Periapse Linden: Right now Mono is running on one host, four regions, on the beta grid

Periapse Linden: We're going to keep up this beta for at least another month, and maybe add some regions to it, like a water region, damage region, and maybe a teen-enabled one.

Periapse Linden: Hopefully after that we will be confident about the stability and compatibility of Mono, and we'll then consider how to bring it to the mainland.

Periapse Linden: One last thing -- since this question always comes up:

Periapse Linden: We do not expect to ever get rid of the LSL2 virtual machine.

Periapse Linden: Scripts running under it never need to be recompiled to Mono -- that will be an option.

Periapse Linden: At some point we *may* turn off the LSL compiler, so that all new scripts become Mono, but even that has not yet been planned out.


Q&A

Periapse Linden: So, questions?

IntLibber Brautigan: how does the system know what language a script is using? Periapse Linden: Intlibber -- we can tell when we load the bytecode if it is Mono or LSL2, and give it to the appropriate VM

Echo Seigo: with that in mind, is their a plan to recopile everything with mono - or are we left up to doing that ourselves if we want? Periapse Linden: oh, right. We definitely do not plan to auto recompile Periapse Linden: there are several reasons for why we want to make it up to the scripter whether to recompile or not Periapse Linden: First, many scripts are not designed to be restarted, which a recompile would trigger. Periapse Linden: So it would break things... Echo Seigo: "buy my scripts with an upgrade to mono for only 100L$" :) Periapse Linden: Second, we believe that scripters may want to recoup the effort of porting their scripts to mono Periapse Linden: i don't mean the effort of clicking a single checkbox to generate the mono code Echo Seigo: testing can be a large effort, sure Periapse Linden: but the effort of testing the script under mono to make sure it is 100% compatible Periapse Linden: you can take your LSL scripts to a Mono beta region, and rez two copies of them Periapse Linden: one you can recompile to mono simply by checking the new box on the script dialog window Periapse Linden: then you can compare the two versions side by side

Kim Anubis: I understand scripts will have more memory now. Are there plans to continue to increase script memory? Periapse Linden: oh, yes. We found that scripts recompiled to Mono often have a larger memory footprint Periapse Linden: because of the overhead for Mono. Periapse Linden: IT can be minor, but in some pathological cases it can be 3.4X the size of the script Periapse Linden: So in order to allow for all cases, even a worst case 16k script that becomes 50+k under Mono, we upped the memory limit Periapse Linden: for Mono bytecode, heap, etc. to 64k Periapse Linden: the great thing about this is that Mono dynamically allocates memory Periapse Linden: unlike LSL2, which occupies 16k even for a simple hello, world. Periapse Linden: so even though Mono has more overhead, the dynamic allocation ensures that we never allocate more than we need Periapse Linden: Nor does this bloat out the asset system. Periapse Linden: Assets have a minimum size of 64k, so all mono scripts still fit in one minimum asset block

IntLibber Brautigan: lot of us have invested a lot of money into script IP we own, obsoleting that is a major economic impact. Periapse Linden: Exactly. Periapse Linden: The economic reasons against automatic recompiling really gave us pause. Periapse Linden: So we leave it up to you to recompile, test, and then sell Mono versions of your scripts Periapse Linden: In some cases there will be no reason to move to Mono at all. Kim Anubis: thank you :)

IntLibber Brautigan: how does this impact implementation of new functions, will new functions be implemented in both lsl and mono? Periapse Linden: In others, scripts that do a lot of maths processing especially, you'll get huge performance wins. Periapse Linden: Yes, any changes to LSL will have to be made for both Mono and LSL2 vms IntLibber Brautigan: ah too bad random number generation doesn't pay like it used to Periapse Linden: But we aren't really considering major changes to LSL. Periapse Linden: Mono opens the door for much richer languages in SL

IntLibber Brautigan: so does this mean that none of the security related lsl commands requested up to a year ago are never going to be implemented? Periapse Linden: Intlibber -- The Mono team has no plans of implementing new LSL calls, but that doesn't mean no one else on the Lab will. Periapse Linden: I simply do not know the plans of the other studios.

Eshi Otawara: /so that would mean that in the ner future as an artsy person that hires scripters for artsy projects, i could actually let imagination rin wild as far as having an interactive art piece LOADED with listener scripts and all kinds of weird stuff with much less concern of lag? Periapse Linden: Eshi -- that's the hope. But right now you really should test Mono yourself to see how it performs on your scripts Periapse Linden: When we've tested Mono, it's been with industry benchmarks Periapse Linden: These tend to be math-intensive scripts, and mono performed amazingly Periapse Linden: often over a hundred times faster than the same script in LSL. Eshi Otawara: /that's the thingie....I dont go beyond editing a particle script...but it would be nice to have my latest project run more smoothly Periapse Linden: But only now are we getting the chance to see how mono behaves with real world scripts

IntLibber Brautigan: so griefers can crash a sim 100 times faster now? IntLibber Brautigan: wont that wipe out the stability that havok4 has been promising? Periapse Linden: lol -- yes, we did indeed find that initially Mono's speed helped griefer scripts. We're working with the gteam to fix that Periapse Linden: Physics crashes are a different thing. Mono won't affect that IntLibber Brautigan: so I can expect to get buried in 100 times as much IM spam from griefer objects IntLibber Brautigan: thanks you just made my day Periapse Linden: But we are looking at other griefer scripts that run faster Periapse Linden: particularly those that spam

IntLibber Brautigan: how about getting the ability to mute objects named Linden? IntLibber Brautigan: that would help immensely Periapse Linden: Well, i'm surprised that is still a problem -- I thought someone fixed that already? IntLibber Brautigan: nope IntLibber Brautigan: Nigger Linden is still unmutable IntLibber Brautigan: same with Alsococks Linden IntLibber Brautigan: and all their friends Periapse Linden: Ability to mute objects named Linden would be a perfect feature request for our JIRA. It has nothing to do with scrripting, so I'm not going to comment on it further. Q Linden: FWIW, in the studio I work in, I'm working on a redesign of notifications that would help to both throttle problem scripts and make it easier to deal with notifications. But it has nothing to do with Mono, and it's a ways away yet. Periapse Linden: We are looking at ways within the script environment.

PM Sands: 1) So, I will try to test my scripts on beta mono. What is the ETA for final release (should I feel like being lazy about testing) ? 2) Also, can you share any common troubles testers are seeing, and how to avoid them. Periapse Linden: PM - go to the page I linked earlier. You will find a link to a JIRA meta issue Periapse Linden: I think it's SVC-1276, but not positive Periapse Linden: It holds all the issues discovered so far with Mono. PM Sands: thanks Periapse Linden: We've already fixed over a dozen, and rolled out an update

Gerome Mayne: can i ask a question? Periapse Linden: Gerome, go ahead Gerome Mayne: what i got is that u develop a system for faster and better scripting usage Gerome Mayne: wich u will not estimate to be used in all secondlife soon Periapse Linden: oh, PM, as far as final release -- we haven't thought that far. The beta will continue for at least a month. Probably it will expand once Havok4 is done with the beta grid. Gerome Mayne: will there be a date within years u swith that to allow faster performance wich germans realy ask for? Gerome Mayne: its not a technical question itself ... its more to get an indea wich bigger performance changes will come for us abroad Periapse Linden: Gerome, I'm not precisely sure what you are asking. If you are asking about overall SL performance Gerome Mayne: the tool u build Periapse Linden: I cannot comment about that -- I don't know enough about what's going on. Gerome Mayne: seems to spend much more performance Gerome Mayne: wich we need Periapse Linden: If you are just asking about Mono, and improved script execution Gerome Mayne: yes Periapse Linden: we do plan on getting Mono out on the Main Grid this year. But how we do that has not been planned Q Linden: Gerome, mono will make scripts run faster, but they have to be recompiled for mono. We won't *force* people to recompile...but we think they'll want to. Periapse Linden: For example, we could do it like Havok4, and allow island owners to upgraed to Mono Gerome Mayne: ok ... this is an answer ... i do not need to know how ... but if Periapse Linden: or we could just roll it out in a server upgrade everywhere when we think it is done. Gerome Mayne: ur loosing loads of german peoples because of not changing performance Q Linden: Gerome...do you mean script performance specifically? Periapse Linden: But as Q says, we don't plan on automatically converting everything to Mono because that should be the IP owners call. Gerome Mayne: in half way yes ... scripts are making secondlife active Gerome Mayne: and this is what we want Gerome Mayne: an actine and interactive plattform Q Linden: It's my personal belief that if we made scripts 10x as fast, people would do 10x as much with them and the visible performance wouldn't change. :-) Gerome Mayne: no Gerome Mayne: thi sis not the case ... we creators could offer more to make the peoples love sl IntLibber Brautigan: thats what he's saying Gerome Gerome Mayne: ok ;)

Echo Seigo: if it was rolled out with mono enabled regions - how would a mono object preform in a non-mono region? Periapse Linden: Mono bytecode will not run in a non-mono region Periapse Linden: So, to avoid confusion, that argues that we don't want to have a hybrid grid for too long Echo Seigo: *nod* at a quick glance thats what it seems to say Periapse Linden: otherwise peoples Mono bytecode attachments may stop working when they tp or region cross to a non Mono region. Gerome Mayne: so a very difficult switch anyway Gerome Mayne: ;)

Echo Seigo: you mentioned that mono opens up other richer languages to be uses in SL.. what languages have been tossed around? Periapse Linden: Well, the current frontrunner is C# Echo Seigo: i'd imagine C# Periapse Linden: We may try a proof-of-concept with that. Q Linden votes for Iron Python ... but that's my personal favorite Echo Seigo: Perl! lol Echo Seigo: I think C# would be great but really i'll take and "real language" Echo Seigo: oh to have an array!

Closing Comments

Periapse Linden: But I wish to make you all aware that our thinking on "What's next" really needs input from you people -- SL's professional programmers. Periapse Linden: If you want to participate in the discussion, please come to one of Babbage's office hours Periapse Linden: Wednesday at 8am SLT Echo Seigo: ok, great :)

You: well our time is just about up. Any final questions? Periapse Linden: you'll find the info on the Mono wiki page I linked IntLibber Brautigan: thanks PM Sands: Thank you Madhavi, Periapse, and Q. joejack Iuga: thnx and bye You: Thank you everyone for attending and participating today Echo Seigo: Yeah thanks for the info, gonna have to get to the beta grid Kim Anubis: Thank you for your time and for keeping us in the loop! Q Linden: see ya You: a transcript of this forum will be up on the wiki soon Periapse Linden: thanks for coming everyone. Gerome Mayne: ty for the informations Kim Anubis: Have a good day! Marissa Bergbahn: bye Periapse Linden: bye Eshi Otawara: ta ta!