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