Babbage's blog: http://secondlife.blogs.com/babbage (note he doesn't use it anymore)

The serialize/deserialize is an excellent idea as an event or state. The idea itself to serialize was obviously thought about by the lindens. Something like if the events aren't defined then it would default to built-in serialization. Otherwise, call the defined event. This does not win in all cases as the method to serialize may take longer to execute than the built-in version. If you have a jet plane that moves quickly from one sim to another and the jet is loaded with avatars each with their own scripted attachments, you'll want the quickest method.

The hard part is how the microthreads are implemented. The video shows they have used code injection, by RAILS, to do the task switch. The VM I have does the task switch at a lower-level than the CIL, so no code injection is needed. It is stated that Mono and .NET are not fully CLS compliant. If non-compliant part means there are unmanaged pointers to worry about, it does become a complex issue.

I've messed with Linux kernal code and, if really needed, it would be easy to microthread at a very low-level. Microthread switch speed is not a high priority since there is known ways to improve its speed. (and gets off-topic as you suggest, but to get back on topic...)

There are many here that prefer to use Visual Studio and C# and most likely they want to include .NET's or Mono's library functions into their scripts on SL. Even if the first implementation of Mono on SL isn't one bit faster than LSL as it now exists, the ability to include standard library calls are a major improvement.

If you look at the "masterplan" in the video, you'll see how libSL fits right in. It shows CIL uploads, but not from the SL client. =)

Hugh Perkins wrote:
I understand this is off-topic, but OTOH I know Lindens do read the libsl newsgroups. Couldnt help thinking: if it's hard to move the script state from one sim to another, rather than trying very hard to do this, why not provide a couple of events to script developers: serialize and deserialize.

Serialize is called on your script just before you leave a sim. You write everything you want to store to a StreamWriter or equivalent.

Deserialize is called when your script arrives at its new sim.

Clearly this is less transparent than using LSL, but on the one hand many scripts dont cross sim boundaries, or dont care about resets, and on the other hand this allows script developers to harness the speed and power of .Net today.

If someone provides a URL to the blog, I can post this there instead.


_______________________________________________
libsecondlife-dev mailing list
libsecondlife-dev@gna.org
https://mail.gna.org/listinfo/libsecondlife-dev
http://www.libsecondlife.org/

Reply via email to