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