Sat Jan 4 20:31:33 CET 2020

New sm.txt notes

This probably needs a separate blog thread.  I'm shuffling around many
ideas, but I really want to move this into an actual system.  I'm
tired of writing C for microcontrollers, and Rust is not the solution
in my case: I want something more model-based, macro-like.

I still want to "keep Haskell out of embedded".  Only as compiler,
where it should be the main tool.

- sm.h

  - limited nesting by making stack frames explicit

- A way to generate a static C program from a higher level functional
  description.  Something that can do:

  - Automatic async-style conversion

  - Smart re-use of closures (i.e. flat state structure where state
    updates are mutations, not copying in a new activation record).

- I want lisp-like syntax and constructs that can be easily
  implemented in C, but explicitly no arbitrary closures or

- Some way to formulate this so it makes sense on FPGA as well.  Where

  - messages are either actual bulk data lines, registers, or
    references to data stored in memory

  - tasks are state machines, or stored programs on a CPU

- Erlang as test target.  Either Core erlang, or just an interpreter
  for something simpler, written in Erlang proper.