[Opensim-dev] Place for osFoo functions that only work with certain languages

Mike Mazur mmazur at gmail.com
Thu Sep 11 10:03:14 UTC 2008


Hi,

On Thu, Sep 11, 2008 at 6:32 PM, Rob Smart <rob.s.smart at gmail.com> wrote:
>> >>LSL is Linden Scripting Language, and the authority on this is Linden
>> >>Labs. If we start adding new features to LSL, it ceases to become LSL.
>> >>It becomes LSL++ or something like that.
>
> Agreed it does become LSL++, however i think that boundary has already been
> crossed in OpenSim to a certain
> extent by offering osSetDynamicTextureURL and other extension functions. The
> scripts that use those are now not transferable back onto
> the Linden grid as there is no possible way to replicate that functionality
> there currently.

I believe you are confusing language and API.

osSetDynamicTextureURL() is an addition to the API provided by
OpenSim. All those llFunctions() are the standard Linden Labs API.
OpenSim provides additions to this API in the form of osFunctions()
that script authors can use.

A parallel to this is .NET: it provides a class for dealing with URIs.
This is built in to the standard .NET and Mono distributions. However
.NET doesn't provide XML-RPC functionality, so OpenSim uses a
third-part library for this. The functions provided by that
third-party library are available for use anywhere within the OpenSim
codebase, but that same code won't compile elsehwere without that
library being present.

Think of it this way, osFunctions() just provide more built-in
functions for you to use. You can even define your own custom
functions in your LSL script directly, and calling functions is
natively supported by the language. It is not LSL++, it's still 100%
pure LSL; none of this actually changes the language itself.

Supporting additional datatypes in LSL is much different. Now we're
talking about LSL++. Now we have to edit the very definition of the
language, its grammar, perhaps adding new keywords.

Let's assume we do this, and sometime down the road LL releases LSL
2.0 with a few extra features. It's entirely possible that those new
features will be incompatible with the extensions we've implemented.
That's a situation I would *not* like to be in ;)

Mike



More information about the Opensim-dev mailing list