| 15 | |
| 16 | Tasks: |
| 17 | |
| 18 | * Write a small program (Perl 5 is fine, NQP-rx may be better) which parses src/vtable.tbl |
| 19 | * generate a dummy VTABLE |
| 20 | * each VTABLE entry should only fetch a PIR sub override and invoke it with the given arguments |
| 21 | * see lib/Parrot/Pmc2c/PMC/Object.pm around line 68 |
| 22 | * store this dummy VTABLE somewhere where the interpreter can get to it |
| 23 | * Add code to the NameSpace PMC to detect adding a vtable override |
| 24 | * when this happens, clone the current VTABLE (unless it's already been cloned once) |
| 25 | * swap in the appropriate pointer from the dummy VTABLE |
| 26 | * store the new VTABLE where instances of the class can use it |
| 27 | * (hands wave here; probably Class needs to install it for Object) |
| 28 | * add code to Class (or whatever stores the cloned version) to delete the cloned VTABLE |
| 29 | * Remove the special cases from lib/Parrot/Pmc2c/PMC/Object.pm |
| 30 | |
| 31 | That's it! |