adding the applied_traits method to attr
[gitmo/Moose.git] / Changes
CommitLineData
e522431d 1Revision history for Perl extension Moose
2
c2922d69 30.41
004222dc 4 ~~ numerous documentation updates ~~
547dda77 5
6 - Changed all usage of die to Carp::croak for better
7 error reporting (initial patch by Tod Hagan)
004222dc 8
c2922d69 9 ** IMPORTANT NOTE **
10 - the make_immutable keyword is now deprecated, don't
11 use it in any new code and please fix your old code
12 as well. There will be 2 releases, and then it will
13 be removed.
14
6c36eeaa 15 * Moose
16 Moose::Role
17 Moose::Meta::Class
18 - refactored the way inner and super work to avoid
19 any method/@ISA cache penalty (nothingmuch)
20
4078709c 21 * Moose::Meta::Class
22 - fixing &new_object to make sure trigger gets the
23 coerced value (spotted by Charles Alderman on the
24 mailing list)
25 - added test for this
26
51c107ef 27 * Moose::Meta::Method::Constructor
28 - immutable classes which had non-lazy attributes were calling
29 the default generating sub twice in the constructor. (bug
30 found by Jesse Luehrs, fixed by Dave Rolsky)
31 - added tests for this (Dave Rolsky)
ae8d63f2 32 - fix typo in initialize_body method (nothingmuch)
33
34 * Moose::Meta::Method::Destructor
35 - fix typo in initialize_body method (nothingmuch)
51c107ef 36
6c36eeaa 37 * Moose::Meta::Method::Overriden
38 Moose::Meta::Method::Augmented
39 - moved the logic for these into their own
40 classes (nothingmuch)
41
5e98d2b6 42 * Moose::Meta::Attribute
aed87761 43 - inherited attributes may now be extended without
2ea379cb 44 restriction on the type ('isa', 'does') (Sartak)
cf12a691 45 - added tests for this (Sartak)
547dda77 46 - when an attribute property is malformed (such as lazy without
47 a default), give the name of the attribute in the error
48 message (Sartak)
7c60f730 49
50 * Moose::Object
51 - localize $@ inside DEMOLISHALL to avoid it
52 eating $@ (found by Ernesto)
53 - added test for this (thanks to Ernesto)
cf12a691 54
ae8d63f2 55 * Moose::Util::TypeConstraints
56 - &find_type_constraint now DWIMs when given an
6c36eeaa 57 type constraint object or name (nothingmuch)
ae8d63f2 58
59 * Moose::Meta::TypeConstraint
4078709c 60 Moose::Meta::TypeConstraint::Class
61 Moose::Meta::TypeConstraint::Enum
62 Moose::Meta::TypeConstraint::Union
63 Moose::Meta::TypeConstraint::Parameterized
64 - added the &equals method for comparing two type
65 constraints (nothingmuch)
66 - added tests for this (nothingmuch)
67
68 * Moose::Meta::TypeConstraint
ae8d63f2 69 - add the &parents method, which is just an alias to &parent.
70 Useful for polymorphism with TC::Class (nothingmuch)
71
72 * Moose::Meta::TypeConstraint::Class
ae8d63f2 73 - added the class attribute for introspection purposes
74 (nothingmuch)
75 - added tests for this
4078709c 76
77 * Moose::Meta::TypeConstraint::Enum
6c36eeaa 78 Moose::Meta::TypeConstraint::Role
79 - broke these out into their own classes (nothingmuch)
ae8d63f2 80
81 * Moose::Cookbook::Recipe*
82 - fixed references to test file locations in the POD
83 and updated up some text for new Moose features
84 (Sartak)
85
52338af5 860.40 Fri. March 14, 2008
6e2840b7 87 - I hate Pod::Coverage
88
e0328ed4 890.39 Fri. March 14, 2008
8d62bf6d 90 * Moose
91 - documenting the use of '+name' with attributes
92 that come from recently composed roles. It makes
93 sense, people are using it, and so why not just
94 officially support it.
9c10b5ad 95 - fixing the 'extends' keyword so that it will not
96 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
94075501 97
1321f087 98 * oose
99 - added the perl -Moose=+Class::Name feature to allow
100 monkeypatching of classes in one liners
101
9c10b5ad 102 * Moose::Util
103 - fixing the 'apply_all_roles' keyword so that it will not
104 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
8d62bf6d 105
48045612 106 * Moose::Meta::Class
107 - added ->create method which now supports roles (thanks to jrockway)
108 - added tests for this
6d5cbd2b 109 - added ->create_anon_class which now supports roles and caching of
110 the results (thanks to jrockway)
111 - added tests for this
81c3738f 112 - made ->does_role a little more forgiving when it is
113 checking a Class::MOP era metaclasses.
48045612 114
94075501 115 * Moose::Meta::Role::Application::ToInstance
116 - it is now possible to pass extra params to be used when
117 a role is applied to an the instance (rebless_params)
118 - added tests for this
119
9f4334a1 120 * Moose::Util::TypeConstraints
4ab662d6 121 - class_type now accepts an optional second argument for a
122 custom message. POD anotated accordingly (groditi)
123 - added tests for this
9f4334a1 124 - it is now possible to make anon-enums by passing 'enum' an
125 ARRAY ref instead of the $name => @values. Everything else
126 works as before.
127 - added tests for this
128
8d62bf6d 129 * t/
130 - making test for using '+name' on attributes consumed
131 from a role, it works and makes sense too.
132
80d955e4 133 * Moose::Meta::Attribute
134 - fix handles so that it doesn't return nothing
135 when the method cannot be found, not sure why
f4f3e701 136 it ever did this originally, this means we now
137 have slightly better support for AUTOLOADed
138 objects
139 - added more delegation tests
587e457d 140 - adding ->does method to this so as to better
141 support traits and their introspection.
142 - added tests for this
1a386a6c 143
144 * Moose::Object
145 - localizing the Data::Dumper configurations so
146 that it does not pollute others (RT #33509)
9b1aa0c3 147 - made ->does a little more forgiving when it is
148 passed Class::MOP era metaclasses.
80d955e4 149
1500.38 Fri. Feb. 15, 2008
c3b81505 151 * Moose::Meta::Attribute
152 - fixed initializer to correctly do
153 type checking and coercion in the
154 callback
155 - added tests for this
156
1a740d8a 157 * t/
158 - fixed some finicky tests (thanks to konobi)
159
80d955e4 1600.37 Thurs. Feb. 14, 2008
688fcdda 161 * Moose
162 - fixed some details in Moose::init_meta
163 and its superclass handling (thanks thepler)
164 - added tests for this (thanks thepler)
a28fe77b 165 - 'has' now dies if you don't pass in name
166 value pairs
2a5e59d0 167 - added the 'make_immutable' keyword as a shortcut
9df136d0 168 to make_immutable
688fcdda 169
170 * Moose::Meta::Class
171 Moose::Meta::Method::Constructor
172 Moose::Meta::Attribute
649b9340 173 - making (init_arg => undef) work here too
174 (thanks to nothingmuch)
be771c43 175
176 * Moose::Meta::Attribute
177 Moose::Meta::Method::Constructor
178 Moose::Meta::Method::Accessor
5fec9b97 179 - make lazy attributes respect attr initializers (rjbs)
be771c43 180 - added tests for this
688fcdda 181
182 * Moose::Util::TypeConstraints
183 Moose::Util::TypeConstraints::OptimizedConstraints
c14746bc 184 Moose::Meta::TypeConstraints
688fcdda 185 Moose::Meta::Attribute
186 Moose::Meta::Method::Constructor
187 Moose::Meta::Method::Accessor
649b9340 188 - making type errors use the
189 assigned message (thanks to Sartak)
190 - added tests for this
191
192 * Moose::Meta::Method::Destructor
193 - making sure DESTROY gets inlined properly
194 with successive DEMOLISH calls (thanks to manito)
688fcdda 195
ab76842e 196 * Moose::Meta::Attribute
197 Moose::Meta::Method::Accessor
198 - fixed handling of undef with type constraints
199 (thanks to Ernesto)
200 - added tests for this
c14746bc 201
202 * Moose::Util
203 - added &get_all_init_args and &get_all_attribute_values
204 (thanks to Sartak and nothingmuch)
ab76842e 205
e472c9a5 2060.36 Sat. Jan. 26, 2008
238b424d 207 * Moose::Role
208 Moose::Meta::Attribute
209 - role type tests now support when roles are
210 applied to non-Moose classes (found by ash)
211 - added tests for this (thanks to ash)
e472c9a5 212 - couple extra tests to boost code coverage
238b424d 213
214 * Moose::Meta::Method::Constructor
215 - improved fix for handling Class::MOP attributes
216 - added test for this
217
218 * Moose::Meta::Class
219 - handled the add_attribute($attribute_meta_object)
220 case correctly
221 - added test for this
222
3285fae9 2230.35 Tues. Jan. 22, 2008
45fd4af3 224 * Moose::Meta::Method::Constructor
225 - fix to make sure even Class::MOP attributes
472b7401 226 are handled correctly (Thanks to Dave Rolsky)
c3b35392 227 - added test for this (also Dave Rolsky)
4498537c 228
229 * Moose::Meta::Class
230 - improved error message on _apply_all_roles,
231 you should now use Moose::Util::apply_all_roles
232 and you shouldnt have been using a _ prefixed
233 method in the first place ;)
45fd4af3 234
fe05ce9c 2350.34 Mon. Jan. 21, 2008
778db3ac 236 ~~~ more misc. doc. fixes ~~~
237 ~~ updated copyright dates ~~
9b28d20b 238
239 Moose is now a postmodern object system :)
8bdc7f13 240 - (see the POD for details)
ccf49e80 241
242 * <<Role System Refactoring>>
243 - this release contains a major reworking and
244 cleanup of the role system
9b28d20b 245 - 100% backwards compat.
246 - Role application now restructured into seperate
247 classes based on type of applicants
248 - Role summation (combining of more than one role)
ccf49e80 249 is much cleaner and anon-classes are no longer
9b28d20b 250 used in this process
ccf49e80 251 - new Composite role metaclass
9b28d20b 252 - runtime application of roles to instances
253 is now more efficient and re-uses generated
254 classes when applicable
ccf49e80 255
9b28d20b 256 * <<New Role composition features>>
ccf49e80 257 - methods can now be excluded from a given role
9b28d20b 258 during composition
ccf49e80 259 - methods can now be aliased to another name (and
260 still retain the original as well)
4734114b 261
262 * Moose::Util::TypeConstraints::OptimizedConstraints
263 - added this module (see above)
264
d7d8a8c7 265 * Moose::Meta::Class
266 - fixed the &_process_attribute method to be called
4734114b 267 by &add_attribute, so that the API is now correct
268
e7c06c1e 269 * Moose::Meta::Method::Accessor
4734114b 270 - fixed bug when passing a list of values to
e7c06c1e 271 an accessor would get (incorrectly) ignored.
272 Thanks to Sartak for finding this ;)
273 - added tests for this (Sartak again)
32dd4a95 274
a4e516f6 275 * Moose::Meta::Method::Accessor
276 Moose::Meta::Method::Constructor
28412c0b 277 Moose::Meta::Attribute
ccf49e80 278 Moose::Meta::TypeConstraint
279 Moose::Meta::TypeCoercion
280 - lots of cleanup of such things as:
28412c0b 281 - generated methods
282 - type constraint handling
ccf49e80 283 - error handling/messages
284 (thanks to nothingmuch)
a4e516f6 285
4734114b 286 * Moose::Meta::TypeConstraint::Parameterizable
287 - added this module to support the refactor
288 in Moose::Meta::TypeConstraint::Parameterized
289
290 * Moose::Meta::TypeConstraint::Parameterized
291 - refactored how these types are handled so they
292 are more generic and not confined to ArrayRef
293 and HashRef only
a4e516f6 294
2de7e794 295 * t/
296 - shortened some file names for better VMS support (RT #32381)
297
25374f01 2980.33 Fri. Dec. 14, 2007
32dd4a95 299 !! Moose now loads 2 x faster !!
300 !! with new Class::MOP 0.49 !!
25374f01 301
f7865ec8 302 ++ new oose.pm module to make command line
25374f01 303 Moose-ness easier (see POD docs for more)
4734114b 304
25374f01 305 * Moose::Meta::Class
306 * Moose::Meta::Role
4734114b 307 - several tweaks to take advantage of the
25374f01 308 new method map caching in Class::MOP
309
39aba5c9 310 * Moose::Meta::TypeConstraint::Parameterized
311 - allow subtypes of ArrayRef and HashRef to
acb8a5db 312 be used as a container (sartak)
4734114b 313 - added tests for this
acb8a5db 314 - basic support for coercion to ArrayRef and
315 HashRef for containers (sartak)
4734114b 316 - added tests for this
317
25374f01 318 * Moose::Meta::TypeCoercion
319 - coercions will now create subtypes as needed
320 so you can now add coercions to parameterized
321 types without having to explictly define them
322 - added tests for this
323
ac211120 324 * Moose::Meta::Method::Accessor
325 - allow subclasses to decide whether we need
326 to copy the value into a new variable (sartak)
39aba5c9 327
dc26a424 3280.32 Tues. Dec. 4, 2007
8de73ff1 329 * Moose::Util::TypeConstraints
330 - fixing how subtype aliases of unions work
331 they should inherit the parent's coercion
332 - added tests for this
4734114b 333 - you can now define multiple coercions on
41e007e4 334 a single type at different times instead of
335 having to do it all in one place
336 - added tests for this
4734114b 337
8de73ff1 338 * Moose::Meta::TypeConstraint
339 - there is now a default constraint of sub { 1 }
340 instead of Moose::Util::TypeConstraints setting
341 this for us
342
4734114b 343 * Moose::Meta::TypeCoercion
344 * Moose::Meta::TypeCoercion::Union
345 - added the &has_coercion_for_type and
346 &add_type_coercions methods to support the
41e007e4 347 new features above (although you cannot add
348 more type coercions for Union types)
349
ffcb48b4 3500.31 Mon. Nov. 26, 2007
f3c4e20e 351 * Moose::Meta::Attribute
4734114b 352 - made the +attr syntax handle extending types with
f3c4e20e 353 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
354 now works if the original foo is an ArrayRef.
355 - added tests for this.
356 - delegation now works even if the attribute does not
357 have a reader method using the get_read_method_ref
4734114b 358 method from Class::MOP::Attribute.
f3c4e20e 359 - added tests for this
360 - added docs for this
4734114b 361
f3c4e20e 362 * Moose::Util::TypeConstraints
4734114b 363 - passing no "additional attribute info" to
364 &find_or_create_type_constraint will no longer
365 attempt to create an __ANON__ type for you,
f3c4e20e 366 instead it will just return undef.
367 - added docs for this
368
1edfdf1c 3690.30 Fri. Nov. 23, 2007
ca168e89 370 * Moose::Meta::Method::Constructor
371 -builder related bug in inlined constructor. (groditi)
372
3822d5ee 373 * Moose::Meta::Method::Accessor
374 - genereate unnecessary calls to predicates and refactor
375 code generation for runtime speed (groditi)
376
5d776bdf 377 * Moose::Util::TypeConstraints
0e0709ea 378 - fix ClassName constraint to introspect symbol table (mst)
a0f8153d 379 - added more tests for this (mst)
380 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
381 with work correctly.
382 - added tests for this
5d776bdf 383
1edfdf1c 384 * Moose::Cookbook
385 - adding the link to Recipie 11 (written by Sartak)
386 - adding test for SYNOPSIS code
387
4734114b 388 * t/
ca168e89 389 - New tests for builder bug. Upon instantiation, if an
390 attribute had a builder, no value and was not lazy the
391 builder default was not getting run, oops. (groditi)
392
b97b9655 3930.29 Tues. Nov. 13, 2007
0b26305c 394 * Moose::Meta::Attribute
5d776bdf 395 - Fix error message on missing builder method (groditi)
0b26305c 396
397 * Moose::Meta::Method::Accessor
5d776bdf 398 - Fix error message on missing builder method (groditi)
0b26305c 399
4734114b 400 * t/
5d776bdf 401 - Add test to check for the correct error message when
402 builder method is missing (groditi)
0b26305c 403
98c4c382 4040.28 Tues. Nov. 13, 2007
4734114b 405 - 0.27 packaged incorrectly (groditi)
98c4c382 406
e134cd19 4070.27 Tues. Nov. 13, 2007
26fbace8 408 * Moose::Meta::Attribute
409 - Added support for the new builder option (groditi)
6af1a927 410 - Added support for lazy_build option (groditi)
1ed0b94f 411 - Changed slot initialization for predicate changes (groditi)
26fbace8 412
413 * Moose::Meta::Method::Accessor
6af1a927 414 - Added support for lazy_build option (groditi)
4734114b 415 - Fix inline methods to work with corrected predicate
28669f89 416 behavior (groditi)
26fbace8 417
7a5b07b3 418 * Moose::Meta::Method::Constructor
419 - Added support for lazy_build option (groditi)
420
26fbace8 421 * t/
28669f89 422 - tests for builder and lazy_build (groditi)
26fbace8 423
4734114b 424 * fixing some misc. bits in the docs that
28669f89 425 got mentioned on CPAN Forum & perlmonks
4734114b 426
e7f8d0c2 427 * Moose::Meta::Role
4734114b 428 - fixed how required methods are handled
e7f8d0c2 429 when they encounter overriden or modified
430 methods from a class (thanks to confound).
431 - added tests for this
5af6a16d 432
3796382a 433 * Moose::Util::TypeConstraint
4734114b 434 - fixed the type notation parser so that
435 the | always creates a union and so is
436 no longer a valid type char (thanks to
437 konobi, mugwump and #moose for working
3796382a 438 this one out.)
439 - added more tests for this
440
77a18c28 4410.26 Thurs. Sept. 27, 2007
442 == New Features ==
4734114b 443
77a18c28 444 * Parameterized Types
4734114b 445 We now support parameterized collection types, such as:
77a18c28 446 ArrayRef[Int] # array or integers
447 HashRef[Object] # a hash with object values
448 They can also be nested:
449 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
450 And work with the type unions as well:
451 ArrayRef[Int | Str] # array of integers of strings
4734114b 452
77a18c28 453 * Better Framework Extendability
4734114b 454 Moose.pm is now "extendable" such that it is now much
455 easier to extend the framework and add your own keywords
77a18c28 456 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
457 section of the Moose.pm docs.
4734114b 458
77a18c28 459 * Moose Snacks!
4734114b 460 In an effort to begin documenting some of the various
461 details of Moose as well as some common idioms, we have
462 created Moose::Cookbook::Snacks as a place to find
77a18c28 463 small (easily digestable) nuggets of Moose code.
4734114b 464
77a18c28 465 ====
fb697a87 466 ~ Several doc updates/cleanup thanks to castaway ~
4734114b 467
468 - converted build system to use Module::Install instead of
e46f5cc2 469 Module::Build (thanks to jrockway)
fb697a87 470
d67145ed 471 * Moose
4734114b 472 - added all the meta classes to the immutable list and
d67145ed 473 set it to inline the accessors
4734114b 474 - fix import to allow Sub::Exporter like { into => }
e59a5c29 475 and { into_level => } (perigrin)
4734114b 476 - exposed and documented init_meta() to allow better
e59a5c29 477 embedding and extending of Moose (perigrin)
4734114b 478
e59a5c29 479 * t/
480 - complete re-organization of the test suite
4734114b 481 - added some new tests as well
77a18c28 482 - finally re-enabled the Moose::POOP test since
483 the new version of DBM::Deep now works again
484 (thanks rob)
b468a3d3 485
486 * Moose::Meta::Class
4734114b 487 - fixed very odd and very nasty recursion bug with
b468a3d3 488 inner/augment (mst)
489 - added tests for this (eilara)
d67145ed 490
3726f905 491 * Moose::Meta::Attribute
492 Moose::Meta::Method::Constructor
493 Moose::Meta::Method::Accessor
4734114b 494 - fixed issue with overload::Overloaded getting called
f1917f58 495 on non-blessed items. (RT #29269)
3726f905 496 - added tests for this
4734114b 497
3ccdc84a 498 * Moose::Meta::Method::Accessor
4734114b 499 - fixed issue with generated accessor code making
3ccdc84a 500 assumptions about hash based classes (thanks to dexter)
4734114b 501
3726f905 502 * Moose::Coookbook::Snacks
4734114b 503 - these are bits of documentation, not quite as big as
504 Recipes but which have no clear place in the module docs.
3726f905 505 So they are Snacks! (horray for castaway++)
506
07cde929 507 * Moose::Cookbook::Recipe4
508 - updated it to use the new ArrayRef[MyType] construct
509 - updated the accompanying test as well
510
3726f905 511 +++ Major Refactor of the Type Constraint system +++
512 +++ with new features added as well +++
513
22aed3c0 514 * Moose::Util::TypeConstraint
4734114b 515 - no longer uses package variable to keep track of
22aed3c0 516 the type constraints, now uses the an instance of
517 Moose::Meta::TypeConstraint::Registry to do it
f1917f58 518 - added more sophisticated type notation parsing
519 (thanks to mugwump)
520 - added tests for this
22aed3c0 521
d67145ed 522 * Moose::Meta::TypeConstraint
523 - some minor adjustments to make subclassing easier
4734114b 524 - added the package_defined_in attribute so that we
22aed3c0 525 can track where the type constraints are created
4734114b 526
d67145ed 527 * Moose::Meta::TypeConstraint::Union
4734114b 528 - this is now been refactored to be a subclass of
3726f905 529 Moose::Meta::TypeConstraint
4734114b 530
3726f905 531 * Moose::Meta::TypeCoercion::Union
532 - this has been added to service the newly refactored
4734114b 533 Moose::Meta::TypeConstraint::Union and is itself
3726f905 534 a subclass of Moose::Meta::TypeCoercion
4734114b 535
0fbd4b0a 536 * Moose::Meta::TypeConstraint::Parameterized
d67145ed 537 - added this module (taken from MooseX::AttributeHelpers)
538 to help construct nested collection types
539 - added tests for this
4734114b 540
22aed3c0 541 * Moose::Meta::TypeConstraint::Registry
542 - added this class to keep track of type constraints
d67145ed 543
887169d7 5440.25 Mon. Aug. 13, 2007
8eca434b 545 * Moose
4734114b 546 - Documentation update to reference Moose::Util::TypeConstraints
547 under 'isa' in 'has' for how to define a new type
8eca434b 548 (thanks to shlomif).
549
ab859145 550 * Moose::Meta::Attribute
4734114b 551 - required attributes now will no longer accept undef
ab859145 552 from the constructor, even if there is a default and lazy
553 - added tests for this
4734114b 554 - default subroutines must return a value which passes the
7a5ebc40 555 type constraint
556 - added tests for this
4734114b 557
a909a4df 558 * Moose::Meta::Attribute
559 * Moose::Meta::Method::Constructor
4734114b 560 * Moose::Meta::Method::Accessor
a909a4df 561 - type-constraint tests now handle overloaded objects correctly
562 in the error message
4734114b 563 - added tests for this (thanks to EvanCarroll)
ab859145 564
8eca434b 565 * Moose::Meta::TypeConstraint::Union
4734114b 566 - added (has_)hand_optimized_constraint to this class so that
8eca434b 567 it behaves as the regular Moose::Meta::TypeConstraint does.
568
5868294f 569 * Moose::Meta::Role
887169d7 570 - large refactoring of this code
4734114b 571 - added several more tests
572 - tests for subtle conflict resolition issues
7125b244 573 added, but not currently running
574 (thanks to kolibre)
575
4734114b 576 * Moose::Cookbook::Recipe7
577 - added new recipe for augment/inner functionality
887169d7 578 (still in progress)
7125b244 579 - added test for this
5868294f 580
24a8fe99 581 * Moose::Spec::Role
7125b244 582 - a formal definition of roles (still in progress)
24a8fe99 583
9a641848 584 * Moose::Util
887169d7 585 - utilities for easier working with Moose classes
7125b244 586 - added tests for these
9a641848 587
588 * Test::Moose
887169d7 589 - This contains Moose specific test functions
7125b244 590 - added tests for these
9a641848 591
6b4c1bdd 5920.24 Tues. July 3, 2007
593 ~ Some doc updates/cleanup ~
c84f324f 594
595 * Moose::Meta::Attribute
4734114b 596 - added support for roles to be given as parameters
c84f324f 597 to the 'handles' option.
598 - added tests and docs for this
4734114b 599 - the has '+foo' attribute form now accepts changes to
83cc9094 600 the lazy option, and the addition of a handles option
601 (but not changing the handles option)
602 - added tests and docs for this
c84f324f 603
1db8ecc7 604 * Moose::Meta::Role
605 - required methods are now fetched using find_method_by_name
606 so that required methods can come from superclasses
607 - adjusted tests for this
608
81941e9b 6090.23 Mon. June 18, 2007
73b84d2e 610 * Moose::Meta::Method::Constructor
611 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
ac2dc464 612 * Moose::Meta::Class
613 - Modify make_immutable to work with the new Class::MOP immutable
614 mechanism + POD + very basic test (groditi)
cbe25729 615 * Moose::Meta::Attribute
4734114b 616 - Fix handles to use goto() so that caller() comes out properly on
cbe25729 617 the other side (perigrin)
ac2dc464 618
db53853c 6190.22 Thurs. May 31, 2007
3969267d 620 * Moose::Util::TypeConstraints
4734114b 621 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
db53853c 622 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
623 prototypes for functions
4734114b 624 - added the ClassName type constraint, this checks for strings
625 which will respond true to ->isa(UNIVERSAL).
9af1d28b 626 - added tests and docs for this
4734114b 627 - subtyping just in name now works correctly by making the
86629f93 628 default for where be { 1 }
4734114b 629 - added test for this
3969267d 630
d7611a4a 631 * Moose::Meta::Method::Accessor
4734114b 632 - coerce and lazy now work together correctly, thanks to
d7611a4a 633 merlyn for finding this bug
634 - tests added for this
df492bba 635 - fix reader presedence bug in Moose::Meta::Attribute + tests
d7611a4a 636
86629f93 637 * Moose::Object
638 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
4734114b 639 a HASH-ref and missed. This produces better error messages then
86629f93 640 having it die cause undef is not a HASH.
641 - added tests for this
642
74a0a945 6430.21 Thursday, May 2nd, 2007
52c7c330 644 * Moose
645 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
646 - modified unimport to remove super and inner along with the rest
647 - altered unimport tests to handle this
648
649 * Moose::Role
650 - altered super export to populate SUPER_SLOT
651
652 * Moose::Meta::Class
653 - altered augment and override modifier application to use *_SLOT
654 - modified tests for these to unimport one test class each to test
655
492d4d76 656 * Moose::Meta::Role
657 - fixed issue where custom attribute metaclasses
658 where not handled correctly in roles
659 - added tests for this
4734114b 660
5cb193ed 661 * Moose::Meta::Class
4734114b 662 - fixed issue where extending metaclasses with
5cb193ed 663 roles would blow up. Thanks to Aankhen`` for
664 finding this insidious error, and it's solution.
4734114b 665
666 ~~ lots of spelling and grammer fixes in the docs,
0305961b 667 many many thanks to rlb3 and Aankhen for these :)
492d4d76 668
e518dfb4 6690.20 Friday, April 6th, 2007
a60285b3 670 >> I messed up the SKIP logic in one test
671 so this release is just to fix that.
672
93c435b3 673 * Moose
674 - 'has' now also accepts an ARRAY ref
675 to create multiple attrs (see docs)
676 (thanks to konobi for this)
4734114b 677 - added tests and docs
93c435b3 678
cd7eeaf5 6790.19 Thurs. April 5th, 2007
680 ~~ More documentation updates ~~
681
c899258b 682 * Moose::Util::TypeConstraints
c1935ade 683 - 'type' now supports messages as well
ddbdc0cb 684 thanks to phaylon for finding this
c899258b 685 - added tests for this
4734114b 686 - added &list_all_type_constraints and
c1935ade 687 &list_all_builtin_type_constraints
943596a6 688 functions to facilitate introspection.
4734114b 689
d022f632 690 * Moose::Meta::Attribute
4734114b 691 - fixed regexp 'handles' declarations
d022f632 692 to build the list of delegated methods
4734114b 693 correctly (and not override important
694 things like &new) thanks to ashleyb
ddbdc0cb 695 for finding this
696 - added tests and docs for this
c1935ade 697 - added the 'documentation' attributes
4734114b 698 so that you can actually document your
699 attributes and inspect them through the
ddbdc0cb 700 meta-object.
d022f632 701 - added tests and docs for this
702
c1935ade 703 * Moose::Meta::Class
704 - when loading custom attribute metaclasses
4734114b 705 it will first look in for the class in the
706 Moose::Meta::Attribute::Custom::$name, and
c1935ade 707 then default to just loading $name.
708 - added tests and docs for this
709
900466d6 710 * Moose::Meta::TypeConstraint
711 - type constraints now stringify to their names.
712 - added test for this
713
d022f632 714 * misc.
4734114b 715 - added tests to assure we work with Module::Refresh
716 - added stricter test skip logic in the Moose POOP
ddbdc0cb 717 test, ask Rob Kinyon why.
718 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
c899258b 719
af5199c6 7200.18 Sat. March 10, 2007
721 ~~ Many, many documentation updates ~~
ddbdc0cb 722
723 * misc.
4734114b 724 - We now use Class::MOP::load_class to
725 load all classes.
726 - added tests to show types and subtypes
ddbdc0cb 727 working with Declare::Constraints::Simple
728 and Test::Deep as constraint engines.
b77fdbed 729
587ae0d2 7300.18_001
d01f1dab 731 !! You must have Class::MOP 0.37_001 !!
732 !! for this developer release to work !!
733
734d1752 734 This release was primarily adding the immutable
4734114b 735 feature to Moose. An immutable class is one which
736 you promise not to alter. When you set the class
737 as immutable it will perform various bits of
734d1752 738 memoization and inline certain part of the code
4734114b 739 (constructors, destructors and accessors). This
734d1752 740 minimizes (and in some cases totally eliminates)
4734114b 741 one of Moose's biggest performance hits. This
734d1752 742 feature is not on by default, and is 100% optional.
4734114b 743 It has several configurable bits as well, so you
734d1752 744 can pick and choose to your specific needs.
4734114b 745
746 The changes involved in this were fairly wide and
747 highly specific, but 100% backwards compatible, so
748 I am not going to enumerate them here. If you are
749 truely interested in what was changed, please do
734d1752 750 a diff :)
587ae0d2 751
7520.17 Tues. Nov. 14, 2006
753 * Moose::Meta::Method::Accessor
4734114b 754 - bugfix for read-only accessors which
587ae0d2 755 are have a type constraint and lazy.
756 Thanks to chansen for finding it.
757
7580.16 Tues. Nov. 14, 2006
759 ++ NOTE ++
4734114b 760 There are some speed improvements in this release,
587ae0d2 761 but they are only the begining, so stay tuned.
4734114b 762
587ae0d2 763 * Moose::Object
4734114b 764 - BUILDALL and DEMOLISHALL no longer get
587ae0d2 765 called unless they actually need to be.
766 This gave us a signifigant speed boost
4734114b 767 for the cases when there is no BUILD or
587ae0d2 768 DEMOLISH method present.
4734114b 769
587ae0d2 770 * Moose::Util::TypeConstraints
771 * Moose::Meta::TypeConstraint
4734114b 772 - added an 'optimize_as' option to the
587ae0d2 773 type constraint, which allows for a
4734114b 774 hand optimized version of the type
587ae0d2 775 constraint to be used when possible.
776 - Any internally created type constraints
777 now provide an optimized version as well.
778
ecb59493 7790.15 Sun. Nov. 5, 2006
946289d1 780 ++ NOTE ++
4734114b 781 This version of Moose *must* have Class::MOP 0.36 in order
782 to work correctly. A number of small internal tweaks have
946289d1 783 been made in order to be compatible with that release.
571dd39f 784
785 * Moose::Util::TypeConstraints
4734114b 786 - added &unimport so that you can clean out
787 your class namespace of these exported
571dd39f 788 keywords
4734114b 789
37ee30c9 790 * Moose::Meta::Class
4734114b 791 - fixed minor issue which occasionally
792 comes up during global destruction
37ee30c9 793 (thanks omega)
4734114b 794 - moved Moose::Meta::Method::Overriden into
946289d1 795 its own file.
4734114b 796
797 * Moose::Meta::Role
798 - moved Moose::Meta::Role::Method into
946289d1 799 its own file.
4734114b 800
43123819 801 * Moose::Meta::Attribute
4734114b 802 - changed how we do type checks so that
803 we reduce the overall cost, but still
7623f774 804 retain correctness.
946289d1 805 *** API CHANGE ***
4734114b 806 - moved accessor generation methods to
807 Moose::Meta::Method::Accessor to
808 conform to the API changes from
946289d1 809 Class::MOP 0.36
4734114b 810
43123819 811 * Moose::Meta::TypeConstraint
812 - changed how constraints are compiled
813 so that we do less recursion and more
4734114b 814 iteration. This makes the type check
43123819 815 faster :)
946289d1 816 - moved Moose::Meta::TypeConstraint::Union
817 into its own file
4734114b 818
946289d1 819 * Moose::Meta::Method::Accessor
4734114b 820 - created this from methods formerly found in
946289d1 821 Moose::Meta::Attribute
4734114b 822
946289d1 823 * Moose::Meta::Role::Method
824 - moved this from Moose::Meta::Role
4734114b 825
946289d1 826 * Moose::Meta::Method::Overriden
827 - moved this from Moose::Meta::Class
4734114b 828
946289d1 829 * Moose::Meta::TypeConstraint::Union
830 - moved this from Moose::Meta::TypeConstraint
37ee30c9 831
3ec7b7a3 8320.14 Mon. Oct. 9, 2006
4fd69d6c 833
834 * Moose::Meta::Attribute
4734114b 835 - fixed lazy attributes which were not getting
4fd69d6c 836 checked with the type constraint (thanks ashley)
837 - added tests for this
4734114b 838 - removed the over-enthusiastic DWIMery of the
839 automatic ArrayRef and HashRef defaults, it
3ec7b7a3 840 broke predicates in an ugly way.
841 - removed tests for this
4fd69d6c 842
c0c41f76 8430.13 Sat. Sept. 30, 2006
093b12c2 844 ++ NOTE ++
4734114b 845 This version of Moose *must* have Class::MOP 0.35 in order
846 to work correctly. A number of small internal tweaks have
093b12c2 847 been made in order to be compatible with that release.
848
3c2bc5e2 849 * Moose
850 - Removed the use of UNIVERSAL::require to be a better
4734114b 851 symbol table citizen and remove a dependency
093b12c2 852 (thanks Adam Kennedy)
3c2bc5e2 853
2a0f3bd3 854 **~~ removed experimental & undocumented feature ~~**
4734114b 855 - commented out the 'method' and 'self' keywords, see the
2a0f3bd3 856 comments for more info.
857
e95c7c42 858 * Moose::Cookbook
4734114b 859 - added a FAQ and WTF files to document frequently
e95c7c42 860 asked questions and common problems
4734114b 861
3f7376b0 862 * Moose::Util::TypeConstraints
0a5bd159 863 - added GlobRef and FileHandle type constraint
3f7376b0 864 - added tests for this
4734114b 865
3f7376b0 866 * Moose::Meta::Attribute
867 - if your attribute 'isa' ArrayRef of HashRef, and you have
868 not explicitly set a default, then make the default DWIM.
4734114b 869 This will also work for subtypes of ArrayRef and HashRef
94b8bbb8 870 as well.
871 - you can now auto-deref subtypes of ArrayRef or HashRef too.
872 - new test added for this (thanks to ashley)
4734114b 873
b805c70c 874 * Moose::Meta::Role
875 - added basic support for runtime role composition
4734114b 876 but this is still *highly experimental*, so feedback
0a5bd159 877 is much appreciated :)
b805c70c 878 - added tests for this
e95c7c42 879
0a5bd159 880 * Moose::Meta::TypeConstraint
881 - the type constraint now handles the coercion process
4734114b 882 through delegation, this is to support the coercion
0a5bd159 883 of unions
4734114b 884
0a5bd159 885 * Moose::Meta::TypeConstraint::Union
4734114b 886 - it is now possible for coercions to be performed
0a5bd159 887 on a type union
888 - added tests for this (thanks to konobi)
889
e95c7c42 890 * Moose::Meta::TypeCoercion
4734114b 891 - properly capturing error when type constraint
e95c7c42 892 is not found
893
3c2bc5e2 894 * Build.PL
895 - Scalar::Util 1.18 is bad on Win32, so temporarily
896 only require version 1.17 for Win32 and cygwin.
4734114b 897 (thanks Adam Kennedy)
3c2bc5e2 898
40e89659 8990.12 Sat. Sept. 1, 2006
2bdd01cd 900 * Moose::Cookbook
901 - Recipe5 (subtypes & coercion) has been written
4734114b 902
2bdd01cd 903 * Moose
4734114b 904 - fixed "bad meta" error message to be more descriptive
905 - fixed &unimport to not remove the &inner and &super
3279ab4a 906 keywords because we need to localize them.
68efb014 907 - fixed number of spelling/grammer issues, thanks Theory :)
4734114b 908
0558683c 909 **~~ experimental & undocumented feature ~~**
4734114b 910 - added the method and self keywords, they are basically
68efb014 911 just sugar, and they may not stay around.
4734114b 912
f742dfef 913 * Moose::Object
4734114b 914 - added &dump method to easily Data::Dumper
68efb014 915 an object
4734114b 916
b26e162e 917 * Moose::Meta::TypeConstraint
918 - added the &is_a_type_of method to check both the current
919 and the subtype of a method (similar to &isa with classes)
f008ac1f 920
68efb014 921 * Moose::Meta::Role
922 - this is now a subclass of Class::MOP::Module, and no longer
4734114b 923 creates the _role_meta ugliness of before.
68efb014 924 - fixed tests to reflect this change
4734114b 925
8c835eba 9260.11 Wed. July 12, 2006
31f8ec72 927 * Moose
928 - added an &unimport method to remove all the keywords
4734114b 929 that Moose will import, simply add 'no Moose' to the
930 bottom of your class file.
931
31f8ec72 932 * t/
4734114b 933 - fixed some test failures caused by a forgotten test
31f8ec72 934 dependency.
935
864cd714 9360.10 Thurs. July 6, 2006
01a8e221 937 * Moose
938 - improved error message when loading modules so
939 it is less confusing when you load a role.
4734114b 940 - added &calculate_all_roles method to
2b14ac61 941 Moose::Meta::Class and Moose::Meta::Role
4734114b 942
2b14ac61 943 NOTE:
944 This module has been tested against Class::MOP 0.30
4734114b 945 but it does not yet utilize the optimizations
2b14ac61 946 it makes available. Stay tuned for that ;)
4734114b 947
2b14ac61 9480.09_03 Fri. June 23, 2006
715ea0b7 949 ++ DEVELOPER RELEASE ++
4276ccb4 950 * Moose
951 - 'use strict' and 'use warnings' are no longer
4734114b 952 needed in Moose classes, Moose itself will
4276ccb4 953 turn them on for you.
954 - added tests for this
1341f10c 955 - moved code from exported subs to private methods
956 in Moose::Meta::Class
4734114b 957
4276ccb4 958 * Moose::Role
4734114b 959 - as with Moose, strict and warnings are
4276ccb4 960 automatically turned on for you.
4734114b 961 - added tests for this
962
e39d707f 963 * Moose::Meta::Role
964 - now handles an edge case for override errors
965 - added tests for this
b7f2d25b 966 - added some more edge case tests
1341f10c 967
43d599e5 9680.09_02 Tues. May 16, 2006
715ea0b7 969 ++ DEVELOPER RELEASE ++
2c0cbef7 970 * Moose
971 - added prototypes to the exported subs
43d599e5 972 - updated docs
4734114b 973
2c0cbef7 974 * Moose::Role
4734114b 975 - added prototypes to the exported subs
43d599e5 976 - updated docs
4734114b 977
2c0cbef7 978 * Moose::Util::TypeConstraints
4734114b 979 - cleaned up prototypes for the subs
980 - updated docs
2c0cbef7 981
72c4f6d1 9820.09_01 Fri. May 12, 2006
983 ++ DEVELOPER RELEASE ++
4734114b 984 - This release works in combination with
985 Class::MOP 0.29_01, it is a developer
986 release because it uses the a new
72c4f6d1 987 instance sub-protocol and a fairly
4734114b 988 complete Role implementation. It has
72c4f6d1 989 not yet been optimized, so it slower
4734114b 990 the the previous CPAN version. This
991 release also lacks good updated docs,
72c4f6d1 992 the official release will have updated docs.
993
4734114b 994 * Moose
98aae381 995 - refactored the keyword exports
4734114b 996 - 'with' now checks Role validaity and
db1ab48d 997 accepts more than one Role at a time
4734114b 998 - 'extends' makes metaclass adjustments as
98aae381 999 needed to ensure metaclass compatability
4734114b 1000
72c4f6d1 1001 * Moose::Role
1002 - refactored the keyword exports
4734114b 1003 - 'with' now checks Role validaity and
72c4f6d1 1004 accepts more than one Role at a time
4734114b 1005
98aae381 1006 * Moose::Util::TypeConstraints
4734114b 1007 - added the 'enum' keyword for simple
1008 string enumerations which can be used as
98aae381 1009 type constraints
db1ab48d 1010 - see example of usage in t/202_example.t
4734114b 1011
98aae381 1012 * Moose::Object
1013 - more careful checking of params to new()
4734114b 1014
72c4f6d1 1015 * Moose::Meta::Role
1016 - much work done on the role composition
4734114b 1017 - many new tests for conflict detection
72c4f6d1 1018 and composition edge cases
4734114b 1019 - not enough documentation, I suggest
1020 looking at the tests
1021
98aae381 1022 * Moose::Meta::Instance
4734114b 1023 - added new Instance metaclass to support
98aae381 1024 the new Class::MOP instance protocol
4734114b 1025
98aae381 1026 * Moose::Meta::Class
4734114b 1027 - some small changes to support the new
98aae381 1028 instance protocol
72c4f6d1 1029 - some small additions to support Roles
4734114b 1030
98aae381 1031 * Moose::Meta::Attribute
1032 - some improvements to the accessor generation code
1033 by nothingmuch
4734114b 1034 - some small changes to support the new
98aae381 1035 instance protocol
4734114b 1036 - (still somewhat) experimental delegation support
98aae381 1037 with the 'handles' option
1038 - added several tests for this
db1ab48d 1039 - no docs for this yet
98aae381 1040
35c8b8f2 10410.05 Thurs. April 27, 2006
2d562421 1042 * Moose
1043 - keywords are now exported with Sub::Exporter
1044 thanks to chansen for this commit
4734114b 1045 - has keyword now takes a 'metaclass' option
1046 to support custom attribute meta-classes
590868a3 1047 on a per-attribute basis
4734114b 1048 - added tests for this
daea75c9 1049 - the 'has' keyword not accepts inherited slot
4734114b 1050 specifications (has '+foo'). This is still an
daea75c9 1051 experimental feature and probably not finished
4734114b 1052 see t/038_attribute_inherited_slot_specs.t for
daea75c9 1053 more details, or ask about it on #moose
fcb7afc2 1054 - added tests for this
4734114b 1055
2d562421 1056 * Moose::Role
1057 - keywords are now exported with Sub::Exporter
1058
5204cd52 1059 * Moose::Utils::TypeConstraints
cce8198b 1060 - reorganized the type constraint hierarchy, thanks
4734114b 1061 to nothingmuch and chansen for his help and advice
cce8198b 1062 on this
1063 - added some tests for this
7eaef7ad 1064 - keywords are now exported with Sub::Exporter
35c8b8f2 1065 thanks to chansen for this commit
5204cd52 1066
d500266f 1067 * Moose::Meta::Class
1068 - due to changes in Class::MOP, we had to change
1069 construct_instance (for the better)
4734114b 1070
d500266f 1071 * Moose::Meta::Attribute
4734114b 1072 - due to changes in Class::MOP, we had to add the
d500266f 1073 initialize_instance_slot method (it's a good thing)
4734114b 1074
cce8198b 1075 * Moose::Meta::TypeConstraint
4734114b 1076 - added type constraint unions
c07af9d2 1077 - added tests for this
cce8198b 1078 - added the is_subtype_of predicate method
1079 - added tests for this
d500266f 1080
02a0fb52 10810.04 Sun. April 16th, 2006
1331430a 1082 * Moose::Role
1083 - Roles can now consume other roles
1084 - added tests for this
4734114b 1085 - Roles can specify required methods now with
1331430a 1086 the requires() keyword
1087 - added tests for this
1088
bdabd620 1089 * Moose::Meta::Role
1090 - ripped out much of it's guts ,.. much cleaner now
4734114b 1091 - added required methods and correct handling of
fa1be058 1092 them in apply() for both classes and roles
1093 - added tests for this
4734114b 1094 - no longer adds a does() method to consuming classes
1331430a 1095 it relys on the one in Moose::Object
4734114b 1096 - added roles attribute and some methods to support
1331430a 1097 roles consuming roles
8c9d74e7 1098
1099 * Moose::Meta::Attribute
1100 - added support for triggers on attributes
1101 - added tests for this
4734114b 1102 - added support for does option on an attribute
02a0fb52 1103 - added tests for this
4734114b 1104
8c9d74e7 1105 * Moose::Meta::Class
4734114b 1106 - added support for attribute triggers in the
8c9d74e7 1107 object construction
1108 - added tests for this
4734114b 1109
256903b6 1110 * Moose
4734114b 1111 - Moose no longer creates a subtype for your class
1112 if a subtype of the same name already exists, this
256903b6 1113 should DWIM in 99.9999% of all cases
4734114b 1114
256903b6 1115 * Moose::Util::TypeConstraints
4734114b 1116 - fixed bug where incorrect subtype conflicts were
256903b6 1117 being reported
8c9d74e7 1118 - added test for this
4734114b 1119
8c9d74e7 1120 * Moose::Object
1121 - this class can now be extended with 'use base' if
1122 you need it, it properly loads the metaclass class now
1123 - added test for this
bdabd620 1124
0677220d 11250.03_02 Wed. April 12, 2006
05d9eaf6 1126 * Moose
1127 - you must now explictly use Moose::Util::TypeConstraints
1128 it no longer gets exported for you automatically
4734114b 1129
05d9eaf6 1130 * Moose::Object
1131 - new() now accepts hash-refs as well as key/value lists
0677220d 1132 - added does() method to check for Roles
1133 - added tests for this
05d9eaf6 1134
0677220d 1135 * Moose::Meta::Class
4734114b 1136 - added roles attribute along with the add_role() and
0677220d 1137 does_role() methods
4734114b 1138 - added tests for this
0677220d 1139
1140 * Moose::Meta::Role
4734114b 1141 - now adds a does() method to consuming classes
0677220d 1142 which tests the class's hierarchy for roles
1143 - added tests for this
1144
11450.03_01 Mon. April 10, 2006
e9ec68d6 1146 * Moose::Cookbook
76d37e5a 1147 - added new Role recipe (no content yet, only code)
4734114b 1148
e9ec68d6 1149 * Moose
1150 - added 'with' keyword for Role support
1151 - added test and docs for this
1152 - fixed subtype quoting bug
4734114b 1153 - added test for this
e9ec68d6 1154
1155 * Moose::Role
1156 - Roles for Moose
1157 - added test and docs
76d37e5a 1158
1159 * Moose::Util::TypeConstraints
1160 - added the message keyword to add custom
4734114b 1161 error messages to type constraints
1162
e9ec68d6 1163 * Moose::Meta::Role
1164 - the meta role to support Moose::Role
1165 - added tests and docs
4734114b 1166
e9ec68d6 1167 * Moose::Meta::Class
4734114b 1168 - moved a number of things from Moose.pm
1169 to here, they should have been here
e9ec68d6 1170 in the first place
1171
1172 * Moose::Meta::Attribute
1173 - moved the attribute option macros here
1174 instead of putting them in Moose.pm
e185c027 1175
76d37e5a 1176 * Moose::Meta::TypeConstraint
4734114b 1177 - added the message attributes and the
76d37e5a 1178 validate method
1179 - added tests and docs for this
1180
0ac928d2 11810.03 Thurs. March 30, 2006
e9bb8a31 1182 * Moose::Cookbook
4734114b 1183 - added the Moose::Cookbook with 5 recipes,
e9bb8a31 1184 describing all the stuff Moose can do.
1185
d7f17ebb 1186 * Moose
1187 - fixed an issue with &extends super class loading
4734114b 1188 it now captures errors and deals with inline
1189 packages correctly (bug found by mst, solution
d7f17ebb 1190 stolen from alias)
159da176 1191 - added super/override & inner/augment features
1192 - added tests and docs for these
4734114b 1193
d7f17ebb 1194 * Moose::Object
4734114b 1195 - BUILDALL now takes a reference of the %params
1196 that are passed to &new, and passes that to
d7f17ebb 1197 each BUILD as well.
4734114b 1198
471c4f09 1199 * Moose::Util::TypeConstraints
1200 - Type constraints now survive runtime reloading
1201 - added test for this
d7f17ebb 1202
8339fae2 1203 * Moose::Meta::Class
4734114b 1204 - fixed the way attribute defaults are handled
8339fae2 1205 during instance construction (bug found by chansen)
1206
d7f17ebb 1207 * Moose::Meta::Attribute
1208 - read-only attributes now actually enforce their
4734114b 1209 read-only-ness (this corrected in Class::MOP as
9deed647 1210 well)
d7f17ebb 1211
076c81ed 12120.02 Tues. March 21, 2006
fc5609d2 1213 * Moose
4734114b 1214 - many more tests, fixing some bugs and
b841b2a3 1215 edge cases
b841b2a3 1216 - &extends now loads the base module with
4734114b 1217 UNIVERSAL::require
1218 - added UNIVERSAL::require to the
b841b2a3 1219 dependencies list
6ba6d68c 1220 ** API CHANGES **
4734114b 1221 - each new Moose class will also create
1222 and register a subtype of Object which
1223 correspond to the new Moose class.
1224 - the 'isa' option in &has now only
1225 accepts strings, and will DWIM in
b841b2a3 1226 almost all cases
4734114b 1227
b841b2a3 1228 * Moose::Util::TypeConstraints
1229 - added type coercion features
1230 - added tests for this
4734114b 1231 - added support for this in attributes
b841b2a3 1232 and instance construction
6ba6d68c 1233 ** API CHANGES **
4734114b 1234 - type construction no longer creates a
b841b2a3 1235 function, it registers the type instead.
4734114b 1236 - added several functions to get the
1237 registered types
6ba6d68c 1238
1239 * Moose::Object
4734114b 1240 - BUILDALL and DEMOLISHALL were broken
6ba6d68c 1241 because of a mis-named hash key, Whoops :)
4734114b 1242
b841b2a3 1243 * Moose::Meta::Attribute
1244 - adding support for coercion in the
1245 autogenerated accessors
4734114b 1246
b841b2a3 1247 * Moose::Meta::Class
1248 - adding support for coercion in the
4734114b 1249 instance construction
6ba6d68c 1250
1251 * Moose::Meta::TypeConstraint
1252 * Moose::Meta::TypeCoercion
4734114b 1253 - type constraints and coercions are now
6ba6d68c 1254 full fledges meta-objects
fc5609d2 1255
e522431d 12560.01 Wed. March 15, 2006
900466d6 1257 - Moooooooooooooooooose!!!