Mono/2008-02-22
< Mono
Jump to navigation
Jump to search
[2008/02/22 15:02] Thomas Shikami: Hello [2008/02/22 15:03] Valradica Vale: hey [2008/02/22 15:03] Periapse Linden: Hi. Thomas. [2008/02/22 15:03] Periapse Linden: So, Val, to answer your question [2008/02/22 15:03] MystiTool Implant 1.0.6: Detached. [2008/02/22 15:03] Periapse Linden: First, you can find a lot of information on the Second Life wiki, the Mono page [2008/02/22 15:03] Thomas Shikami: Ahh, I guess I'm at the right place for the office hour [2008/02/22 15:03] Valradica Vale: yes I read through that [2008/02/22 15:03] MystiTool HUD 1.0.21: Entering chat range: Saijanai Kuhn (9m) [2008/02/22 15:04] Periapse Linden: So if there's something I don't mention there let me know so that I can add it. [2008/02/22 15:04] Saijanai Kuhn: hey all [2008/02/22 15:04] Periapse Linden: Hi, Saijanai! [2008/02/22 15:04] Periapse Linden: This iteration of using Mono technology is really about seeing how well it works for us [2008/02/22 15:04] Saijanai Kuhn: testing [2008/02/22 15:04] Valradica Vale: well, I guess one of the questions is will there be any expansion of the function base over LSL2 [2008/02/22 15:04] Periapse Linden: and how compatible it is or can be made to be with LSL [2008/02/22 15:05] Saijanai Kuhn is still advocating moving to LSL3 [2008/02/22 15:05] Periapse Linden: So, yes, Val, you mentioned that there is a speedup. [2008/02/22 15:05] Periapse Linden: That is true for math intensive scripts [2008/02/22 15:05] Periapse Linden: and is rather breathtaking. [2008/02/22 15:05] Valradica Vale: that will be helpful, along with the 64K code space [2008/02/22 15:05] Periapse Linden: But we're discovering that Mono is actually slower than LSL2 in some cases [2008/02/22 15:06] Valradica Vale: what kind of cases? [2008/02/22 15:06] Saijanai Kuhn: I'm hoping that AI wil take off for mono [2008/02/22 15:06] Saijanai Kuhn: link messages for one [2008/02/22 15:06] Thomas Shikami: I have a script, that is actually same speed between mono and LSL2, which is itself computation intensive [2008/02/22 15:06] Periapse Linden: Right, Sai. Also, Mono has more overhead and Mono scripts typically take up a lot more memory than LSL2 bytecode [2008/02/22 15:07] Valradica Vale: so the 64K limit will not really be 4 times as much code space [2008/02/22 15:07] Periapse Linden: So now we are in a place where once this iteration of Mono goes out we have to make a decision on what to do next. [2008/02/22 15:07] Saijanai Kuhn: Squirrel's massive graphicing thing with 4096 listen scripts brings a sim to its knees right now [2008/02/22 15:08] Thomas Shikami: mono is good if you don't call many llFunctions, where LSL2 is good, if you mainly use llFunctions [2008/02/22 15:08] Periapse Linden: Right Val. The 64k limit was determined originally to ensure that all existing LSL scripts could be compiled in Mono. [2008/02/22 15:08] Periapse Linden: But Mono does give us better memory management. [2008/02/22 15:08] MystiTool HUD 1.0.21: Entering chat range: Rex Cronon (17m) [2008/02/22 15:08] Periapse Linden: The allocation is dynamic, not static like LSL2 [2008/02/22 15:08] Saijanai Kuhn: thinkingthat a Creative Commons library of pre-comipiled scripts could be added to the name space... [2008/02/22 15:09] Thomas Shikami: Yes, I have seen where the same string put into a single list uses references to the string in mono, but copies of the string in LSL2 [2008/02/22 15:09] Saijanai Kuhn: so you could have a function library that doesn't get counted towards that 64K limit [2008/02/22 15:10] Valradica Vale: so the switch to mono is simply a language conversion and not an improvement on the functionality of LSL2 [2008/02/22 15:10] Periapse Linden: So Sai's comment points out what we in Studio Blighty have to decide next: There are a lot of possibilities, which should we chose? [2008/02/22 15:10] Rex Cronon: hello everybody [2008/02/22 15:10] Periapse Linden: We could work on adding functionality to LSL itself [2008/02/22 15:10] Valradica Vale: three cheers for that [2008/02/22 15:10] Periapse Linden: We could work on getting C# scripting for SL [2008/02/22 15:10] Saijanai Kuhn: a negative cheer for that [2008/02/22 15:10] Thomas Shikami: yay, that would be something nice [2008/02/22 15:10] Saijanai Kuhn: a neutral huzza for the C# [2008/02/22 15:10] Periapse Linden: Or perhaps some other language [2008/02/22 15:10] MystiTool HUD 1.0.21: Entering chat range: Siann Beck (16m) [2008/02/22 15:10] Rex Cronon supports new LSL functions [2008/02/22 15:11] Saijanai Kuhn: freeze LSL2 and move to LSL3 with mono [2008/02/22 15:11] Thomas Shikami: there aren't many LSL functions that need to be implemented, are there? [2008/02/22 15:11] Valradica Vale: is lsl3 under development already? [2008/02/22 15:11] Saijanai Kuhn: mostly backwards compatible, but with new data types, function libraries, etc [2008/02/22 15:11] Periapse Linden: We could work on the scheduling code in the simulator, so that physics, LSL2, and Mono all optimize sim cpu [2008/02/22 15:11] Periapse Linden: We could start on some of the things Sai is talking about. [2008/02/22 15:12] Thomas Shikami: Welcome back Siann [2008/02/22 15:12] Saijanai Kuhn: arrays, matrix arithmetic, etc., but not LSL2 compatible [2008/02/22 15:12] Siann Beck: Thanks. [2008/02/22 15:12] Thomas Shikami: arrays, matrix, that could be done with C# [2008/02/22 15:12] Rex Cronon: i can think of a new lsl function. like llmute(key id, boolean yes) [2008/02/22 15:12] Saijanai Kuhn: yeah, and scripter wou,ld nee dto learn an entirely new language [2008/02/22 15:12] Periapse Linden: My goal for these office hours is to get the pulse of the engineering community here to see if there is consensus on what you'd like us to do next. [2008/02/22 15:12] Siann Beck: Oh, there are plenty of New Feature requests in the Jira for LSL. [2008/02/22 15:12] Thomas Shikami: the good thing is, C# is more universally available [2008/02/22 15:12] Periapse Linden: Or not "what you'd like" but what you think will be best for Second Life [2008/02/22 15:12] Saijanai Kuhn: and C# isn't that good a fit for LL anyway. [2008/02/22 15:12] Thomas Shikami: where LSL has it's domain in SL only [2008/02/22 15:13] Periapse Linden: Hi, Siann, Thomas, and Rex [2008/02/22 15:13] Rex Cronon: hi [2008/02/22 15:13] Saijanai Kuhn: thats a HUGE advantage for LSL over C# [2008/02/22 15:13] Siann Beck: Hi Peri. [2008/02/22 15:13] Thomas Shikami: I see no problem of using C# as scripting language in SL [2008/02/22 15:13] Saijanai Kuhn: to get C# to fit with the LSL model, you'd need to do a lot of work. [2008/02/22 15:13] Thomas Shikami: right [2008/02/22 15:13] Valradica Vale: well, as I make my "living" scripting, I find that there are things that I could do for SL that would be magnificent [2008/02/22 15:14] Periapse Linden: Well, Sai, Babbage isn't so sure about that. He already has a proof of concept. [2008/02/22 15:14] Valradica Vale: but are stymied by lack of certain functionality [2008/02/22 15:14] Thomas Shikami: somehow there can't be a real C# implemented, there needs to be some preprocessing work to inject special code into it [2008/02/22 15:14] Rex Cronon: c#, is not a "scripting" language. or is it? [2008/02/22 15:14] Saijanai Kuhn: but to add arrays and other C# features to LSL3 with the CLR VM would probably be far easier [2008/02/22 15:14] Thomas Shikami: I wonder, how this script perf counting is done with mono and how scripts are interrupted and how state is saved [2008/02/22 15:15] Periapse Linden: So, Sai, have you explained your LSL3 idea to Babbage? [2008/02/22 15:15] Saijanai Kuhn: not really, no. Haven't seen Babbage since Zero's office hours in Aug of last year LOL [2008/02/22 15:15] Valradica Vale: what would be really helpful would be to make the scripting language into more of an API - so that we could control functions that we can now do manually in the viewer [2008/02/22 15:15] Saijanai Kuhn: and that was when they thought mono was 2 months away from where we are now [2008/02/22 15:16] Thomas Shikami: that won't work [2008/02/22 15:16] Thomas Shikami: but, what about a scripting language for the viewer? [2008/02/22 15:16] Periapse Linden: Ah. I think we should start a wiki page with all the "what's next" suggestions and get some discussion [2008/02/22 15:16] Siann Beck: That's something that's been mentioned, Thomas. [2008/02/22 15:16] Valradica Vale: that would be good [2008/02/22 15:16] Thomas Shikami: btw, that already exists [2008/02/22 15:16] Periapse Linden: Or maybe not a wiki, but a JIRA, with each possibility being a subtask [2008/02/22 15:16] Saijanai Kuhn: viewer needs a redesign before scripting makes sense [2008/02/22 15:16] Periapse Linden: and people could comment on them [2008/02/22 15:16] Thomas Shikami: a group of griefers are working on a client with scripting support [2008/02/22 15:20] Gesture 711b41e9-c693-d3ec-dd6a-a026a159280c is missing from database. [2008/02/22 15:20] MystiTool HUD 1.0.21: MystiTool Controller 1.0: /1 help - Free memory: 4453 [2008/02/22 15:21] Teleport completed from http://slurl.com/secondlife/Dore/224/32/41 [2008/02/22 15:21] MystiTool HUD 1.0.21: Entering chat range: Siann Beck (18m), Valradica Vale (18m), Saijanai Kuhn (17m), Rex Cronon (17m) [2008/02/22 15:22] Rex Cronon: i was logged out [2008/02/22 15:22] Saijanai Kuhn: I lost local chat and the ability to move [2008/02/22 15:22] Thomas Shikami: I somehow disconnected, too [2008/02/22 15:22] Periapse Linden: Oh, wait, the gridtool says it did indeed go down [2008/02/22 15:22] Siann Beck: Yeah, and returned to my last position. [2008/02/22 15:22] Saijanai Kuhn: level 5 simulators I guess [2008/02/22 15:22] Periapse Linden: So you all probably missed the last few things I said [2008/02/22 15:22] Thomas Shikami: my question I wanted to ask is, if e-mail works on this grid [2008/02/22 15:23] Saijanai Kuhn: anyway, wanted to promote the discussions that the AWG had about the viewer. Scripting it properly requires massive redesign. [2008/02/22 15:23] Thomas Shikami: the last thing I got out was about griefers developing that client [2008/02/22 15:23] Rex Cronon: last thing i heard: [15:16] Thomas Shikami: a group of griefers are working on a client with scripting support [2008/02/22 15:23] Valradica Vale: yup probably missed it [2008/02/22 15:23] Periapse Linden: Right, that was the last thing I heard also [2008/02/22 15:23] Valradica Vale: same here [2008/02/22 15:23] Saijanai Kuhn: one of the GUI goals for LL is to allow WoW client level scripting [2008/02/22 15:24] Saijanai Kuhn: but they need to fully revamp the GUI before that can happen [2008/02/22 15:24] Rex Cronon: u can script the wow client? [2008/02/22 15:24] Thomas Shikami: GUI? [2008/02/22 15:24] Saijanai Kuhn: graphical user interface [2008/02/22 15:24] Thomas Shikami: I see no need on working on the GUI, wrong place to apply scripting [2008/02/22 15:24] Saijanai Kuhn: LOL. its the most important place to apply scripting [2008/02/22 15:25] Siann Beck: Well, it is another kettle of fish, but there are useful things that could be done with it. [2008/02/22 15:25] Periapse Linden: Thomas, what did you want to achieve with client scripting [2008/02/22 15:25] Thomas Shikami: then we don't share the idea about client side scripting [2008/02/22 15:25] Saijanai Kuhn: I think you're not familiar with WOW client scripting is all [2008/02/22 15:25] Valradica Vale: well, the issue is that there are number of things you can do with the client [2008/02/22 15:25] Valradica Vale: that I would like to be able to do in scripts [2008/02/22 15:25] Valradica Vale: for example [2008/02/22 15:25] Thomas Shikami: Yes, I have my own idea of client side scripting [2008/02/22 15:25] Periapse Linden: I'm just curious, it's all orthogonal to anything Blighty would do. [2008/02/22 15:25] Valradica Vale: If I am a land owner [2008/02/22 15:25] Valradica Vale: I would like to make a device that can do what I do on the land [2008/02/22 15:26] Thomas Shikami: it would allow sensing avatars, objects, doing work on them like changing textures, position, rotation, type etc. And chat comms between objects/agent [2008/02/22 15:26] Periapse Linden: Oh, so you mean like a libsl bot? [2008/02/22 15:26] Thomas Shikami: all that works without modification at GUI at all [2008/02/22 15:26] Saijanai Kuhn: Well, the GUI and the capabilities of the Linden Lab client are tied toegether at the most fundamental level. [2008/02/22 15:26] Valradica Vale: for example, be able to automatically delete objects rezzed of if they exceed a certain size [2008/02/22 15:26] Valradica Vale: I can do that as a land owner [2008/02/22 15:27] Thomas Shikami: yes, best example is, if you want to send text out as chat. You're using the chat control bar for that [2008/02/22 15:27] Rex Cronon: or to mute them if they r too talkative [2008/02/22 15:27] Valradica Vale: but If I am not there - I have no proxy [2008/02/22 15:27] Saijanai Kuhn: when you do something to an item in inventory, the library actually ties toegether what happens to that item visually and what happens on the server side [2008/02/22 15:27] Saijanai Kuhn: there's no intermeidate message. [2008/02/22 15:27] Thomas Shikami: ohh inventory! [2008/02/22 15:27] Thomas Shikami: rework that whole thing please [2008/02/22 15:28] Thomas Shikami: the inventory management routines inside the viewer are, what causes the most client freezeups right now [2008/02/22 15:28] Saijanai Kuhn: likewise with IM and everything else. Its all intimately connected to the GUI. There's no way of intercepting a GUI call and doing something directly, either to mod the GUI, or to substitute a script for what the GUI does [2008/02/22 15:28] Thomas Shikami: I don't see a reason to intercept GUI calls [2008/02/22 15:28] Valradica Vale: those are all good examples [2008/02/22 15:28] Periapse Linden: So I think I have a sense now for what you want with a client scripting ability. [2008/02/22 15:29] Thomas Shikami: maybe another different view of what client side scripting should achieve between us [2008/02/22 15:29] Valradica Vale: or you could simply add the functionality to LSL [2008/02/22 15:29] Valradica Vale: or the new Mono [2008/02/22 15:29] Saijanai Kuhn: THe GUI directly talks to the server. It doesn't talk to a function that talks to the server. The function to talk to the server is PART of the GUI [2008/02/22 15:29] Thomas Shikami: that won't work [2008/02/22 15:29] Periapse Linden: But I don't think that is one of the things Blighty could take on now. [2008/02/22 15:29] Saijanai Kuhn: What you want is something that replaces the GUI, but right now that is impossible bec ause the GUI is everything [2008/02/22 15:29] Thomas Shikami: I'm talking about functions that can only be initiated client side [2008/02/22 15:29] Valradica Vale: but - as pointed out, there is a huge (and well thought out) list of improvements alreay in existance [2008/02/22 15:30] Saijanai Kuhn: There are no reall fun ctions that work client-side. [2008/02/22 15:30] Thomas Shikami: I see, you're a client hacker, I assume [2008/02/22 15:30] Periapse Linden: We can talk about what should be the next step for the Mono team. [2008/02/22 15:30] Saijanai Kuhn: I've written 2 pathces (well 1.5( [2008/02/22 15:30] Siann Beck: A refresh? :) [2008/02/22 15:30] Thomas Shikami: I've written one patch and read some others [2008/02/22 15:31] Periapse Linden: Ah, Siann. That's what i was chatting about when the sim crashed [2008/02/22 15:31] Thomas Shikami: and the patch I have written was about storing notecards/scripts in 1.13 [2008/02/22 15:31] Siann Beck: Ah, OK. Please chat then! [2008/02/22 15:31] Periapse Linden: So we were supposed to do a refresh today. We've got about a dozen bug fixes ready to go [2008/02/22 15:31] Saijanai Kuhn: http://www.youtube.com/watch?v=kvEKiGSYm0k I lost the source for this and have to start over [2008/02/22 15:31] Valradica Vale: from your earlier comments, Peri, is Mono fully a go? and its just a matter of when? or is there some chance that something else will happen [2008/02/22 15:31] Periapse Linden: *But* we hit a snag with the most major change [2008/02/22 15:31] Saijanai Kuhn: Sounds good periapse [2008/02/22 15:31] Thomas Shikami: okay, will e-mail work then? [2008/02/22 15:31] Periapse Linden: B [2008/02/22 15:32] Periapse Linden: Babbage is working on the value semantics [2008/02/22 15:32] Siann Beck: What is that, exactly? [2008/02/22 15:32] Periapse Linden: As you may have noticed, Mono behaves differently from LSL2 in the way it passes arguments to operators and functions. [2008/02/22 15:32] Periapse Linden: Essentially it's all pass by reference [2008/02/22 15:32] Periapse Linden: whereas LSL2 is pass by value [2008/02/22 15:33] Periapse Linden: So as a result there are side effects to certain operations [2008/02/22 15:33] Thomas Shikami: that's because in LSL2, any integer, float, string can be a boolean, too. in C# it needs to be strictly a boolean to work as such [2008/02/22 15:33] Saijanai Kuhn: which saves space but breaks things like lists [2008/02/22 15:33] Rex Cronon: who needs lists? [2008/02/22 15:33] Rex Cronon: when we can have arrays:) [2008/02/22 15:33] Thomas Shikami: I don't see, how pass by reference breaks lists [2008/02/22 15:33] Thomas Shikami: as all those strings are immutable [2008/02/22 15:33] Periapse Linden: Yes. So Babbage has the value semantics written for all the types, but is doing some troublesome debugging of that code. [2008/02/22 15:33] Saijanai Kuhn: LSL3 should have new list handling functions [2008/02/22 15:33] Valradica Vale: I use lists all the time [2008/02/22 15:34] Thomas Shikami: whenever you modify a string, it's copied and doesn't invalidate the old references [2008/02/22 15:34] Thomas Shikami: in mono, all those references to strings are essentially copy-on-write [2008/02/22 15:34] Periapse Linden: Let me find you a ticket number, Thomas. [2008/02/22 15:34] Thomas Shikami: okay, let me rephrase, all those references to strings should be copy-on-write [2008/02/22 15:35] Periapse Linden: So I think this is one manifestation: https://jira.secondlife.com/browse/SVC-1448 [2008/02/22 15:36] Unable to create requested object. [2008/02/22 15:36] Thomas Shikami: hehe, I have an object that was aten by the asset servers [2008/02/22 15:36] Periapse Linden accepted your inventory offer. [2008/02/22 15:36] Periapse Linden: https://jira.secondlife.com/browse/SVC-1356 [2008/02/22 15:36] Periapse Linden: That's the classic "pass by reference" problem [2008/02/22 15:36] Rex Cronon: sorryy [2008/02/22 15:37] Rex Cronon: sudden lag:( [2008/02/22 15:37] Periapse Linden: Thomas, what did you just give me? [2008/02/22 15:37] Siann Beck: np [2008/02/22 15:37] Thomas Shikami: an object that can store 8 megabytes of binary data, if it would rez [2008/02/22 15:37] Rex Cronon: just started my browser [2008/02/22 15:37] Periapse Linden: Thomas, I turned off scripts for this hour [2008/02/22 15:37] Periapse Linden: so that we don't crash again [2008/02/22 15:38] Thomas Shikami: ahh, good [2008/02/22 15:38] Valradica Vale: so, Peri, what do you need from us - [2008/02/22 15:38] Valradica Vale: to make progress on this Mono thing [2008/02/22 15:38] Periapse Linden: Well, what I'm looking for are: [2008/02/22 15:38] Periapse Linden: first and foremost: bugs. [2008/02/22 15:39] Periapse Linden: I know that there's much more broken with Mono than whats been seen so far [2008/02/22 15:39] Periapse Linden: It may be that as we fix the current set of bugs you'll discover new problems. [2008/02/22 15:39] Saijanai Kuhn plugs his table: https://wiki.secondlife.com/wiki/User:Saijanai_Kuhn/Mono_issues [2008/02/22 15:39] Periapse Linden: As in there are things you simply can't test now because it's totally broken [2008/02/22 15:39] Valradica Vale: yes, I have found that [2008/02/22 15:40] Siann Beck: Same here. [2008/02/22 15:40] Thomas Shikami: ohh, interesting bugs those two [2008/02/22 15:40] Periapse Linden: Oh, yeah. :-) Sai has done an excellent job of wrangling the tickets. [2008/02/22 15:40] Valradica Vale: one little piece that is a gateway to the rest of the script [2008/02/22 15:40] Thomas Shikami: strings are fine by reference I hopw [2008/02/22 15:40] Saijanai Kuhn: i didn't check carefully today, but I think its still 95% accurate today [2008/02/22 15:40] Periapse Linden: I haven't seen many new reports recently. [2008/02/22 15:40] Thomas Shikami: but lists are indeed a mutable type and shouldn't be [2008/02/22 15:41] Periapse Linden: Secondly, the thing we hope to get, is input from all of you on the best course of action to take next with Mono. [2008/02/22 15:41] Valradica Vale: one of the problems is communications [2008/02/22 15:41] Saijanai Kuhn: I added a bug to it last night. Someone didn't know about the meta issue and notieced their bug wasn't in my table. So she added it to the meta and I added it to the table [2008/02/22 15:41] Thomas Shikami: make lists into immutable types, then, you'll face a huge wall that needs to be taken down by fixing all those compiler errors that arrise then [2008/02/22 15:41] Valradica Vale: perhpas you should form a group so you can get messages out to all of us in a more efficient way [2008/02/22 15:41] Saijanai Kuhn: Or was it 2 nights ago... Whatever [2008/02/22 15:41] Periapse Linden: By that I don't mean individual features you'd like to see. But a high level goal. [2008/02/22 15:41] Valradica Vale: the JIRA fixes come through fine [2008/02/22 15:42] Rex Cronon: there is a group [2008/02/22 15:42] Valradica Vale: but I have to make an effort to keep up with the general awarness of what is going on [2008/02/22 15:42] Saijanai Kuhn: mono beta [2008/02/22 15:42] Valradica Vale: Mono beta? that is the group name? [2008/02/22 15:42] Thomas Shikami: ahh, btw, I wanted to ask, if residents like me could have insight into the current implementation of LSL to Mono compiler like it is current right now [2008/02/22 15:42] Periapse Linden: As in: C# in Mono, Expand LSL, develop LSL3, or work on simulator scheduling optimization [2008/02/22 15:42] Siann Beck: Yep, and it's on the main grid also [2008/02/22 15:42] Valradica Vale: Ok, I will sign up, sorry [2008/02/22 15:42] Periapse Linden: We are hoping to release the compiler source code soon. [2008/02/22 15:43] Thomas Shikami: I'd say, make WindLight features scriptable in LSL2 and Mono both [2008/02/22 15:43] Saijanai Kuhn: remember to do it here and in the main grid [2008/02/22 15:43] Rex Cronon: i am more interested in Java in mono:) [2008/02/22 15:43] Siann Beck: Or Python [2008/02/22 15:43] Thomas Shikami: It'd be much appreciated, as I want to actually Work on that code to fix those bugs like lists referencing etc. [2008/02/22 15:43] Saijanai Kuhn: iron python is a mono-comptible language. But that goes back to forcing existing languages to fit with LSL2 [2008/02/22 15:43] Periapse Linden: So you are all telling me your wish lists. And that's fine -- it's useful to know what specific things are desired. [2008/02/22 15:44] Periapse Linden: But I'd like you to think about the whole grid, about where it is going and what "it" needs. [2008/02/22 15:44] Periapse Linden: And put that way, which is going to be better for the future of Second Life? [2008/02/22 15:44] Siann Beck: In terms of Mono, Peri, or in general? [2008/02/22 15:44] Thomas Shikami: glow parameters of llSetPrimitiveParams [2008/02/22 15:44] Saijanai Kuhn: maybe a new usecase/brainstorming page for mon could be set up... [2008/02/22 15:44] Thomas Shikami: for* [2008/02/22 15:44] Periapse Linden: C#, enhanced LSL2, LSL3, Scheduling? [2008/02/22 15:44] Rex Cronon: if anybody could predict that, they would be rich:) [2008/02/22 15:45] Valradica Vale: the whole grid DOES need faster and more efficient scritps [2008/02/22 15:45] Saijanai Kuhn: https://wiki.secondlife.com/wiki/User:Saijanai_Kuhn/Mono_issues [2008/02/22 15:45] Valradica Vale: if Mono does that it will be a huge improvement [2008/02/22 15:45] Saijanai Kuhn: oops [2008/02/22 15:45] Thomas Shikami: Mono may not cause performance issues on the sim [2008/02/22 15:45] Periapse Linden: Rex -- wisdom of the crowds is what we're hoping for. [2008/02/22 15:45] Siann Beck: Well, we'll be getting that with Mono, Val, even with nothing further done to it. [2008/02/22 15:45] Thomas Shikami: as LSL2 is protected from doing that right now [2008/02/22 15:45] Periapse Linden: Better than anything anyone of us could think of [2008/02/22 15:45] Thomas Shikami: I know what Mono is, so my highest concern is, that Mono scripts might take the sim performance down [2008/02/22 15:46] Saijanai Kuhn: https://wiki.secondlife.com/wiki/Use_Cases https://wiki.secondlife.com/wiki/Brainstorming [2008/02/22 15:46] Thomas Shikami: so I'd like to know, what's done, so Mono cannot steal all those precious CPU cycles from physics processing [2008/02/22 15:47] Rex Cronon: i think a lot of people would like lsl3 [2008/02/22 15:47] Siann Beck: That's covered by scheduling, Thomas [2008/02/22 15:47] Saijanai Kuhn: right now, I suspect its just that mono only exectues standard LSL2 code [2008/02/22 15:47] Thomas Shikami: I know scheduling, how it's implemented in the OS is flawly [2008/02/22 15:47] Saijanai Kuhn: so bugs and tweaks aside, all the standard delays and such are left in place [2008/02/22 15:47] Thomas Shikami: and the kind of scheduling as it's needed for the sim is only implemented in OSes like Windows NT and QNX [2008/02/22 15:48] Periapse Linden: Well, we know that we can do a lot to improve the simulator scheduling code [2008/02/22 15:48] Periapse Linden: Especially now with Mono [2008/02/22 15:48] Rex Cronon: thomas, when u say scheduling u mean threading? [2008/02/22 15:48] Thomas Shikami: uhm, can simulator scheduling code throttle Mono at all? [2008/02/22 15:48] Thomas Shikami: threading won't work [2008/02/22 15:48] Periapse Linden: And some people at Linden believe that it would be the best thing for the grid. [2008/02/22 15:48] Saijanai Kuhn: which goes back to LSL3. Something that is entirely tied to the simulator model, rather than shoehorning in syntax designed for more general programming [2008/02/22 15:49] Thomas Shikami: there are kinds of scheduling, like simulators, where co-operative multitasking is better than pre-emptive [2008/02/22 15:49] Periapse Linden: I mean how the simulator applies timeslices to LSL2, Mono, and Physics [2008/02/22 15:49] Periapse Linden: to keep scripts running and physics frame rate up [2008/02/22 15:49] Thomas Shikami: pre-emptive threading is overrated [2008/02/22 15:50] Siann Beck: Well, I think with Havok4 and Mono, we're going to see a big boost in performance and stability anyway, just out of the box. [2008/02/22 15:51] Rex Cronon: mono is not there yet [2008/02/22 15:51] Periapse Linden: Right, Siann. And that's another possibility for what we could do next [2008/02/22 15:51] Thomas Shikami: ^^ sorry, this is kind of something that makes me chuckle [2008/02/22 15:51] Saijanai Kuhn: Thomas, riht now the LSL2 compiler enforces all the delays for ll# functions that are built into the LSL2 compiler. [2008/02/22 15:51] Saijanai Kuhn: ll^ functions [2008/02/22 15:51] Thomas Shikami: huh? [2008/02/22 15:51] Thomas Shikami: no way [2008/02/22 15:51] Thomas Shikami: the ll functions implement the delays, don't they? [2008/02/22 15:51] Saijanai Kuhn: llSetRot() and the like [2008/02/22 15:51] Periapse Linden: After we stablize Mono, our next step could be to merge Mono with Havok [2008/02/22 15:52] Thomas Shikami: it would be silly to implement the delays in the compiler [2008/02/22 15:52] Siann Beck: I assumed that would be the next step, since H4 is already moving out on the main grid. [2008/02/22 15:52] Saijanai Kuhn: for the LSL2 compiler, its basically NOPs injected at compile time on the client side. FOr the mono cojmpiler, its those same nops injected at compilel time on the server side [2008/02/22 15:52] Valradica Vale: well at some point if you're going to implement h4 and mono, yo WILL have to integrte them right (hehe) [2008/02/22 15:52] Siann Beck: Meta was talking about rolling it out to the rest of the grid very soon. [2008/02/22 15:52] Thomas Shikami: I hope no NOPs are injected at all [2008/02/22 15:52] Thomas Shikami: as they aren't needed [2008/02/22 15:53] Periapse Linden: Val -indeed. But should we do a separate beta for it? Before Havok4 goes out to the main grid? [2008/02/22 15:53] Thomas Shikami: that'd be crazy design and it'd be very exploitable [2008/02/22 15:53] Periapse Linden: Thomas, how exploitable? [2008/02/22 15:53] Saijanai Kuhn: in fact... there are hacked LSL2 compilers that remove the NOPs before sending the byte code to teh server [2008/02/22 15:53] Thomas Shikami: if the compiler injects the delays in LSL2 [2008/02/22 15:53] Valradica Vale: well, what they hafe done with H4 is to put it on the grid in selected sims [2008/02/22 15:53] Siann Beck: I'd say get H4 out to the main grid, then beta the combo here. [2008/02/22 15:53] Periapse Linden: With server side compilation we have control over the bytecode [2008/02/22 15:53] Valradica Vale: yes, I agree with Siann [2008/02/22 15:53] Thomas Shikami: LSL2 client side compiling still works [2008/02/22 15:54] Siann Beck: Meta said H4 is just about ready for general deployment. [2008/02/22 15:54] Thomas Shikami: and it'd allow injecting mono bytecode, too [2008/02/22 15:54] Siann Beck: That's going to improve things just by itself. [2008/02/22 15:54] Saijanai Kuhn: "NOP" means to sleep the script. Don't know how it is handled server-side [2008/02/22 15:54] Rex Cronon: how hard would it be right now to have a sim on beta that has both h4 and mono? [2008/02/22 15:54] Periapse Linden: Yes. But as you can imagine that's something we'd like to turn off. [2008/02/22 15:54] Periapse Linden: Once Mono goes out we will have all server side compilation. [2008/02/22 15:54] Saijanai Kuhn: Thomas all copjiling for mono is done server side right now [2008/02/22 15:54] Thomas Shikami: I know [2008/02/22 15:55] Saijanai Kuhn: so you can't remove the NOPs [2008/02/22 15:55] Periapse Linden: Or, Sai, to be precise, you won't be able to remove the NOPs after Mono is live [2008/02/22 15:55] Thomas Shikami: the NOPs should still be done by the functions themselves [2008/02/22 15:55] Thomas Shikami: well, not NOPs, it's delays [2008/02/22 15:55] Saijanai Kuhn: can you remove the NOPs right now? I thought it was server-side compiling currently... [2008/02/22 15:56] Thomas Shikami: I thought, the delays were implemented inside the ll functions anyway [2008/02/22 15:56] Thomas Shikami: like as if they internally call llSleep [2008/02/22 15:56] Saijanai Kuhn: it sleeps the script. I guess its more a sleep function then a NOP, but for the LSL2 code it might as well be a NOP [2008/02/22 15:56] Siann Beck: I always thought that, Thomas. [2008/02/22 15:57] Thomas Shikami: from what I hear here, it sounds like some ranting that isn't true [2008/02/22 15:57] Valradica Vale: Periapse, you asked earlier what is best for the BIG Grid - most scripters know nothing of the conversation here [2008/02/22 15:57] Periapse Linden: Sai -- the Mono-enabled branch uses server side compilation. It's what's running here. But on the main grid the sim code is merely "Mono-aware" which still allows client compilation [2008/02/22 15:57] Saijanai Kuhn: as I understand it, the client-side LSL2 compiler adds the NOP/sleep to the byte code during compile [2008/02/22 15:57] Valradica Vale: they want easy, fast and do not want to invest in learning a new language structure [2008/02/22 15:57] Rex Cronon: yes, u need more people [2008/02/22 15:57] Thomas Shikami: as I understand it, I hope it doesn't [2008/02/22 15:57] Periapse Linden: Val -- how do you know this? [2008/02/22 15:57] Valradica Vale: many scripters are struggling just to learn scripting to make things they want [2008/02/22 15:57] Thomas Shikami: and that claims of hacked compilers that circumvent penalties are false [2008/02/22 15:58] Periapse Linden: I hear a variety of opinions and desires, not a single voice. It would be much simpler if there were a single voice [2008/02/22 15:58] Rex Cronon: i think that valradica is right [2008/02/22 15:58] MystiTool HUD 1.0.21: Entering chat range: Zulu Hird (18m) [2008/02/22 15:58] Valradica Vale: many have never done programing before [2008/02/22 15:58] Valradica Vale: and are learning LSL because its the first time they ever saw a use for it [2008/02/22 15:58] Valradica Vale: here in SL, its part of the creativity package [2008/02/22 15:58] Saijanai Kuhn: well, Thomas, I've never done it, but the compiler is open soucrce for LSL2 and is part of hte client and people cliam they HAVE circumvented the delays for ll functions using hacked compilers... [2008/02/22 15:58] Siann Beck: What's your point, Val? Lots of threads going on here :) [2008/02/22 15:58] Valradica Vale: and it has to say simple and functional [2008/02/22 15:59] Thomas Shikami: and I would bet, they are just claiming and there is no proof [2008/02/22 15:59] Valradica Vale: well, my point is [2008/02/22 15:59] Saijanai Kuhn: /shrug. Its theoretically doable, regardless [2008/02/22 15:59] Valradica Vale: that overall, we need a clean, fast and simple implementation of a scripting language [2008/02/22 15:59] Valradica Vale: I like LSL because it is extremely simple [2008/02/22 16:00] Siann Beck: Yes, it is. [2008/02/22 16:00] Thomas Shikami: a claim that I would believe is, if someone says, they can copy things and hack permissions [2008/02/22 16:00] Valradica Vale: but the ll functions give it oomph [2008/02/22 16:00] Valradica Vale: keep the language for the sake of those who have struggled to learn it [2008/02/22 16:00] Saijanai Kuhn: LSL has many flaws, but its relatively simple. ANd the structure is designed around the SL object system. [2008/02/22 16:00] Thomas Shikami: have C# optional [2008/02/22 16:00] Siann Beck: Well, there are no plans to ditch the LSL language at this point. [2008/02/22 16:00] Valradica Vale: but beef it with reliability and more functions [2008/02/22 16:00] Periapse Linden: So Val, it sounds like you are advocating changes to LSL, not to enhance functionality, but to make it easier to learn for beginning coders? Is that correct? [2008/02/22 16:01] Thomas Shikami: in opensim, to activate C# compiling, it's like writing //C# at the top of the code [2008/02/22 16:01] Rex Cronon supports valradica [2008/02/22 16:01] Valradica Vale: I think that is essential to the creativity of SL [2008/02/22 16:01] Valradica Vale: simple enough so everyone can play [2008/02/22 16:01] Periapse Linden: I will say that indeed there are no plans to abandon LSL. [2008/02/22 16:01] Rex Cronon: enchanced functionality is very desired too [2008/02/22 16:01] Saijanai Kuhn: open sime is written in C#, and was designed with C# in mind. NOt sure how easy it would be to implement C# in mono for the SL scripting [2008/02/22 16:01] Siann Beck: And I agree it would be good to beef up LSL. Other languages on the Mono engine are good, but LSL needs to be maintained, as well. [2008/02/22 16:01] Periapse Linden: In fact, it's doubtful that we ever could abandon the LSL2 virtual machine [2008/02/22 16:01] Thomas Shikami: and having LSL3 fully backward compatible would make it to replace LSL2 [2008/02/22 16:02] Thomas Shikami: I'd say, just look at the opensim developers, how they implemented C# and make it compatible [2008/02/22 16:02] Periapse Linden: We might get to a point where we only allow compilation to Mono bytecode, and keep the LSL2 VM aroung just to run legacy scripts [2008/02/22 16:02] Saijanai Kuhn: My wish is for LSL 2 be backwards comptible but with new types, funtions, structures, etc that make it better [2008/02/22 16:02] Periapse Linden: but that's far off [2008/02/22 16:02] Thomas Shikami: how about compiling LSL2 bytecode to mono? [2008/02/22 16:02] Saijanai Kuhn: LSL3*** to be backwards compatible [2008/02/22 16:03] Periapse Linden: ?? Thomas. A bytecode translator? [2008/02/22 16:03] Saijanai Kuhn: gotta run all. Take care. [2008/02/22 16:03] Rex Cronon: bye sai [2008/02/22 16:03] Siann Beck: See ya, Sai. [2008/02/22 16:03] Periapse Linden: Oh, yes. I'm goiing to need to leave soon too. Bye, Sai [2008/02/22 16:03] Valradica Vale: I will try to put my thoughts into a notecard and send it to you, Periapse [2008/02/22 16:03] Valradica Vale: bye Sai [2008/02/22 16:03] Thomas Shikami: yes, I'm sure LSL2 bytecode can be translated to C# with all the injected functions that need to be called, then compiled to mono [2008/02/22 16:03] Valradica Vale: thanks for coming [2008/02/22 16:04] Thomas Shikami: actually, that had been the way I'd do the mono implementation on a sim [2008/02/22 16:04] Periapse Linden: Ossm, Val. You might also consider attending Babbage's office hour at 8am (SL time) on Wednesdays [2008/02/22 16:04] Thomas Shikami: make it transparent and compiling LSL2 bytecode to mono, whenever the sim downloads a scripting asset [2008/02/22 16:04] Valradica Vale: I can't I have to acutally work in RL :-) [2008/02/22 16:05] Periapse Linden: Thomas -- one thing we want to avoid is anything that automatically recompiles scripts [2008/02/22 16:05] Thomas Shikami: though, I'm thinking about implementing a LSL2 bytecode interpreter in C#, but I don't know, when I will [2008/02/22 16:05] Periapse Linden: Many scripts currently in use are never intended to be reset. They would break [2008/02/22 16:05] Siann Beck: Yeah, it would be virtually impossible to maintain state. [2008/02/22 16:05] Thomas Shikami: I think OpenSim can benefit from a LSL2 bytecode interpreter [2008/02/22 16:06] Periapse Linden: Thank you all for this discussion. I'll post it to the Mono beta wiki page [2008/02/22 16:06] Periapse Linden: Though I don't seem to have the part prior to the crash [2008/02/22 16:06] Siann Beck: I can send it to you, if you'd like. [2008/02/22 16:06] Valradica Vale: I don;t either, unfortunately [2008/02/22 16:06] Thomas Shikami: Good, I log everything, so I have everything [2008/02/22 16:07] Thomas Shikami: again, what about e-mail, does it work on beta? [2008/02/22 16:07] Periapse Linden: Yes, if you can send it to me that would be great. [2008/02/22 16:07] Siann Beck: Here, or on the main gird? [2008/02/22 16:07] Periapse Linden: Thomas, I believe, but have not confirmed, that email should work [2008/02/22 16:07] Thomas Shikami: e-mail, periapse@lindenlab.com ? [2008/02/22 16:07] Periapse Linden: yes, thomas, thx! [2008/02/22 16:07] Thomas Shikami: well, I tried e-mail on this sim and it didn't work [2008/02/22 16:08] Periapse Linden: just now? [2008/02/22 16:08] Thomas Shikami: just before this meeting [2008/02/22 16:08] Siann Beck: I believe he's referring to llEmail() [2008/02/22 16:08] Thomas Shikami: yes [2008/02/22 16:08] Thomas Shikami: wow, 7.8 MB chat.txt