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