Avoid macro expansion of 'name' in PREHASH_KEY.
[gitmo/Class-MOP.git] / Changes
CommitLineData
7c90a1a8 1Revision history for Perl extension Class-MOP.
b817e248 2
2b5fafa1 30.73 Tue, December 16, 2008
c0757d65 4 * MOP.xs
2b5fafa1 5 - Don't use Perl_mro_meta_init. It's not part of the public perl
6 api. Fixes failures to build on Win32 (RT #41750). (Florian
7 Ragwitz)
351e5029 8 * t/082_get_code_info.t
2b5fafa1 9 - Add $^P &= ~0x200; (per Ovid's suggestion) in order to not
10 munger anonymous subs when under -d and so making the tests
11 succeed in that case.
351e5029 12
8704ee6d 130.72 Mon, December 8, 2008
6a6f7a2f 14 * Class::MOP::Package
15 - Pass options to _new, so subclass' attributes can be
16 initialized (Sartak)
aa906e42 17 * Class::MOP::Method
adb2b128 18 - In the docs, indicate that package_name and name are required
19 when calling ->wrap (Stefan O'Rear)
6a6f7a2f 20
6b5ac420 210.71_02 Fri, December 5, 2008
62a0a0f3 22 * Class::MOP::Immutable
23 - Added a new attribute, inlined_constructor, which is true if
24 the constructor was inlined.
fdc6771b 25 * Class::MOP::Package
26 - Make get_all_package_symbols return a hash ref in scalar
27 context and deprecate calling it in list context with a
28 warning. (Florian Ragwitz)
29 * MOP.xs
30 - Various improvements and refactoring, making things more robust and
31 easier to maintain. (Florian Ragwitz)
62a0a0f3 32
34147f49 330.71_01 Wed, December 3, 2008
25a5f083 34 * Class::MOP::Method
35 - Add an "execute" method to invoke the body so
36 we can avoid using the coderef overload (Sartak)
41885bab 37 * Class::MOP::Immutable
9ec62360 38 - When we memoize methods, get their results lazily
39 to remove some compile-time cost (Sartak)
41885bab 40 - Small speedup from eliminating several method
41 calls (Sartak)
05e183d1 42 * Class::MOP::Class
43 - Some small internal tweaks to try to reduce the number of
44 times we call get_method_map when bootstrapping the MOP. This
45 might make loading Class::MOP (and Moose) a little
46 faster. (Dave Rolsky)
52e5f955 47 - Implemented an optional XS version of get_method_map. Mostly
48 taken from a patch by Goro Fuji (rt.cpan.org #41080), with
49 help form Florian Ragwitz. (Dave Rolsky)
7ef2f4b7 50 - Make the behaviour of of get_all_package_symbols (and
51 therefore get_method_map) consistent for stub methods. Report
52 and test by Goro Fuji (rt.cpan.org #41255). (Florian Ragwitz)
25a5f083 53
96185d43 540.71 Wed November 26, 2008
d652fbd5 55 * Class::MOP::Class
56 * Class::MOP::Module
57 - Actual package creation has moved upward from
58 Class to Module so that Moose roles can share
59 the code (Sartak)
60
88b8ac17 610.70_01 Mon, November 19, 2008
62 * Class::MOP
63 - Fixes for failures with blead (Florian Ragwitz)
64 - Silenced compiler warnings (Florian Ragwitz)
65
660.70 Fri, November 14, 2008
7329b9e2 67 * Class::MOP
68 - Fixed an odd corner case where the XS version of
9b1760fc 69 get_all_package_symbols could cause a segfault. This only
7329b9e2 70 happened with inlined constants in Perl 5.10.0 (Florian
71 Ragwitz)
7329b9e2 72
52c685d3 730.69 Fri, November 7, 2008
b88aa2e8 74 * Class::MOP::Method::Wrapped
75 - Added introspection methods for method modifiers (Dave Rolsky)
76
77
4a9e02e8 780.68 Fri October 24, 2008
dfbc4d4c 79 * Class::MOP
80 - Make load_class require by file name instead of module name.
81 This stops confusing error messages when loading '__PACKAGE__'.
82 (Florian Ragwitz)
5a24cf8a 83 - Add load_one_class_of function to enable you to load one of a
84 list of classes, rather than having to call load_class multiple
85 times in an eval. (t0m)
dfbc4d4c 86
5f5ee28a 870.67 Tue October 14, 2008
2e7eb96b 88 * Class::MOP::Class
89 - Call a method on the class after setting the superclass list
90 so that we can get Perl to detect cycles before MRO::Compat
91 spirals into an infinite loop (sartak)
92 - Reported by Schwern, [rt.cpan.org #39001]
34d04967 93 - In create(), pass unused options on to initialize()
94 - added test for this
2e7eb96b 95
34d04967 960.66 Sat September 20, 2008
fe05cbbe 97 !! This release has an incompatible change regarding !!
98 introspection of a class's method with Class::MOP::Class !!
99
9e9e6b8f 100 * Tests and XS
101 - We (us maintainers) now run all tests with XS and then without
102 XS, which should help us catch skew between the XS/pure Perl
e073e667 103 code. (Dave Rolsky)
9e9e6b8f 104
91b73829 105 * Class::MOP::Class
fe05cbbe 106 ! The alias_method method has been deprecated. It now simply
1190621f 107 calls add_method instead. There is no distinction between
108 aliased methods and "real" methods.
fe05cbbe 109
110 This means that methods added via alias_method now show up as
7143219b 111 part of the class's method list/map. This is a backwards
fe05cbbe 112 incompatible change, but seems unlikely to break any
113 code. Famous last words. (Dave Rolsky)
91b73829 114
155f0cba 115 * Class::MOP::Class
116 - Fixed the spelling of "compatibility", but we still have a
117 "check_metaclass_compatability" method for backwards
118 compatibility.
9e9e6b8f 119
94278c1b 1200.65 Mon September 1, 2008
121 For those not following the series of dev releases, the changes
8b9106cf 122 from 0.64 from 0.65 can mostly be summed up as a lot performance
94278c1b 123 improvements by nothingmuch, including new optional XS versions of
124 some methods. Also, Class::MOP now works _without_ any XS modules,
125 for sad systems without a compiler.
126
988fb42e 127 * Class::MOP::Method
128 - Added name and package_name XS accessors, and make sure all
129 the XS and Perl versions work the same way. (Dave Rolsky)
130
131 * MOP.xs
132 - The XS versions of various methods just returned undef when
133 called class methods, rather than dying like the pure Perl
134 versions. (Dave Rolsky)
135
13ac653a 1360.64_07 Fri August 29, 2008
400982e3 137 * Class::MOP
13ac653a 138 - Silenced warnings that managed to break Moose tests when XS
139 was loaded. (Dave Rolsky)
140 - Some XS versions of methods were ignored because of typos in
141 MOP.xs. (Dave Rolsky)
400982e3 142
13ac653a 1430.64_06 Mon August 25, 2008
9457b596 144 * Class::MOP (MOP.xs)
145 - Another MS VC++ fix, cannot declare a variable in the middle
146 of a scope (Taro Nishino).
147
1480.64_05 Sun August 24, 2008
2a755fe8 149 * Class::MOP
150 - None of the dev releases actually loaded the XS properly, but
151 we silently fell back to the pure Perl version of the
152 code. (Dave Rolsky)
153
154 * Class::MOP (MOP.xs)
155 - Replaced some code that used functions not available on Visual
156 C++ with some Perl XS API bits (Dave Rolsky).
157
f65af096 1580.64_04 Sat August 23, 2008
9ebc265d 159 * Class::MOP::Class
f65af096 160 - Workaround a bug in 5.8.1's goto sub (nothingmuch)
161
162 * pod.t and pod_coveraget.t
163 - These are no longer shipped with the tarball because of bogus
164 failures from CPAN testers. (Dave Rolsky)
9ebc265d 165
df7077cd 1660.64_03 Thu August 21, 2008
167 * Class::MOP::Package
168 - Some (legit) code was misparsed by earlier 5.8.x
169 releases. (nothingmuch)
170
171 * Class::MOP
172 - Fix a constant in void context warning (nothingmuch)
173
09ed1ec5 1740.64_02 Thu August 21, 2008
64c591d3 175 * Makefile.PL and Class::MOP
4dde2f23 176 - Explicitly require Perl 5.8.0+ (Dave Rolsky)
177
178 * Makefile.PL
179 - Add missing prereqs that got lost in the switch away from
180 Module::Install.
64c591d3 181
09ed1ec5 182 * Class::MOP::Instance
183 - New method - get_all_attributes (nothingmuch)
184
1850.64_01 Wed August 20, 2008
f125b31e 186 * Makefile.PL
187 - We now check to see if you have a compiler. If you don't, the
188 module installs without some XS bits, but will work the same
189 as with XS. This should make it easier to install on platforms
190 without a compiler (like Windows). (Dave Rolsky)
2e5c1a3f 191
40b3c18f 192 * many modules
7f799c13 193 - Perl 6 style attribute naming replaced with sane style ('methods', not
194 '%!methods'). These changes should not impact any existing API uses.
195 (nothingmuch).
196
197 * many modules
40b3c18f 198 - Quite a number of optimizations based on profiling, including
199 allowing constructors to take hash references instead of
200 hashes, duplicating some frequently used code in XS, and
201 making constructors immutable. These changes should not impact
202 any existing API uses. (nothingmuch)
203
7f799c13 204 * Many modules
205 - Constructors now respect the meta attributes of their subclasses,
206 facilitating MOP extensibility. More related changes will happen in the
207 next several releases. (nothingmuch)
208
40b3c18f 209 * Class::MOP::Class
7f799c13 210 - New method - get_all_methods, replaces the deprecated
211 compute_all_applicable_methods. get_all_attributes provided for
212 consistency (nothingmuch)
213 - New method - wrap_method was refactored out of get_method_map
214 (nothingmuch)
215 - New API for meta instance invalidation - invalidate_meta_instance,
216 invalidate_meta_instances, add_dependent_meta_instance,
217 remove_dependent_meta_instance, called automatically when attribute
218 definitions change and allows notification of dependent subclasses.
219 (nothingmuch)
40b3c18f 220
7202116b 2210.64 Sun August 3, 2008
84bc89b3 222 * Class::MOP::Immutable
7202116b 223 - fixing subtle edge case in immutable when you
84bc89b3 224 call ->meta (stevan)
7202116b 225 - clean up option processing (nothingmuch)
226
227 * Class::MOP::Instance
228 - inlined initialize slot didn't match
229 non-inlined (nothingmuch)
84bc89b3 230
f079b1eb 2310.63 Mon July 7, 2008
07940968 232 * Class::MOP
233 - load_class will initialize a metaclass even if
234 the class is already loaded (sartak)
235 - load_class now returns the metaclass instance
236 instead of just 1 (sartak)
6e1c8b63 237
f079b1eb 238 * elsewhere
239 - better error messages (sartak and Dave Rolsky)
240
ebce5539 2410.62 Wed June 18, 2008
1377b506 242 - in is_class_loaded, recognize scalar references (as opposed to globs) in
243 the symbol table as methods (these are optimized constant subs)
244
70ad0655 2450.61 Fri. June 13, 2008
246 - Okay, lets give this another try and see if PAUSE
247 recognizes it correct this time.
a023763e 248
2490.60 Thurs. Jun 12, 2008
809a26fc 250 - Fixed a version number issue by bumping all modules
251 to 0.60.
8c5cc782 252
2530.59 Thurs. Jun 12, 2008
d1dba7a1 254 !! Several fixes resulting in yet another 25-30% speedup !!
9b522fc4 255
256 * Class::MOP::Class
257 - now stores the instance of the instance
258 metaclass to avoid needless recomputation
8b49a472 259 and deletes it when the cache is blown
119f3a92 260 - introduce methods to query Class::MOP::Class for
261 the options used to make it immutable as well as
262 the proper immutable transformer. (groditi)
8b49a472 263
264 * Class::MOP::Package
265 - {add, has, get, remove}_package_symbol all
266 now accept a HASH ref argument as well as the
267 string. All internal usages now use the HASH
268 ref version.
f6dc69d2 269
270 * Class::MOP
271 - MOP.xs does sanity checks on the coderef
272 to avoid a segfault
26fcef27 273 - is_class_loaded check now uses code that
274 was improved in Moose's ClassName type
ab5e2f48 275 check (Sartak)
276 - nonsensical (undef, empty, reference) class
277 names now throw a more direct error in
278 load_class (Sartak)
3f7759c1 279 - tests for this and other aspects of
280 load_class (Sartak)
9b522fc4 281
282 * Class::MOP
283 Class::MOP::Class
284 Class::MOP::Method
285 Class::MOP::Method::Wrapped
286 Class::MOP::Attribute
287 - switched usage of reftype to ref because
288 it is much faster
289
352c364f 2900.58 Thurs. May 29, 2008
62781d9f 291 (late night release engineering)--
292
293 - fixing the version is META.yml, no functional
294 changes in this release
295
de0f9e1c 2960.57 Wed. May 28, 2008
d1dba7a1 297 !! Several speedups resulting in 20-25% speedups !!
de0f9e1c 298 || (thanks to konobi, groditi, mst & CataMoose) !!
299
ae234dc6 300 * Class::MOP::Class
301 - made get_method_map use list_all_package_symbols
302 instead of manually grabbing each symbol
de0f9e1c 303 - streamlining &initialize somewhat, since it gets
304 called so much
ae234dc6 305
306 * Class::MOP::Package
307 - made {get, has}_package_symbol not call
308 &namespace so much
de0f9e1c 309 - inlining a few calls to &name with
310 direct HASH access key access
ae234dc6 311 - added get_all_package_symbols to fetch
312 a HASH of items based on a type filter
313 similar to list_all_package_symbols
314 - added tests for this
315
32202ce2 316 * Class::MOP::Method
317 Class::MOP::Method::Constructor
318 Class::MOP::Method::Generated
319 Class::MOP::Method::Accessor
320 - added more descriptive error message to help
321 keep people from wasting time tracking an error
47e20ba2 322 that is easily fixed by upgrading.
32202ce2 323
d1dba7a1 324 * Class::MOP::Immutable
325 - Don't inline a destructor unless the user actually
326 needs one
327 - added tests for this
328
b4009dc1 3290.56 Saturday, May 24, 2008
11b56828 330 * Class::MOP
331 - we now get the &check_package_cache_flag
332 function from MRO::Compat
d7d3f3cb 333 - All XS based functionality now has a
334 Pure Perl alternative
6c34db07 335 - the CLASS_MOP_NO_XS environment variable
d7d3f3cb 336 can now be used to force non-XS versions
6c34db07 337 to always be used
11b56828 338
9e517e01 339 * Class::MOP::Attribute
340 - add has_read_method and has_write_method
d7d3f3cb 341 - get_{read,write}_method_ref now wraps the
def5c0b5 342 anon-sub ref in the method metaclass when
343 possible
344 - added tests for this
d7d3f3cb 345
5f3efd66 346 * Class::MOP::Immutable
d7d3f3cb 347 - added the ability to "wrap" methods when
5f3efd66 348 making the class immutable
d7d3f3cb 349
5f3efd66 350 * Class::MOP::Class
daf8d8bc 351 - now handling the edge case of ->meta->identifier
d7d3f3cb 352 dying by wrapping add_package_symbol to specifically
5f3efd66 353 allow for it to work.
354 - added tests for this
d7d3f3cb 355
356 * Class::MOP::Attribute
6c34db07 357 Class::MOP::Class
d7d3f3cb 358 Class::MOP::Immutable
6c34db07 359 - any time a method meta object is constructed
d7d3f3cb 360 we make sure to pass the correct package and
6c34db07 361 method name information
d7d3f3cb 362
6c34db07 363 * Class::MOP::Method
364 Class::MOP::Method::Wrapped
365 Class::MOP::Method::Generated
366 Class::MOP::Method::Accessor
d7d3f3cb 367 Class::MOP::Method::Consructor
368 - the &wrap constructor method now requires that a
369 'package_name' and 'name' attribute are passed. This
370 is to help support the no-XS version, and will
371 throw an error if these are not supplied.
6c34db07 372 - all these classes are now bootstrapped properly
373 and now store the package_name and name attributes
d7d3f3cb 374 correctly as well
375
376 ~ Build.PL has been removed since the
377 Module::Install support has been removed
9e517e01 378
8adaad20 3790.55 Mon. April 28, 2008
380 - All classes now have proper C3 MRO support
381 - added MRO::Compat as a dependency to allow
382 for the C3 MRO support to Just Work in all
383 perl versions
d7d3f3cb 384
830b326c 385 * Class::MOP::Class
d7d3f3cb 386 - rebless_instance now returns the instance
387 it has just blessed, this is mostly to
830b326c 388 facilitate chaining
d7d3f3cb 389 - set the attr correctly in rebless_instance
6e2a700f 390 when it has no init_arg
77a143ba 391 - tweaked &linear_isa and &class_precedence_list
392 to support c3 classes.
830b326c 393
e0db39d2 3940.54 Fri. March, 14, 2008
8861fab2 395 * Class::MOP
214e4bd7 396 metaclass.pm
8861fab2 397 - making sure that load_class never gets
d7d3f3cb 398 passed a value from @_ or $_ to squash
8861fab2 399 Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
400
09c6e1d2 401 * Class::MOP::Class
402 - make_{immutable,mutable} now return 1
403 (cause Sartak asked)
d7b2249e 404 - improved error handling in ->create method
d7d3f3cb 405 - rebless_instance now takes extra params which
406 will be used to populate values
214e4bd7 407 - added tests for this
d7d3f3cb 408
acce7fd6 409 * Class::MOP::Object
d7d3f3cb 410 - localizing the Data::Dumper configurations so
411 that it does not pollute others (RT #33509)
412
d7b2249e 413 * Class::MOP::Class
414 Class::MOP::Package
415 Class::MOP::Module
416 Class::MOP::Method
417 Class::MOP::Attribute
d7d3f3cb 418 - these classes no longer define their own ->meta,
419 but instead just inherit from Class::MOP::Object
420
d7b2249e 421 * Class::MOP::Instance
d7d3f3cb 422 Class::MOP::Immutable
d7b2249e 423 - these classes now inherit from Class::MOP::Object
d7d3f3cb 424
10dd437b 425 * t/
d7d3f3cb 426 - fixed the filename length on several
10dd437b 427 test files so we install on VMS better
428 (RT #32295)
d7d3f3cb 429 - fixed incorrect use of catdir when it
10dd437b 430 should be catfile (RT #32385)
431
2491730f 4320.53 Thurs. Feb. 14, 1008
7a536297 433 ~~ several doc. fixes and updates ~~
d7d3f3cb 434
0c6f4c4a 435 * Class::MOP::Class
436 Class::MOP::Method::Constructor
437 Class::MOP::Attribute
438 - making init_arg accept an undefined value
d7d3f3cb 439 to indicate that no constructor args can
0c6f4c4a 440 be passed (thanks to nothingmuch)
441 - added tests for this
339264d8 442 - added attribute initializer attribute (rjbs)
d7d3f3cb 443
0c6f4c4a 444 * Class::MOP.
445 - making this use the new init_arg => undef
d7d3f3cb 446 feature instead of the silly hack from
0c6f4c4a 447 before (thanks to nothingmuch)
ad074154 448
3e8e8f07 4490.52 Tues. Jan. 22, 2008
2a2b8458 450 * Class::MOP::Class
d7d3f3cb 451 - fixed bug in rebless_instance
2a2b8458 452 (discovered by ash)
453
454 * Class::MOP::Method::Constructor
d7d3f3cb 455 - removed assumptions about the existence of
2a2b8458 456 a &meta method
457
656ce3ba 4580.51 Mon. Jan. 14, 2008
69e3ab0a 459 ~~~ some misc. doc. fixes ~~~
460 ~~ updated copyright dates ~~
d7d3f3cb 461
c1d5345a 462 * Class::MOP
d7d3f3cb 463 - now sets the IS_RUNNING_ON_5_10
c1d5345a 464 constant so that we can take advantage
465 of some of the nice bits of 5.10
d7d3f3cb 466
c1d5345a 467 * Class::MOP::Class
d7d3f3cb 468 - uses the IS_RUNNING_ON_5_10 flag to
469 optimize the &linearized_isa method
c1d5345a 470 and avoid the hack/check for circular
d7d3f3cb 471 inheritence in &class_precedence_list
3d9e4646 472 - added rebless_instance method (Sartak)
473 - added tests for this
d7d3f3cb 474
475 * Class::MOP::Immutable
476 - the immutable class now keeps track of
c1d5345a 477 the transformer which immutablized it
69e3ab0a 478
3d9e4646 479 * Class::MOP::Instance
480 - added rebless_instance_structure method (Sartak)
481 - added tests for this
482
a780a6ff 4830.50 Fri. Dec. 21, 2007
6ff0d647 484 * Class::MOP::Class
d7d3f3cb 485 - fixed bug in immutable to make sure that
486 transformation arguments are saved
6ff0d647 487 correctly (mst)
b6bcc3a5 488 - added tests for this
d7d3f3cb 489
6ff0d647 490 * Class::MOP::Immutable
491 - fixed a bug (see above)
d7d3f3cb 492
6ff0d647 493 * Class::MOP::Attribute
494 - some doc updates
495
30b8af04 4960.49 Fri. Dec. 14, 2007
b6bcc3a5 497 !! Class::MOP now loads 2 x faster !!
30b8af04 498 !! with XS speedups (thanks konobi) !!
d7d3f3cb 499
30b8af04 500 * Class::MOP
501 - removed the dependency on B
502 - added two XS functions (thanks konobi)
503 - get_code_info($code) which replaces all
504 the B fiddling we were doing with
505 faster/leaner XS level fiddling
d7d3f3cb 506 - check_package_cache_flag($pkg_name) which
507 returns the PL_sub_generation variable to
30b8af04 508 be used to help manage method caching.
d7d3f3cb 509
510 NOTE:
511 In 5.10 or greater this will actually
512 use the mro::get_pkg_gen instead to give
513 even more accurate caching information.
30b8af04 514 blblack++ for that stuff :)
d7d3f3cb 515
6c9f390e 516 * Class::MOP::Class
517 - added the &subclasses method (thanks rlb)
d7d3f3cb 518 - added the update_package_cache_flag and
519 reset_package_cache_flag which help keep
520 track of when we need to re-fetch the
521 method map.
30b8af04 522 - Several small improvements to take advantage
523 of the new method map caching features
4c4a6c41 524
1b8b3e09 5250.48 Mon. Nov. 26, 2007
d14f6cbe 526 * Class::MOP::Attribute
d7d3f3cb 527 - fixed get_read/write_method to handle the
528 HASH ref case, which makes the
d14f6cbe 529 get_read/write_method_ref handle it too.
530 - added more tests for this
531
742fb371 5320.47 Sat. Nov. 24, 2007
533 * Class::MOP::Attribute
534 - fixed misspelling in get_write_method_ref
78d9bb38 535 - added more tests for this
742fb371 536
fe7c0b15 5370.46 Fri. Nov. 23, 2007
b7bdffc3 538 * Class::MOP::Class
d7d3f3cb 539 - added the linearized_isa method instead of constantly
540 pruning duplicate classes (this will be even more
b7bdffc3 541 useful in the 5.10-compat version coming soon)
d7d3f3cb 542
5da16d1b 543 * Class::MOP::Attribute
544 - added the get_read_method_ref and get_write_method_ref
d7d3f3cb 545 methods which allow you to retrieve a CODE ref which
5da16d1b 546 can always be used to read or write an attribute.
b7bdffc3 547
1a5cc82e 5480.45 Thurs. Nov. 13, 2007
232c4e13 549 * Class::MOP::Attribute
550 - Fix error message on confess (groditi)
551
544143b2 5520.44 Thurs. Nov. 13, 2007
553 - Apparently I didn't make dist correctly (groditi)
554
c0aeeb91 5550.43 Thurs. Nov. 13, 2007
b08fd50c 556 * Class::MOP
1d68af04 557 - Add support for the 'builder' attribute (groditi)
558
b08fd50c 559 * Class::MOP::Class
d7d3f3cb 560 - optimise metaclass-already-exists check in
b08fd50c 561 construct_class_instance (groditi)
d7d3f3cb 562 - duplicate check into initialize to save a
b08fd50c 563 call through (groditi)
564
1d68af04 565 * Class::MOP::Attribute
566 - Add support for the 'builder' attribute (groditi)
d7d3f3cb 567 - Make predicates check for the existence of a value, not whether
b08fd50c 568 it is defined (groditi)
8768ecf3 569
570 * Class::MOP::Instance
d7d3f3cb 571 - Make predicates check for the existence of a value, not whether
b08fd50c 572 it is defined (groditi)
8768ecf3 573
d7d3f3cb 574 * Class::MOP::Method::Accessor
565f0cbb 575 - made this a subclass of Class::MOP::Method::Generated
576 - removed the relevant attributes
577
578 * Class::MOP::Method::Constructor
579 - fixed the cached values we had to be more sane
580 - made this a subclass of Class::MOP::Method::Generated
d7d3f3cb 581 - fixed generated constructor so it properly handles
565f0cbb 582 subclasses now.
583 - added tests for this
d7d3f3cb 584 - added the option to allow for both inlined and
565f0cbb 585 non-inlined constructors.
b08fd50c 586 - Update inlined methods for builder and predicate changes (groditi)
565f0cbb 587
588 * Class::MOP::Method::Generated
d7d3f3cb 589 - added this class as an abstract base for the
565f0cbb 590 Class::MOP::Method::{Constructor,Accessor} classes
591 - added tests for this
592
b08fd50c 593 *t/
594 - Alter tests (005, 014 020, 021) for new builder addition (groditi)
595 - Tests for new predicate behavior (and corrections to old tests) (groditi)
596
597 *examples/
598 - Update ArrayRef based class example to work with predicate changes
599
367183c4 6000.42 Mon. July 16, 2007
9195ddff 601 !!! Horray for mst, he fixed it !!!
602
92af7fdf 603 * Class::MOP::Package
604 - alter symbol table handling to deal with 5.8.x and 5.9.x
d7d3f3cb 605
92af7fdf 606 * t/
9195ddff 607 - Get rid of the crappy workaround from 0.40/41
92af7fdf 608
829f7554 6090.41 Sun. July 15, 2007
610 * t/
611 Arghh!!! My TODO test didn't work, so I handle
d7d3f3cb 612 it manually now so that people can use this
829f7554 613 with 5.9.5/bleadperl without issue.
614
1d7205b8 6150.40 Tues, July 3, 2007
9f88b8ff 616 * t/
d7d3f3cb 617 ~ marked a test in 003_methods.t as TODO
618 for perl 5.9.5 (this test is irrelvant to
619 the module functioning on 5.9.5 for the most
1d7205b8 620 part anyway)
9f88b8ff 621
28acb786 6220.39 Mon. June 18, 2007
b817e248 623 * Class::MOP::Immutable
0ac992ee 624 - added make_metaclass_mutable + docs (groditi)
625 - removed unused variable
d9586da2 626 - added create_immutable_transformer
627 necessary for sane overloading of immutable behavior
d7d3f3cb 628 - tests for this (groditi)
0ac992ee 629
630 * Class::MOP::Class
631 - Immutability can now be undone,
632 added make_mutable + tests + docs (groditi)
04dd7510 633 - Massive changes to the way Immutable is done
634 for details see comments next to make_immutable
635 This fixes a bug where custom metaclasses broke
d7d3f3cb 636 when made immutable. We are now keeping one immutable
637 metaclass instance per metaclass instead of just one
04dd7510 638 to prevent isa hierarchy corruption. Memory use will go
639 up, but I suspect it will be neglible.
640 - New tests added for this behavior. (groditi)
7c90a1a8 641
c0fcd6ab 6420.38 Thurs. May 31, 2007
823a5d31 643 ~~ More documentation updates ~~
d7d3f3cb 644
823a5d31 645 * Class::MOP::Package
646 - we now deal with stub methods properly
647 - added tests for this
c0fcd6ab 648 - fixed some tests failing on 5.9.5 (thanks blblack)
d7d3f3cb 649
b25109b1 650 * Class::MOP::Attribute
651 - added get_read_method and get_write_method
d7d3f3cb 652 thanks to groditi for this code, tests
c81de280 653 and docs.
b25109b1 654 - added tests and POD for this
d7d3f3cb 655
795a0c8b 656 * Class::MOP::Class
d7d3f3cb 657 - fixed RT issue #27329, clone object now
795a0c8b 658 handles undef values correctly.
659 - added tests for this
d7d3f3cb 660 - Corrected anon-class handling so that they
661 will not get reaped when instances still
662 exist which need to reference them. This is
663 the correct behavior, hopefully this is an
664 obscure enough feature that there are not too
d4ba1677 665 many work arounds out in the wild.
d7d3f3cb 666 - added tests for this by groditi
95514cb4 667 - updated docs to explain this
668
669 * metaclass
c0fcd6ab 670 - load custom metaclasses automatically (thanks groditi)
f2266181 671 - added tests for this behavior
a06797b0 672
3dc99d93 6730.37 Sat. March 10, 2007
448b6e55 674 ~~ Many, many documentation updates ~~
d7d3f3cb 675
448b6e55 676 * Class::MOP
d7d3f3cb 677 - added &load_class and &is_class_loaded
448b6e55 678 - added tests and docs for these
2367814a 679
9363ea89 680 * Class::MOP::Attribute
d7d3f3cb 681 - default now checks the instance with defined to
9363ea89 682 avoid setting off bool-overloads (found by Carl Franks)
683
c23184fc 6840.37_002
d7d3f3cb 685 * /t
686 - bad name in a test, causing meaningless failuress.
c23184fc 687 No other changes.
688
6890.37_001
d7d3f3cb 690
c23184fc 691 ~~ GLOBAL CHANGES ~~
d7d3f3cb 692 - All attribute names are now consistent and follow Perl 6
693 style (prefixed with the sigil, and ! as the twigil for
694 private attrs). This should not affect any code, unless
695 you broke encapsulation, in which case, it is your problem
c23184fc 696 anyway.
d7d3f3cb 697
c23184fc 698 !! Class::MOP::Class::Immutable has been removed
d7d3f3cb 699
c23184fc 700 * Class::MOP::Method::Constructor
d7d3f3cb 701 - this has been moved out of Class::MOP::Class::Immutable
c23184fc 702 and is a proper subclass of Class::MOP::Method now.
d7d3f3cb 703
c23184fc 704 * Class::MOP::Class
d7d3f3cb 705 - this module now uses Class::MOP::Immutable for the
706 immutable transformation instead of
c23184fc 707 Class::MOP::Class::Immutable.
d7d3f3cb 708
709 + Class::MOP::Immutable
710 - this module now controls the transformation from a mutable
711 to an immutable version of the class. Docs for this will
c23184fc 712 be coming eventually.
d7d3f3cb 713
c23184fc 714
cdc1ecba 7150.36 Sun. Nov. 5, 2006
a651e249 716 * Class::MOP::Class
d7d3f3cb 717 - added a few 'no warnings' lines to keep annoying
718 (and meaningless) warnings from chirping during
a651e249 719 global destruction.
d7d3f3cb 720
0870928c 721 * Class::MOP
d7d3f3cb 722 - some more bootstrapping is now done on the new
0870928c 723 classes
d7d3f3cb 724
0870928c 725 * Class::MOP::Class::Immutable
d7d3f3cb 726 *** API CHANGE ***
727 - constructor generation is now handled by
0870928c 728 the Class::MOP::Method::Constructor class
d7d3f3cb 729
0870928c 730 * Class::MOP::Method::Constructor
d7d3f3cb 731 - created this to handle constructor generation
0870928c 732 in Class::MOP::Class::Immutable
d7d3f3cb 733
0870928c 734 * Class::MOP::Attribute
d7d3f3cb 735 *** API CHANGE ***
736 - attributes now delegate to the
737 Class::MOP::Method::Accessor to generate
0870928c 738 accessors
d7d3f3cb 739
0870928c 740 * Class::MOP::Method::Accessor
d7d3f3cb 741 - all accessor generation functions from
0870928c 742 Class::MOP::Attribute have been moved here
a651e249 743
80f00c79 7440.35 Sat. Sept. 30, 2006
8745cf22 745
746 * scripts/class_browser.pl
d7d3f3cb 747 - initial prototype of a class browser, more
748 on this to come. Comments and patches are
8745cf22 749 very much welcome.
b1897d4d 750
751 * Class::MOP
d7d3f3cb 752 - All Class::MOP::* accessors are no longer
753 re-generated in the bootstrap, instead
6d2118a4 754 they are aliased from the originals
6d2118a4 755 - fixed tests to reflect
d7d3f3cb 756 - added Class::MOP::Method (and its subclasses)
b1897d4d 757 to the bootstrap
758 - adjusted tests for this
86482605 759 - added the Class::MOP::Instance attributes
760 to the bootstrap
d7d3f3cb 761
b1897d4d 762 * Class::MOP::Method
763 *** API CHANGE ***
764 - methods are no longer blessed CODE refs
765 but are actual objects which can be CODE-ified
766 - adjusted tests to compensate
d7d3f3cb 767 - adjusted docs for this
b1897d4d 768
769 * Class::MOP::Class
d7d3f3cb 770 - changed how methods are dealt with to
771 encapsulate most of the work into the
b1897d4d 772 &get_method_map method
773 - made several adjustments for the change
774 in Class::MOP::Method
d7d3f3cb 775 - &add_attribute now checks if you are adding
776 a duplicate name, and properly removes the
b1897d4d 777 old one before installing the new one
778 - added tests for this
86482605 779 - adjusted docs for this
d7d3f3cb 780
b1897d4d 781 * Class::MOP::Class::Immutable
782 - added caching of &get_method_map
783 - fixed issue with &get_package_symbol
784 - cleaned up the methods that die (patch by David Wheeler)
d7d3f3cb 785
b1897d4d 786 * Class::MOP::Package
d7d3f3cb 787 - added filtering capabilities to
b1897d4d 788 &list_all_package_symbols
789
a549ce50 7900.34 Sat. Aug. 26, 2006
c4260b45 791 * Class::MOP::Class
792 - added the %:methods attribute, which like
d7d3f3cb 793 the $:version and such just actually goes
794 to the symbol table to get it's stuff.
c4260b45 795 However, it makes the MOP more complete.
88dd563c 796 ** API CHANGE **
d7d3f3cb 797 - The &create method now requires that all
798 but the package name now is passed in as
88dd563c 799 named parameters. See docs for more info.
800 - updated docs and tests for this
d7d3f3cb 801
c4260b45 802 * Class::MOP::Object
d7d3f3cb 803 - added &dump method to easily Data::Dumper
c4260b45 804 an object
d7d3f3cb 805
c4260b45 806 * Class::MOP
d7d3f3cb 807 - cleaned up the initialization of attributes
808 which do not store things in the instance
c4260b45 809 - added the %:methods attribute definition to
810 the bootstrap
d7d3f3cb 811
88dd563c 812 ~ lots of misc. test cleanup
c4260b45 813
56e8dd5d 8140.33 Sat. Aug. 19, 2006
be7677c7 815 * Class::MOP::Class
d7d3f3cb 816 - moved the metaclass cache out of here
be7677c7 817 and it is now in Class::MOP itself.
d7d3f3cb 818
56e8dd5d 819 * Class::MOP
820 - moved all the metaclass cache stuff here
821 - fixed all tests for this
be7677c7 822
148b4697 823 * Class::MOP::Attribute
d7d3f3cb 824 - reference values (other than CODE refs)
148b4697 825 are no longer allowed for defaults
826 - added tests for this
d7d3f3cb 827
56dcfc1a 828 * Class::MOP::Package
d7d3f3cb 829 - fixed an issue with perl 5.8.1 and how it deals
830 with symbol tables. The namespace hash is now
831 always reloaded from the symbol table.
e3a2c885 832
833 ~ lots of misc. documentation cleanup
1396f86b 834
716c5765 8350.32 Sat. Aug. 12, 2006
d7d3f3cb 836 + added Class::MOP::Object so that the
6e57504d 837 metamodel is more complete (and closer
838 to what Perl 6 will probably be).
839
9ca19585 840 * Class::MOP::Package
d7d3f3cb 841 - refactored entire class, this is now
9ca19585 842 the primary gateway between the metaclass
843 and the Perl 5 symbol table
844 - added many tests for this
d7d3f3cb 845 - this class is now a subclass of
6e57504d 846 Class::MOP::Object
716c5765 847 - added some tests to reflect this
d7d3f3cb 848
9ca19585 849 * Class::MOP::Class
d7d3f3cb 850 - refactored all symbol table access to
9ca19585 851 use Class::MOP::Package methods instead
d7d3f3cb 852
f0480c45 853 * Class::MOP::Module
854 - adding the $:version attribute in the bootstrap
855 so that Module has a version as an attribute
856 - see comment in Class::MOP for details
d7d3f3cb 857 - added the $:authority attribute to this module
858 as well as an &identifier method, to bring us
859 ever closer to Perl 6 goodness
860 - I have added $AUTHORITY to all the modules
716c5765 861 - added tests for this
d7d3f3cb 862
f0480c45 863 * Class::MOP::Instance
d7d3f3cb 864 - added &deinitialize_slot for removing slots
f0480c45 865 from an instance
d7d3f3cb 866 - added tests for this
867
868 * Class::MOP::Attribute
9ca19585 869 - added support for &deinitialize_slot for removing
870 slots from an instance
871 - added tests for this
872
1a09d9cc 8730.31 Sat. July 15, 2006
874
b679e644 875 * Class::MOP::Class
876 - added &find_method_by_name to locate a method
d7d3f3cb 877 anywhere within the class hierarchy
878
b679e644 879 * Class::MOP::Attribute
d7d3f3cb 880 - added &set_value and &get_value for getting
881 the value of the attribute for a particular
b679e644 882 instance.
883
373a16ae 8840.30 Wed. July 5, 2006
885 ---------------------------------------
d7d3f3cb 886 This is the first version of Class::MOP
373a16ae 887 to introduce the immutable features which
d7d3f3cb 888 will be used for optimizating the MOP.
373a16ae 889 This support should still be considered
890 experimental, but moving towards stability.
891 ---------------------------------------
d7d3f3cb 892
893 * Created Class::MOP::Class::Immutable
894
895 * Created the Class::MOP::Package and
896 Class::MOP::Module classes to more
373a16ae 897 closely conform to Perl 6's meta-model
e0a82090 898
899 * Class::MOP::Class
900 - now inherits from Class::MOP::Module
d7d3f3cb 901 - several methods moved to ::Module and
e0a82090 902 ::Package and now inherited
903 - added tests for this
d7d3f3cb 904
c0cbf4d9 905 * Class::MOP::Instance
d7d3f3cb 906 - added an is_inlinable method to allow other
c0cbf4d9 907 classes to check before they attempt to optimize.
d7d3f3cb 908 - added an inline_create_instance to inline
909 instance creation (of course)
910
2ba153a9 911 ** API CHANGE **
d7d3f3cb 912 - the Class::MOP::Class::*_package_variable
2ba153a9 913 methods are all now methods of Class::MOP::Package
d7d3f3cb 914 and called *_package_symbol instead. This is
915 because they are now more general purpose symbol
916 table manipulation methods.
e0a82090 917
cdfaa4cc 9180.29_02 Thurs. June 22, 2006
919 ++ DEVELOPER RELEASE ++
df7b4119 920 * Class::MOP::Class
d7d3f3cb 921 - small change in &create so that it behaves
df7b4119 922 properly when inherited
cdfaa4cc 923 - small fix to &clone_instance
df7b4119 924
667cecf3 9250.29_01 Fri. May 12, 2006
926 ++ DEVELOPER RELEASE ++
d7d3f3cb 927 - This release works in combination with
667cecf3 928 Moose 0.09_01, it is a developer release
d7d3f3cb 929 because it introduces a new instance
930 sub-protocol and has not yet been
931 optimized.
667cecf3 932
40483095 933 * Class::MOP::Class
934 - anon-classes are now properly garbage collected
d7d3f3cb 935 - added tests for this
936 - improved method modifier wrapping
40483095 937
2bab2be6 938 * Class::MOP::Instance
1becdfcc 939 - added new instance protocol
2bab2be6 940 - added tests for this
941 - changed all relevant modules and examples
942 - Class::MOP::Class
943 - Class::MOP::Attribute
944 - examples/*
945
1becdfcc 946 * metaclass
947 - you no longer need to specify the metaclass
948 itself, if it is not there, Class::MOP::Class
949 is just assumed
950 - updated tests for this
951
952 * examples/
d7d3f3cb 953 - added ArrayBasedStorage example to show
1becdfcc 954 instance storage using ARRAY refs instead of
d7d3f3cb 955 HASH refs.
1becdfcc 956 - added tests for this
d7d3f3cb 957 - InsideOutClass is totally revised using the
1becdfcc 958 new instance protocol
959 - added more tests for this
960
93b4e576 9610.26 Mon. April 24, 2006
e7f732e4 962 * Class::MOP::Class
963 - added find_attribute_by_name method
964 - added tests and docs for this
56a0b530 965 - some small optimizations
966
967 * Class::MOP::Attribute
968 - some small optimizations
e7f732e4 969
46666f33 9700.25 Thurs. April 20, 2006
587aca23 971 * Class::MOP::Class
972 - added create_anon_class for creating anonymous classes
973 - added tests for this
974 - added get_all_metaclasses, get_all_metaclass_names
975 and get_all_metaclass_instances method to allow
976 access to all the cached metaclass objects.
bd4e03f9 977 - attribute slot initialization is now the responsibility
d7d3f3cb 978 of the attribute itself, and construct_instance now
bd4e03f9 979 delegates appropriately
d7d3f3cb 980
bd4e03f9 981 * Class::MOP::Attribute
982 - attribute slot initialization is now the responsibility
983 of the attribute itself, so we added a method for it
984 called initialize_instance_slot
d7d3f3cb 985
fed4cee7 986 * examples/
d7d3f3cb 987 - adjusted all the examples to use the new attribute
988 initialize_instance_slot method
587aca23 989
1daaa2b2 9900.24 Tues. April 11, 2006
8c936afc 991 * Class::MOP::Class
d7d3f3cb 992 - cleaned up how the before/after/around method
8c936afc 993 modifiers get named with Sub::Name
994
b9dfbf78 9950.23 Thurs. March 30, 2006
a977cf65 996 * Class::MOP::Class
d7d3f3cb 997 - fixed the way attribute defaults are handled
a977cf65 998 during instance construction (bug found by chansen)
d7d3f3cb 999
b9dfbf78 1000 * Class::MOP::Attribute
d7d3f3cb 1001 - read-only accessors ('reader') will now die if
b9dfbf78 1002 passed more than one argument (attempting to write
1003 to them basically)
1004 - added tests for this
d7d3f3cb 1005 - adjusted all /example files to comply
a977cf65 1006
f9eba090 10070.22 Mon. March 20, 2006
0eff2c16 1008 * Class::MOP::Class
1009 - localized $@ in the *_package_variable functions
1010 because otherwise, it does ugly things in Moose.
1011 - added test case for this
1012
1988e85e 10130.21 Wed. March 15, 2006
2f6d5412 1014 * Class::MOP::Class
d7d3f3cb 1015 - fixed issue where metaclasses are reaped from
2f6d5412 1016 our cache in global destruction, and so are not
1017 available in DESTORY calls
1018
96ceced8 10190.20 Thurs. March 2, 2006
d7d3f3cb 1020 - removed the dependency for Clone since
d3cb0d4a 1021 we no longer to deep-cloning by default.
d7d3f3cb 1022
a4258ffd 1023 * Class::MOP::Method
d7d3f3cb 1024 - added &package_name, &name and
1025 &fully_qualified_name methods, some of
1026 which were formerly private subs in
a4258ffd 1027 Class::MOP::Class
d7d3f3cb 1028
a4258ffd 1029 * Class::MOP::Method::Wrapped
d7d3f3cb 1030 - allows for a method to be wrapped with
1031 before, after and around modifiers
a4258ffd 1032 - added tests and docs for this feature
d3cb0d4a 1033
1034 * Class::MOP::Class
58d75218 1035 - improved &get_package_symbol
96ceced8 1036 - &version and &superclasses now use it
a4258ffd 1037 - methods are now blessed into Class::MOP::Method
1038 whenever possible
d7d3f3cb 1039 - added methods to install CLOS-style method modifiers
a4258ffd 1040 - &add_before_method_modifier
d7d3f3cb 1041 - &add_after_method_modifier
a4258ffd 1042 - &add_around_method_modifier
1043 - added tests and docs for these
d7d3f3cb 1044 - added &find_next_method_by_name which finds the
96ceced8 1045 equivalent of SUPER::method_name
d3cb0d4a 1046
1c020571 10470.12 Thurs. Feb 23, 2006
d7d3f3cb 1048 - reduced the dependency on B, no need to always
d89c0fad 1049 have the latest
1050
1c020571 1051 * examples/
1052 - added docs to the C3 method dispatch order test
d7d3f3cb 1053 - fixed missing Algorithm::C3 dependency by making
1c020571 1054 the test skip if it is not installed
1055
0dea7280 10560.11 Mon Feb. 20, 2006
f3f5bd34 1057 * examples/
1058 - added example of changing method dispatch order to C3
d7d3f3cb 1059
a27ae83f 1060 * Class::MOP::Class
19d4b5b8 1061 - changed how clone_instance behaves, it now only does a
1062 shallow clone (see docs for more details)
a27ae83f 1063 - added docs and tests
f3f5bd34 1064
3bf7644b 10650.10 Tues Feb. 14, 2006
d7d3f3cb 1066 ** This release was mostly about writing more tests and
1067 cleaning out old and dusty code, the MOP should now
3bf7644b 1068 be considered "ready to use".
1069
22286063 1070 - adding more tests to get coverage up a little higher,
1071 mostly testing errors and edge cases.
1072 - test coverage is now at 99%
d7d3f3cb 1073
aa448b16 1074 * Class::MOP
1075 - no longer optionally exports to UNIVERSAL::meta or
d7d3f3cb 1076 creates a custom metaclass generator, use the
aa448b16 1077 metaclass pragma instead.
22286063 1078
d7d3f3cb 1079 * Class::MOP::Class
1080 - fixed a number of minor issues which came up in the
1081 error/edge-case tests
1082
1083 * Class::MOP::Attribute
1084 - fixed a number of minor issues which came up in the
22286063 1085 error/edge-case tests
d7d3f3cb 1086
0b8eb325 1087 * examples/
ea263060 1088 - fixing the AttributesWithHistory example, it was broken.
663f8198 1089
550d56db 10900.06 Thurs Feb. 9, 2006
677eb158 1091 * metaclass
d7d3f3cb 1092 - adding new metaclass pragma to make setting up the
677eb158 1093 metaclass a little more straightforward
d7d3f3cb 1094
7b31baf4 1095 * Class::MOP
d7d3f3cb 1096 - clean up bootstrapping to include more complete
1097 attribute definitions for Class::MOP::Class and
1098 Class::MOP::Attribute (accessors, readers, writers,
7b31baf4 1099 etc.) ... it is redundant, but is useful meta-info
1100 to have around.
677eb158 1101
99e5b7e8 1102 * Class::MOP::Class
d7d3f3cb 1103 - fixing minor meta-circularity issue with &meta, it
99e5b7e8 1104 is now more useful for subclasses
d7d3f3cb 1105 - added &get_attribute_map as an accessor for the
7b31baf4 1106 hash of attribute meta objects
c9e77dbb 1107 - &compute_all_applicable_attributes now just returns
1108 the attribute meta-object, rather than the HASH ref
d7d3f3cb 1109 since all the same info can be gotten from the
c9e77dbb 1110 attribute meta-object itself
1111 - updated docs & tests to reflect
5f3c057a 1112 - added &clone_instance method which does a deep clone
1113 of the instance structure created by &construct_instance
1114 - added docs & tests for this
550d56db 1115 - added Clone as a dependency
5f3c057a 1116 - added &new_object and &clone_object convience methods to
1117 return blessed new or cloned instances
2a7575a6 1118 - they handle Class::MOP::Class singletons correctly too
5f3c057a 1119 - added docs & tests for this
2a7575a6 1120 - cleaned up the &constuct_class_instance so that it behaves
1121 more like &construct_instance (and managed the singletons too)
550d56db 1122 - added the &check_metaclass_compatibility method to make sure
1123 that metaclasses are upward and downward compatible.
1124 - added tests and docs for this
d7d3f3cb 1125
99e5b7e8 1126 * examples/
1127 - adjusting code to use the &Class::MOP::Class::meta
1128 fix detailed above
677eb158 1129 - adjusting code to use the metaclass pragma
d7d3f3cb 1130
aa9c883e 11310.05 Sat Feb. 4, 2006
2e41896e 1132 * Class::MOP::Class
1133 - added the &attribute_metaclass and &method_metaclass
d7d3f3cb 1134 attributes which contain a metaclass name to use for
2e41896e 1135 attributes/methods respectively
d7d3f3cb 1136
351bd7d4 1137 * Class::MOP
d7d3f3cb 1138 - bootstrap additional attributes for Class::MOP::Class
1139
2e41896e 1140 * examples/
1141 - adjusted the example code and tests to use the new
1142 &attribute_metaclass feature of Class::MOP::Class
aa9c883e 1143 - added new example:
1144 - LazyClass
2e41896e 1145
d7c2cbe3 11460.04 Fri Feb. 3, 2006
d6fbcd05 1147 * Class::MOP::Class
1148 - some documentation suggestions from #perl6
d7d3f3cb 1149
d6fbcd05 1150 * Class::MOP::Attribute
d7d3f3cb 1151 - improved error messages
1152
d6fbcd05 1153 * examples/
1154 - added new examples:
1155 - AttributesWithHistory
d7c2cbe3 1156 - ClassEncapsultedAttributes
343203ee 1157
9ec169fe 11580.03 Fri Feb. 3, 2006
1159 - converted to Module::Build instead of EU::MM
d7d3f3cb 1160
9ec169fe 1161 * Class::MOP::Attribute
1162 - refactored method generation code
1163 - attributes are now associated with class directly
d7d3f3cb 1164
f71f4295 1165 * examples/
d7d3f3cb 1166 - refactored the InsideOut example to take advantage
9ec169fe 1167 of the Class::MOP::Attribute refactoring
f71f4295 1168 - changed example files to .pod files and hide thier
1169 package names from PAUSE (I don't want to own these
1170 namespaces really, they are just examples)
9ec169fe 1171
a57c7fa2 11720.02 Thurs Feb. 2, 2006
1173 - moving examples from t/lib/* to examples/*
1174 - adding POD documentation to the examples
1175
a2e85e6c 11760.01 Thurs Feb. 2, 2006
92af7fdf 1177 - Initial release