via janet
cli:
switch to different fiber to excute f's fn:
- compile (src/core/compile.c cfun janet_compile janetc_value macroexpand1 form-specific compilation janetc_pop_funcdef)
- evaluator (internal)
back in original fiber's run-context
:
- cli-main
- repl
- run-context
- parser/new
- parser/produce
- eval1
- in (src/core/corelib.c src/core/vm.c src/core/value.c src/core/table.c)
- run-context
- repl
- special forms -> spec->compile (src/core/compile.h src/core/specials.c)
- empty tuple -> janetc_cslot (src/core/compile.c)
- square bracket tuple -> janetc_tuple (src/core/compile.c)
- tuples which are calls -> janetc_call (src/core/compile.c)
- symbols -> janetc_resolve (src/core/compile.c)
- arrays -> janetc_array (src/core/compile.c)
- structs -> janetc_tablector (src/core/compile.c)
- tables -> janetc_tablector (src/core/compile.c)
- buffers -> janetc_bufferctor (src/core/compile.c)
- everything else (numbers, keywords, etc.?) -> janetc_cslot (src/core/compile.c)
a number of janetc_* call janetc_maker