ABI spec file
  - ABI converter program?

File load
  - properly malloc area and do a block read when loading a file
  - allow for multiple code areas to be loaded
  - implement mechanism for checking validity of program counter
    against multiple code areas, with fast case where within the same
    area as the last check.
  - implement function to load new file, from within lightscript
  - implement function to unload file / code area, from within lightscript

Thread control
  - implement mechanism to kill threads from within lightscript
  - implement mechanism to enumerate running threads
  - implement mechanism to get a thread ID when spawning a thread
  - implement mechanism for a thread to get its own ID

Language features
  - some kind of thread scope storage, other than function-local variables
      - possibly a heap of some sort
  - some kind of inter-thread communication which doesn't rely on global
    variables and wait channels. Possibly some kind of queue implementation,
    perhaps tied to thread ID.
  - perhaps consider some kind of object-oriented features?
  - possibly, model objects as threads. consider some mechanism for making
    "method calls" - ie directing a thread to execute a function. This could
    be as simple as a queue and dispatcher model.
  - improved and better defined syntax and semantics
  - arrays

Compiler features
  - better type analysis
  - intermediate code
  - attributes on nodes to hold information such as type information
  - data flow analysis
  - liveness analysis
  - optimisation
  - better code generation
  - simplify code generator

Interpreter
  - command console
    - ability to launch threads
    - ability to issue commands
  - Priorities
  - Pre-emptive scheduling
  - Locking/synchronisation primitives

Debugger
  - breakpoints
  - watchpoints
  - single-step
  - concurrency model

Future pipedreams
  - implement plugins as .so
  - sufficiently generic DMX API to allow arbitrary DMX hardware
  - generic DSP engine configurable from within lightscript

Library functions
  - implement common patterns as library functions
  - show manager
  - chasers
  - cuesheet
  - moving light effects
  - disco system
  - mood selector
  - lighting console I/O and menus
  - generic fixture control

IDE
  - drag and drop objects to create shows using standard library functions
  - integrated editor
  - integrated compile and load into interpreter
  - create a simple show in 5 minutes
