#SL Scripting News Week 7

The big news this week was Tiggs’ announcement about Linden Realms’ Tools. I cover that in: #SL Linden Realm Tools. Otherwise, there was little news in the scripting area.

New Functions

For some time we have had the improved List Functions bouncing in and out of the release channels. It looks like they will make it to the main grid this week. For the past week the server maintenance package including them has been running on all 3 release channels. So, it should be well tested. Keep your fingers crossed.

These are the improvements to speed up Linden Scripting Language (LSL) functions that handle lists. Look back through the articles in Scripting News for a list of them.

Flip Idlemind has a huge Rubic’s cube that makes heavy use of list processing. He is finding the cube way slower on the release channels than on the main channel. Kelly has tested the functions and they are way way faster. Some problem with how the script is using multiple calls to the list functions and the server breaks them up is suspected of causing a slow down. That is being looked into.

A JIRA will be filed. Kelly points out that the Scripting JIRA items (SVC and SCR bugs) are current and well triaged. All request to fix any problem have to have a JIRA to have any chance of getting fixed.

Fixes are also included for MOVING_END and llGetParcelMaxPrims().

Limit Windows

Several function in LSL have limits or throttles. One can only call them so many times in a given time period. I’ve heard limits expressed several different ways. Today I head another. This one makes more sense to me.

Kelly says, ‘…we sometimes refer to this same throttle as “6 per 2 seconds with a max burst of 3.’

With many throttles the idea of  an ‘approximate rolling window’ is used to mean actions from the previous period (say a limit of 3 events per 1 second uses a 1 second period) can affect the current period. So, the 6/2 sec w/3 burst rate. Firing three of the events in one second will often lock the event in the next period (second). The system has to see the average per period fall below 3/sec before releasing the throttle.

The means to get the throttle to release, the script needs to wait 2 periods or in ths case 2 seconds before attempting to fire the event again.

SVC-7663

SVC-7663 – llEscapeUrl() not compliant with current standard RFC3986. The Lindens are looking at a fix. There is a consideration about whether an inline fix will break existing content. The thinking now is that it will not.

In this context an inline fix means the llEscapeUrl() function would be fixed and give different results. An out-of-line fix would be to add the fix to a new function like llEscapeUrl2012() and leave the old function in place. Over time it would depreciate and eventually be dropped out. Which method is used depends on the number of uses a function is getting and whether a fix would break content.

If you don’t know, the llEscapeUrl() function takes secial characters that don’t work in URL’s, like a space, and turns them into a special string. For instance a space is turned into %20 for use in a URL. I learned early one not to use spaces in image names for images to be used on the web. It just creates chaos and lots of fails.

Leave a Reply

Your email address will not be published. Required fields are marked *