#SL Scripting Update Week 33

With some luck we’ll see the Scripting Maintenance Project roll to the main grid this week. Since last Wednesday Blue Steel has been running the project’s code. Kelly Linden says it is looking good and will probably be a candidate for roll to the main grid this week.

Image by: Marcin Wichary @ Flickr

Along with new scripting functions come simulator performance improvements. The graph shows some of the improvements. If I understand correctly we should be able see a noticeable improvement.

New Scripting Features in LSL

  • llSetMemoryLimit() – This sets the maximum amount of memory the script can use. With this function the sizing and color scripts for hair and shoes can be set to use less memory. Because there are so many copies of the scripts in hair this should have a large impact.
  • llGetMemoryLimit() – This reports what the memory limit is.
  • llGetObjectDetails() – A new item has been added to the flags: OBJECT_SCRIPT_TIME. This item returns the average script time an object or avatar is using. The value is in seconds and is the same number as one sees in Top Scripts in the Estate Manager’s Tools.

Fixes

  • llResetOtherScript() – Has had an issue described in JIRA  SVC-7175 that has been fixed.
  • llTargetOmega() – Got a new bug in a release channel’s recent update and began failing. JIRA  SVC-7174 has been fixed.
  • The Build Tool’s shift-copy ability will now copy all prim parameters. Many of us build a prim with all the parameters we want and then shift-drag the prim to copy it and move it to a new position. Some parameters previously did not copy and had to be set after copy, which can be tedious when a large number of items are copied.
  • A fix for llDialog spamming has been added… ummm… I suppose to stop such spamming. In some cases the spam could crash the viewer.
  • A scripting permissions issue where permissions granted by an avatar were not revoked has been added. See JIRA  SVC-7060. This blocks a griefing exploit.

Kelly's Graph

Triage

Every other week is a triage week at the Kelly’s Content Creation Scripting Group. JIRA items in the script related category are evaluated and prioritized. Kelly takes feedback and recommendations from those in attendance. So, if you have a problem you want fixed this meeting offers a place for input.

While I write scripts for SL and OpenSim, I haven’t run into most of the problems being discussed. I also often do not understand the problem because I haven’t tried to script a process related to the JIRA. SO… my paraphrasing of some if the issues may be inaccurate. But, I think you’ll get a reasonable idea of the subject.

The items looked at this week:

  • SCR-21llResetOtherScript() will not reset other scripts that have stack-heaped – I’m not sure if Kelly took any action on the item. Because of the new features to help people understand and work with script memory limits there should be fewer stack-heap crashes. Plus some think that allowing one to recover from a heap crash via script reset would promote sloppy programming.
  • SCR-26llGetAnimation() constant transparency – This is about getting the documentation for this function correct. The function is returning values not documented. This ‘bug’ is more of a documentation request. Kelly is going to update the wiki. He added a list of return values to the JIRA item today (15/Aug/11 10:36 AM).
  • SCR-64llKey2Name returns avatar names with double space between first and last (sometimes) – The opinion is this has been fixed. Kelly is asking for more information to see if anyone is running into the problem. If you are WATCHING the item, you’ll get an email asking for more information, which is why if you have the problem you want to WATCH the item.
  • SCR-93llDetectedType() does not return AGENT for avatars sitting on objects – There was lots of discussion on this item. Kelly says, “Actually I believe the behavior currently is as designed. Collisions always detect the root prim, which for sitting avatars is the object they are on. I think you can still find sitting agents with llSensor.” Kelly added a comment that the perceived problem is an expected behavior.
  • SCR-94llVolumeDetect collision_start/collision_end undependable – Kelly said, “I can import this as it seems legitimate, however it is unlikely to get much attention.” The problem is in how the physics engine works with this function. It is a complex fix and there is only 1 watcher. So, it will be a low priority.
  • SCR-98Scripts not loaded create script errors when interacted with – This is a rarely seen problem. Apparently occurring at region start up or object rez. The problem has been back logged. If one seeing the problem get your information into the JIRA item.
  • SCR-108llRezObject() fails when owner not present – A trivial script that rezzes an object on touch silently fails to rez the object when the owner is not nearby. Keely added a comment; “This is expected behavior. Group Roles and Powers only have an effect for the objects you own if you are nearby. The object does not cache or lookup these powers if you are not nearby. I will check and update the wiki for llRezObject if needed.” So, this is documentation confusion and not a bug.

Summary

The Lindens continue to wade through the bug reports and make repairs. Time and resource constraints limit what gets fixed, but they are moving forward. If the Script Maintenance Project makes it to the main grid we should see noticeable improvements in Second Life performance. We’ll also start to see better scripts that use less memory.

Update: There is a new, or at least updated, page in the SL Wiki on Script Memory.

5 thoughts on “#SL Scripting Update Week 33

  1. Pingback: AOs and Script Count/Memory - SLUniverse Forums

  2. regarding SCR-21: this wasn’t discussed with Kelly, only afterward and you seem to have missed my arguments. In short: there are more functions, which can prevent some effects, but data manipulation is critical, because you don’t have functions to check for exact memory usage of one list and what it needs if you delete or replace a part in it. So it’s not sloppy, it’s only not fully controllable, especially if you have multiple lists. There is a reason why we still have watchdogs and reset buttons on other stuff.

  3. “Along with new scripting functions come simulator performance improvements. The graph shows some of the improvements. If I understand correctly we should be able see a noticeable improvement.”

    HALLELUJAH!!!

    • I upgraded to Second Life Viewer 3.0.2 (238719) Aug 17. Logged in and… I’m still wearing my socks… so the speed up is not all that impressive. Dance Island with 41 people is working better than I’ve seen it in a long time.

Leave a Reply

Your email address will not be published.