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