nikodemus/foolang

faster calling convention

Closed this issue · 2 comments

  • Methods set up their own contexts, and receive the arguments as C-arguments.
  • Methods which only send a single message don't need to allocate a context at all, but can use their sender context.
  • Builtin methods can be additionally annotated as dynamicExtent, meaning their context can be stack-allocated, or noContext if they don't need a context at all. (Assumption being the compiler generates the context-allocating code for them automatically.)

Partially done on dev branch.

Stale thanks to the new runtime model and backend.