|  |  | Compiler

# Compiler

GOO's compiler, g2c, compiles GOO source code to C. It lives within the `eval` module. During a given session, `g2c` recompiles only used modules that are either modified or use modified modules.

`<g2c-module-loader>` | `(<module-loader>)` | `C`
| a g2c module loader used in g2c builds. |
`g2c-def-app` | `(appname|<str> modname|<str> => <g2c-module-loader>)` | `M`
| constructs a g2c module loader to be used in future g2c builds. |
`g2c-build-app` | `(loader|<g2c-module-loader>)` | `M`
| translates GOO app into C in subdirectory of GOO's toplevel C directory named after loader's top modname. |
`g2c-goo` | `()` | `M`
| builds entire goo world. |
`g2c-test` | `(name)` | `M`
| changes destination directory to be `(cat "g2c-" (to-str name))`. This is useful for bootstrapping. |

|  |  | Compiler