| Commit message (Collapse) | Author | Files | Lines |
|
continue to generate C# that is functionality identical to historical generation
This is to eliminate disruption until co-op termination has been well-tested.
In non co-op mode, XEngine will continue to load DLLs of the existing Script class and the new XEngineScript class.
Moving to co-op mode still requires existing script DLL deletion to force recompilation, either manually or by setting DeleteScriptsOnStartup = true for one run.
This change also means that scripts which fail to initialize do not still show up as running scripts.
|
|
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.
|
|
OnObjectRemoved just once in the UrlModule itself, rather than repeatedly for every script.
Doing this in every script is unnecessary since the event trigger is parameterized by the item id.
All that would happen is 2000 scripts would trigger 1999 unnecessary calls, and a large number of initialized scripts may eventually trigger a StackOverflowException.
Registration moved to UrlModule so that the handler is registered for all script engine implementations.
This required moving the OnScriptRemoved and OnObjectRemoved events (only used by UrlModule in core) from IScriptEngine to IScriptModule to avoid circular references.
|
|
Adding ability to place script engine assemblies outside
the codebase directories.
Uses new [XEngine] option: ScriptEnginesPath = "path_to_assemblies"
Signed-off-by: Melanie <melanie@t-data.com>
|
|
It was used. By the API, which is dynamically loaded. So it didn't complain
until it hit Bamboo
This reverts commit 33d5018e94e52cb875bf43bced623bdc6aa41ef0.
|
|
|
|
local file. This caused llHttpRequest and llSetInventoryPermsMask to fail
on regions that load their config from a web server
|
|
LICENSE.txt.
|
|
UUIDs with a central marshaller for grids, or publish the ULS for objects
elsewhere.
|
|
of objects from the scene, and of scripts from objects. This facilitates
the development of modules that can register prims with externall servers
for inbound email and XMLRPC. Currently implemented in XEngine only.
Also applying cmickeyb's compiler locking patch, since it seems risk-free.
|
|
|
|
OpenSim.Region.Environment into a "framework" part and a modules only
part. This first changeset refactors OpenSim.Region.Environment.Scenes,
OpenSim.Region.Environment.Interfaces, and OpenSim.Region.Interfaces
into OpenSim.Region.Framework.{Interfaces,Scenes} leaving only region
modules in OpenSim.Region.Environment.
The next step will be to move region modules up from
OpenSim.Region.Environment.Modules to OpenSim.Region.CoreModules and
then sort out which modules are really core modules and which should
move out to forge.
I've been very careful to NOT BREAK anything. i hope i've
succeeded. as this is the work of a whole week i hope i managed to
keep track with the applied patches of the last week --- could any of
you that did check in stuff have a look at whether it survived? thx!
|
|
Not implemented yet in DotNetEngine.
Fixes Mantis #2830
|
|
No user functionality yet
|
|
|
|
Causes the dataserver event to return "OpenSim" when running on OpenSim.
Requires ThreatLevel to be "High" or above to function.
|
|
The binaries are still different, but that is only a small step away now.
The OSSLPrim has been removed. This commit will breal all scripts
using Prim.Scale(), etc, syntax. It was not secure and will have to
be brought back in another form.
|
|
|
|
The entire LSL API is now in the single, shared file
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api_Base.cs
This is for both engines. The OSSL function are still separate.
|
|
LSL implementation files. Rename lots of stuff in XEngine for the same
reason. Move methods between interfaces. Just refactor stuff.
|
|
all methods needed outside the API ststic. Async command processing
is now wholly internal to the API. This sets the stage for the next
convergence step.
|
|
|
|
|
|
This allows cross-api method calls on the implementation and also allows
"Meta APIs" that only provide common functionality to other APIs
|
|
* This is a HUGE OMG update and will definitely have unknown side effects.. so this is really only for the strong hearted at this point. Regular people should let the dust settle.
* This has been tested to work with most basic functions. However.. make sure you back up 'everything' before using this. It's that big!
* Essentially we're back at square 1 in the testing phase.. so lets identify things that broke.
|
|
which is a thin wrapper around a IWorkItemResult from the SmartThreadPool.
However, it is very easy to reimplement on top of basic threading and therefore
makes the IScriptInstance class independent of the specific threading
implementation.
|
|
llDetectedLink(). Also a small refactor to remove an interface member
from IScriptEngine.
|
|
engines that want to use the XEngine's instance handling and state
persistence can do so. IScriptInstance is optional, but it does
require the SmartThreadPool if it is used.
|
|
Fix a script Xengine deadlock/hang if llResetScript is used in changed()
|
|
Another new OSSL function for returning the name of the script engine
currently running, osGetScriptEngineName, added to both DotNet and XEngine
OSSL API.
|
|
not break trunk.
|
|
api and compiler out of XEngine"
"First stage in a major Script Engine refactor, that will result in the LSL implementaions ebing reconverged. Not there yet, but one major part is done."
Thank you, Melanie!
|
|
(this took a while to run).
|
|
|
|
Changed LogBase to ConsoleBase, which handles console I/O.
This is mostly an in-place conversion, so lots of refactoring can still be done.
|
|
OpenSim in 32-bit mode.
Fixed ScriptEngine.Common startup problems.
|
|
Added comments and regions, restructured code
Changed a lot of AppDomain junk from console from using Console.Write to Log.Verbose and set it to #if DEBUG
All modules should now refresh their configuration runtime
Made all logging in ScriptEngine.Common get script name from actual engine
Renamed LSLLongCmdHandler to AsyncLSLCommandManager
Added auto-recover with 5 sec throttle for new MaintenanceThread
|
|
Moved DotNetScriptEngine configuration to config file.
Added option to share script execution threads between regions.
|
|
|
|
ScriptEngine.Common, only .Net-specific code in DotNetEngine. AppDomains, event handling, event execution queue and multithreading, script load/unload queue, etc has been moved to ScriptEngine.Common.
Loads of things has been put into interfaces instead of the specific class.
We are now one step closer to ScriptServer, and its very easy to implement new script languages. Just a few lines required to make them a OpenSim script module with all its glory.
|
|
can not access Scene it sort of crashes right away ;)
Added some sample placeholders for implementing rest of LSL events.
|
|
ScriptServer event pipe (OpenSim->ScriptServer->ScriptEngine) should in theory be done
|
|
table between local script ID and remote script ID missing)
|
|
|
|
* shortened references
* Removed redundant 'this'
* Normalized EOF
|
|
notice of doom
|
|
* Shortened type references
* Removed redundant 'this' qualifier
|
|
loaded so that they may read out any bits they are interested in
|
|
* Introduced ModuleLoader.PickupModules that currently picks up IRegionModule:s from /bin
* Made LogBase thread-safe (or at least not thread-ignorant)
* Ignored some genned files
|
|
will happen on the windows side now that eol-style is correct
|