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