LSL-Plus

From Second Life Wiki
Jump to navigation Jump to search

LSL Plus Lslplus-merit-badge.jpg

LSL Plus is an offline IDE for editing and debugging of LSL code. LSL Plus is Free/Libre Open Source Software (FLOSS), meaning source is included when you download the software, and you are free to update it and redistribute it.

LSL Plus has the following features:

  • Source Level Debugging:
    • set breakpoints
    • single step through code
    • examine variables all the way up the call stack, including global variables
  • Typical IDE editor features:
    • source code completions
    • integrated information about types, names of built in function arguments
    • documentation hover support
    • auto indentation
    • syntax highlighting
  • A Extensive simulation framework for running multiple scripts and testing concurrency
    • Build an environment with avatars, objects, prims, inventory, etc.
    • Embed any number of scripts in any number of prims
    • Add specialized event handlers to simulate avatar actions or external services (e.g. HTTP servers)
    • Test link message, chat, inter-object email, sensors, touches
  • A Unit Testing framework:
    • specify the code entry point you want to test (a function, or a specific handler in a specific state).
    • specify the expect return value, and/or the expected change to the state of global variables
    • specify the external calls you expect the code to make
    • framework executes the code, checks results, displays test results, and test log.
  • Meta-language features: split your code up into reusable modules, test them separately. LSL Plus will create the combined, validated scripts for you for upload into Second Life.
  • Optimization support: inlining, constant folding, pruning of unused elements.
  • Integrated into Eclipse, giving you access to several integrated source code control systems (CVS, Subversion, etc.), Mylyn task management, etc.
  • Future directions:
    • Write LSL unit tests in LSL, instead of declaratively
    • Visualization support
    • Improved physics fidelity
    • And bug fixes (it is in late beta)
    • More scripting of Simulator events, for more interesting tests
    • Refactoring support