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

Reply via email to