fixing typo
[gitmo/Class-MOP.git] / Changes
CommitLineData
7c90a1a8 1Revision history for Perl extension Class-MOP.
b817e248 2
8adaad20 30.55 Mon. April 28, 2008
4 - All classes now have proper C3 MRO support
5 - added MRO::Compat as a dependency to allow
6 for the C3 MRO support to Just Work in all
7 perl versions
77a143ba 8
830b326c 9 * Class::MOP::Class
10 - rebless_instance now returns the instance
11 it has just blessed, this is mostly to
12 facilitate chaining
6e2a700f 13 - set the attr correctly in rebless_instance
14 when it has no init_arg
77a143ba 15 - tweaked &linear_isa and &class_precedence_list
16 to support c3 classes.
830b326c 17
e0db39d2 180.54 Fri. March, 14, 2008
8861fab2 19 * Class::MOP
214e4bd7 20 metaclass.pm
8861fab2 21 - making sure that load_class never gets
22 passed a value from @_ or $_ to squash
23 Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
24
09c6e1d2 25 * Class::MOP::Class
26 - make_{immutable,mutable} now return 1
27 (cause Sartak asked)
d7b2249e 28 - improved error handling in ->create method
214e4bd7 29 - rebless_instance now takes extra params which
30 will be used to populate values
31 - added tests for this
acce7fd6 32
33 * Class::MOP::Object
34 - localizing the Data::Dumper configurations so
35 that it does not pollute others (RT #33509)
09c6e1d2 36
d7b2249e 37 * Class::MOP::Class
38 Class::MOP::Package
39 Class::MOP::Module
40 Class::MOP::Method
41 Class::MOP::Attribute
42 - these classes no longer define their own ->meta,
43 but instead just inherit from Class::MOP::Object
44
45 * Class::MOP::Instance
46 Class::MOP::Immutable
47 - these classes now inherit from Class::MOP::Object
48
10dd437b 49 * t/
50 - fixed the filename length on several
51 test files so we install on VMS better
52 (RT #32295)
53 - fixed incorrect use of catdir when it
54 should be catfile (RT #32385)
55
2491730f 560.53 Thurs. Feb. 14, 1008
7a536297 57 ~~ several doc. fixes and updates ~~
0c6f4c4a 58
59 * Class::MOP::Class
60 Class::MOP::Method::Constructor
61 Class::MOP::Attribute
62 - making init_arg accept an undefined value
63 to indicate that no constructor args can
64 be passed (thanks to nothingmuch)
65 - added tests for this
339264d8 66 - added attribute initializer attribute (rjbs)
0c6f4c4a 67
68 * Class::MOP.
69 - making this use the new init_arg => undef
70 feature instead of the silly hack from
71 before (thanks to nothingmuch)
ad074154 72
3e8e8f07 730.52 Tues. Jan. 22, 2008
2a2b8458 74 * Class::MOP::Class
75 - fixed bug in rebless_instance
76 (discovered by ash)
77
78 * Class::MOP::Method::Constructor
79 - removed assumptions about the existence of
80 a &meta method
81
656ce3ba 820.51 Mon. Jan. 14, 2008
69e3ab0a 83 ~~~ some misc. doc. fixes ~~~
84 ~~ updated copyright dates ~~
c1d5345a 85
86 * Class::MOP
87 - now sets the IS_RUNNING_ON_5_10
88 constant so that we can take advantage
89 of some of the nice bits of 5.10
90
91 * Class::MOP::Class
92 - uses the IS_RUNNING_ON_5_10 flag to
93 optimize the &linearized_isa method
94 and avoid the hack/check for circular
95 inheritence in &class_precedence_list
3d9e4646 96 - added rebless_instance method (Sartak)
97 - added tests for this
c1d5345a 98
99 * Class::MOP::Immutable
100 - the immutable class now keeps track of
101 the transformer which immutablized it
69e3ab0a 102
3d9e4646 103 * Class::MOP::Instance
104 - added rebless_instance_structure method (Sartak)
105 - added tests for this
106
a780a6ff 1070.50 Fri. Dec. 21, 2007
6ff0d647 108 * Class::MOP::Class
109 - fixed bug in immutable to make sure that
110 transformation arguments are saved
111 correctly (mst)
b6bcc3a5 112 - added tests for this
6ff0d647 113
114 * Class::MOP::Immutable
115 - fixed a bug (see above)
116
117 * Class::MOP::Attribute
118 - some doc updates
119
30b8af04 1200.49 Fri. Dec. 14, 2007
b6bcc3a5 121 !! Class::MOP now loads 2 x faster !!
30b8af04 122 !! with XS speedups (thanks konobi) !!
123
124 * Class::MOP
125 - removed the dependency on B
126 - added two XS functions (thanks konobi)
127 - get_code_info($code) which replaces all
128 the B fiddling we were doing with
129 faster/leaner XS level fiddling
130 - check_package_cache_flag($pkg_name) which
131 returns the PL_sub_generation variable to
132 be used to help manage method caching.
133
134 NOTE:
135 In 5.10 or greater this will actually
136 use the mro::get_pkg_gen instead to give
137 even more accurate caching information.
138 blblack++ for that stuff :)
139
6c9f390e 140 * Class::MOP::Class
141 - added the &subclasses method (thanks rlb)
30b8af04 142 - added the update_package_cache_flag and
143 reset_package_cache_flag which help keep
144 track of when we need to re-fetch the
145 method map.
146 - Several small improvements to take advantage
147 of the new method map caching features
4c4a6c41 148
1b8b3e09 1490.48 Mon. Nov. 26, 2007
d14f6cbe 150 * Class::MOP::Attribute
151 - fixed get_read/write_method to handle the
152 HASH ref case, which makes the
153 get_read/write_method_ref handle it too.
154 - added more tests for this
155
742fb371 1560.47 Sat. Nov. 24, 2007
157 * Class::MOP::Attribute
158 - fixed misspelling in get_write_method_ref
78d9bb38 159 - added more tests for this
742fb371 160
fe7c0b15 1610.46 Fri. Nov. 23, 2007
b7bdffc3 162 * Class::MOP::Class
163 - added the linearized_isa method instead of constantly
164 pruning duplicate classes (this will be even more
165 useful in the 5.10-compat version coming soon)
5da16d1b 166
167 * Class::MOP::Attribute
168 - added the get_read_method_ref and get_write_method_ref
169 methods which allow you to retrieve a CODE ref which
170 can always be used to read or write an attribute.
b7bdffc3 171
1a5cc82e 1720.45 Thurs. Nov. 13, 2007
232c4e13 173 * Class::MOP::Attribute
174 - Fix error message on confess (groditi)
175
544143b2 1760.44 Thurs. Nov. 13, 2007
177 - Apparently I didn't make dist correctly (groditi)
178
c0aeeb91 1790.43 Thurs. Nov. 13, 2007
b08fd50c 180 * Class::MOP
1d68af04 181 - Add support for the 'builder' attribute (groditi)
182
b08fd50c 183 * Class::MOP::Class
184 - optimise metaclass-already-exists check in
185 construct_class_instance (groditi)
186 - duplicate check into initialize to save a
187 call through (groditi)
188
1d68af04 189 * Class::MOP::Attribute
190 - Add support for the 'builder' attribute (groditi)
8768ecf3 191 - Make predicates check for the existence of a value, not whether
b08fd50c 192 it is defined (groditi)
8768ecf3 193
194 * Class::MOP::Instance
195 - Make predicates check for the existence of a value, not whether
b08fd50c 196 it is defined (groditi)
8768ecf3 197
565f0cbb 198 * Class::MOP::Method::Accessor
199 - made this a subclass of Class::MOP::Method::Generated
200 - removed the relevant attributes
201
202 * Class::MOP::Method::Constructor
203 - fixed the cached values we had to be more sane
204 - made this a subclass of Class::MOP::Method::Generated
205 - fixed generated constructor so it properly handles
206 subclasses now.
207 - added tests for this
208 - added the option to allow for both inlined and
209 non-inlined constructors.
b08fd50c 210 - Update inlined methods for builder and predicate changes (groditi)
565f0cbb 211
212 * Class::MOP::Method::Generated
213 - added this class as an abstract base for the
214 Class::MOP::Method::{Constructor,Accessor} classes
215 - added tests for this
216
b08fd50c 217 *t/
218 - Alter tests (005, 014 020, 021) for new builder addition (groditi)
219 - Tests for new predicate behavior (and corrections to old tests) (groditi)
220
221 *examples/
222 - Update ArrayRef based class example to work with predicate changes
223
367183c4 2240.42 Mon. July 16, 2007
9195ddff 225 !!! Horray for mst, he fixed it !!!
226
92af7fdf 227 * Class::MOP::Package
228 - alter symbol table handling to deal with 5.8.x and 5.9.x
9195ddff 229
92af7fdf 230 * t/
9195ddff 231 - Get rid of the crappy workaround from 0.40/41
92af7fdf 232
829f7554 2330.41 Sun. July 15, 2007
234 * t/
235 Arghh!!! My TODO test didn't work, so I handle
236 it manually now so that people can use this
237 with 5.9.5/bleadperl without issue.
238
1d7205b8 2390.40 Tues, July 3, 2007
9f88b8ff 240 * t/
241 ~ marked a test in 003_methods.t as TODO
1d7205b8 242 for perl 5.9.5 (this test is irrelvant to
243 the module functioning on 5.9.5 for the most
244 part anyway)
9f88b8ff 245
28acb786 2460.39 Mon. June 18, 2007
b817e248 247 * Class::MOP::Immutable
0ac992ee 248 - added make_metaclass_mutable + docs (groditi)
249 - removed unused variable
d9586da2 250 - added create_immutable_transformer
251 necessary for sane overloading of immutable behavior
252 - tests for this (groditi)
0ac992ee 253
254 * Class::MOP::Class
255 - Immutability can now be undone,
256 added make_mutable + tests + docs (groditi)
04dd7510 257 - Massive changes to the way Immutable is done
258 for details see comments next to make_immutable
259 This fixes a bug where custom metaclasses broke
260 when made immutable. We are now keeping one immutable
261 metaclass instance per metaclass instead of just one
262 to prevent isa hierarchy corruption. Memory use will go
263 up, but I suspect it will be neglible.
264 - New tests added for this behavior. (groditi)
7c90a1a8 265
c0fcd6ab 2660.38 Thurs. May 31, 2007
823a5d31 267 ~~ More documentation updates ~~
c81de280 268
823a5d31 269 * Class::MOP::Package
270 - we now deal with stub methods properly
271 - added tests for this
c0fcd6ab 272 - fixed some tests failing on 5.9.5 (thanks blblack)
c81de280 273
b25109b1 274 * Class::MOP::Attribute
275 - added get_read_method and get_write_method
c81de280 276 thanks to groditi for this code, tests
277 and docs.
b25109b1 278 - added tests and POD for this
795a0c8b 279
280 * Class::MOP::Class
281 - fixed RT issue #27329, clone object now
282 handles undef values correctly.
283 - added tests for this
d4ba1677 284 - Corrected anon-class handling so that they
285 will not get reaped when instances still
286 exist which need to reference them. This is
287 the correct behavior, hopefully this is an
288 obscure enough feature that there are not too
289 many work arounds out in the wild.
290 - added tests for this by groditi
95514cb4 291 - updated docs to explain this
292
293 * metaclass
c0fcd6ab 294 - load custom metaclasses automatically (thanks groditi)
f2266181 295 - added tests for this behavior
a06797b0 296
3dc99d93 2970.37 Sat. March 10, 2007
448b6e55 298 ~~ Many, many documentation updates ~~
299
300 * Class::MOP
301 - added &load_class and &is_class_loaded
302 - added tests and docs for these
2367814a 303
9363ea89 304 * Class::MOP::Attribute
305 - default now checks the instance with defined to
306 avoid setting off bool-overloads (found by Carl Franks)
307
c23184fc 3080.37_002
309 * /t
310 - bad name in a test, causing meaningless failuress.
311 No other changes.
312
3130.37_001
314
315 ~~ GLOBAL CHANGES ~~
316 - All attribute names are now consistent and follow Perl 6
317 style (prefixed with the sigil, and ! as the twigil for
318 private attrs). This should not affect any code, unless
319 you broke encapsulation, in which case, it is your problem
320 anyway.
321
322 !! Class::MOP::Class::Immutable has been removed
323
324 * Class::MOP::Method::Constructor
325 - this has been moved out of Class::MOP::Class::Immutable
326 and is a proper subclass of Class::MOP::Method now.
327
328 * Class::MOP::Class
329 - this module now uses Class::MOP::Immutable for the
330 immutable transformation instead of
331 Class::MOP::Class::Immutable.
332
333 + Class::MOP::Immutable
334 - this module now controls the transformation from a mutable
335 to an immutable version of the class. Docs for this will
336 be coming eventually.
337
338
cdc1ecba 3390.36 Sun. Nov. 5, 2006
a651e249 340 * Class::MOP::Class
341 - added a few 'no warnings' lines to keep annoying
342 (and meaningless) warnings from chirping during
343 global destruction.
0870928c 344
345 * Class::MOP
346 - some more bootstrapping is now done on the new
347 classes
348
349 * Class::MOP::Class::Immutable
350 *** API CHANGE ***
351 - constructor generation is now handled by
352 the Class::MOP::Method::Constructor class
353
354 * Class::MOP::Method::Constructor
355 - created this to handle constructor generation
356 in Class::MOP::Class::Immutable
357
358 * Class::MOP::Attribute
359 *** API CHANGE ***
360 - attributes now delegate to the
361 Class::MOP::Method::Accessor to generate
362 accessors
363
364 * Class::MOP::Method::Accessor
365 - all accessor generation functions from
366 Class::MOP::Attribute have been moved here
a651e249 367
80f00c79 3680.35 Sat. Sept. 30, 2006
8745cf22 369
370 * scripts/class_browser.pl
371 - initial prototype of a class browser, more
372 on this to come. Comments and patches are
373 very much welcome.
b1897d4d 374
375 * Class::MOP
3e86c902 376 - All Class::MOP::* accessors are no longer
377 re-generated in the bootstrap, instead
6d2118a4 378 they are aliased from the originals
6d2118a4 379 - fixed tests to reflect
b1897d4d 380 - added Class::MOP::Method (and its subclasses)
381 to the bootstrap
382 - adjusted tests for this
86482605 383 - added the Class::MOP::Instance attributes
384 to the bootstrap
b1897d4d 385
386 * Class::MOP::Method
387 *** API CHANGE ***
388 - methods are no longer blessed CODE refs
389 but are actual objects which can be CODE-ified
390 - adjusted tests to compensate
86482605 391 - adjusted docs for this
b1897d4d 392
393 * Class::MOP::Class
394 - changed how methods are dealt with to
395 encapsulate most of the work into the
396 &get_method_map method
397 - made several adjustments for the change
398 in Class::MOP::Method
399 - &add_attribute now checks if you are adding
400 a duplicate name, and properly removes the
401 old one before installing the new one
402 - added tests for this
86482605 403 - adjusted docs for this
b1897d4d 404
405 * Class::MOP::Class::Immutable
406 - added caching of &get_method_map
407 - fixed issue with &get_package_symbol
408 - cleaned up the methods that die (patch by David Wheeler)
409
410 * Class::MOP::Package
411 - added filtering capabilities to
412 &list_all_package_symbols
413
a549ce50 4140.34 Sat. Aug. 26, 2006
c4260b45 415 * Class::MOP::Class
416 - added the %:methods attribute, which like
417 the $:version and such just actually goes
418 to the symbol table to get it's stuff.
419 However, it makes the MOP more complete.
88dd563c 420 ** API CHANGE **
421 - The &create method now requires that all
422 but the package name now is passed in as
423 named parameters. See docs for more info.
424 - updated docs and tests for this
c4260b45 425
426 * Class::MOP::Object
427 - added &dump method to easily Data::Dumper
428 an object
429
430 * Class::MOP
431 - cleaned up the initialization of attributes
432 which do not store things in the instance
433 - added the %:methods attribute definition to
434 the bootstrap
88dd563c 435
436 ~ lots of misc. test cleanup
c4260b45 437
56e8dd5d 4380.33 Sat. Aug. 19, 2006
be7677c7 439 * Class::MOP::Class
440 - moved the metaclass cache out of here
441 and it is now in Class::MOP itself.
56e8dd5d 442
443 * Class::MOP
444 - moved all the metaclass cache stuff here
445 - fixed all tests for this
be7677c7 446
148b4697 447 * Class::MOP::Attribute
448 - reference values (other than CODE refs)
449 are no longer allowed for defaults
450 - added tests for this
56dcfc1a 451
452 * Class::MOP::Package
453 - fixed an issue with perl 5.8.1 and how it deals
e3a2c885 454 with symbol tables. The namespace hash is now
455 always reloaded from the symbol table.
456
457 ~ lots of misc. documentation cleanup
1396f86b 458
716c5765 4590.32 Sat. Aug. 12, 2006
6e57504d 460 + added Class::MOP::Object so that the
461 metamodel is more complete (and closer
462 to what Perl 6 will probably be).
463
9ca19585 464 * Class::MOP::Package
465 - refactored entire class, this is now
466 the primary gateway between the metaclass
467 and the Perl 5 symbol table
468 - added many tests for this
6e57504d 469 - this class is now a subclass of
470 Class::MOP::Object
716c5765 471 - added some tests to reflect this
9ca19585 472
473 * Class::MOP::Class
474 - refactored all symbol table access to
475 use Class::MOP::Package methods instead
f0480c45 476
477 * Class::MOP::Module
478 - adding the $:version attribute in the bootstrap
479 so that Module has a version as an attribute
480 - see comment in Class::MOP for details
481 - added the $:authority attribute to this module
482 as well as an &identifier method, to bring us
483 ever closer to Perl 6 goodness
716c5765 484 - I have added $AUTHORITY to all the modules
485 - added tests for this
9ca19585 486
f0480c45 487 * Class::MOP::Instance
488 - added &deinitialize_slot for removing slots
489 from an instance
490 - added tests for this
9ca19585 491
492 * Class::MOP::Attribute
493 - added support for &deinitialize_slot for removing
494 slots from an instance
495 - added tests for this
496
1a09d9cc 4970.31 Sat. July 15, 2006
498
b679e644 499 * Class::MOP::Class
500 - added &find_method_by_name to locate a method
501 anywhere within the class hierarchy
502
503 * Class::MOP::Attribute
504 - added &set_value and &get_value for getting
505 the value of the attribute for a particular
506 instance.
507
373a16ae 5080.30 Wed. July 5, 2006
509 ---------------------------------------
510 This is the first version of Class::MOP
511 to introduce the immutable features which
512 will be used for optimizating the MOP.
513 This support should still be considered
514 experimental, but moving towards stability.
515 ---------------------------------------
e0a82090 516
373a16ae 517 * Created Class::MOP::Class::Immutable
be960ba1 518
373a16ae 519 * Created the Class::MOP::Package and
520 Class::MOP::Module classes to more
521 closely conform to Perl 6's meta-model
e0a82090 522
523 * Class::MOP::Class
524 - now inherits from Class::MOP::Module
525 - several methods moved to ::Module and
526 ::Package and now inherited
527 - added tests for this
c0cbf4d9 528
529 * Class::MOP::Instance
530 - added an is_inlinable method to allow other
531 classes to check before they attempt to optimize.
be960ba1 532 - added an inline_create_instance to inline
533 instance creation (of course)
534
2ba153a9 535 ** API CHANGE **
536 - the Class::MOP::Class::*_package_variable
537 methods are all now methods of Class::MOP::Package
538 and called *_package_symbol instead. This is
539 because they are now more general purpose symbol
540 table manipulation methods.
e0a82090 541
cdfaa4cc 5420.29_02 Thurs. June 22, 2006
543 ++ DEVELOPER RELEASE ++
df7b4119 544 * Class::MOP::Class
545 - small change in &create so that it behaves
546 properly when inherited
cdfaa4cc 547 - small fix to &clone_instance
df7b4119 548
667cecf3 5490.29_01 Fri. May 12, 2006
550 ++ DEVELOPER RELEASE ++
551 - This release works in combination with
552 Moose 0.09_01, it is a developer release
553 because it introduces a new instance
554 sub-protocol and has not yet been
555 optimized.
556
40483095 557 * Class::MOP::Class
558 - anon-classes are now properly garbage collected
559 - added tests for this
195f5bf8 560 - improved method modifier wrapping
40483095 561
2bab2be6 562 * Class::MOP::Instance
1becdfcc 563 - added new instance protocol
2bab2be6 564 - added tests for this
565 - changed all relevant modules and examples
566 - Class::MOP::Class
567 - Class::MOP::Attribute
568 - examples/*
569
1becdfcc 570 * metaclass
571 - you no longer need to specify the metaclass
572 itself, if it is not there, Class::MOP::Class
573 is just assumed
574 - updated tests for this
575
576 * examples/
577 - added ArrayBasedStorage example to show
578 instance storage using ARRAY refs instead of
579 HASH refs.
580 - added tests for this
581 - InsideOutClass is totally revised using the
582 new instance protocol
583 - added more tests for this
584
93b4e576 5850.26 Mon. April 24, 2006
e7f732e4 586 * Class::MOP::Class
587 - added find_attribute_by_name method
588 - added tests and docs for this
56a0b530 589 - some small optimizations
590
591 * Class::MOP::Attribute
592 - some small optimizations
e7f732e4 593
46666f33 5940.25 Thurs. April 20, 2006
587aca23 595 * Class::MOP::Class
596 - added create_anon_class for creating anonymous classes
597 - added tests for this
598 - added get_all_metaclasses, get_all_metaclass_names
599 and get_all_metaclass_instances method to allow
600 access to all the cached metaclass objects.
bd4e03f9 601 - attribute slot initialization is now the responsibility
602 of the attribute itself, and construct_instance now
603 delegates appropriately
604
605 * Class::MOP::Attribute
606 - attribute slot initialization is now the responsibility
607 of the attribute itself, so we added a method for it
608 called initialize_instance_slot
fed4cee7 609
610 * examples/
611 - adjusted all the examples to use the new attribute
612 initialize_instance_slot method
587aca23 613
1daaa2b2 6140.24 Tues. April 11, 2006
8c936afc 615 * Class::MOP::Class
616 - cleaned up how the before/after/around method
617 modifiers get named with Sub::Name
618
b9dfbf78 6190.23 Thurs. March 30, 2006
a977cf65 620 * Class::MOP::Class
621 - fixed the way attribute defaults are handled
622 during instance construction (bug found by chansen)
b9dfbf78 623
624 * Class::MOP::Attribute
625 - read-only accessors ('reader') will now die if
626 passed more than one argument (attempting to write
627 to them basically)
628 - added tests for this
629 - adjusted all /example files to comply
a977cf65 630
f9eba090 6310.22 Mon. March 20, 2006
0eff2c16 632 * Class::MOP::Class
633 - localized $@ in the *_package_variable functions
634 because otherwise, it does ugly things in Moose.
635 - added test case for this
636
1988e85e 6370.21 Wed. March 15, 2006
2f6d5412 638 * Class::MOP::Class
639 - fixed issue where metaclasses are reaped from
640 our cache in global destruction, and so are not
641 available in DESTORY calls
642
96ceced8 6430.20 Thurs. March 2, 2006
d3cb0d4a 644 - removed the dependency for Clone since
645 we no longer to deep-cloning by default.
a4258ffd 646
647 * Class::MOP::Method
96ceced8 648 - added &package_name, &name and
649 &fully_qualified_name methods, some of
a4258ffd 650 which were formerly private subs in
651 Class::MOP::Class
652
653 * Class::MOP::Method::Wrapped
654 - allows for a method to be wrapped with
655 before, after and around modifiers
656 - added tests and docs for this feature
d3cb0d4a 657
658 * Class::MOP::Class
58d75218 659 - improved &get_package_symbol
96ceced8 660 - &version and &superclasses now use it
a4258ffd 661 - methods are now blessed into Class::MOP::Method
662 whenever possible
a4258ffd 663 - added methods to install CLOS-style method modifiers
664 - &add_before_method_modifier
665 - &add_after_method_modifier
666 - &add_around_method_modifier
667 - added tests and docs for these
96ceced8 668 - added &find_next_method_by_name which finds the
669 equivalent of SUPER::method_name
d3cb0d4a 670
1c020571 6710.12 Thurs. Feb 23, 2006
d89c0fad 672 - reduced the dependency on B, no need to always
673 have the latest
674
1c020571 675 * examples/
676 - added docs to the C3 method dispatch order test
677 - fixed missing Algorithm::C3 dependency by making
678 the test skip if it is not installed
679
0dea7280 6800.11 Mon Feb. 20, 2006
f3f5bd34 681 * examples/
682 - added example of changing method dispatch order to C3
a27ae83f 683
684 * Class::MOP::Class
19d4b5b8 685 - changed how clone_instance behaves, it now only does a
686 shallow clone (see docs for more details)
a27ae83f 687 - added docs and tests
f3f5bd34 688
3bf7644b 6890.10 Tues Feb. 14, 2006
690 ** This release was mostly about writing more tests and
691 cleaning out old and dusty code, the MOP should now
692 be considered "ready to use".
693
22286063 694 - adding more tests to get coverage up a little higher,
695 mostly testing errors and edge cases.
696 - test coverage is now at 99%
aa448b16 697
698 * Class::MOP
699 - no longer optionally exports to UNIVERSAL::meta or
700 creates a custom metaclass generator, use the
701 metaclass pragma instead.
22286063 702
703 * Class::MOP::Class
704 - fixed a number of minor issues which came up in the
705 error/edge-case tests
706
707 * Class::MOP::Attribute
708 - fixed a number of minor issues which came up in the
709 error/edge-case tests
710
0b8eb325 711 * examples/
ea263060 712 - fixing the AttributesWithHistory example, it was broken.
663f8198 713
550d56db 7140.06 Thurs Feb. 9, 2006
677eb158 715 * metaclass
550d56db 716 - adding new metaclass pragma to make setting up the
677eb158 717 metaclass a little more straightforward
7b31baf4 718
719 * Class::MOP
720 - clean up bootstrapping to include more complete
721 attribute definitions for Class::MOP::Class and
722 Class::MOP::Attribute (accessors, readers, writers,
723 etc.) ... it is redundant, but is useful meta-info
724 to have around.
677eb158 725
99e5b7e8 726 * Class::MOP::Class
727 - fixing minor meta-circularity issue with &meta, it
728 is now more useful for subclasses
7b31baf4 729 - added &get_attribute_map as an accessor for the
730 hash of attribute meta objects
c9e77dbb 731 - &compute_all_applicable_attributes now just returns
732 the attribute meta-object, rather than the HASH ref
733 since all the same info can be gotten from the
734 attribute meta-object itself
735 - updated docs & tests to reflect
5f3c057a 736 - added &clone_instance method which does a deep clone
737 of the instance structure created by &construct_instance
738 - added docs & tests for this
550d56db 739 - added Clone as a dependency
5f3c057a 740 - added &new_object and &clone_object convience methods to
741 return blessed new or cloned instances
2a7575a6 742 - they handle Class::MOP::Class singletons correctly too
5f3c057a 743 - added docs & tests for this
2a7575a6 744 - cleaned up the &constuct_class_instance so that it behaves
745 more like &construct_instance (and managed the singletons too)
550d56db 746 - added the &check_metaclass_compatibility method to make sure
747 that metaclasses are upward and downward compatible.
748 - added tests and docs for this
5f3c057a 749
99e5b7e8 750 * examples/
751 - adjusting code to use the &Class::MOP::Class::meta
752 fix detailed above
677eb158 753 - adjusting code to use the metaclass pragma
99e5b7e8 754
aa9c883e 7550.05 Sat Feb. 4, 2006
2e41896e 756 * Class::MOP::Class
757 - added the &attribute_metaclass and &method_metaclass
351bd7d4 758 attributes which contain a metaclass name to use for
2e41896e 759 attributes/methods respectively
351bd7d4 760
761 * Class::MOP
762 - bootstrap additional attributes for Class::MOP::Class
2e41896e 763
764 * examples/
765 - adjusted the example code and tests to use the new
766 &attribute_metaclass feature of Class::MOP::Class
aa9c883e 767 - added new example:
768 - LazyClass
2e41896e 769
d7c2cbe3 7700.04 Fri Feb. 3, 2006
d6fbcd05 771 * Class::MOP::Class
772 - some documentation suggestions from #perl6
773
774 * Class::MOP::Attribute
775 - improved error messages
776
777 * examples/
778 - added new examples:
779 - AttributesWithHistory
d7c2cbe3 780 - ClassEncapsultedAttributes
343203ee 781
9ec169fe 7820.03 Fri Feb. 3, 2006
783 - converted to Module::Build instead of EU::MM
784
785 * Class::MOP::Attribute
786 - refactored method generation code
787 - attributes are now associated with class directly
788
f71f4295 789 * examples/
9ec169fe 790 - refactored the InsideOut example to take advantage
791 of the Class::MOP::Attribute refactoring
f71f4295 792 - changed example files to .pod files and hide thier
793 package names from PAUSE (I don't want to own these
794 namespaces really, they are just examples)
9ec169fe 795
a57c7fa2 7960.02 Thurs Feb. 2, 2006
797 - moving examples from t/lib/* to examples/*
798 - adding POD documentation to the examples
799
a2e85e6c 8000.01 Thurs Feb. 2, 2006
92af7fdf 801 - Initial release