Skip to main content

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:

Release files for lummao 0.1.4.post3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lummao 0.1.4.post3
File Size Uploaded
lummao-0.1.4.post3.tar.gz 97.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for lummao 0.1.4.post3
File Interpreter ABI Platform
lummao-0.1.4.post3-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details
lummao-0.1.4.post3-cp38-abi3-manylinux_2_24_x86_64.whl CPython 3.8 abi3 Linux glibc 2.24+ x86-64 Details
lummao-0.1.4.post3-cp38-abi3-macosx_10_15_x86_64.whl CPython 3.8 abi3 macOS 10.15+ x86-64 Details

Total release size: 2.7 MB

Release files / lummao-0.1.4.post3.tar.gz

Download URL lummao-0.1.4.post3.tar.gz
Size 97.9 kB
Tags Source
SHA-256 checksum
How to use checksums
fdf63985e094b67f0a4f0f015e72dd8f7482d1c3073dcab41801d14d8909b238
BLAKE2b-256 checksum
How to use checksums
1225de4ecb713f18a8d6d5263b5438582fe9cadc1719217c8003569c91847e4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.15

Release files / lummao-0.1.4.post3-cp38-abi3-win_amd64.whl

Download URL lummao-0.1.4.post3-cp38-abi3-win_amd64.whl
Size 158.2 kB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
83b3fa432329c1b8c13dd82414f7320c280b5255a7210ce5967e33f5487cfbb1
BLAKE2b-256 checksum
How to use checksums
a01ef67d040aba063a9f65b4a9652d5da756b9ce283b14cda1480a09363ccd69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.15

Release files / lummao-0.1.4.post3-cp38-abi3-manylinux_2_24_x86_64.whl

Download URL lummao-0.1.4.post3-cp38-abi3-manylinux_2_24_x86_64.whl
Size 2.2 MB
Tags CPython 3.8 Linux glibc 2.24+ x86-64 abi3
SHA-256 checksum
How to use checksums
77dcdc61e679eb3cd68b9fa1df37b5803bc8e996fa9569f5acc7d98fefa6cd31
BLAKE2b-256 checksum
How to use checksums
904682341fd646bcf9ec9d741e903e7dc30b3230dfebf890aff8390541fc7f73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.15

Release files / lummao-0.1.4.post3-cp38-abi3-macosx_10_15_x86_64.whl

Download URL lummao-0.1.4.post3-cp38-abi3-macosx_10_15_x86_64.whl
Size 194.4 kB
Tags CPython 3.8 abi3 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
5bb3fab4b962a8f15b0a00d19185824d9036085056f2a58fb688d4b15615a746
BLAKE2b-256 checksum
How to use checksums
83d33c663cc6cfd213e7af61087186bc3776c0677eae6028592abd16f1946ea2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.15

Release history Release notifications | RSS feed

0.5.2

4 release files

0.5.1

4 release files

0.5.0

4 release files

0.4.0

4 release files

0.3.1

4 release files

0.2.2

4 release files

0.2.1

4 release files

0.2.0

4 release files

This release

0.1.4.post3 This release

4 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page