mirror of
https://github.com/hsoft/collapseos.git
synced 2024-11-23 22:38:06 +11:00
2d9a07d215
This was becoming heavy to manage.
15 lines
540 B
Plaintext
15 lines
540 B
Plaintext
Compilation vs meta-compilation
|
|
|
|
Compilation vs meta-compilation. When you compile a word with
|
|
"[COMPILE] foo", it's straightforward: It writes the address
|
|
of word foo to HERE.
|
|
|
|
When you *meta* compile, it's a bit more mind blowing. It
|
|
fetches the address of the word specified by the caller, then
|
|
writes that number as a literal, followed by a reference to
|
|
",".
|
|
|
|
Example: ": foo [COMPILE] bar;" is the equivalent of ": foo bar
|
|
;" if bar is not an immediate. However, ": foo COMPILE bar ;"
|
|
is the equivalent of ": foo ['] bar , ;". Got it?
|