Merged CMOP into Moose
authorDave Rolsky <autarch@urth.org>
Mon, 27 Dec 2010 14:48:08 +0000 (08:48 -0600)
committerDave Rolsky <autarch@urth.org>
Mon, 27 Dec 2010 14:48:08 +0000 (08:48 -0600)
commit38bf2a2585e26a47c919fd4c286b7716acb51c00
tree295c81cd8e072d0568d70d7e42f028e6dd13c18c
parentc4df9302dc30e06117434030b88568e22e6bdec5
Merged CMOP into Moose

This involved tweaking the XS code a bit so that the Moose XS takes care of
booting the CMOP XS. It also meant changing Class::MOP to load Moose.so.

Most tests pass, except one which is probably related to the earlier
dzilification.

We will probably need an additional dzil plugin to customize the Makefile.PL
generation to do all the funky XS stuff that the hand-written one currently
does.
160 files changed:
Makefile.PL [new file with mode: 0644]
Moose.xs [deleted file]
benchmarks/cmop/all.yml [new file with mode: 0644]
benchmarks/cmop/foo.pl [new file with mode: 0755]
benchmarks/cmop/lib/Bench/Accessor.pm [new file with mode: 0644]
benchmarks/cmop/lib/Bench/Construct.pm [new file with mode: 0644]
benchmarks/cmop/lib/Bench/Run.pm [new file with mode: 0644]
benchmarks/cmop/lib/MOP/Immutable/Point.pm [new file with mode: 0644]
benchmarks/cmop/lib/MOP/Immutable/Point3D.pm [new file with mode: 0644]
benchmarks/cmop/lib/MOP/Installed/Point.pm [new file with mode: 0644]
benchmarks/cmop/lib/MOP/Installed/Point3D.pm [new file with mode: 0644]
benchmarks/cmop/lib/MOP/Point.pm [new file with mode: 0644]
benchmarks/cmop/lib/MOP/Point3D.pm [new file with mode: 0644]
benchmarks/cmop/lib/Plain/Point.pm [new file with mode: 0644]
benchmarks/cmop/lib/Plain/Point3D.pm [new file with mode: 0644]
benchmarks/cmop/loading-benchmark.pl [new file with mode: 0755]
benchmarks/cmop/profile.pl [new file with mode: 0755]
benchmarks/cmop/run_yml.pl [new file with mode: 0644]
dist.ini
eg/class_browser.pl [new file with mode: 0644]
examples/ArrayBasedStorage.pod [new file with mode: 0644]
examples/AttributesWithHistory.pod [new file with mode: 0644]
examples/C3MethodDispatchOrder.pod [new file with mode: 0644]
examples/ClassEncapsulatedAttributes.pod [new file with mode: 0644]
examples/InsideOutClass.pod [new file with mode: 0644]
examples/InstanceCountingClass.pod [new file with mode: 0644]
examples/LazyClass.pod [new file with mode: 0644]
examples/Perl6Attribute.pod [new file with mode: 0644]
lib/Class/MOP.pm [new file with mode: 0644]
lib/Class/MOP/Attribute.pm [new file with mode: 0644]
lib/Class/MOP/Class.pm [new file with mode: 0644]
lib/Class/MOP/Class/Immutable/Trait.pm [new file with mode: 0644]
lib/Class/MOP/Deprecated.pm [new file with mode: 0644]
lib/Class/MOP/Instance.pm [new file with mode: 0644]
lib/Class/MOP/Method.pm [new file with mode: 0644]
lib/Class/MOP/Method/Accessor.pm [new file with mode: 0644]
lib/Class/MOP/Method/Constructor.pm [new file with mode: 0644]
lib/Class/MOP/Method/Generated.pm [new file with mode: 0644]
lib/Class/MOP/Method/Inlined.pm [new file with mode: 0644]
lib/Class/MOP/Method/Meta.pm [new file with mode: 0644]
lib/Class/MOP/Method/Wrapped.pm [new file with mode: 0644]
lib/Class/MOP/MiniTrait.pm [new file with mode: 0644]
lib/Class/MOP/Mixin.pm [new file with mode: 0644]
lib/Class/MOP/Mixin/AttributeCore.pm [new file with mode: 0644]
lib/Class/MOP/Mixin/HasAttributes.pm [new file with mode: 0644]
lib/Class/MOP/Mixin/HasMethods.pm [new file with mode: 0644]
lib/Class/MOP/Module.pm [new file with mode: 0644]
lib/Class/MOP/Object.pm [new file with mode: 0644]
lib/Class/MOP/Package.pm [new file with mode: 0644]
lib/Moose.pm
lib/Moose/Exporter.pm
lib/Moose/Util.pm
lib/metaclass.pm [new file with mode: 0644]
mop.c [new file with mode: 0644]
mop.h [new file with mode: 0644]
t/001_cmop/000_load.t [new file with mode: 0644]
t/001_cmop/001_basic.t [new file with mode: 0644]
t/001_cmop/002_class_precedence_list.t [new file with mode: 0644]
t/001_cmop/003_methods.t [new file with mode: 0644]
t/001_cmop/004_advanced_methods.t [new file with mode: 0644]
t/001_cmop/005_attributes.t [new file with mode: 0644]
t/001_cmop/006_new_and_clone_metaclasses.t [new file with mode: 0644]
t/001_cmop/010_self_introspection.t [new file with mode: 0644]
t/001_cmop/011_create_class.t [new file with mode: 0644]
t/001_cmop/012_package_variables.t [new file with mode: 0644]
t/001_cmop/013_add_attribute_alternate.t [new file with mode: 0644]
t/001_cmop/014_attribute_introspection.t [new file with mode: 0644]
t/001_cmop/015_metaclass_inheritance.t [new file with mode: 0644]
t/001_cmop/016_class_errors_and_edge_cases.t [new file with mode: 0644]
t/001_cmop/017_add_method_modifier.t [new file with mode: 0644]
t/001_cmop/018_anon_class.t [new file with mode: 0644]
t/001_cmop/019_anon_class_keep_alive.t [new file with mode: 0644]
t/001_cmop/020_attribute.t [new file with mode: 0644]
t/001_cmop/021_attribute_errors_and_edge_cases.t [new file with mode: 0644]
t/001_cmop/022_attribute_duplication.t [new file with mode: 0644]
t/001_cmop/023_attribute_get_read_write.t [new file with mode: 0644]
t/001_cmop/024_attribute_initializer.t [new file with mode: 0644]
t/001_cmop/025_attribute_non_alpha_name.t [new file with mode: 0644]
t/001_cmop/030_method.t [new file with mode: 0644]
t/001_cmop/031_method_modifiers.t [new file with mode: 0644]
t/001_cmop/032_universal_methods.t [new file with mode: 0644]
t/001_cmop/040_metaclass.t [new file with mode: 0644]
t/001_cmop/041_metaclass_incompatibility.t [new file with mode: 0644]
t/001_cmop/042_metaclass_incompatibility_dyn.t [new file with mode: 0644]
t/001_cmop/043_instance_metaclass_incompat.t [new file with mode: 0644]
t/001_cmop/044_instance_metaclass_incompat_dyn.t [new file with mode: 0644]
t/001_cmop/045_metaclass_loads_classes.t [new file with mode: 0644]
t/001_cmop/046_rebless_instance.t [new file with mode: 0644]
t/001_cmop/047_rebless_with_extra_params.t [new file with mode: 0644]
t/001_cmop/048_anon_class_create_init.t [new file with mode: 0644]
t/001_cmop/049_metaclass_reinitialize.t [new file with mode: 0644]
t/001_cmop/050_scala_style_mixin_composition.t [new file with mode: 0644]
t/001_cmop/060_instance.t [new file with mode: 0644]
t/001_cmop/061_instance_inline.t [new file with mode: 0644]
t/001_cmop/062_custom_instance.t [new file with mode: 0644]
t/001_cmop/070_immutable_metaclass.t [new file with mode: 0644]
t/001_cmop/071_immutable_w_custom_metaclass.t [new file with mode: 0644]
t/001_cmop/072_immutable_w_constructors.t [new file with mode: 0644]
t/001_cmop/073_make_mutable.t [new file with mode: 0644]
t/001_cmop/074_immutable_custom_trait.t [new file with mode: 0644]
t/001_cmop/080_meta_package.t [new file with mode: 0644]
t/001_cmop/081_meta_package_extension.t [new file with mode: 0644]
t/001_cmop/082_get_code_info.t [new file with mode: 0644]
t/001_cmop/083_load_class.t [new file with mode: 0644]
t/001_cmop/085_load_class_gvstash_detect_bug.t [new file with mode: 0644]
t/001_cmop/086_rebless_instance_away.t [new file with mode: 0644]
t/001_cmop/087_subclasses.t [new file with mode: 0644]
t/001_cmop/090_meta_method.t [new file with mode: 0644]
t/001_cmop/100_BinaryTree_test.t [new file with mode: 0644]
t/001_cmop/101_InstanceCountingClass_test.t [new file with mode: 0644]
t/001_cmop/102_InsideOutClass_test.t [new file with mode: 0644]
t/001_cmop/103_Perl6Attribute_test.t [new file with mode: 0644]
t/001_cmop/104_AttributesWithHistory_test.t [new file with mode: 0644]
t/001_cmop/105_ClassEncapsulatedAttributes_test.t [new file with mode: 0644]
t/001_cmop/106_LazyClass_test.t [new file with mode: 0644]
t/001_cmop/107_C3MethodDispatchOrder_test.t [new file with mode: 0644]
t/001_cmop/108_ArrayBasedStorage_test.t [new file with mode: 0644]
t/001_cmop/200_Class_C3_compatibility.t [new file with mode: 0644]
t/001_cmop/300_random_eval_bug.t [new file with mode: 0644]
t/001_cmop/301_RT_27329_fix.t [new file with mode: 0644]
t/001_cmop/302_modify_parent_method.t [new file with mode: 0644]
t/001_cmop/303_RT_39001_fix.t [new file with mode: 0644]
t/001_cmop/304_constant_codeinfo.t [new file with mode: 0644]
t/001_cmop/305_RT_41255.t [new file with mode: 0644]
t/001_cmop/306_rebless_overload.t [new file with mode: 0644]
t/001_cmop/307_null_stash.t [new file with mode: 0644]
t/001_cmop/308_insertion_order.t [new file with mode: 0644]
t/001_cmop/309_subname.t [new file with mode: 0644]
t/001_cmop/310_inline_structor.t [new file with mode: 0644]
t/001_cmop/311_inline_and_dollar_at.t [new file with mode: 0644]
t/001_cmop/312_anon_class_leak.t [new file with mode: 0644]
t/001_cmop/313_before_after_dollar_under.t [new file with mode: 0644]
t/001_cmop/314_class_is_pristine.t [new file with mode: 0644]
t/001_cmop/315_magic.t [new file with mode: 0644]
t/001_cmop/316_numeric_defaults.t [new file with mode: 0644]
t/001_cmop/500_deprecated.t [new file with mode: 0644]
t/001_cmop/lib/BinaryTree.pm [new file with mode: 0644]
t/001_cmop/lib/MyMetaClass.pm [new file with mode: 0644]
t/001_cmop/lib/MyMetaClass/Attribute.pm [new file with mode: 0644]
t/001_cmop/lib/MyMetaClass/Instance.pm [new file with mode: 0644]
t/001_cmop/lib/MyMetaClass/Method.pm [new file with mode: 0644]
t/001_cmop/lib/MyMetaClass/Random.pm [new file with mode: 0644]
t/001_cmop/lib/SyntaxError.pm [new file with mode: 0644]
t/001_cmop/lib/TestClassLoaded.pm [new file with mode: 0644]
t/001_cmop/lib/TestClassLoaded/Sub.pm [new file with mode: 0644]
t/001_cmop/lib/TestClassLoaded2.pm [new file with mode: 0644]
t/001_cmop/lib/TestClassLoaded3.pm [new file with mode: 0644]
xs/Attribute.xs [new file with mode: 0644]
xs/AttributeCore.xs [new file with mode: 0644]
xs/Class.xs [new file with mode: 0644]
xs/Generated.xs [new file with mode: 0644]
xs/HasAttributes.xs [new file with mode: 0644]
xs/HasMethods.xs [new file with mode: 0644]
xs/Inlined.xs [new file with mode: 0644]
xs/Instance.xs [new file with mode: 0644]
xs/MOP.xs [new file with mode: 0644]
xs/Method.xs [new file with mode: 0644]
xs/Moose.xs [new file with mode: 0644]
xs/Package.xs [new file with mode: 0644]
xs/typemap [new file with mode: 0644]