The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.56

  • Class::MOP
    • we now get the &check_package_cache_flag function from MRO::Compat
    • All XS based functionality now has a Pure Perl alternative
      • the CLASS_MOP_NO_XS environment variable can now be used to force non-XS versions to always be used
  • Class::MOP::Attribute
    • add has_read_method and has_write_method
    • get_{read,write}_method_ref now wraps the anon-sub ref in the method metaclass when possible
      • added tests for this
  • Class::MOP::Immutable
    • added the ability to "wrap" methods when making the class immutable
  • Class::MOP::Class
    • now handling the edge case of ->meta->identifier dying by wrapping add_package_symbol to specifically allow for it to work.
      • added tests for this
  • Class::MOP::Attribute Class::MOP::Class Class::MOP::Immutable
    • any time a method meta object is constructed we make sure to pass the correct package and method name information
  • Class::MOP::Method Class::MOP::Method::Wrapped Class::MOP::Method::Generated Class::MOP::Method::Accessor Class::MOP::Method::Consructor
    • the &wrap constructor method now requires that a 'package_name' and 'name' attribute are passed. This is to help support the no-XS version, and will throw an error if these are not supplied.
    • all these classes are now bootstrapped properly and now store the package_name and name attributes correctly as well
  • ~ Build.PL has been removed since the Module::Install support has been removed

Modules

A Meta Object Protocol for Perl 5
Attribute Meta Object
Class Meta Object
A class to transform Class::MOP::Class metaclasses
Instance Meta Object
Method Meta Object
Method Meta Object for accessors
Method Meta Object for constructors
Abstract base class for generated methods
Method Meta Object to handle before/around/after modifiers
Module Meta Object
Object Meta Object
Package Meta Object
a pragma for installing and using Class::MOP metaclasses