Difference between revisions of "Mono/Forum Transcripts"

From Second Life Wiki
Jump to navigation Jump to search
(Replacing page with '== Intro & Overview == == Closing Comments ==')
Line 1: Line 1:
== Intro & Overview ==
== Intro & Overview ==


*{{User|Madhavi Linden}}: first, thank you all for your patience and for joining us today
*{{User|Periapse Linden}}: hopefully soon I'll be joined by some other members of the Mono team
*{{User|Madhavi Linden}}: shall we start?
*{{User|Periapse Linden}}: sure. Let me start by telling you who I am
*{{User|Periapse Linden}}: I'm the PM for LL's Studio Icehouse, which started this incarnation of the Mono project last summer
*{{User|Periapse Linden}}: The project is now in the hands of Babbage's Studio Blighty, and I'm sticking with it through the beta
*{{User|Periapse Linden}}: I would like to gauge ppl's familiarity with the Mono project before I go on.
*{{User|Periapse Linden}}: I don't want to give background on what it is and all if you are all already familiar.
*{{User|Periapse Linden}}: Who needs basic info on what Mono is, and what this project is about?
*{{User|Eshi Otawara}} does
*{{User|Gerome Mayne}}: me
*{{User|Periapse Linden}}: Mono is an open source virtual machine, part of the .net framework
*{{User|Periapse Linden}}: as such it is known for its speed and stability
*{{User|joejack Iuga}}: aha
*{{User|Periapse Linden}}: About three years ago Babbage Linden considered how to bring Mono technology into Second Life.
*{{User|Periapse Linden}}: It has the promise of making scripts run faster, and the hope of using other languages to script SL
*{{User|Gerome Mayne}}: ty
*{{User|Eshi Otawara}}: ah
*{{User|Gerome Mayne}}: i think i am in picture now
*{{User|IntLibber Brautigan}}: Isnt' there already some functionality with this? The PN's Shooped Life client can script with Ruby already
*{{User|Eshi Otawara}} realizes there will be more geeky stuff to SL she will have NO CLUE about... :D
*{{User|Periapse Linden}}: Because of several difficulties, and priorities, it wasn't until this summer that Babbage was able to really focus on this project
*{{User|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
*{{User|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
*{{User|Periapse Linden}}: Since the focus is on compatibility, we aren't changing LSL in any way for this project.
*{{User|Periapse Linden}}: Once the LSL -> Mono bytecode compiler was in place, around September, we went into QA.
*{{User|Periapse Linden}}: You can imagine how long a process this was, since there is just so much to test.
*{{User|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
*{{User|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
*{{User|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.
*{{User|Periapse Linden}}: Which we've been finding aplenty -- over three dozen in the past two weeks of our beta.
*{{User|Periapse Linden}}: Before I open this up for questions let me just give you some resources
*{{User|Periapse Linden}}: https://wiki.secondlife.com/wiki/Mono
*{{User|Periapse Linden}}: That's a good starting point
*{{User|Periapse Linden}}: It has links to our beta FAQ, and tells you how you can download the beta client
*{{User|Periapse Linden}}: which is the same one for havok4, since we are sharing aditi (the beta grid) with them.
*{{User|Periapse Linden}}: Right now Mono is running on one host, four regions, on the beta grid
*{{User|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.
*{{User|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.
*{{User|Periapse Linden}}: One last thing -- since this question always comes up:
*{{User|Periapse Linden}}: We do not expect to ever get rid of the LSL2 virtual machine.
*{{User|Periapse Linden}}: Scripts running under it never need to be recompiled to Mono -- that will be an option.
*{{User|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 ==
*{{User|Periapse Linden}}: So, questions?
*{{User|IntLibber Brautigan}}: how does the system know what language a script is using?
*{{User|Periapse Linden}}: Intlibber -- we can tell when we load the bytecode if it is Mono or LSL2, and give it to the appropriate VM
*{{User|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?
*{{User|Periapse Linden}}: oh, right. We definitely do not plan to auto recompile
*{{User|Periapse Linden}}: there are several reasons for why we want to make it up to the scripter whether to recompile or not
*{{User|Periapse Linden}}: First, many scripts are not designed to be restarted, which a recompile would trigger.
*{{User|Periapse Linden}}: So it would break things...
*{{User|Echo Seigo}}: "buy my scripts with an upgrade to mono for only 100L$" :)
*{{User|Periapse Linden}}: Second, we believe that scripters may want to recoup the effort of porting their scripts to mono
*{{User|Periapse Linden}}: i don't mean the effort of clicking a single checkbox to generate the mono code
*{{User|Echo Seigo}}: testing can be a large effort, sure
*{{User|Periapse Linden}}: but the effort of testing the script under mono to make sure it is 100% compatible
*{{User|Periapse Linden}}: you can take your LSL scripts to a Mono beta region, and rez two copies of them
*{{User|Periapse Linden}}: one you can recompile to mono simply by checking the new box on the script dialog window
*{{User|Periapse Linden}}: then you can compare the two versions side by side
*{{User|Kim Anubis}}: I understand scripts will have more memory now. Are there plans to continue to increase script memory?
*{{User|Periapse Linden}}: oh, yes. We found that scripts recompiled to Mono often have a larger memory footprint
*{{User|Periapse Linden}}: because of the overhead for Mono.
*{{User|Periapse Linden}}: IT can be minor, but in some pathological cases it can be 3.4X the size of the script
*{{User|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
*{{User|Periapse Linden}}: for Mono bytecode, heap, etc. to 64k
*{{User|Periapse Linden}}: the great thing about this is that Mono dynamically allocates memory
*{{User|Periapse Linden}}: unlike LSL2, which occupies 16k even for a simple hello, world.
*{{User|Periapse Linden}}: so even though Mono has more overhead, the dynamic allocation ensures that we never allocate more than we need
*{{User|Periapse Linden}}: Nor does this bloat out the asset system.
*{{User|Periapse Linden}}: Assets have a minimum size of 64k, so all mono scripts still fit in one minimum asset block
*{{User|IntLibber Brautigan}}: lot of us have invested a lot of money into script IP we own, obsoleting that is a major economic impact.
*{{User|Periapse Linden}}: Exactly.
*{{User|Periapse Linden}}: The economic reasons against automatic recompiling really gave us pause.
*{{User|Periapse Linden}}: So we leave it up to you to recompile, test, and then sell Mono versions of your scripts
*{{User|Periapse Linden}}: In some cases there will be no reason to move to Mono at all.
*{{User|Kim Anubis}}: thank you :)
*{{User|IntLibber Brautigan}}: how does this impact implementation of new functions, will new functions be implemented in both lsl and mono?
*{{User|Periapse Linden}}: In others, scripts that do a lot of maths processing especially, you'll get huge performance wins.
*{{User|Periapse Linden}}: Yes, any changes to LSL will have to be made for both Mono and LSL2 vms
*{{User|IntLibber Brautigan}}: ah too bad random number generation doesn't pay like it used to
*{{User|Periapse Linden}}: But we aren't really considering major changes to LSL.
*{{User|Periapse Linden}}: Mono opens the door for much richer languages in SL
*{{User|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?
*{{User|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.
*{{User|Periapse Linden}}: I simply do not know the plans of the other studios.
*{{User|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?
*{{User|Periapse Linden}}: Eshi -- that's the hope. But right now you really should test Mono yourself to see how it performs on your scripts
*{{User|Periapse Linden}}: When we've tested Mono, it's been with industry benchmarks
*{{User|Periapse Linden}}: These tend to be math-intensive scripts, and mono performed amazingly
*{{User|Periapse Linden}}: often over a hundred times faster than the same script in LSL.
*{{User|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
*{{User|Periapse Linden}}: But only now are we getting the chance to see how mono behaves with real world scripts
*{{User|IntLibber Brautigan}}: so griefers can crash a sim 100 times faster now?
*{{User|IntLibber Brautigan}}: wont that wipe out the stability that havok4 has been promising?
*{{User|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
*{{User|Periapse Linden}}: Physics crashes are a different thing. Mono won't affect that
*{{User|IntLibber Brautigan}}: so I can expect to get buried in 100 times as much IM spam from griefer objects
*{{User|IntLibber Brautigan}}: thanks you just made my day
*{{User|Periapse Linden}}: But we are looking at other griefer scripts that run faster
*{{User|Periapse Linden}}: particularly those that spam
*{{User|IntLibber Brautigan}}: how about getting the ability to mute objects named Linden?
*{{User|IntLibber Brautigan}}: that would help immensely
*{{User|Periapse Linden}}: Well, i'm surprised that is still a problem -- I thought someone fixed that already?
*{{User|IntLibber Brautigan}}: nope
*{{User|IntLibber Brautigan}}: Nigger Linden is still unmutable
*{{User|IntLibber Brautigan}}: same with Alsococks Linden
*{{User|IntLibber Brautigan}}: and all their friends
*{{User|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.
*{{User|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.
*{{User|Periapse Linden}}: We are looking at ways within the script environment.
*{{User|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.
*{{User|Periapse Linden}}: PM - go to the page I linked earlier. You will find a link to a JIRA meta issue
*{{User|Periapse Linden}}: I think it's SVC-1276, but not positive
*{{User|Periapse Linden}}: It holds all the issues discovered so far with Mono.
*{{User|PM Sands}}: thanks
*{{User|Periapse Linden}}: We've already fixed over a dozen, and rolled out an update
*{{User|Gerome Mayne}}: can i ask a question?
*{{User|Periapse Linden}}: Gerome, go ahead
*{{User|Gerome Mayne}}: what i got is that u develop a system for faster and better scripting usage
*{{User|Gerome Mayne}}: wich u will not estimate to be used in all secondlife soon
*{{User|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.
*{{User|Gerome Mayne}}: will there be a date within years u swith that to allow faster performance wich germans realy ask for?
*{{User|Gerome Mayne}}: its not a technical question itself ... its more to get an indea wich bigger performance changes will come for us abroad
*{{User|Periapse Linden}}: Gerome, I'm not precisely sure what you are asking. If you are asking about overall SL performance
*{{User|Gerome Mayne}}: the tool u build
*{{User|Periapse Linden}}: I cannot comment about that -- I don't know enough about what's going on.
*{{User|Gerome Mayne}}: seems to spend much more performance
*{{User|Gerome Mayne}}: wich we need
*{{User|Periapse Linden}}: If you are just asking about Mono, and improved script execution
*{{User|Gerome Mayne}}: yes
*{{User|Periapse Linden}}: we do plan on getting Mono out on the Main Grid this year. But how we do that has not been planned
*{{User|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.
*{{User|Periapse Linden}}: For example, we could do it like Havok4, and allow island owners to upgraed to Mono
*{{User|Gerome Mayne}}: ok ... this is an answer ... i do not need to know how ... but if
*{{User|Periapse Linden}}: or we could just roll it out in a server upgrade everywhere when we think it is done.
*{{User|Gerome Mayne}}: ur loosing loads of german peoples because of not changing performance
*{{User|Q Linden}}: Gerome...do you mean script performance specifically?
*{{User|Periapse Linden}}: But as Q says, we don't plan on automatically converting everything to Mono because that should be the IP owners call.
*{{User|Gerome Mayne}}: in half way yes ... scripts are making secondlife active
*{{User|Gerome Mayne}}: and this is what we want
*{{User|Gerome Mayne}}: an actine and interactive plattform
*{{User|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. :-)
*{{User|Gerome Mayne}}: no
*{{User|Gerome Mayne}}: thi sis not the case ... we creators could offer more to make the peoples love sl
*{{User|IntLibber Brautigan}}: thats what he's saying Gerome
*{{User|Gerome Mayne}}: ok ;)
*{{User|Echo Seigo}}: if it was rolled out with mono enabled regions - how would a mono object preform in a non-mono region?
*{{User|Periapse Linden}}: Mono bytecode will not run in a non-mono region
*{{User|Periapse Linden}}: So, to avoid confusion, that argues that we don't want to have a hybrid grid for too long
*{{User|Echo Seigo}}: *nod* at a quick glance thats what it seems to say
*{{User|Periapse Linden}}: otherwise peoples Mono bytecode attachments may stop working when they tp or region cross to a non Mono region.
*{{User|Gerome Mayne}}: so a very difficult switch anyway
*{{User|Gerome Mayne}}: ;)
*{{User|Echo Seigo}}: you mentioned that mono opens up other richer languages to be uses in SL.. what languages have been tossed around?
*{{User|Periapse Linden}}: Well, the current frontrunner is C#
*{{User|Echo Seigo}}: i'd imagine C#
*{{User|Periapse Linden}}: We may try a proof-of-concept with that.
*{{User|Q Linden}} votes for Iron Python ... but that's my personal favorite
*{{User|Echo Seigo}}: Perl! lol
*{{User|Echo Seigo}}: I think C# would be great but really i'll take and "real language"
*{{User|Echo Seigo}}: oh to have an array!


== Closing Comments ==
== Closing Comments ==
*{{User|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.
*{{User|Periapse Linden}}: If you want to participate in the discussion, please come to one of Babbage's office hours
*{{User|Periapse Linden}}: Wednesday at 8am SLT
*{{User|Echo Seigo}}: ok, great :)
*{{User|Madhavi Linden}}: well our time is just about up. Any final questions?
*{{User|Periapse Linden}}: you'll find the info on the Mono wiki page I linked
*{{User|IntLibber Brautigan}}: thanks
*{{User|PM Sands}}: Thank you Madhavi, Periapse, and Q.
*{{User|joejack Iuga}}: thnx and bye
*{{User|Madhavi Linden}}: Thank you everyone for attending and participating today
*{{User|Echo Seigo}}: Yeah thanks for the info, gonna have to get to the beta grid
*{{User|Kim Anubis}}: Thank you for your time and for keeping us in the loop!
*{{User|Q Linden}}: see ya
*{{User|Madhavi Linden}}: a transcript of this forum will be up on the wiki soon
*{{User|Periapse Linden}}: thanks for coming everyone.
*{{User|Gerome Mayne}}: ty for the informations
*{{User|Kim Anubis}}: Have a good day!
*{{User|Marissa Bergbahn}}: bye
*{{User|Periapse Linden}}: bye
*{{User|Eshi Otawara}}: ta ta!

Revision as of 19:26, 12 February 2008

Intro & Overview

Closing Comments