| | 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! |