I've been porting a set of three scripts to the LSL on luavm 2025 and have run into an unexpected memory limit issue.
As the script has grown by my enabling more of it by integrating the three scripts into one, the USED memory size has crossed the 64k boundary. This includes code and data, and because of a different bug that Harold Linden is aware of (code size greater than 64k triggers a constructor fault), I've been working to keep the code under 64k (just barely at this point).
Today I started getting these kinds of runtime errors:
PRIMA
Femme Elite v1.9 [script:body_lsl] Script run-time error
not enough memory
not enough memory
[C] function ListInsertList
[C] function ListReplaceList
lsl_script function _fupdate_link_alpha
lsl_script function _fchange_piece_shape
lsl_script function _e0/state_entry
By commenting out other code that is not used during the state_entry logic, the code runs. I'm guessing it's because there are checks in the list code called to make sure the lists are inside the 64k boundaries of days of yore.
I have some skid marks in my code and what I see are these two messages before the script fault occurs:
state_entry 0 used 61241 free 69831
state_entry2 1 used 66745 free 64327
The first one is the first statement in state_entry(). The second one is down a ways after I've initialized a bunch of my global variables. The third one I added to the code never runs because of the error shown above.