1 Revision history for Perl extension Moose
4 * Moose::Util::TypeConstraints
5 - type now supports messages as well
6 thanks to phaylon for finding this
8 - added list_all_type_constraints and
9 list_all_builtin_type_constraints
10 functions to facilitate introspection.
12 * Moose::Meta::Attribute
13 - fixed regexp 'handles' declarations
14 to build the list of delegated methods
15 correctly (and not override important
16 things like &new) thanks to ashleyb
18 - added tests and docs for this
19 - added the "documentation" attributes
20 so that you can actually document your
21 attributes and inspect them through the
23 - added tests and docs for this
25 * Moose::Meta::TypeConstraint
26 - type constraints now stringify to their names.
30 - added tests to assure we work with Module::Refresh
31 - added stricter test skip logic in the Moose POOP
32 test, ask Rob Kinyon why.
33 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
35 0.18 Sat. March 10, 2007
36 ~~ Many, many documentation updates ~~
39 - We now use Class::MOP::load_class to
41 - added tests to show types and subtypes
42 working with Declare::Constraints::Simple
43 and Test::Deep as constraint engines.
46 !! You must have Class::MOP 0.37_001 !!
47 !! for this developer release to work !!
49 This release was primarily adding the immutable
50 feature to Moose. An immutable class is one which
51 you promise not to alter. When you set the class
52 as immutable it will perform various bits of
53 memoization and inline certain part of the code
54 (constructors, destructors and accessors). This
55 minimizes (and in some cases totally eliminates)
56 one of Moose's biggest performance hits. This
57 feature is not on by default, and is 100% optional.
58 It has several configurable bits as well, so you
59 can pick and choose to your specific needs.
61 The changes involved in this were fairly wide and
62 highly specific, but 100% backwards compatible, so
63 I am not going to enumerate them here. If you are
64 truely interested in what was changed, please do
67 0.17 Tues. Nov. 14, 2006
68 * Moose::Meta::Method::Accessor
69 - bugfix for read-only accessors which
70 are have a type constraint and lazy.
71 Thanks to chansen for finding it.
73 0.16 Tues. Nov. 14, 2006
75 There are some speed improvements in this release,
76 but they are only the begining, so stay tuned.
79 - BUILDALL and DEMOLISHALL no longer get
80 called unless they actually need to be.
81 This gave us a signifigant speed boost
82 for the cases when there is no BUILD or
83 DEMOLISH method present.
85 * Moose::Util::TypeConstraints
86 * Moose::Meta::TypeConstraint
87 - added an 'optimize_as' option to the
88 type constraint, which allows for a
89 hand optimized version of the type
90 constraint to be used when possible.
91 - Any internally created type constraints
92 now provide an optimized version as well.
94 0.15 Sun. Nov. 5, 2006
96 This version of Moose *must* have Class::MOP 0.36 in order
97 to work correctly. A number of small internal tweaks have
98 been made in order to be compatible with that release.
100 * Moose::Util::TypeConstraints
101 - added &unimport so that you can clean out
102 your class namespace of these exported
106 - fixed minor issue which occasionally
107 comes up during global destruction
109 - moved Moose::Meta::Method::Overriden into
113 - moved Moose::Meta::Role::Method into
116 * Moose::Meta::Attribute
117 - changed how we do type checks so that
118 we reduce the overall cost, but still
121 - moved accessor generation methods to
122 Moose::Meta::Method::Accessor to
123 conform to the API changes from
126 * Moose::Meta::TypeConstraint
127 - changed how constraints are compiled
128 so that we do less recursion and more
129 iteration. This makes the type check
131 - moved Moose::Meta::TypeConstraint::Union
134 * Moose::Meta::Method::Accessor
135 - created this from methods formerly found in
136 Moose::Meta::Attribute
138 * Moose::Meta::Role::Method
139 - moved this from Moose::Meta::Role
141 * Moose::Meta::Method::Overriden
142 - moved this from Moose::Meta::Class
144 * Moose::Meta::TypeConstraint::Union
145 - moved this from Moose::Meta::TypeConstraint
147 0.14 Mon. Oct. 9, 2006
149 * Moose::Meta::Attribute
150 - fixed lazy attributes which were not getting
151 checked with the type constraint (thanks ashley)
152 - added tests for this
153 - removed the over-enthusiastic DWIMery of the
154 automatic ArrayRef and HashRef defaults, it
155 broke predicates in an ugly way.
156 - removed tests for this
158 0.13 Sat. Sept. 30, 2006
160 This version of Moose *must* have Class::MOP 0.35 in order
161 to work correctly. A number of small internal tweaks have
162 been made in order to be compatible with that release.
165 - Removed the use of UNIVERSAL::require to be a better
166 symbol table citizen and remove a dependency
167 (thanks Adam Kennedy)
169 **~~ removed experimental & undocumented feature ~~**
170 - commented out the 'method' and 'self' keywords, see the
171 comments for more info.
174 - added a FAQ and WTF files to document frequently
175 asked questions and common problems
177 * Moose::Util::TypeConstraints
178 - added GlobRef and FileHandle type constraint
179 - added tests for this
181 * Moose::Meta::Attribute
182 - if your attribute 'isa' ArrayRef of HashRef, and you have
183 not explicitly set a default, then make the default DWIM.
184 This will also work for subtypes of ArrayRef and HashRef
186 - you can now auto-deref subtypes of ArrayRef or HashRef too.
187 - new test added for this (thanks to ashley)
190 - added basic support for runtime role composition
191 but this is still *highly experimental*, so feedback
192 is much appreciated :)
193 - added tests for this
195 * Moose::Meta::TypeConstraint
196 - the type constraint now handles the coercion process
197 through delegation, this is to support the coercion
200 * Moose::Meta::TypeConstraint::Union
201 - it is now possible for coercions to be performed
203 - added tests for this (thanks to konobi)
205 * Moose::Meta::TypeCoercion
206 - properly capturing error when type constraint
210 - Scalar::Util 1.18 is bad on Win32, so temporarily
211 only require version 1.17 for Win32 and cygwin.
212 (thanks Adam Kennedy)
214 0.12 Sat. Sept. 1, 2006
216 - Recipe5 (subtypes & coercion) has been written
219 - fixed "bad meta" error message to be more descriptive
220 - fixed &unimport to not remove the &inner and &super
221 keywords because we need to localize them.
222 - fixed number of spelling/grammer issues, thanks Theory :)
224 **~~ experimental & undocumented feature ~~**
225 - added the method and self keywords, they are basically
226 just sugar, and they may not stay around.
229 - added &dump method to easily Data::Dumper
232 * Moose::Meta::TypeConstraint
233 - added the &is_a_type_of method to check both the current
234 and the subtype of a method (similar to &isa with classes)
237 - this is now a subclass of Class::MOP::Module, and no longer
238 creates the _role_meta ugliness of before.
239 - fixed tests to reflect this change
241 0.11 Wed. July 12, 2006
243 - added an &unimport method to remove all the keywords
244 that Moose will import, simply add 'no Moose' to the
245 bottom of your class file.
248 - fixed some test failures caused by a forgotten test
251 0.10 Thurs. July 6, 2006
253 - improved error message when loading modules so
254 it is less confusing when you load a role.
255 - added &calculate_all_roles method to
256 Moose::Meta::Class and Moose::Meta::Role
259 This module has been tested against Class::MOP 0.30
260 but it does not yet utilize the optimizations
261 it makes available. Stay tuned for that ;)
263 0.09_03 Fri. June 23, 2006
264 ++ DEVELOPER RELEASE ++
266 - 'use strict' and 'use warnings' are no longer
267 needed in Moose classes, Moose itself will
268 turn them on for you.
269 - added tests for this
270 - moved code from exported subs to private methods
271 in Moose::Meta::Class
274 - as with Moose, strict and warnings are
275 automatically turned on for you.
276 - added tests for this
279 - now handles an edge case for override errors
280 - added tests for this
281 - added some more edge case tests
283 0.09_02 Tues. May 16, 2006
284 ++ DEVELOPER RELEASE ++
286 - added prototypes to the exported subs
290 - added prototypes to the exported subs
293 * Moose::Util::TypeConstraints
294 - cleaned up prototypes for the subs
297 0.09_01 Fri. May 12, 2006
298 ++ DEVELOPER RELEASE ++
299 - This release works in combination with
300 Class::MOP 0.29_01, it is a developer
301 release because it uses the a new
302 instance sub-protocol and a fairly
303 complete Role implementation. It has
304 not yet been optimized, so it slower
305 the the previous CPAN version. This
306 release also lacks good updated docs,
307 the official release will have updated docs.
310 - refactored the keyword exports
311 - 'with' now checks Role validaity and
312 accepts more than one Role at a time
313 - 'extends' makes metaclass adjustments as
314 needed to ensure metaclass compatability
317 - refactored the keyword exports
318 - 'with' now checks Role validaity and
319 accepts more than one Role at a time
321 * Moose::Util::TypeConstraints
322 - added the 'enum' keyword for simple
323 string enumerations which can be used as
325 - see example of usage in t/202_example.t
328 - more careful checking of params to new()
331 - much work done on the role composition
332 - many new tests for conflict detection
333 and composition edge cases
334 - not enough documentation, I suggest
337 * Moose::Meta::Instance
338 - added new Instance metaclass to support
339 the new Class::MOP instance protocol
342 - some small changes to support the new
344 - some small additions to support Roles
346 * Moose::Meta::Attribute
347 - some improvements to the accessor generation code
349 - some small changes to support the new
351 - (still somewhat) experimental delegation support
352 with the 'handles' option
353 - added several tests for this
354 - no docs for this yet
356 0.05 Thurs. April 27, 2006
358 - keywords are now exported with Sub::Exporter
359 thanks to chansen for this commit
360 - has keyword now takes a 'metaclass' option
361 to support custom attribute meta-classes
362 on a per-attribute basis
363 - added tests for this
364 - the 'has' keyword not accepts inherited slot
365 specifications (has '+foo'). This is still an
366 experimental feature and probably not finished
367 see t/038_attribute_inherited_slot_specs.t for
368 more details, or ask about it on #moose
369 - added tests for this
372 - keywords are now exported with Sub::Exporter
374 * Moose::Utils::TypeConstraints
375 - reorganized the type constraint hierarchy, thanks
376 to nothingmuch and chansen for his help and advice
378 - added some tests for this
379 - keywords are now exported with Sub::Exporter
380 thanks to chansen for this commit
383 - due to changes in Class::MOP, we had to change
384 construct_instance (for the better)
386 * Moose::Meta::Attribute
387 - due to changes in Class::MOP, we had to add the
388 initialize_instance_slot method (it's a good thing)
390 * Moose::Meta::TypeConstraint
391 - added type constraint unions
392 - added tests for this
393 - added the is_subtype_of predicate method
394 - added tests for this
396 0.04 Sun. April 16th, 2006
398 - Roles can now consume other roles
399 - added tests for this
400 - Roles can specify required methods now with
401 the requires() keyword
402 - added tests for this
405 - ripped out much of it's guts ,.. much cleaner now
406 - added required methods and correct handling of
407 them in apply() for both classes and roles
408 - added tests for this
409 - no longer adds a does() method to consuming classes
410 it relys on the one in Moose::Object
411 - added roles attribute and some methods to support
412 roles consuming roles
414 * Moose::Meta::Attribute
415 - added support for triggers on attributes
416 - added tests for this
417 - added support for does option on an attribute
418 - added tests for this
421 - added support for attribute triggers in the
423 - added tests for this
426 - Moose no longer creates a subtype for your class
427 if a subtype of the same name already exists, this
428 should DWIM in 99.9999% of all cases
430 * Moose::Util::TypeConstraints
431 - fixed bug where incorrect subtype conflicts were
433 - added test for this
436 - this class can now be extended with 'use base' if
437 you need it, it properly loads the metaclass class now
438 - added test for this
440 0.03_02 Wed. April 12, 2006
442 - you must now explictly use Moose::Util::TypeConstraints
443 it no longer gets exported for you automatically
446 - new() now accepts hash-refs as well as key/value lists
447 - added does() method to check for Roles
448 - added tests for this
451 - added roles attribute along with the add_role() and
453 - added tests for this
456 - now adds a does() method to consuming classes
457 which tests the class's hierarchy for roles
458 - added tests for this
460 0.03_01 Mon. April 10, 2006
462 - added new Role recipe (no content yet, only code)
465 - added 'with' keyword for Role support
466 - added test and docs for this
467 - fixed subtype quoting bug
468 - added test for this
472 - added test and docs
474 * Moose::Util::TypeConstraints
475 - added the message keyword to add custom
476 error messages to type constraints
479 - the meta role to support Moose::Role
480 - added tests and docs
483 - moved a number of things from Moose.pm
484 to here, they should have been here
487 * Moose::Meta::Attribute
488 - moved the attribute option macros here
489 instead of putting them in Moose.pm
491 * Moose::Meta::TypeConstraint
492 - added the message attributes and the
494 - added tests and docs for this
496 0.03 Thurs. March 30, 2006
498 - added the Moose::Cookbook with 5 recipes,
499 describing all the stuff Moose can do.
502 - fixed an issue with &extends super class loading
503 it now captures errors and deals with inline
504 packages correctly (bug found by mst, solution
506 - added super/override & inner/augment features
507 - added tests and docs for these
510 - BUILDALL now takes a reference of the %params
511 that are passed to &new, and passes that to
514 * Moose::Util::TypeConstraints
515 - Type constraints now survive runtime reloading
516 - added test for this
519 - fixed the way attribute defaults are handled
520 during instance construction (bug found by chansen)
522 * Moose::Meta::Attribute
523 - read-only attributes now actually enforce their
524 read-only-ness (this corrected in Class::MOP as
527 0.02 Tues. March 21, 2006
529 - many more tests, fixing some bugs and
531 - &extends now loads the base module with
533 - added UNIVERSAL::require to the
536 - each new Moose class will also create
537 and register a subtype of Object which
538 correspond to the new Moose class.
539 - the 'isa' option in &has now only
540 accepts strings, and will DWIM in
543 * Moose::Util::TypeConstraints
544 - added type coercion features
545 - added tests for this
546 - added support for this in attributes
547 and instance construction
549 - type construction no longer creates a
550 function, it registers the type instead.
551 - added several functions to get the
555 - BUILDALL and DEMOLISHALL were broken
556 because of a mis-named hash key, Whoops :)
558 * Moose::Meta::Attribute
559 - adding support for coercion in the
560 autogenerated accessors
563 - adding support for coercion in the
564 instance construction
566 * Moose::Meta::TypeConstraint
567 * Moose::Meta::TypeCoercion
568 - type constraints and coercions are now
569 full fledges meta-objects
571 0.01 Wed. March 15, 2006
572 - Moooooooooooooooooose!!!