Gavan Fantom
18 years ago
1 changed files with 78 additions and 0 deletions
@ -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 |
Loading…
Reference in new issue