Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

pdcawley (485)

  (email not shown publicly)
AOL IM: pdcawley (Add Buddy, Send Message)

Journal of pdcawley (485)

Sunday November 25, 2001
02:29 PM

Thinking about pre/post conditions

[ #1364 ]

So, I have Devel::Refactor doing extract_method, and I even have the beginnings of an emacs based browser (though for reasons that I still don't understand, it only works once per package per emacs session, time to go digging into EPL methinks) and I'm starting to think about what it needs to assume as before and after conditions.

At the very least, the code must compile cleanly both before and after any refactoring, and must allow for rolling back changes if the post conditions fail. Right now there's very little state kept in the refactoring engine, but I think that's going to change (or it'll be impossible to check that compilation succeeds after the refactoring.)

And it's got to deal with modules that contain multiple packages (I had hoped to use Schwern's Module::Info, but it doesn't do that part yet... shame.)



The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • That everyone is suddenly wanting to reinvent the module info/module tools wheel when Tom's pmtools [] were something Jarkko wanted to add to the core yet noone seemed interested in polishing up....

    • Well, having looked at pmtools that's mostly because what pmtools doesn't do anything that I need. At the very least I need object orientation. I want to be able to do:


      Or maybe:


      Where $class is one of the classes defined in a module. Tom's stuff is okay as far as it goes, but it doesn't go nearly far enough.
  • Module::Info 0.06 now has a packages_inside() method, implemented with a compiler backend module.