Wrote a mini CSP in static C for bare metal uC work. Needs some real-world use testing still, but I like how it turns out to be fairly simple. github.com/zwizwa/uc_tool
Conversation
Replying to
You mean communicating sequential processes, right?
haskell2verilog is in another league than typescript2js !!! VERY impressive.
By static C, you mean no heap memory used at all?
1
Replying to
Yes. Synchronous channel send/receive. The Haskell->Verilog is only an embedding of a subset of Verilog into Haskell, not a full blown compiler. The gain there is to use Haskell's function for logic composition, and have Haskell as a meta language.
3
And static C indeed means no malloc() linked into the target. It still uses specialized memory pools with free lists so I guess it is still dynamic in some sense. It can do things like create a task on C stack, run sched in that stack frame, then kill task and return.

