| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
scripts as boxed integers rather than proper reference to a new LSLInteger.
This fixes an exception when using a registered integer constant in
a script.
|
|
|
|
|
|
|
| |
not correctly handle single statement versions of for, while and do-while loops.
Add regression tests to validate the fix.
This problem will not affect the default abort termination mode.
|
|
|
|
| |
Add regression test for this case.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
addition to termination on wait.
This involves inserting opensim_reserved_CheckForCoopTermination() calls in lsl -> c# translation at any place where the script could be in a loop with no wait calls.
These places are for, while, do-while, label, user function call and manual event function call.
Call goes through to an XEngineScriptBase which extends ScriptBase.
IEngine is extended to supply necessary engine-specific parent class references and constructor parameters to Compiler.
Unfortunately, since XEngineScriptBase has to be passed WaitHandle in its constructor, older compiled scripts will fail to load with an error on the OpenSim console.
Such scripts will need to be recompiled, either by removing all *.dll files from the bin/ScriptEngines/<region-id> or by setting DeleteScriptsOnStartup = true in [XEngine] for one run.
Automatic recompilation may be implemented in a later commit.
This feature should not yet be used, default remains termination with Thread.Abort() which will work as normal once scripts are recompiled.
|
|
|
|
| |
constants to the script engine.
|
| |
|
|
|
|
|
|
|
|
|
| |
from region modules. The LSL translator is extended to generate the
modInvoke format of commands for directly inlined function calls.
A region module can register a function Test() with the name "Test".
LSL code can call that function as "Test()". The compiler will translate
that invocation into modInvoke("Test", ...)
|
| |
|
|
|
|
|
|
|
|
| |
Path.GetDirectoryName when getting assembly loading path in Compiler.CompileFromDotNetText().
The Path.GetDirectoryName call in Compiler.CompileFromDotNetText is unnecessary since AppDomain.CurrentDomain.BaseDirectory is always a directory.
Later path concatenation is already done by Path.Combine() which handles any trailing slash.
Removing Path.GetDirectoryName() will not affect the runtime but allows NUnit to work since it doesn't add a trailing slash to AppDomain.CurrentDomain.BaseDirectory.
|
|
|
|
| |
not in a funky debug window.
|
|
|
|
|
|
|
|
|
|
| |
statements cause script compile failures
This fixes a problem in OpenSim where statements of the form
for ((i = 0); (i < 10); (++i)) { ... }
do not compile even though they are valid lsl.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SL's LSL supports lone idents:
integer x;
x;
as well as lone idents in for-loop assignments:
for (x; x < 10; x++) { ... }
while those are errors in C# (MONO at least). This patch skips lone
idents in such places.
Fixes Mantis #3042.
|
|
|
|
|
|
|
|
|
|
|
|
| |
For loops with no assignment are no longer syntax errors. For example,
this is now valid:
for ( ; i < 10; i++) { ... }
Corresponding changes to lsl.{lexer,parser} in r99 in opensim-libs.
Fixes Mantis #2501. Fixes Mantis #2884.
|
|
|
|
| |
LICENSE.txt.
|
|
|
|
|
| |
Deals with the multiple warning side affect introduced earlier.
|
|
|
|
|
|
|
| |
Adds a warning for an LSL construct that exploits a
popular list memory saving hack.
|
|
|
|
|
| |
logical and and logical or in LSL. Fixes Mantis #3174.
|
|
|
|
|
|
| |
CSCodeGeneratorTest.TestStringsWithEscapedQuotesAndComments unit test to
pass on Windows. Fixes Mantis #3104.
|
|
|
|
|
|
| |
Thank you, idb, for a patch that fixes the jump function in LSL.
|
|
|
|
| |
translating from LSL to C#. Thanks idb for the patch. Fix issue 2546.
|
|
|
|
|
|
|
| |
Thank you, idb, for a patch that fixes the conflicts of lsl identifiers
with c# keywords
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
in XEngine. This turned out to be a lot of work to catch up.
|
| |
|
|
|
|
|
|
| |
that slip in will not cause it to break
|
|
|
|
|
|
|
|
|
|
| |
It wraps constants in new LSLType(x), so that lists with
constant values are processed correctly. Contains changes to
the lsl.parser.cs that are not (yet) reflected in opensim-libs,
since this experimental patch affects XEngine only. Also contains
nuts.
|
|
|
|
|
|
| |
statements with no body.
|
| |
|
|
|
|
|
|
|
|
|
| |
Add a config option to OpenSim.ini to select between script compilers
in the XEngine without recompile.
Set UseNewCompiler=true in OpenSim.ini and try it out.
Creates the ICodeConverter interface and adapts the new compiler to it.
|
|
|
|
| |
user in-world
|
|
as well. Thanks Mike
|