Frames, heap and code pointers

LSL ByteCode uses a lot of pointers, both to memory (static frames, local/global, heap) as well as JUMP pointers. Some of these pointers exist during load, for example argument types, static data, jump positions, etc. While others are allocated and created dynamically during run-time. What they all have in common is that they point to … Read more

Stack issues

In my first attempt I used the .Net stack and did a direct translation from the LSO ByteCode. I found that there are a couple of problems related to that. First of all is the obvious problem that I stated earlier, I don’t know what datatype is in the stack – but many (most) .Net … Read more

LSL scripting support – Progress report

Ok, time for status update again… Status Code is currently able to convert from LSL ByteCode to .Net IL, compile it and save it to disk. I’ve moved the code from a quick and dirty hack (that compiled the first script) to a bit more organized. It’s still a mess, but that can be fixed … Read more

Making some progress

Today I found a “final bug” in my LSL ByteCode parser, and was able to get read seemingly clean ByteCode. I also made a quick hack of merging the CLR RunTime code generator with the LSL ByteCode parser, and compiled my first small function. It works! 🙂 Also writing the compiled script to a .dll-file. … Read more

.Net CLR Runtime

The first thing I did was to see if .Net CLR looked anything like LSL ByteCode at all. As expected it did. It should be possible to convert between the two. But because we need to have scripts cross sims, the standard way of doing things might not suffice. So, next question. How does one … Read more

LSO / LSL ByteCode

The task I’ve taken on me is to create script support for the OpenSim server. This involves reading the compiled LSL script (LSL ByteCode, machine code for those who haven’t heard of ByteCode) and executing it somehow. The plan is to convert LSL ByteCode into .Net ByteCode, passing it through .Net CLR (MSIL/.Net Assembly Language) … Read more