Dan Sugalski wrote:
> get_value
> set_value
Wouldn't these go on the SV and not on the inner type? Maybe I'm
thinking value when you're saying variable? The following seem useful
on variables too:
before_get_value
after_get_value
before_set_value
after_set_value
There ought to be specializations of get_value and set_value
that call these hooks if they're defined -- no sense in making the
normal case slow.
We also need GC functions:
allocation_size -- size of required (or actual) allocation
children -- nested SV *s (for live object traversals)
move -- move object to new memory location
resize_granted -- object's resize request was granted
finalize -- release private resources before destruction
The clone function should take a depth parameter so that lazy
deep copies can be type specific.
Is is_same an identify function? Or does it check the type? Either
way it seems like that could be implemented on the SV and not on every
type.
What purpose do the logical_* functions serve? Shouldn't there just be
one is_true function that the logical_* ops call?
Persistence functions would be really useful too:
freeze
thaw
I'm not too worried about getting the vtbl right at the first because
it will be pretty obvious how it should go once the code starts to form.
- Ken