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/