No description
Find a file
Sei Lisa 9e7a5d1cdf Change strategy for the checking of function input types.
Rather than assert that the types are correct, use the force type functions on the parameters:
ff, fk, fs, q2f, v2f, and the new fi, fl.

These functions have also been modified to ensure that the input type supports an implicit typecast to the target type and perform it, or emit ELSLInvalidType otherwise, rather than an assertion failure. fl in particular returns the original list if it isn't changed, or a copy if it is.

A couple bugs were found in testfuncs.py as a result, which have been fixed as well. A test has been added to ensure that the exception that caught these bugs remains in place.

The isxxxx functions are no longer necessary, so they are removed. Same goes for the painful cast handling process in foldconst, which was basically performing this task, and not necessarily well.

This approach is much more robust and should have been used since the beginning, but I didn't figure it out then.
2017-10-12 17:16:16 +02:00
lslopt Change strategy for the checking of function input types. 2017-10-12 17:16:16 +02:00
.gitignore Yet another follow-up to 2f4f403 (lslcalc support) 2016-12-15 04:15:26 +01:00
builtins-unittest.txt Get rid of builtins.txt.dat by adding a parameter to the parser ctor. 2015-07-09 20:35:14 +02:00
builtins.txt New upstream release of builtins.txt. 2017-08-17 16:57:08 +02:00
COPYING Add copyright notices to all files, to prepare the program for release. 2015-03-05 23:18:41 +01:00
main.py Implement accurate error reporting through #line directives. 2017-10-11 05:04:13 +02:00
README.md URL changed. 2016-12-15 04:37:45 +01:00
seftable.txt llUnescapeURL is side effect-free. 2017-01-27 20:14:47 +01:00
testfuncs.py Change strategy for the checking of function input types. 2017-10-12 17:16:16 +02:00
testparser.py Rewrite ReportError() and change EParse to report columns in chars. 2017-10-05 18:50:45 +02:00

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.zone/lsl-pyoptimizer/