|
Areth Gall
Registered User
Join date: 9 Jan 2006
Posts: 40
|
07-24-2006 14:51
Hi. I built a script and compiled it, and I ended up coming up with an error that went like this;
Function Args: (null) Local List: (null) Function Args: (null)
I broke apart my script and found that without the timer event, it compiled correctly. Then, I put in the compilation of my timer event into another script, added in the global component (switches like i, j, k) to allow it to register the keys.. and it worked. But, when the timer event is added in to the primary script, I get this error.
I have no idea why it is doing this. I do not know what the errors mean either. The only lists I have are lists in the global parameters.
What caused this error is that I loaded up my script and completed a function that is completely irrelevant to the timer (it does not use any of the switches that occur in the timer, and occurs before the timer is turned on.) The script worked with part of this function completed last night.
So, I'm not sure if a bug occured in the programming update or what. If anyone knows what the hey IS going on, get back to me.. it'd be very appreciated.
|
|
October Brotherhood
Registered User
Join date: 24 Jun 2005
Posts: 70
|
07-24-2006 15:43
maybe it's out of memory? and that part is just where it fails?
|
|
Areth Gall
Registered User
Join date: 9 Jan 2006
Posts: 40
|
07-24-2006 16:10
Actually, I've gone through it a little bit more. The script goes up to part 5 of the updater script, and fails when I put in the same script that is in the earlier parts, such as; llGetSubString(stringer, a, z); where of course, a and z are integers. So, it being out of memory actually sounds like a possibility, even when the thing is 'loading'.. Bleh.
Anyone know for sure?
|
|
DFrag Dapto
Registered User
Join date: 21 Jun 2006
Posts: 1
|
Possible Solution
08-07-2006 07:37
I ran into this same thing, and it turned out to be that I had the following situation:
When setting global variables, I had a list that had another global variable in it. This can be done, but the variable in the list had to have been set to something, not just declared.
What I had that didn't work, was:
string sText01; list lStuff01 = ["blah", "blah2", sText01];
When I changed it to this, it worked fine:
string sText01 = " "; list lStuff01 = ["blah", "blah2", sText01];
Hope that helps if you haven't solved it yourself, or haven't given up on it.
|
|
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
|
08-07-2006 12:16
yeah LL screwed up globals in the compiler. It's rather hackish.
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river. - Cyril Connolly
Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence. - James Nachtwey
|
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
08-07-2006 13:21
It's rather hackish.That's an awfully polite way of putting it.  I so want to fix the LSL parser. At the very least it needs constant folding, and removing all the hacks they put in to keep the lack of constant folding from being too horrible. Constant propogation would be even better, since then you could do stuff like this: // lay out default turret locations. integer NUM_SIDES = 7; integer DEG_PER_SIDE = 360 / NUM_SIDES; list turret_angles = [ 0, DEG_PER_SIDE * DEG_TO_RAD, 2 * DEG_PER_SIDE * DEG_TO_RAD, ... ];
Every time I set up a particle system I wish I had this. And at the same time they could stop "a = b-1;" from being a syntax error. 
|
|
Hewee Zetkin
Registered User
Join date: 20 Jul 2006
Posts: 2,702
|
08-07-2006 23:22
Just about every script I write that is over a page long (or so) has code like the following: // CONSTANT Constants integer CONST1 = ...; ... // Derived Constants integer CONST2; // Should be able to initialize here! #*$&@#$! ... integer initialized = FALSE; init() { if (initialized) { return; } CONST2 = ... CONST1 ...; initialized = TRUE; } ... default { state_entry() { init(); ... } ... } Of course the most frequent defect I have now is forgetting to put 'init()' in 'state_entry()'. Heh.
|