|
|
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!
| |