The unified diff between revisions [ce9d6288..] and [d9b0a732..] is displayed below. It can also be downloaded as a raw diff.
# # old_revision [ce9d628825328f2576769426f4d3544fe89a14ce] # new_revision [d9b0a732b453297cf427327bd78b4fc4258f15ee] # # add_file "src/lsi/TODO" # content [45f42f52d0fb924de1745a99d42478dda990e46e] # ============================================================ --- /dev/null +++ src/lsi/TODO 45f42f52d0fb924de1745a99d42478dda990e46e @@ -0,0 +1,78 @@ +ABI spec file + - script to create suitable declaration files + - check ABI version on load + - 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