I have been reading the source code of he virtual machine a bit and found some confusing things and other stuff that imho should change.
Most of this patches are merely stupid, so they are easy to fix and will reflect on a clenaer and reduced source code. I will probably submit other similar mails, because some of these patches can require a little discussion. Here it is my NOTES file: exec.c:37 -- confusing comment. remove it and use a enum to clarify src/exec.c:217 -- strange hack, looks ugly #if defined(EXEC_A_OUT) || defined(EXEC_COFF) /* for the trailing "_" */ obj->symbol_list_size++; #endif Can this code be removed? src/packout.c:336 -- better error message. show: "unsupported constant type (type=%d)", self->type) Question: - what's the binary format going to be used for floating point values? src/dynext.c:456 -- 2 in 1. no need to define lib_pmc var. lib_pmc = run_init_lib(interp, handle, lib_name, wo_ext); return lib_pmc; src/inter_cb.c:70 -- no need for pointers. the 'sig_str' variable can be removed. accessign directly to [1] and [2] chars of the cb_signature->strstart variable should be faster because it executes less steps and the stack size will be 4 bytes less --pancake