On Tue, Apr 10, 2012 at 12:00 PM, Nick Wellnhofer <[email protected]> wrote:
> The attached patch contains are a rough attempt to initialize the VTables at
> run-time.
Looks great, +1 to commit!
Miscellaneous notes:
* cfish_bootstrap_parcel() will need a per-parcel name, I think.
* I savored seeing those silly "class_name_def" variables disappear!
* In VTable_bootstrap, why not just have self->name be an ordinary CharBuf
rather than a ViewCharBuf? OH! HAHAHA! Not bootstrapped yet! XD
* Good naming convention with "CFCBindClass_to_c_data",
"CFCBindClass_to_vtable_bootstrap" and "CFCBindClass_to_vtable_register".
* We're going to need to rework the Valgrind suppressions once things settle
down.
> I also tried to malloc the VTables dynamically, but this broke
> RAWPOSTING_BLANK where a VTable is used to initialize a global struct.
I've just committed a change that kills off RAWPOSTING_BLANK.
I suspect that the ZombieCharBuf EMPTY is also going to get in your way; I'll
look into deep-sixing that one later today.
There may be others; we'll just address them one-by-one until we can malloc
dynamically.
> The patch also moves the code to register the VTables from boot.c to
> parcel.c which seemed like the right place, because this initialization code
> does not depend on the host language.
+1, perfect!
Marvin Humphrey