MooseX-Compile
view release on metacpan or search on metacpan
- MooseX::Compile::Compiler should be a Moose class itself. This is currently broken, haven't yet figured out why
- The compiler methods need better names. Most of them really really suck.
- Add the ability to strip a class of it's C<meta> for moose free deployment.
The compiler must be able to prepare a different bootstrapped version without
the loading code in place.
- Audit the code for extensibility
- How easy is it to alter the structure of the PMC?
- How easy is it to override minor details?
- How easy is it to add support for new types of data (custom metaclasses,
meta attrs, meta methods, code refs, etc)
- meta caching could change
- these object might also effect things in the PMC
- Sugar features
- use Manip::END in addition to Check::UnitCheck as a compilation option
(at_exit => 1) for better 5.8 support and also if the metaclass gets
changed
- Accept options like immutable => 1
- Inlinable & Deparsable code roles
- Inlinable
- just stupid macros with named parameters
- Deparsable
- serializable components
- shared environment (shared per compilation unit) - like PadWalker::closed_over
- private environment (per method) - like PadWalker::closed_over
- body - perl text (B::Simple in the future)
- mangling
- alias mangled names from shared env to private names in private
env?
- look into DDS's mangling
- extensible custom deparsing for closed values too
- add a no meta compilation option, for non introspectable classes which are
completely Moose free
- unit tests
- extract_code_symbols
- serialization
- metaclass visitors
- compile_symbols
- for each symbol category
- decompile a specific method, reparse it, and make sure it's the same
- preabmle and boostrapper
- output individual chunks, and make sure they have the desired behavior
( run in 0.846 second using v1.01-cache-2.11-cpan-5837b0d9d2c )