I’ve added support for multithreading execution of script events. Only one object will be processed at the time. This will benefit from MultiCore CPU’s. Though it makes each call more expensive because we have to keep track of mutexed objects. Also added caching of event binding (function call) so we only use Reflection on first execution of a… Read More »


.Net does not allow unloading of assemblies. If you want to unload an assembly you have to unload the whole AppDomain. I’ve created AppDomainManager that handles creating AppDomain, finding a free AppDomain, loading scripts into it, and unloading AppDomains with no active scripts in them. Its purpose is to create AppDomains and put X number of scripts into… Read More »

llFunction interface/empty prototypes

Charles Krinkle has helped in adding interface and necessary empty prototype implementations of base class for the compiled script. Almost all functions has been implemented (they contain no code yet though). This helps me test the compiler on all kinds of scripts without getting errors. Thanks dude! :)

Leaving Digital Posters

I’m leaving my position in Digital Posters at end of August. In the first period I will be working as an independent consultant for my own company. This will hopefully give me some time to read and work on open source projects.

New status after Monday (and a milestone)

ScriptEngine has now been implemented! We have a default script that is placed in all objects. We have a “touch_start” event. And we have llSay() with output to server console. Once inventory is working we can bind user made scripts to user made objects. So now we can start implementing all 350+ builtin ll-functions. We will be able… Read More »

Status of LSL compiler

Status update LSL->C# Translator is close to complete. Needs bigger/more scripts to bughunt.Compiler is capable of compiling C# to .Net (invokes LSL->C# trans if needed).Script Manager is capable of loading and initializing script .Net Assembly. Missing:LSL BuiltIn command implementation.Event implementation.

How to contribute?

OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass.cs contains a s*load of empty functions. These are all the LSL-functions. And all needs to be implemented. Implement most important/most used first. There is a “World” object available (scene). Example of implementation:

LSL to C#

To compile LSL code I figured the best way would be to first translate it into C#.Since LL will be supporting both LSL and C# we can use the same translator on a web page or similar to help people who know LSL to understand C#.Also it is much simpler for other developers on OpenSim to contribute to… Read More »

Changing tactics

After a meeting with Babbage Linden in Zero Lindens office hours on thursday I realized that with the new Mono/.Net compiler they are implementing we will have to make a few adjustments. It was earlier assume that compilation would be done at client of both LSL and LSO, therefore I focused on making a LSO (LSL virtual machine)… Read More »