Introduction to Linden Scripting Language
prostoalex writes "Dr. Dobb's Journal runs a lengthy introduction to Linden Scripting Language, the language behind avatars and their interaction in Second Life: "LSL is a scripting language that runs server-side, on a piece of software called the simulator. The simulator does just what it's name implies — it simulates the virtual world of Second Life. Each simulator runs everything for 16 acres of virtual land — buildings, physics, and of course, scripts. While you manipulate the script text in a form that is somewhat easy to read, the actual code that runs on the simulator is compiled. A compiler is a piece of software that takes the text version of the script and converts it into something that can actually run. In the case of LSL, the compiler exists within the Second Life viewer itself. In the future, it is likely that the compiler will move from the viewer into the Second Life simulators, but where the code is compiled isn't very important. What matters is that the text is converted into a form that can run on the simulators.""
Great, just what the world needs, another scripting language.
Is this a way for Linden Labs (and possibly for others) to provide closed source scripts and objects? This seems to be a very possible thing with such technology.
What if someone only made available a compiled copy of something? It'd be scary if you can't tell what's really going on with all the stuff.
Credit where credit's due, it's important to note that LSL is the first scripting language to have furry specific classes. This is an oft-overlooked aspect of modern languages.
Duh!
There was talk about converting the server-side scripting engine to Mono, with huge (50x) performance gains. There was supposed to be a LSL->CIL compiler at first, then libraries for other .Net languages.
Has anyone heard anything about this recently?
Has anyone written a webserver in it yet?
"A compiler is a piece of software that takes the text version of the script and converts it into something that can actually run."
Glad that's all cleared up!
AT&ROFLMAO
The summary quote uses 108 words to explain that there exists a compiler for this language.
Well, if it is running on the simulators, the simulated humans might be given access to it, and thus being able to script their own lifes!
Well, maybe I should try if those scripts already work on our world!
The Tao of math: The numbers you can count are not the real numbers.
hello class, this is a COM-PU-TER. computers run a set of instructions called a PROOOGRAAAM. programs are nothing but 1's and 0's. heheheh, but we don't program in 1's and 0's, we program in a language, such as linden script. another computer program, called a com-pi-ler, compiles the script into a format the computer can understand. ok, class, this is a DISK DRIVE . . .
sheesh, i thought this was
(actually, it must be -- even *I* am complaining about the summaries...)
mr c
"Physics is like sex. Sure, it may give some practical results, but that's not why we do it." - R. Feynman
And why is he allowed to publish his journal if he doesn't know when to use "it's" vs. "its"?
Can I use it to make me that father of Anna Nicole Smith's baby?
Doesnt the C in C# stand for Canines? Everyone keeps saying its a language to sink your teeth into.
Compilation is also very possible with Python (Freeze, cx_Freeze, py2exe, and PyInstaller) and Perl (Perl2Exe, PerlBin). I'm not sure exactly why they're reinventing the wheel with this scripting language, because compilation is not a unique feature by any stretch of the imagination.
Systemd: the PulseAudio of init systems
Comment removed based on user account deletion
http://psyco.sourceforge.net/introduction.html
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
I was expecting a tutorial on how to program an army of flying penises to interrupt a virtual press conference...
http://codespeak.net/pypy/dist/pypy/doc/news.html
http://mark.dufour.googlepages.com/
are also among the many python->machine code projects.
Nerd rage is the funniest rage.
...or have done, really. The language is a bastard child of C, basically. Its major problem is its lack of arrays; you have a strange construct called a list that sort of does the same thing, but I really don't know why it's there instead of arrays. LSL is fairly underpowered. What I've taken to doing is using its HTTP system, though, to ping my web server, do something, and feed it back into the game. To do anything really impressive with LSL, it does seem to take an outside server to do the heavy lifting. It's kind of fun, though...
"You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
I've never done 2nd life. What happens if you stand at the border and throw a rock into the next region?
OK, I guess there's probably some handoff mechanism. But I have to say that I find the "physics" of 2nd life disappointing. In the real world, there's an enormous cost in time and energy in moving stuff from place to place. That's an important part of our economy. In 2nd life, they've gone to a lot of trouble to create a serious economic system — but you can still wave your hands and move around arbitrarily — even fly.
I turn my back for a couple of years and they're publishing articles where the authors find it necessary to explain what types like integers and floats are?
The LSL Wiki http://www.lslwiki.com/ went down permanently in mid-January when a new, more stable wiki was started as a part of the official Linden Lab Wiki http://wiki.secondlife.com/.
In its defense, it did say it was a "primer", targeted at beginners. Chances are, it was lifted from the SL book itself.
LSL has a lot of limitations, some of which can be gotten around. However, the biggest issue is that LL is constantly breaking crap in their futile effort to scale their unscalable grid design to support the "millions of new residents" brought in from all the hype.
-SS "Teach the ignorant, care for the dumb, and punish the stupid."
So that's what a compiler does\ldots
It is Linden Lab not Linden Labs.
Pau aka Seeker Gray
I just signed up with SL - I notice they want some heavy access if you are using paypal...
PAYPAL BILLING AGREEMENT FOR PREAPPROVED PAYMENTS
This Policy was last modified on August 1, 2006
1. General Agreement between Buyer and Merchant
A merchant with specific transactional needs may ask you to enroll in a PayPal Billing Agreement. When enrolling in any Billing Agreement with a Merchant, you are giving that Merchant permission to access funds from your PayPal account according to arrangements made between you and the Merchant. If you enroll, you are giving the Merchant the ability to charge your PayPal account on a one-time, sporadic, or recurring basis until you cancel the specific Billing Agreement from the PayPal website. PayPal facilitates the transaction between you and the Merchant, but does not enforce contractual obligations for payment from you or for delivery of goods or services by the Merchant. Any grievances may be addressed according to PayPal's Buyer Complaint Policy.
2. Waiver of Advance Notice
When a merchant charges your PayPal account, and PayPal withdraws funds from your bank account, you have the right to insist on 10 days' advance notice before the payment is pulled from your bank account. This is designed to protect you as a consumer from insufficient funds charges. By signing up for this Billing Agreement, you are agreeing to get this advance notice only when your total payments to a merchant exceed the billing limit. At any time, you may set another funding source as your preferred method of payment or you may disable your bank account entirely from all Billing Agreements. To do so, please click the 'Edit Funding Sources' link below or access your account profile.
3. Specific Billing Agreement
Each Merchant must secure your acceptance of the Billing Agreement independently. Each Billing Agreement is only effective for the single Merchant with whom it was entered into.
4. Funding Source Use
When the Merchant charges your PayPal Account, PayPal will always attempt to withdraw funds from your PayPal balance first. If funds in your balance are insufficient, PayPal will look for and attempt to charge a Preferred Funding Source that you have set up for a specific Billing Agreement. You will have the option to select a Preferred Funding Source during enrollment, and can update or deselect this Preferred Funding Source at any time through the PayPal website. If the Preferred Funding Source fails (for example, a credit card expires), then PayPal will use other available funding sources within your PayPal Account. You will have the ability to disable funding sources for use with all Billing Agreements, with the exception that if you have one or more credit or debit cards linked to your PayPal account, then at least one of those cards must be enabled for billing. You will be able to disable or enable funding sources for use with all Billing Agreements both within the enrollment flow, and from the Account Profile on the PayPal website.
And to do all of the world scripting, no less? No wonder that place is full of perverts!
Rob
While it's been a few months since I last used SL, the scripting language leaves much to be desired.
It is EASY for someone to write a script that bogs down the server. Also scripts can be automated and self replicating. There was a problem a while back (Not sure if it's still an issue) about someone writing scripts that fly around really high (higher than a normal user can go without scripting super powers into a worn object) scanning land blocks for land for sale. It then alerted the owner of the script if anyone mistakenly setup some land for sale really cheap. It would randomly lag everyone as it passed by. The flying object was not just set really high in the sky, but also invisible. Since it moved at such speed, it took a while for people to even come to the conclusion that they even existed.
Fun stuff.
SearchIRC - Now with live chat directory!
Care to enlighten me?
Change is certain; progress is not obligatory.
What surprised me in SL.. was how easy I can understand objects and their parralel states... when i see them in 3D during development.. someone can say its small unimportant feature.. but i can understand much better code once i see it deeply 360.
.. but probably they use already some better 3d code visualisation
If somebody does massive parallel application.. try second life as your design playground
1) How do you make something like a really big gun that can shoot things in second life? ;-)
2) Where is the microsoft headquarters in second life?
If you understand the fundamental concepts, learning the particular syntax of any given language is not a big deal at all. And the idea that creating a language specifically suited for a task is bad is crazy. Creating languages is very easy if you do it intelligently (linden did not of course). Using languages which make compiler/interpreter creation easy like ML makes this downright trivial. You end up saving alot of time writing the ideal language and using that vs making do with a language that is not designed for the task at hand. Do yourself a favour and read SICP. Or if you like, take the opencourseware version of the class: http://ocw.mit.edu/OcwWeb/Electrical-Engineering-a nd-Computer-Science/6-001Spring-2005/CourseHome/
I am hitting you with a rolled up newspaper right now. A list is not a dynamic heterogenous array, its not even close. First of all, lists contain all the same thing, just like arrays do. If you want to have a list of different things, you need to use a list of variant types (or their shitty half-assed C version unions). Second, its not a dynamic array, that's a vector. An array is a contigous block of items, accessed in 0(1) time, but cannot be inserted into. A list is individual items, each containing a pointer to the next. This makes access O(n) but insertion is now possible (and 0(1)). Faking insertion with an array involves creating a new array and copying the old contents with the new elemented inserted into it.