GSoC/GCI Archive
Google Code-in 2010 Parrot Foundation and The Perl Foundation

Remove logical_ VTABLEs

completed by: Matt Rajca

mentors: whiteknight

Task Description: Parrot Ticket #1655 calls for the removal of all logical_ VTABLEs. These VTABLEs should be removed, and replaced with calls to VTABLE_get_bool and the necessary C operators. For instance, VTABLE_not(interp, pmc) can be converted to:

!VTABLE_get_bool(interp, pmc);

VTABLE_logical_and(interp, pmca, pmcb) can be replaced with:

VTABLE_get_bool(interp, pmca) & VTABLE_get_bool(interp, pmcb)

Steps to Complete:

  1. Create a fork of parrot/parrot on Github
  2. Remove all the logical vtables from src/vtable.tbl
  3. Remove all instances of logical vtables from files in src/pmc/*.pmc
  4. Remove the entry for ticket #1655 from DEPRECATED.pod
  5. build Parrot and run all tests to make sure nothing is broken
  6. Remove any tests that explicitly rely on calling logical vtables directly, or overriding those vtables in child classes (ask if you are not sure)
  7. Open a pull request o github