split codegen and vm
add error.c file
clarify the meanings of error functions
do not abort when meet a compilation error
place main.c under etc/
git file management