Changes for version 0.18

  • ~~ Many, many documentation updates ~~
  • We now use Class::MOP::load_class to load all classes.

Changes for version 0.18_001

  • !! You must have Class::MOP 0.37_001 !! !! for this developer release to work !!
  • This release was primarily adding the immutable feature to Moose. An immutable class is one which you promise not to alter. When you set the class as immutable it will perform various bits of memoization and inline certain part of the code (constructors, destructors and accessors). This minimizes (and in some cases totally eliminates) one of Moose's biggest performance hits. This feature is not on by default, and is 100% optional. It has several configurable bits as well, so you can pick and choose to your specific needs.
  • The changes involved in this were fairly wide and highly specific, but 100% backwards compatible, so I am not going to enumerate them here. If you are truely interested in what was changed, please do a diff :)

Documentation

How to cook a Moose
Frequenty asked questions about Moose
The (always classic) Point example.
A simple BankAccount example
A lazy BinaryTree example
Subtypes, and modeling a simple Company class hierarchy
More subtypes, coercion in a Request class
The Moose::Role example
For when things go wrong with Moose

Modules

A complete modern object system for Perl 5
The Moose attribute metaclass
The Moose metaclass
The Moose Instance metaclass
A Moose Method metaclass
A Moose Method metaclass for accessors
Method Meta Object for constructors
Method Meta Object for destructors
A Moose Method metaclass for overriden methods
The Moose Role metaclass
A Moose Method metaclass for Roles
The Moose Type Coercion metaclass
The Moose Type Constraint metaclass
A union of Moose type constraints
The base object for Moose
The Moose Role
Type constraint system for Moose