slavapestov/factor — Issue #293: Don't store redundant information in callstacks
Author: jckarter
Created: 2011-10-25 16:28:00+00:00
State: open

Factor callstack frames include the word address and stack frame size to help the garbage collector walk the callstack. However, both bits of information can be derived from the return addresses and program counter—the address should of course be within the word's code block, and once the word is known, since Factor functions have fixed stack frames, the stack frame size could be stored in the word. This would reduce the stack size and greatly simplify the function prolog/epilog, reducing the overhead of function calls in normal executions at the expense of slightly higher GC complexity.