mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-22 20:49:33 -07:00
No description
This caused "Label not defined within scope" when breakcont was active: default{timer(){jump x;while(0)@x;}} The problem was that breakcont opens a new scope for the case where it has to deal with a loop which is the single statement of an outer statement, e.g. default{timer(){if(1)while(1)break;}} would add braces to jump to the correct break point: default{timer(){if(1){while(1)jump brk;@brk;}} To avoid excessive complication, a new scope was always opened for the whole statement in each of the loops, regardless of whether we needed braces later on or not. That should be transparent most of the time, but then if the statement was a label declaration, the label would be in a new scope that would be invisible outside the loop. Fix that by checking explicitly for a label to temporarily get rid of the new scope in that case, and add a test case for it. |
||
---|---|---|
lslopt | ||
.gitignore | ||
builtins-unittest.txt | ||
builtins.txt | ||
COPYING | ||
main.py | ||
README.md | ||
seftable.txt | ||
testfuncs.py | ||
testparser.py |
LSL PyOptimizer
LSL PyOptimizer is a LSL2 script optimizer written in Python 2. Currently it only supports code memory optimization (no speed optimization), only for Mono (no LSO), and only for the Second Life flavour of LSL (no OpenSim etc.).
HTML introduction, list of features and documentation available at http://lsl.project.li/lsl-pyoptimizer/