Skip to main content

Toolkit for compiling and executing the Linden Scripting Language as Python

Project description

Lummao

Lummao is a toolkit for compiling and executing the Linden Scripting Language as Python. It aims to ease testing of LSL code by leveraging Python's existing ecosystem for debugging and testing. Think of it as the less opinionated, stupider cousin of LSLForge's unit testing framework.

The runtime is largely handled by the excellent implementation of LSL's basic operations and library functions from Sei Lisa's LSL-PyOptimizer. See vendor/lslopt for Lummao's vendored copy of LSL-Pyoptimizer.

To see an example input script and its Python output, see the test_resources directory.

Setup

pip install --upgrade pip
pip install lummao

From source

How

For a real-world example, see https://github.com/SaladDais/SLGraphPather's tests and test coverage reporting.

Along with the python API, a helper lummao script is provided that takes in an LSL file and outputs a python file. It can be invoked like lummao input.lsl output.py.

Why

If you've ever written a sufficiently complicated system in LSL, you know how annoying it is to debug your scripts or be sure if they're even correct. Clearly the sanest way to bring sanity to your workflow is to convert your LSL scripts to Python, so you can mock LSL library functions and use Python debuggers. Hence the name "Lummao".

TODO

  • Symbol shadowing behavior is not correct. Python has very different shadowing rules.
  • Provide mock helpers for:
    • inter-script communication
    • HTTP
    • auto-stubs for all functions
    • state-aware event queueing

License

GPLv3

Licensing Clarifications

The output of the compiler necessarily links against the GPL-licensed runtime code from LSL-PyOptimizer for functionality, and LSL-PyOptimizer does not provide a library exception in its license. You should assume that any LSL converted to Python by the compiler and any testcases you write exercising them must also be distributable under the GPL.

In short: If or when you distribute your testcases, you must also allow distribution of their direct dependencies (your LSL scripts) under the terms of the GPL. This does not necessarily change the license of your LSL scripts themselves, or require consumers of your scripts to license their own scripts under the GPL. It is perfectly possible to have an otherwise MIT-licensed or proprietary library with a GPL-licensed test suite. No distribution of testcases == no requirement to distribute under the GPL.

Suggested reading to understand your rights and obligations under the GPL when using a GPL-licensed test suite:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lummao-0.2.0.tar.gz (99.6 kB view details)

Uploaded Source

Built Distributions

lummao-0.2.0-cp38-abi3-win_amd64.whl (159.5 kB view details)

Uploaded CPython 3.8+ Windows x86-64

lummao-0.2.0-cp38-abi3-manylinux_2_24_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.24+ x86-64

lummao-0.2.0-cp38-abi3-macosx_10_15_x86_64.whl (194.5 kB view details)

Uploaded CPython 3.8+ macOS 10.15+ x86-64

File details

Details for the file lummao-0.2.0.tar.gz.

File metadata

  • Download URL: lummao-0.2.0.tar.gz
  • Upload date:
  • Size: 99.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for lummao-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0733ce8ab0b9758f0717cbded951c9238794dc1a44b72712cec73798fca52a51
MD5 965cf0a4b5064af66d0001083b13d237
BLAKE2b-256 8fd4cc8c6523759ad01e12d6f41c558640a431d7b6e27635e2ac1fc32433c4ce

See more details on using hashes here.

File details

Details for the file lummao-0.2.0-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: lummao-0.2.0-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 159.5 kB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for lummao-0.2.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a3b7070550ba88abadf30d61754873480cfe7c562628ac2d7e9158e414c5dca0
MD5 28a93da7283555a2eed3f3b68b75f30b
BLAKE2b-256 7b719f0ee8919d4d403e8e7e98092b448b3ff25c16d05a7782af5f0016e80717

See more details on using hashes here.

File details

Details for the file lummao-0.2.0-cp38-abi3-manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for lummao-0.2.0-cp38-abi3-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 d2195d5f6aa301308934cc37492793b329859237e185462225f391a69bc78774
MD5 825bcd39aa80e766d61b96645bffffae
BLAKE2b-256 f36e7b907ecf79c8d159f2838c8439b3c2f4bdf8bf7ee474a75b9d39c7134bb3

See more details on using hashes here.

File details

Details for the file lummao-0.2.0-cp38-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for lummao-0.2.0-cp38-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3c4e044bf4b52165ee09f26b68ab3920662d2c1aa9f219bb2e5c9cbb1112e512
MD5 84a4df3c5a93dbabab57aa53a91680a2
BLAKE2b-256 5d573dcb5d0ebe831a910f4bf26d3129bd93131352f8b9e0030705ff70d2575a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page