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
17 - added tests and docs for this
19 * Moose::Meta::TypeConstraint
20 - type constraints now stringify to their names.
24 - added test for working with Module::Refresh
26 0.18 Sat. March 10, 2007
27 ~~ Many, many documentation updates ~~
29 - We now use Class::MOP::load_class to
33 !! You must have Class::MOP 0.37_001 !!
34 !! for this developer release to work !!
36 This release was primarily adding the immutable
37 feature to Moose. An immutable class is one which
38 you promise not to alter. When you set the class
39 as immutable it will perform various bits of
40 memoization and inline certain part of the code
41 (constructors, destructors and accessors). This
42 minimizes (and in some cases totally eliminates)
43 one of Moose's biggest performance hits. This
44 feature is not on by default, and is 100% optional.
45 It has several configurable bits as well, so you
46 can pick and choose to your specific needs.
48 The changes involved in this were fairly wide and
49 highly specific, but 100% backwards compatible, so
50 I am not going to enumerate them here. If you are
51 truely interested in what was changed, please do
54 0.17 Tues. Nov. 14, 2006
55 * Moose::Meta::Method::Accessor
56 - bugfix for read-only accessors which
57 are have a type constraint and lazy.
58 Thanks to chansen for finding it.
60 0.16 Tues. Nov. 14, 2006
62 There are some speed improvements in this release,
63 but they are only the begining, so stay tuned.
66 - BUILDALL and DEMOLISHALL no longer get
67 called unless they actually need to be.
68 This gave us a signifigant speed boost
69 for the cases when there is no BUILD or
70 DEMOLISH method present.
72 * Moose::Util::TypeConstraints
73 * Moose::Meta::TypeConstraint
74 - added an 'optimize_as' option to the
75 type constraint, which allows for a
76 hand optimized version of the type
77 constraint to be used when possible.
78 - Any internally created type constraints
79 now provide an optimized version as well.
81 0.15 Sun. Nov. 5, 2006
83 This version of Moose *must* have Class::MOP 0.36 in order
84 to work correctly. A number of small internal tweaks have
85 been made in order to be compatible with that release.
87 * Moose::Util::TypeConstraints
88 - added &unimport so that you can clean out
89 your class namespace of these exported
93 - fixed minor issue which occasionally
94 comes up during global destruction
96 - moved Moose::Meta::Method::Overriden into
100 - moved Moose::Meta::Role::Method into
103 * Moose::Meta::Attribute
104 - changed how we do type checks so that
105 we reduce the overall cost, but still
108 - moved accessor generation methods to
109 Moose::Meta::Method::Accessor to
110 conform to the API changes from
113 * Moose::Meta::TypeConstraint
114 - changed how constraints are compiled
115 so that we do less recursion and more
116 iteration. This makes the type check
118 - moved Moose::Meta::TypeConstraint::Union
121 * Moose::Meta::Method::Accessor
122 - created this from methods formerly found in
123 Moose::Meta::Attribute
125 * Moose::Meta::Role::Method
126 - moved this from Moose::Meta::Role
128 * Moose::Meta::Method::Overriden
129 - moved this from Moose::Meta::Class
131 * Moose::Meta::TypeConstraint::Union
132 - moved this from Moose::Meta::TypeConstraint
134 0.14 Mon. Oct. 9, 2006
136 * Moose::Meta::Attribute
137 - fixed lazy attributes which were not getting
138 checked with the type constraint (thanks ashley)
139 - added tests for this
140 - removed the over-enthusiastic DWIMery of the
141 automatic ArrayRef and HashRef defaults, it
142 broke predicates in an ugly way.
143 - removed tests for this
145 0.13 Sat. Sept. 30, 2006
147 This version of Moose *must* have Class::MOP 0.35 in order
148 to work correctly. A number of small internal tweaks have
149 been made in order to be compatible with that release.
152 - Removed the use of UNIVERSAL::require to be a better
153 symbol table citizen and remove a dependency
154 (thanks Adam Kennedy)
156 **~~ removed experimental & undocumented feature ~~**
157 - commented out the 'method' and 'self' keywords, see the
158 comments for more info.
161 - added a FAQ and WTF files to document frequently
162 asked questions and common problems
164 * Moose::Util::TypeConstraints
165 - added GlobRef and FileHandle type constraint
166 - added tests for this
168 * Moose::Meta::Attribute
169 - if your attribute 'isa' ArrayRef of HashRef, and you have
170 not explicitly set a default, then make the default DWIM.
171 This will also work for subtypes of ArrayRef and HashRef
173 - you can now auto-deref subtypes of ArrayRef or HashRef too.
174 - new test added for this (thanks to ashley)
177 - added basic support for runtime role composition
178 but this is still *highly experimental*, so feedback
179 is much appreciated :)
180 - added tests for this
182 * Moose::Meta::TypeConstraint
183 - the type constraint now handles the coercion process
184 through delegation, this is to support the coercion
187 * Moose::Meta::TypeConstraint::Union
188 - it is now possible for coercions to be performed
190 - added tests for this (thanks to konobi)
192 * Moose::Meta::TypeCoercion
193 - properly capturing error when type constraint
197 - Scalar::Util 1.18 is bad on Win32, so temporarily
198 only require version 1.17 for Win32 and cygwin.
199 (thanks Adam Kennedy)
201 0.12 Sat. Sept. 1, 2006
203 - Recipe5 (subtypes & coercion) has been written
206 - fixed "bad meta" error message to be more descriptive
207 - fixed &unimport to not remove the &inner and &super
208 keywords because we need to localize them.
209 - fixed number of spelling/grammer issues, thanks Theory :)
211 **~~ experimental & undocumented feature ~~**
212 - added the method and self keywords, they are basically
213 just sugar, and they may not stay around.
216 - added &dump method to easily Data::Dumper
219 * Moose::Meta::TypeConstraint
220 - added the &is_a_type_of method to check both the current
221 and the subtype of a method (similar to &isa with classes)
224 - this is now a subclass of Class::MOP::Module, and no longer
225 creates the _role_meta ugliness of before.
226 - fixed tests to reflect this change
228 0.11 Wed. July 12, 2006
230 - added an &unimport method to remove all the keywords
231 that Moose will import, simply add 'no Moose' to the
232 bottom of your class file.
235 - fixed some test failures caused by a forgotten test
238 0.10 Thurs. July 6, 2006
240 - improved error message when loading modules so
241 it is less confusing when you load a role.
242 - added &calculate_all_roles method to
243 Moose::Meta::Class and Moose::Meta::Role
246 This module has been tested against Class::MOP 0.30
247 but it does not yet utilize the optimizations
248 it makes available. Stay tuned for that ;)
250 0.09_03 Fri. June 23, 2006
251 ++ DEVELOPER RELEASE ++
253 - 'use strict' and 'use warnings' are no longer
254 needed in Moose classes, Moose itself will
255 turn them on for you.
256 - added tests for this
257 - moved code from exported subs to private methods
258 in Moose::Meta::Class
261 - as with Moose, strict and warnings are
262 automatically turned on for you.
263 - added tests for this
266 - now handles an edge case for override errors
267 - added tests for this
268 - added some more edge case tests
270 0.09_02 Tues. May 16, 2006
271 ++ DEVELOPER RELEASE ++
273 - added prototypes to the exported subs
277 - added prototypes to the exported subs
280 * Moose::Util::TypeConstraints
281 - cleaned up prototypes for the subs
284 0.09_01 Fri. May 12, 2006
285 ++ DEVELOPER RELEASE ++
286 - This release works in combination with
287 Class::MOP 0.29_01, it is a developer
288 release because it uses the a new
289 instance sub-protocol and a fairly
290 complete Role implementation. It has
291 not yet been optimized, so it slower
292 the the previous CPAN version. This
293 release also lacks good updated docs,
294 the official release will have updated docs.
297 - refactored the keyword exports
298 - 'with' now checks Role validaity and
299 accepts more than one Role at a time
300 - 'extends' makes metaclass adjustments as
301 needed to ensure metaclass compatability
304 - refactored the keyword exports
305 - 'with' now checks Role validaity and
306 accepts more than one Role at a time
308 * Moose::Util::TypeConstraints
309 - added the 'enum' keyword for simple
310 string enumerations which can be used as
312 - see example of usage in t/202_example.t
315 - more careful checking of params to new()
318 - much work done on the role composition
319 - many new tests for conflict detection
320 and composition edge cases
321 - not enough documentation, I suggest
324 * Moose::Meta::Instance
325 - added new Instance metaclass to support
326 the new Class::MOP instance protocol
329 - some small changes to support the new
331 - some small additions to support Roles
333 * Moose::Meta::Attribute
334 - some improvements to the accessor generation code
336 - some small changes to support the new
338 - (still somewhat) experimental delegation support
339 with the 'handles' option
340 - added several tests for this
341 - no docs for this yet
343 0.05 Thurs. April 27, 2006
345 - keywords are now exported with Sub::Exporter
346 thanks to chansen for this commit
347 - has keyword now takes a 'metaclass' option
348 to support custom attribute meta-classes
349 on a per-attribute basis
350 - added tests for this
351 - the 'has' keyword not accepts inherited slot
352 specifications (has '+foo'). This is still an
353 experimental feature and probably not finished
354 see t/038_attribute_inherited_slot_specs.t for
355 more details, or ask about it on #moose
356 - added tests for this
359 - keywords are now exported with Sub::Exporter
361 * Moose::Utils::TypeConstraints
362 - reorganized the type constraint hierarchy, thanks
363 to nothingmuch and chansen for his help and advice
365 - added some tests for this
366 - keywords are now exported with Sub::Exporter
367 thanks to chansen for this commit
370 - due to changes in Class::MOP, we had to change
371 construct_instance (for the better)
373 * Moose::Meta::Attribute
374 - due to changes in Class::MOP, we had to add the
375 initialize_instance_slot method (it's a good thing)
377 * Moose::Meta::TypeConstraint
378 - added type constraint unions
379 - added tests for this
380 - added the is_subtype_of predicate method
381 - added tests for this
383 0.04 Sun. April 16th, 2006
385 - Roles can now consume other roles
386 - added tests for this
387 - Roles can specify required methods now with
388 the requires() keyword
389 - added tests for this
392 - ripped out much of it's guts ,.. much cleaner now
393 - added required methods and correct handling of
394 them in apply() for both classes and roles
395 - added tests for this
396 - no longer adds a does() method to consuming classes
397 it relys on the one in Moose::Object
398 - added roles attribute and some methods to support
399 roles consuming roles
401 * Moose::Meta::Attribute
402 - added support for triggers on attributes
403 - added tests for this
404 - added support for does option on an attribute
405 - added tests for this
408 - added support for attribute triggers in the
410 - added tests for this
413 - Moose no longer creates a subtype for your class
414 if a subtype of the same name already exists, this
415 should DWIM in 99.9999% of all cases
417 * Moose::Util::TypeConstraints
418 - fixed bug where incorrect subtype conflicts were
420 - added test for this
423 - this class can now be extended with 'use base' if
424 you need it, it properly loads the metaclass class now
425 - added test for this
427 0.03_02 Wed. April 12, 2006
429 - you must now explictly use Moose::Util::TypeConstraints
430 it no longer gets exported for you automatically
433 - new() now accepts hash-refs as well as key/value lists
434 - added does() method to check for Roles
435 - added tests for this
438 - added roles attribute along with the add_role() and
440 - added tests for this
443 - now adds a does() method to consuming classes
444 which tests the class's hierarchy for roles
445 - added tests for this
447 0.03_01 Mon. April 10, 2006
449 - added new Role recipe (no content yet, only code)
452 - added 'with' keyword for Role support
453 - added test and docs for this
454 - fixed subtype quoting bug
455 - added test for this
459 - added test and docs
461 * Moose::Util::TypeConstraints
462 - added the message keyword to add custom
463 error messages to type constraints
466 - the meta role to support Moose::Role
467 - added tests and docs
470 - moved a number of things from Moose.pm
471 to here, they should have been here
474 * Moose::Meta::Attribute
475 - moved the attribute option macros here
476 instead of putting them in Moose.pm
478 * Moose::Meta::TypeConstraint
479 - added the message attributes and the
481 - added tests and docs for this
483 0.03 Thurs. March 30, 2006
485 - added the Moose::Cookbook with 5 recipes,
486 describing all the stuff Moose can do.
489 - fixed an issue with &extends super class loading
490 it now captures errors and deals with inline
491 packages correctly (bug found by mst, solution
493 - added super/override & inner/augment features
494 - added tests and docs for these
497 - BUILDALL now takes a reference of the %params
498 that are passed to &new, and passes that to
501 * Moose::Util::TypeConstraints
502 - Type constraints now survive runtime reloading
503 - added test for this
506 - fixed the way attribute defaults are handled
507 during instance construction (bug found by chansen)
509 * Moose::Meta::Attribute
510 - read-only attributes now actually enforce their
511 read-only-ness (this corrected in Class::MOP as
514 0.02 Tues. March 21, 2006
516 - many more tests, fixing some bugs and
518 - &extends now loads the base module with
520 - added UNIVERSAL::require to the
523 - each new Moose class will also create
524 and register a subtype of Object which
525 correspond to the new Moose class.
526 - the 'isa' option in &has now only
527 accepts strings, and will DWIM in
530 * Moose::Util::TypeConstraints
531 - added type coercion features
532 - added tests for this
533 - added support for this in attributes
534 and instance construction
536 - type construction no longer creates a
537 function, it registers the type instead.
538 - added several functions to get the
542 - BUILDALL and DEMOLISHALL were broken
543 because of a mis-named hash key, Whoops :)
545 * Moose::Meta::Attribute
546 - adding support for coercion in the
547 autogenerated accessors
550 - adding support for coercion in the
551 instance construction
553 * Moose::Meta::TypeConstraint
554 * Moose::Meta::TypeCoercion
555 - type constraints and coercions are now
556 full fledges meta-objects
558 0.01 Wed. March 15, 2006
559 - Moooooooooooooooooose!!!