LSL-Editor: Known issues

HomePage :: Screendumps :: Examples :: Download :: Revisions :: Help :: Forum :: Donate :: Beta release :: Contact
Here are listed most of the known issues.

0: LSLEditor does not give the same results as Second Life.

Resolution: Use Second Life for the real thing ;-) or sending in some BugReport!!

1: LSLEditor does not parse floats ending in a dot, append a zero.

Example:

  float f = 1.;
  vector v = <1.,1.,1.>;

Resolution: Use a zero behind the dot.

Example:

  float f = 1.0;
  vector v = <1.0,1.0,1.0>;

2: LSLEditor accepts global vars on a state body

Example:

default
{
    integer i;
    touch_start(integer j)
    {
    }
}

Resolution: Don't use vars on state bodies.

integer i;
default
{
    touch_start(integer j)
    {
    }
}

3: LSLEditor accepts var on for(;;) body

Example:

for(integer i=0;i<10;i++) { ... }

Resolution: Place vars always outside for body

integer i;
for(i=0;i<10;i++) { ... }
 

4: LSLEditor gives wrong argument when typing, having multiple ','

Example: Placing cursor between "OK" and "Cancel" results in:

Resolution: Use separate vars for lists, vectors and rotations.

5: Some operators do work in LSLEditor, not in SecondLife

Resolution: Don't use '&=' and '|=' operators in your scripts.

6: There are some 'memory-conserve quirks' in SecondLife, they are not in LSLEditor

Example1: gSentence = (gSentence = "") + gSentence + " " + "now.";
Example2: gFruits = (gFruits = []) + gFruits + ["pear"];

There are NO plans to make them work in LSLEditor. It is not healthy to use them.
If the memory limit for scripts is too small, we all have to complain at the Lindens!!

The last 'Anomaly' build into LSLEditor was the single-quote feature of SecondLife.
It is turned off by default, because it makes us no good programmers!!
Here is some screenshot to make myself clear.

7: LSLEditor has this nice feature called 'implicit string operator', it does not work in SecondLife

Example1:
llOwnerSay("Hello "+list);

Example2:
llOwnerSay("Hello "+(integer)i);

However these examples work in LSLEditor, don't get used to it, use (string) casting.

Example1:
llOwnerSay("Hello "+(string)list);

Example2:
llOwnerSay("Hello "+(string)i);

8: Casting in LSLEditor

Cast of Cast works in LSLEditor, but not in SecondLife

float number;
string strA = (string)(integer)number;

Solution, add some extra parenthesis.

float number;
string strA = (string)((integer)number);


9: LSLEditor is Object Oriented, SecondLife is not

Example:
float number = llGetPos().z;

Dont use it in world.

10: LSLEditor evaluates from left to right

Example:


i = 1; intA = ((i == 2) && (i++ == 1));
i = 1; intB = ((i == 2) && (++i == 2));
i = 2; intC = ((i == 1) && (i-- == 2));
i = 2; intD = ((i == 1) && (--i == 1));

These 4 integers (intA, intB, intC, intC) will all evaluate as 0 (FALSE)!

11: Special care for URL in llHTTPRequest

In LSLEditor llHTTPRequest accepts URL's containing spaces and other non-escaped chars.
In SecondLife you have to use: llEscapeURL to make it work.

12: LSLEditor can do nested Lists, SecondLife does not.

list nestedList = [[42], ["a", 3.141]];

Dont use it in world.