diff options
Diffstat (limited to 'transform.e')
| -rw-r--r-- | transform.e | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/transform.e b/transform.e index e987689..e6c4af5 100644 --- a/transform.e +++ b/transform.e @@ -2604,6 +2604,23 @@ allocate-transformation-state s" transformation-state" variable ~ (output buffer start, output point, input string pointer, delimiter pointer ~ -- output buffer start, output point) : log-load-transform + ~ : This is the start of the log-load routine, which is a long block of + ~ : code that has been processed by the log-load transform. It is part of + ~ : the warm-start routine, which does other things before and after it. + ~ : For clarity's sake, to avoid weird nesting, the section header above + ~ : calls this the warm-start section of the executable, but in a sense it + ~ : might be more accurate to call it the log-load section. + ~ : + ~ : The routine is interpreted Forth code, just as the warm-start routine + ~ : as a whole is; see above. + ~ : + ~ : The job of the log-load routine is to create runnable code in the + ~ : dynamic log, at runtime. The normal way to create a Forth executable + ~ : is to use label-transformed code to implement a minimal set of + ~ : functionality needed for the log-load routine to run, then invoke the + ~ : log-load routine to copy a more complete set of functionality into + ~ : memory. + main-input-buffer dup push-input-buffer 3roll attach-string-to-input-buffer |