created the Class::MOP::Package and
Class::MOP::Module classes to more
closely conform to Perl 6's meta model
+
+ created Class::MOP::Class::Immutable
+ which can be used to "close" a class
+ and then apply some optimizations
* Class::MOP::Class
- now inherits from Class::MOP::Module
* Class::MOP::Instance
- added an is_inlinable method to allow other
classes to check before they attempt to optimize.
+ - added an inline_create_instance to inline
+ instance creation (of course)
+
0.29_02 Thurs. June 22, 2006
++ DEVELOPER RELEASE ++
=head1 SYNOPSIS
+ package Point;
+ use metaclass;
+
+ __PACKAGE__->meta->add_attribute('x' => (accessor => 'x', default => 10));
+ __PACKAGE__->meta->add_attribute('y' => (accessor => 'y'));
+
+ sub new {
+ my $class = shift;
+ $class->meta->new_object(@_);
+ }
+
+ sub clear {
+ my $self = shift;
+ $self->x(0);
+ $self->y(0);
+ }
+
+ __PACKAGE__->meta->make_immutable(); # close the class
+
=head1 DESCRIPTION
Class::MOP offers many benefits to object oriented development but it
=item B<make_metaclass_immutable>
+The arguments to C<Class::MOP::Class::make_immutable> are passed
+to this method, which
+
=over 4
=item I<inline_accessors (Bool)>