evalEmpire/perl5ic — pull request #12 by schwern (2014-11-20 17:54:49+00:00)
Title: Turn unlink, chmod, chown, utime and kill into their own ops.

There's a bit of silly code which runs unlink, chmod, chown, utime and kill all through pp_chown which then calls Perl_apply which then is largely a huge case statement for each op. This is silly and confusing. The only thing these ops have in common is they're IO ops and they take a variable number of arguments. I discovered it after modifying pp_chown and suddenly chmod broke and spent a few hours figuring out how chmod wound up in chown.

The small common bits of Perl_apply() have been extracted into functions. Each op now has its own pp function. Perl_apply() is gone.

Since each function needs its own logic to determine if it errorred, this makes autodie much easier to implement.

* The VMS parts may not have been extracted properly. There may be some left over break statements from when the code was in a case statement.
* Perl_taint_if_args_are_tainted() is just my best guess at what the function does.
* There's likely plenty of opportunities now to clean up each extracted op.