1 Revision history for Perl extension Moose
5 - added all the meta classes to the immutable list and
6 set it to inline the accessors
8 * Moose::Meta::TypeConstraint
9 - some minor adjustments to make subclassing easier
11 * Moose::Meta::TypeConstraint::Union
12 - this is not a subclass of Moose::Meta::TypeConstraint
15 * Moose::Meta::TypeConstraint::Container
16 - added this module (taken from MooseX::AttributeHelpers)
17 to help construct nested collection types
18 - added tests for this
20 * Moose::Meta::Attribute
21 Moose::Meta::Method::Constructor
22 Moose::Meta::Method::Accessor
23 - fixed issue with overload::Overloaded getting called
25 - added tests for this
27 0.25 Mon. Aug. 13, 2007
29 - Documentation update to reference Moose::Util::TypeConstraints
30 under 'isa' in 'has' for how to define a new type
33 * Moose::Meta::Attribute
34 - required attributes now will no longer accept undef
35 from the constructor, even if there is a default and lazy
36 - added tests for this
37 - default subroutines must return a value which passes the
39 - added tests for this
41 * Moose::Meta::Attribute
42 * Moose::Meta::Method::Constructor
43 * Moose::Meta::Method::Accessor
44 - type-constraint tests now handle overloaded objects correctly
46 - added tests for this (thanks to EvanCarroll)
48 * Moose::Meta::TypeConstraint::Union
49 - added (has_)hand_optimized_constraint to this class so that
50 it behaves as the regular Moose::Meta::TypeConstraint does.
53 - large refactoring of this code
54 - added several more tests
55 - tests for subtle conflict resolition issues
56 added, but not currently running
59 * Moose::Cookbook::Recipe7
60 - added new recipe for augment/inner functionality
65 - a formal definition of roles (still in progress)
68 - utilities for easier working with Moose classes
69 - added tests for these
72 - This contains Moose specific test functions
73 - added tests for these
75 0.24 Tues. July 3, 2007
76 ~ Some doc updates/cleanup ~
78 * Moose::Meta::Attribute
79 - added support for roles to be given as parameters
80 to the 'handles' option.
81 - added tests and docs for this
82 - the has '+foo' attribute form now accepts changes to
83 the lazy option, and the addition of a handles option
84 (but not changing the handles option)
85 - added tests and docs for this
88 - required methods are now fetched using find_method_by_name
89 so that required methods can come from superclasses
90 - adjusted tests for this
92 0.23 Mon. June 18, 2007
93 * Moose::Meta::Method::Constructor
94 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
96 - Modify make_immutable to work with the new Class::MOP immutable
97 mechanism + POD + very basic test (groditi)
98 * Moose::Meta::Attribute
99 - Fix handles to use goto() so that caller() comes out properly on
100 the other side (perigrin)
102 0.22 Thurs. May 31, 2007
103 * Moose::Util::TypeConstraints
104 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
105 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
106 prototypes for functions
107 - added the ClassName type constraint, this checks for strings
108 which will respond true to ->isa(UNIVERSAL).
109 - added tests and docs for this
110 - subtyping just in name now works correctly by making the
111 default for where be { 1 }
112 - added test for this
114 * Moose::Meta::Method::Accessor
115 - coerce and lazy now work together correctly, thanks to
116 merlyn for finding this bug
117 - tests added for this
118 - fix reader presedence bug in Moose::Meta::Attribute + tests
121 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
122 a HASH-ref and missed. This produces better error messages then
123 having it die cause undef is not a HASH.
124 - added tests for this
126 0.21 Thursday, May 2nd, 2007
128 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
129 - modified unimport to remove super and inner along with the rest
130 - altered unimport tests to handle this
133 - altered super export to populate SUPER_SLOT
136 - altered augment and override modifier application to use *_SLOT
137 - modified tests for these to unimport one test class each to test
140 - fixed issue where custom attribute metaclasses
141 where not handled correctly in roles
142 - added tests for this
145 - fixed issue where extending metaclasses with
146 roles would blow up. Thanks to Aankhen`` for
147 finding this insidious error, and it's solution.
149 ~~ lots of spelling and grammer fixes in the docs,
150 many many thanks to rlb3 and Aankhen for these :)
152 0.20 Friday, April 6th, 2007
153 >> I messed up the SKIP logic in one test
154 so this release is just to fix that.
157 - 'has' now also accepts an ARRAY ref
158 to create multiple attrs (see docs)
159 (thanks to konobi for this)
160 - added tests and docs
162 0.19 Thurs. April 5th, 2007
163 ~~ More documentation updates ~~
165 * Moose::Util::TypeConstraints
166 - 'type' now supports messages as well
167 thanks to phaylon for finding this
168 - added tests for this
169 - added &list_all_type_constraints and
170 &list_all_builtin_type_constraints
171 functions to facilitate introspection.
173 * Moose::Meta::Attribute
174 - fixed regexp 'handles' declarations
175 to build the list of delegated methods
176 correctly (and not override important
177 things like &new) thanks to ashleyb
179 - added tests and docs for this
180 - added the 'documentation' attributes
181 so that you can actually document your
182 attributes and inspect them through the
184 - added tests and docs for this
187 - when loading custom attribute metaclasses
188 it will first look in for the class in the
189 Moose::Meta::Attribute::Custom::$name, and
190 then default to just loading $name.
191 - added tests and docs for this
193 * Moose::Meta::TypeConstraint
194 - type constraints now stringify to their names.
195 - added test for this
198 - added tests to assure we work with Module::Refresh
199 - added stricter test skip logic in the Moose POOP
200 test, ask Rob Kinyon why.
201 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
203 0.18 Sat. March 10, 2007
204 ~~ Many, many documentation updates ~~
207 - We now use Class::MOP::load_class to
209 - added tests to show types and subtypes
210 working with Declare::Constraints::Simple
211 and Test::Deep as constraint engines.
214 !! You must have Class::MOP 0.37_001 !!
215 !! for this developer release to work !!
217 This release was primarily adding the immutable
218 feature to Moose. An immutable class is one which
219 you promise not to alter. When you set the class
220 as immutable it will perform various bits of
221 memoization and inline certain part of the code
222 (constructors, destructors and accessors). This
223 minimizes (and in some cases totally eliminates)
224 one of Moose's biggest performance hits. This
225 feature is not on by default, and is 100% optional.
226 It has several configurable bits as well, so you
227 can pick and choose to your specific needs.
229 The changes involved in this were fairly wide and
230 highly specific, but 100% backwards compatible, so
231 I am not going to enumerate them here. If you are
232 truely interested in what was changed, please do
235 0.17 Tues. Nov. 14, 2006
236 * Moose::Meta::Method::Accessor
237 - bugfix for read-only accessors which
238 are have a type constraint and lazy.
239 Thanks to chansen for finding it.
241 0.16 Tues. Nov. 14, 2006
243 There are some speed improvements in this release,
244 but they are only the begining, so stay tuned.
247 - BUILDALL and DEMOLISHALL no longer get
248 called unless they actually need to be.
249 This gave us a signifigant speed boost
250 for the cases when there is no BUILD or
251 DEMOLISH method present.
253 * Moose::Util::TypeConstraints
254 * Moose::Meta::TypeConstraint
255 - added an 'optimize_as' option to the
256 type constraint, which allows for a
257 hand optimized version of the type
258 constraint to be used when possible.
259 - Any internally created type constraints
260 now provide an optimized version as well.
262 0.15 Sun. Nov. 5, 2006
264 This version of Moose *must* have Class::MOP 0.36 in order
265 to work correctly. A number of small internal tweaks have
266 been made in order to be compatible with that release.
268 * Moose::Util::TypeConstraints
269 - added &unimport so that you can clean out
270 your class namespace of these exported
274 - fixed minor issue which occasionally
275 comes up during global destruction
277 - moved Moose::Meta::Method::Overriden into
281 - moved Moose::Meta::Role::Method into
284 * Moose::Meta::Attribute
285 - changed how we do type checks so that
286 we reduce the overall cost, but still
289 - moved accessor generation methods to
290 Moose::Meta::Method::Accessor to
291 conform to the API changes from
294 * Moose::Meta::TypeConstraint
295 - changed how constraints are compiled
296 so that we do less recursion and more
297 iteration. This makes the type check
299 - moved Moose::Meta::TypeConstraint::Union
302 * Moose::Meta::Method::Accessor
303 - created this from methods formerly found in
304 Moose::Meta::Attribute
306 * Moose::Meta::Role::Method
307 - moved this from Moose::Meta::Role
309 * Moose::Meta::Method::Overriden
310 - moved this from Moose::Meta::Class
312 * Moose::Meta::TypeConstraint::Union
313 - moved this from Moose::Meta::TypeConstraint
315 0.14 Mon. Oct. 9, 2006
317 * Moose::Meta::Attribute
318 - fixed lazy attributes which were not getting
319 checked with the type constraint (thanks ashley)
320 - added tests for this
321 - removed the over-enthusiastic DWIMery of the
322 automatic ArrayRef and HashRef defaults, it
323 broke predicates in an ugly way.
324 - removed tests for this
326 0.13 Sat. Sept. 30, 2006
328 This version of Moose *must* have Class::MOP 0.35 in order
329 to work correctly. A number of small internal tweaks have
330 been made in order to be compatible with that release.
333 - Removed the use of UNIVERSAL::require to be a better
334 symbol table citizen and remove a dependency
335 (thanks Adam Kennedy)
337 **~~ removed experimental & undocumented feature ~~**
338 - commented out the 'method' and 'self' keywords, see the
339 comments for more info.
342 - added a FAQ and WTF files to document frequently
343 asked questions and common problems
345 * Moose::Util::TypeConstraints
346 - added GlobRef and FileHandle type constraint
347 - added tests for this
349 * Moose::Meta::Attribute
350 - if your attribute 'isa' ArrayRef of HashRef, and you have
351 not explicitly set a default, then make the default DWIM.
352 This will also work for subtypes of ArrayRef and HashRef
354 - you can now auto-deref subtypes of ArrayRef or HashRef too.
355 - new test added for this (thanks to ashley)
358 - added basic support for runtime role composition
359 but this is still *highly experimental*, so feedback
360 is much appreciated :)
361 - added tests for this
363 * Moose::Meta::TypeConstraint
364 - the type constraint now handles the coercion process
365 through delegation, this is to support the coercion
368 * Moose::Meta::TypeConstraint::Union
369 - it is now possible for coercions to be performed
371 - added tests for this (thanks to konobi)
373 * Moose::Meta::TypeCoercion
374 - properly capturing error when type constraint
378 - Scalar::Util 1.18 is bad on Win32, so temporarily
379 only require version 1.17 for Win32 and cygwin.
380 (thanks Adam Kennedy)
382 0.12 Sat. Sept. 1, 2006
384 - Recipe5 (subtypes & coercion) has been written
387 - fixed "bad meta" error message to be more descriptive
388 - fixed &unimport to not remove the &inner and &super
389 keywords because we need to localize them.
390 - fixed number of spelling/grammer issues, thanks Theory :)
392 **~~ experimental & undocumented feature ~~**
393 - added the method and self keywords, they are basically
394 just sugar, and they may not stay around.
397 - added &dump method to easily Data::Dumper
400 * Moose::Meta::TypeConstraint
401 - added the &is_a_type_of method to check both the current
402 and the subtype of a method (similar to &isa with classes)
405 - this is now a subclass of Class::MOP::Module, and no longer
406 creates the _role_meta ugliness of before.
407 - fixed tests to reflect this change
409 0.11 Wed. July 12, 2006
411 - added an &unimport method to remove all the keywords
412 that Moose will import, simply add 'no Moose' to the
413 bottom of your class file.
416 - fixed some test failures caused by a forgotten test
419 0.10 Thurs. July 6, 2006
421 - improved error message when loading modules so
422 it is less confusing when you load a role.
423 - added &calculate_all_roles method to
424 Moose::Meta::Class and Moose::Meta::Role
427 This module has been tested against Class::MOP 0.30
428 but it does not yet utilize the optimizations
429 it makes available. Stay tuned for that ;)
431 0.09_03 Fri. June 23, 2006
432 ++ DEVELOPER RELEASE ++
434 - 'use strict' and 'use warnings' are no longer
435 needed in Moose classes, Moose itself will
436 turn them on for you.
437 - added tests for this
438 - moved code from exported subs to private methods
439 in Moose::Meta::Class
442 - as with Moose, strict and warnings are
443 automatically turned on for you.
444 - added tests for this
447 - now handles an edge case for override errors
448 - added tests for this
449 - added some more edge case tests
451 0.09_02 Tues. May 16, 2006
452 ++ DEVELOPER RELEASE ++
454 - added prototypes to the exported subs
458 - added prototypes to the exported subs
461 * Moose::Util::TypeConstraints
462 - cleaned up prototypes for the subs
465 0.09_01 Fri. May 12, 2006
466 ++ DEVELOPER RELEASE ++
467 - This release works in combination with
468 Class::MOP 0.29_01, it is a developer
469 release because it uses the a new
470 instance sub-protocol and a fairly
471 complete Role implementation. It has
472 not yet been optimized, so it slower
473 the the previous CPAN version. This
474 release also lacks good updated docs,
475 the official release will have updated docs.
478 - refactored the keyword exports
479 - 'with' now checks Role validaity and
480 accepts more than one Role at a time
481 - 'extends' makes metaclass adjustments as
482 needed to ensure metaclass compatability
485 - refactored the keyword exports
486 - 'with' now checks Role validaity and
487 accepts more than one Role at a time
489 * Moose::Util::TypeConstraints
490 - added the 'enum' keyword for simple
491 string enumerations which can be used as
493 - see example of usage in t/202_example.t
496 - more careful checking of params to new()
499 - much work done on the role composition
500 - many new tests for conflict detection
501 and composition edge cases
502 - not enough documentation, I suggest
505 * Moose::Meta::Instance
506 - added new Instance metaclass to support
507 the new Class::MOP instance protocol
510 - some small changes to support the new
512 - some small additions to support Roles
514 * Moose::Meta::Attribute
515 - some improvements to the accessor generation code
517 - some small changes to support the new
519 - (still somewhat) experimental delegation support
520 with the 'handles' option
521 - added several tests for this
522 - no docs for this yet
524 0.05 Thurs. April 27, 2006
526 - keywords are now exported with Sub::Exporter
527 thanks to chansen for this commit
528 - has keyword now takes a 'metaclass' option
529 to support custom attribute meta-classes
530 on a per-attribute basis
531 - added tests for this
532 - the 'has' keyword not accepts inherited slot
533 specifications (has '+foo'). This is still an
534 experimental feature and probably not finished
535 see t/038_attribute_inherited_slot_specs.t for
536 more details, or ask about it on #moose
537 - added tests for this
540 - keywords are now exported with Sub::Exporter
542 * Moose::Utils::TypeConstraints
543 - reorganized the type constraint hierarchy, thanks
544 to nothingmuch and chansen for his help and advice
546 - added some tests for this
547 - keywords are now exported with Sub::Exporter
548 thanks to chansen for this commit
551 - due to changes in Class::MOP, we had to change
552 construct_instance (for the better)
554 * Moose::Meta::Attribute
555 - due to changes in Class::MOP, we had to add the
556 initialize_instance_slot method (it's a good thing)
558 * Moose::Meta::TypeConstraint
559 - added type constraint unions
560 - added tests for this
561 - added the is_subtype_of predicate method
562 - added tests for this
564 0.04 Sun. April 16th, 2006
566 - Roles can now consume other roles
567 - added tests for this
568 - Roles can specify required methods now with
569 the requires() keyword
570 - added tests for this
573 - ripped out much of it's guts ,.. much cleaner now
574 - added required methods and correct handling of
575 them in apply() for both classes and roles
576 - added tests for this
577 - no longer adds a does() method to consuming classes
578 it relys on the one in Moose::Object
579 - added roles attribute and some methods to support
580 roles consuming roles
582 * Moose::Meta::Attribute
583 - added support for triggers on attributes
584 - added tests for this
585 - added support for does option on an attribute
586 - added tests for this
589 - added support for attribute triggers in the
591 - added tests for this
594 - Moose no longer creates a subtype for your class
595 if a subtype of the same name already exists, this
596 should DWIM in 99.9999% of all cases
598 * Moose::Util::TypeConstraints
599 - fixed bug where incorrect subtype conflicts were
601 - added test for this
604 - this class can now be extended with 'use base' if
605 you need it, it properly loads the metaclass class now
606 - added test for this
608 0.03_02 Wed. April 12, 2006
610 - you must now explictly use Moose::Util::TypeConstraints
611 it no longer gets exported for you automatically
614 - new() now accepts hash-refs as well as key/value lists
615 - added does() method to check for Roles
616 - added tests for this
619 - added roles attribute along with the add_role() and
621 - added tests for this
624 - now adds a does() method to consuming classes
625 which tests the class's hierarchy for roles
626 - added tests for this
628 0.03_01 Mon. April 10, 2006
630 - added new Role recipe (no content yet, only code)
633 - added 'with' keyword for Role support
634 - added test and docs for this
635 - fixed subtype quoting bug
636 - added test for this
640 - added test and docs
642 * Moose::Util::TypeConstraints
643 - added the message keyword to add custom
644 error messages to type constraints
647 - the meta role to support Moose::Role
648 - added tests and docs
651 - moved a number of things from Moose.pm
652 to here, they should have been here
655 * Moose::Meta::Attribute
656 - moved the attribute option macros here
657 instead of putting them in Moose.pm
659 * Moose::Meta::TypeConstraint
660 - added the message attributes and the
662 - added tests and docs for this
664 0.03 Thurs. March 30, 2006
666 - added the Moose::Cookbook with 5 recipes,
667 describing all the stuff Moose can do.
670 - fixed an issue with &extends super class loading
671 it now captures errors and deals with inline
672 packages correctly (bug found by mst, solution
674 - added super/override & inner/augment features
675 - added tests and docs for these
678 - BUILDALL now takes a reference of the %params
679 that are passed to &new, and passes that to
682 * Moose::Util::TypeConstraints
683 - Type constraints now survive runtime reloading
684 - added test for this
687 - fixed the way attribute defaults are handled
688 during instance construction (bug found by chansen)
690 * Moose::Meta::Attribute
691 - read-only attributes now actually enforce their
692 read-only-ness (this corrected in Class::MOP as
695 0.02 Tues. March 21, 2006
697 - many more tests, fixing some bugs and
699 - &extends now loads the base module with
701 - added UNIVERSAL::require to the
704 - each new Moose class will also create
705 and register a subtype of Object which
706 correspond to the new Moose class.
707 - the 'isa' option in &has now only
708 accepts strings, and will DWIM in
711 * Moose::Util::TypeConstraints
712 - added type coercion features
713 - added tests for this
714 - added support for this in attributes
715 and instance construction
717 - type construction no longer creates a
718 function, it registers the type instead.
719 - added several functions to get the
723 - BUILDALL and DEMOLISHALL were broken
724 because of a mis-named hash key, Whoops :)
726 * Moose::Meta::Attribute
727 - adding support for coercion in the
728 autogenerated accessors
731 - adding support for coercion in the
732 instance construction
734 * Moose::Meta::TypeConstraint
735 * Moose::Meta::TypeCoercion
736 - type constraints and coercions are now
737 full fledges meta-objects
739 0.01 Wed. March 15, 2006
740 - Moooooooooooooooooose!!!