Mono/Forum Transcripts

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

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

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