mirror of
git://c9x.me/qbe.git
synced 2026-04-05 18:09:47 +00:00
Compiling languages with closures often requires passing an extra environment parameter to the called function. One solution is to use a convention, and reserve, say, the first argument for that purpose. However, that makes binding to C a little less smooth. Alternatively, QBE now provides a way to remain fully ABI compatible with C by having a "hidden" environment argument (marked with the keyword 'env'). Calling a function expecting an environment from C will make the contents of the environment undefined, but the normal arguments will be passed without alteration. Conversely, calling a C function like it is a closure by passing it an environemnt will work smoothly. |
||
|---|---|---|
| .. | ||
| abifuzz.sh | ||
| callgen.ml | ||
| cra.sh | ||
| lexh.c | ||
| pmov.c | ||
| unit.sh | ||
| vatest.py | ||