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.
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.
1
Replying to
I watched a few Haskell tutorials and it’s really beautiful (I did a small personal project with Elm that seems to be a subset of Haskell (and written in Haskell, too, IIRC))
Replying to
There’s a company here that uses Haskell quite a lot (they make industrial frame grabbers and image processing libs... If you are interested, I can introduce you :) you’d be a perfect fit imho)

