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