Ticket #194 (closed RFC: wontfix)

Opened 13 years ago

Last modified 11 years ago

Review overriddable vtable interfaces

Reported by: whiteknight Owned by: whiteknight
Priority: normal Milestone:
Component: core Version:
Severity: medium Keywords: pmc pir override
Cc: Language:
Patch status: Platform: all

Description (last modified by whiteknight) (diff)

we should go through the list of vtable interfaces to make sure we are allowing overrides on all the interfaces that we need to use. Here is a list of vtable interfaces that currently don't appear to support overriding:

init
init_pmc
destroy*
mark*
get_attr_keyed
set_attr_keyed
can
isa_pmc
isa
does
does_pmc
type*
invoke (we have it, but it doesn't work correctly)
visit*
thaw*
thawfinish*
share_ro*

I've marked with a * some of the vtable entries above that really can't be overridden in PIR or that don't make sense to be. Are there any others from this list that should be overridable?

And while I'm at it, are there any methods currently that are overridable, but really shouldn't be?

Change History

Changed 13 years ago by whiteknight

  • description modified (diff)

Changed 13 years ago by whiteknight

"does" is now overridable. I suspect that we should probably allow overriding of does_pmc for symmetry. Are there any others that we would like to be able to override? I'm thinking "can" and "isa" might be nice. Any opinions?

Changed 13 years ago by coke

IMO, everything should be overridable without a documented rationale to the contrary.

Changed 13 years ago by allison

  • milestone 1.1 deleted

Changed 11 years ago by whiteknight

  • status changed from new to closed
  • resolution set to wontfix

I'm closing this ticket. It was an RFC that attracted very little attention. The list of overridable VTABLEs we have now is clearly sufficient for the needs of most HLLs. I sincerely hope that we completely redesign our object metamodel and completely reimplement the vtable system in the future, instead of needing to revisit issues like this.

Note: See TracTickets for help on using tickets.