Currently, the main function in generated LLVM programs takes no "normal" arguments and an environment structure pointer. However, the main function for executable programs should instead take the traditional C argc/argv arguments so it can be invoked. (As an additional optimization, we could even imagine disabling the environment pointer argument completely when a function has no free variables—and main is guaranteed to be closed.)
On the other hand, when we just want to link the generated code into a larger program, perhaps it would be nice to have an option to disable the main function altogether.
Currently, the
mainfunction in generated LLVM programs takes no "normal" arguments and an environment structure pointer. However, the main function for executable programs should instead take the traditional C argc/argv arguments so it can be invoked. (As an additional optimization, we could even imagine disabling the environment pointer argument completely when a function has no free variables—andmainis guaranteed to be closed.)On the other hand, when we just want to link the generated code into a larger program, perhaps it would be nice to have an option to disable the main function altogether.