braid
braid copied to clipboard
Main function in LLVM should either take argv/argc arguments or not exist at all
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.