Difference between revisions of "Mono/Forum Transcripts"
< Mono
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
== Intro & Overview == | == Intro & Overview == | ||
Madhavi Linden | *{{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 | |||
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 | |||
Periapse Linden: sure. Let me start by telling you who I am | *{{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. | |||
Periapse Linden: I'm the PM for LL's Studio Icehouse, which started this incarnation of the Mono project last summer | *{{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 | |||
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}}: 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 | |||
Periapse Linden: I would like to gauge ppl's familiarity with the Mono project before I go on. | *{{User|joejack Iuga}}: aha | ||
*{{User|Periapse Linden}}: About three years ago Babbage Linden considered how to bring Mono technology into Second Life. | |||
Periapse Linden: I don't want to give background on what it is and all if you are all already familiar. | *{{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 | |||
Periapse Linden: Who needs basic info on what Mono is, and what this project is about? | *{{User|Eshi Otawara}}: ah | ||
*{{User|Gerome Mayne}}: i think i am in picture now | |||
Eshi Otawara does | *{{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 | |||
Gerome Mayne: me | *{{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 | |||
Periapse Linden: Mono is an open source virtual machine, part of the .net framework | *{{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. | |||
Periapse Linden: as such it is known for its speed and stability | *{{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. | |||
joejack Iuga: aha | *{{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 | |||
Periapse Linden: About three years ago Babbage Linden considered how to bring Mono technology into Second Life. | *{{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. | |||
Periapse Linden: It has the promise of making scripts run faster, and the hope of using other languages to script SL | *{{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 | |||
Gerome Mayne: ty | *{{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 | |||
Eshi Otawara: ah | *{{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 | |||
Gerome Mayne: i think i am in picture now | *{{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. | |||
IntLibber Brautigan: Isnt' there already some functionality with this? The PN's Shooped Life client can script with Ruby already | *{{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. | |||
Eshi Otawara realizes there will be more geeky stuff to SL she will have NO CLUE about... :D | *{{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. | |||
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 == | == Q&A == | ||
Periapse Linden: So, questions? | *{{User|Periapse Linden}}: So, questions? | ||
IntLibber Brautigan: how does the system know what language a script is using? | *{{User|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 | *{{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 | ||
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|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 | *{{User|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 | *{{User|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. | *{{User|Periapse Linden}}: First, many scripts are not designed to be restarted, which a recompile would trigger. | ||
Periapse Linden: So it would break things... | *{{User|Periapse Linden}}: So it would break things... | ||
Echo Seigo: "buy my scripts with an upgrade to mono for only 100L$" :) | *{{User|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 | *{{User|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 | *{{User|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 | *{{User|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 | *{{User|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 | *{{User|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 | *{{User|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 | *{{User|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? | *{{User|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 | *{{User|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. | *{{User|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 | *{{User|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 | *{{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 | ||
Periapse Linden: for Mono bytecode, heap, etc. to 64k | *{{User|Periapse Linden}}: for Mono bytecode, heap, etc. to 64k | ||
Periapse Linden: the great thing about this is that Mono dynamically allocates memory | *{{User|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. | *{{User|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 | *{{User|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. | *{{User|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 | *{{User|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. | *{{User|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. | *{{User|Periapse Linden}}: Exactly. | ||
Periapse Linden: The economic reasons against automatic recompiling really gave us pause. | *{{User|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 | *{{User|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. | *{{User|Periapse Linden}}: In some cases there will be no reason to move to Mono at all. | ||
Kim Anubis: thank you :) | *{{User|Kim Anubis}}: thank you :) | ||
IntLibber Brautigan: how does this impact implementation of new functions, will new functions be implemented in both lsl and mono? | *{{User|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. | *{{User|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 | *{{User|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 | *{{User|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. | *{{User|Periapse Linden}}: But we aren't really considering major changes to LSL. | ||
Periapse Linden: Mono opens the door for much richer languages in SL | *{{User|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? | *{{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? | ||
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}}: 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. | *{{User|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? | *{{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? | ||
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}}: 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 | *{{User|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 | *{{User|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. | *{{User|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 | *{{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 | ||
Periapse Linden: But only now are we getting the chance to see how mono behaves with real world scripts | *{{User|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? | *{{User|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? | *{{User|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 | *{{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 | ||
Periapse Linden: Physics crashes are a different thing. Mono won't affect that | *{{User|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 | *{{User|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 | *{{User|IntLibber Brautigan}}: thanks you just made my day | ||
Periapse Linden: But we are looking at other griefer scripts that run faster | *{{User|Periapse Linden}}: But we are looking at other griefer scripts that run faster | ||
Periapse Linden: particularly those that spam | *{{User|Periapse Linden}}: particularly those that spam | ||
IntLibber Brautigan: how about getting the ability to mute objects named Linden? | *{{User|IntLibber Brautigan}}: how about getting the ability to mute objects named Linden? | ||
IntLibber Brautigan: that would help immensely | *{{User|IntLibber Brautigan}}: that would help immensely | ||
Periapse Linden: Well, i'm surprised that is still a problem -- I thought someone fixed that already? | *{{User|Periapse Linden}}: Well, i'm surprised that is still a problem -- I thought someone fixed that already? | ||
IntLibber Brautigan: nope | *{{User|IntLibber Brautigan}}: nope | ||
IntLibber Brautigan: Nigger Linden is still unmutable | *{{User|IntLibber Brautigan}}: Nigger Linden is still unmutable | ||
IntLibber Brautigan: same with Alsococks Linden | *{{User|IntLibber Brautigan}}: same with Alsococks Linden | ||
IntLibber Brautigan: and all their friends | *{{User|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. | *{{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. | ||
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|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. | *{{User|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. | *{{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. | ||
Periapse Linden: PM - go to the page I linked earlier. You will find a link to a JIRA meta issue | *{{User|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 | *{{User|Periapse Linden}}: I think it's SVC-1276, but not positive | ||
Periapse Linden: It holds all the issues discovered so far with Mono. | *{{User|Periapse Linden}}: It holds all the issues discovered so far with Mono. | ||
PM Sands: thanks | *{{User|PM Sands}}: thanks | ||
Periapse Linden: We've already fixed over a dozen, and rolled out an update | *{{User|Periapse Linden}}: We've already fixed over a dozen, and rolled out an update | ||
Gerome Mayne: can i ask a question? | *{{User|Gerome Mayne}}: can i ask a question? | ||
Periapse Linden: Gerome, go ahead | *{{User|Periapse Linden}}: Gerome, go ahead | ||
Gerome Mayne: what i got is that u develop a system for faster and better scripting usage | *{{User|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 | *{{User|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. | *{{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. | ||
Gerome Mayne: will there be a date within years u swith that to allow faster performance wich germans realy ask for? | *{{User|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 | *{{User|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 | *{{User|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 | *{{User|Gerome Mayne}}: the tool u build | ||
Periapse Linden: I cannot comment about that -- I don't know enough about what's going on. | *{{User|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 | *{{User|Gerome Mayne}}: seems to spend much more performance | ||
Gerome Mayne: wich we need | *{{User|Gerome Mayne}}: wich we need | ||
Periapse Linden: If you are just asking about Mono, and improved script execution | *{{User|Periapse Linden}}: If you are just asking about Mono, and improved script execution | ||
Gerome Mayne: yes | *{{User|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 | *{{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 | ||
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|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 | *{{User|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 | *{{User|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. | *{{User|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 | *{{User|Gerome Mayne}}: ur loosing loads of german peoples because of not changing performance | ||
Q Linden: Gerome...do you mean script performance specifically? | *{{User|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. | *{{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. | ||
Gerome Mayne: in half way yes ... scripts are making secondlife active | *{{User|Gerome Mayne}}: in half way yes ... scripts are making secondlife active | ||
Gerome Mayne: and this is what we want | *{{User|Gerome Mayne}}: and this is what we want | ||
Gerome Mayne: an actine and interactive plattform | *{{User|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. :-) | *{{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. :-) | ||
Gerome Mayne: no | *{{User|Gerome Mayne}}: no | ||
Gerome Mayne: thi sis not the case ... we creators could offer more to make the peoples love sl | *{{User|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 | *{{User|IntLibber Brautigan}}: thats what he's saying Gerome | ||
Gerome Mayne: ok ;) | *{{User|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? | *{{User|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 | *{{User|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 | *{{User|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 | *{{User|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. | *{{User|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 | *{{User|Gerome Mayne}}: so a very difficult switch anyway | ||
Gerome Mayne: ;) | *{{User|Gerome Mayne}}: ;) | ||
Echo Seigo: you mentioned that mono opens up other richer languages to be uses in SL.. what languages have been tossed around? | *{{User|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# | *{{User|Periapse Linden}}: Well, the current frontrunner is C# | ||
Echo Seigo: i'd imagine C# | *{{User|Echo Seigo}}: i'd imagine C# | ||
Periapse Linden: We may try a proof-of-concept with that. | *{{User|Periapse Linden}}: We may try a proof-of-concept with that. | ||
Q Linden votes for Iron Python ... but that's my personal favorite | *{{User|Q Linden}} votes for Iron Python ... but that's my personal favorite | ||
Echo Seigo: Perl! lol | *{{User|Echo Seigo}}: Perl! lol | ||
Echo Seigo: I think C# would be great but really i'll take and "real language" | *{{User|Echo Seigo}}: I think C# would be great but really i'll take and "real language" | ||
Echo Seigo: oh to have an array! | *{{User|Echo Seigo}}: oh to have an array! | ||
== Closing Comments == | == 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. | *{{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. | ||
Periapse Linden: If you want to participate in the discussion, please come to one of Babbage's office hours | *{{User|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 | *{{User|Periapse Linden}}: Wednesday at 8am SLT | ||
Echo Seigo: ok, great :) | *{{User|Echo Seigo}}: ok, great :) | ||
*{{User|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 | *{{User|Periapse Linden}}: you'll find the info on the Mono wiki page I linked | ||
IntLibber Brautigan: thanks | *{{User|IntLibber Brautigan}}: thanks | ||
PM Sands: Thank you Madhavi, Periapse, and Q. | *{{User|PM Sands}}: Thank you Madhavi, Periapse, and Q. | ||
joejack Iuga: thnx and bye | *{{User|joejack Iuga}}: thnx and bye | ||
*{{User|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 | *{{User|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! | *{{User|Kim Anubis}}: Thank you for your time and for keeping us in the loop! | ||
Q Linden: see ya | *{{User|Q Linden}}: see ya | ||
*{{User|Madhavi Linden}}: a transcript of this forum will be up on the wiki soon | |||
Periapse Linden: thanks for coming everyone. | *{{User|Periapse Linden}}: thanks for coming everyone. | ||
Gerome Mayne: ty for the informations | *{{User|Gerome Mayne}}: ty for the informations | ||
Kim Anubis: Have a good day! | *{{User|Kim Anubis}}: Have a good day! | ||
Marissa Bergbahn: bye | *{{User|Marissa Bergbahn}}: bye | ||
Periapse Linden: bye | *{{User|Periapse Linden}}: bye | ||
Eshi Otawara: ta ta! | *{{User|Eshi Otawara}}: ta ta! |
Revision as of 18:22, 12 February 2008
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!