Eventually I will write some real documentation, for now here are a few notes. * No free()ing of heap allocated objects, since that's a pain and it's not necessary in this case because the amount of data allocated is proportional to the size of the (generally small) lua program that is parsed. * "dofile 'filename'" statements expanded inline at global scope. other dofiles (e.g. in expressions or inner scope) are not expanded since they might be conditional.