The unified diff between revisions [ce9d6288..] and [891173fb..] is displayed below. It can also be downloaded as a raw diff.

This diff has been restricted to the following files: 'src/lsi/TODO'

#
# old_revision [ce9d628825328f2576769426f4d3544fe89a14ce]
# new_revision [891173fb957443aa4b4a92446e8e30e67c4d08fd]
#
# add_file "src/lsi/TODO"
#  content [d0cbd22f867d89e2b2062ca06d84ef323facbd43]
#
============================================================
--- /dev/null	
+++ src/lsi/TODO	d0cbd22f867d89e2b2062ca06d84ef323facbd43
@@ -0,0 +1,76 @@
+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