Mono/Forum Transcripts
< Mono
Jump to navigation
Jump to search
Revision as of 18:22, 12 February 2008 by Strife Onizuka (talk | contribs)
Intro & Overview
- Madhavi Linden: 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
- Madhavi Linden: 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 :)
- Madhavi Linden: 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
- Madhavi Linden: 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
- Madhavi Linden: 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!