Fri Jul 31 20:10:59 EDT 2020

Implementing actors

Bookkeeping seems heavy.  I find I need:
- doubly linked list
- backpointer to scheduler
- status bit

That's 4 words. Not very lightweight.

Using indirect bookkeeping: 15 bits for task pointers, no backpointer
to scheduler (store it elsewhere), and 2 bits left for flags.

Is it worth the trouble?

Probably not.

EDIT: Worked on this a bit more.  The main issues I end up with are
related to memory allocation for task and message queue structs, and
also it seems that blocking might be necessary, e.g. when a mailbox is
full, a task needs to block.

From these the conlusion is that actors might not be a great
abstraction for low level implementation, but they would work much
better if memory allocation wasn't such an ordeal.

Practically though, I do not really have many cases where the tasks
are going to be very dynamic.  So let's not worry about that part.