Moops ===== Created: 2013-06-30 Home page: Bug tracker: Maintainer: Toby Inkster (TOBYINK) 0.038 2020-02-15 [ Documentation ] - Add GOTCHAS section. 0.037 2020-02-13 [ Documentation ] - Update STATUS section. [ Packaging ] - Add dependency on Devel::GlobalDestruction. 0.036 2018-08-09 [ Packaging ] - PerlX::Define is now distributed separately. 0.035 2018-06-26 [ Documentation ] - Add note about Devel::CallParser issue to documentation. [ Packaging ] - Explicit dependency on strictures.pm. 0.034 2014-10-12 [ Bug Fixes ] - Fix enormous memory leak leading to segfault caused when a role application in a scope guard threw an exception. Fixes RT#99389. Fixes RT#99409. Ben Goldberg++ Lukas Atkinson++ Søren Døssing++ [ Documentation ] - Bundle a multimethod example (stolen from MooseX:MultiMethods). - Improvements to the SUPPORT and SEE ALSO sections of the documentation. - Warn about some planned changes. [ Test Suite ] - Test that `use true` is imported by Moops. [ Packaging ] - Remove outdated dependency on Sub::Name from packaging metadata. [ Other ] - Updated: namespace::autoclean now supports Moo enough that we can start using it instead of namespace::sweep. 0.033 2014-08-16 [ Bug Fixes ] - Fix bugs introduced in 0.032 with role application via guards. [ Other ] - Updated: Take advantage of improvements in Type::Library/Type::Registry 1.000000. 0.032 2014-08-13 [ BACK COMPAT ] - Role composition is now delayed to the end of a class declaration. Matt S Trout++ [ Documentation ] - Fix a typo in Moops::Manual::Objects101. Fixes RT#93553. Ron Savage++ [ Packaging ] - PerlX::Assert is no longer bundled with Moops; it has been split out into a separate distribution. 0.031 2014-03-23 [ Documentation ] - Fix typo in manual. Fixes RT#93553. Ron Savage++ - Use the `true` constant instead of the number 1 in the cli-app.pl example. [ Test Suite ] - Test Moops in threaded Perls. Aaron James Trevena++ [ Other ] - Added: The new import parameter `-strict` enables loading strictures.pm within Moops scopes. - Avoid returning 0 from `assert` statements (PerlX::Assert). - Use Parse::Keyword instead of Devel::Pragma in order to establish the currently compiling package name. Devel::Pragma has issues under ithreads. Piers Cawley++ 0.030 2014-01-30 [ Documentation ] - Include an example using Moops to write a command-line app. Maurice Mengel++ [ Packaging ] - Require at least version 0.027 of Kavorka; this resolves a conflict using Moops with MooX::Options. [ Other ] - Hard-code a list of warnings categories to fatalize; this means that warnings categories added to future versions of Perl will not magically become fatal in Moops. 0.029 2014-01-04 [ Bug Fixes ] - Fix availability of Lexical::Accessor within class {} blocks. [ Documentation ] - Copyright 2014. 0.028 2013-12-18 [ Documentation ] - Demonstrate `is override` trait in Moops::Manual::Objects101. [ Packaging ] - Indicate conflict with MooseX::Types::Common 0.001011. - Indicate conflict with MooseX::Types::URI 0.05. 0.027 2013-12-16 [ Documentation ] - Include an example using multi methods to implement a class method and object method with the same name as each other. - Moops::Manual::Objects101. [ Other ] - Added: Private attributes via Lexical::Accessor. - Moose/Mouse classes/roles now have override/augment method modifier keywords. 0.026 2013-11-18 - Replace Function::Parameters with Kavorka. 0.025 2013-10-09 [ Documentation ] - Note that a future version of Moops may replace Function::Parameters with Kavorka. [ Other ] - Updated: Use Exporter::Tiny. 0.024 2013-09-27 [ Test Suite ] - Keyword::Simple 0.02 has been released; no longer need to skip t/03lines.t. 0.023 2013-09-26 [ Bug Fixes ] - Much improved (though not completely perfect) line number accounting. [ Documentation ] - Bundle an example of using Moops with Method::Signatures. 0.022 2013-09-16 - Minor updates to work with Function::Parameters 1.0301. 0.021 2013-09-12 - Allow version numbers to be specified for the `with`, `extends` and `types` options. 0.020 2013-09-11 [ BACK COMPAT ] - Moops->import now takes a hash of options (including the `imports` option) rather than an arrayref of modules to import. [ Packaging ] - List Moose/Mouse/Moo/Class::Tiny dependencies as optional_features in META.json. [ Other ] - Improve Moops' extensibility via parser traits. 0.019 2013-08-30 - Removed: Removed Class::Tiny::Antlers; this is now a separate CPAN distribution. 0.018 2013-08-27 - Added: Add a `library` keyword for declaring type libraries. - Declared packages now get an implied BEGIN {...} block around themselves. 0.017 2013-08-21 - Updated: Support Class::Tiny 0.004. 0.016 2013-08-21 - Added: Provide a `types` option for loading type constraint libraries into classes, roles and namespaces. 0.015 2013-08-21 [ Bug Fixes ] - Fix a reference to Moops::DefineKeyword which will only work if you happen to have installed Moops over the top of a pre-0.012 version of Moops. - Load feature.pm so that it's consistently exported to the outer scope. 0.014 2013-08-21 [ Documentation ] - Document Class::Tiny::Antlers. [ Other ] - Added: MooseX::FunctionParametersInfo - Class::Tiny::Antlers now supports has \@attrs like Moose. 0.013 2013-08-20 [ Bug Fixes ] - Fix test that uses Role::Tiny and Class::Tiny without declaring them (Test::Requires). 0.012 2013-08-20 [ Documentation ] - Various documentation improvements. [ Other ] - Added: PerlX::Assert - Rename Moops::DefineKeyword -> PerlX::Define. 0.011 2013-08-20 [ Documentation ] - Document Attribute::Handlers-style attributes as an extensibility mechanism. [ Other ] - Added: Class::Tiny::Antlers - Added: Moops::TraitFor::Keyword::dirty - Added: Moops::TraitFor::Keyword::mutable - Added: Moops::TraitFor::Keyword::ro - Added: Moops::TraitFor::Keyword::rw - Added: Moops::TraitFor::Keyword::rwp - Added: Support classes built `using Class::Tiny`. - Moose classes will now `use Moose::XSAccessor` if possible. - Use MooseX::MungeHas to 0.002 smooth over more differences between Moo, Mouse and Moose. 0.010 2013-08-19 - Added: Parse Attribute::Handlers-style attributes attached to package declarations; treat these as traits for the code generator. - Much refactoring. - Rename Moops::CodeGenerator -> Moops::Keyword. 0.009 2013-08-19 [ Bug Fixes ] - Fix at-runtime hook (used for method modifiers). [ Packaging ] - The test suite is now in a reasonable state. 0.008 2013-08-18 [ Bug Fixes ] - Fix custom imports feature. - Found a remaining hard-coded list of keywords that was breaking extensibility mechanism. - Stop using constant.pm (though it's still required via Moo); this allows `true` and `false` to be correcting swept by namespace::sweep. [ Documentation ] - Bundle an example showing how to extend Moops. [ Packaging ] - Add Mouse and Moose as 'runtime suggests' dependencies. - Add Perl 5.14 as an explicit dependency. - More test suite improvements; still more to do. 0.007 2013-08-18 [ Bug Fixes ] - Fix parsing for the `namespace` keyword that was broken in 0.005. [ Packaging ] - Dependency - runtime suggestion for MooX::HandlesVia. - More test suite improvements; still more to do. [ Other ] - Help Class::Load (and thus Moose) notice that empty roles are loaded by setting $VERSION to an empty string when no version is specified. 0.006 2013-08-16 [ Documentation ] - Much improved documentation. [ Packaging ] - Some test suite improvements; more to come. [ Other ] - Call __PACKAGE__->meta->make_immutable on Moose/Mouse classes. - Rename MooX::Aspartame -> Moops. 0.005 2013-08-14 [ REGRESSIONS ] - Broke `namespace` keyword. [ Other ] - Improvements handling comments when parsing. - Massive amounts of refactoring to simplify maintenance and make subclassing easier. 0.004 2013-08-14 - Added: Implement `before`, `after` and `around` method modifiers. - Added: Implement `define` keyword to declare constants. - Removed: Drop the `classmethod` keyword; it's better to use `method` and give the invocant an explicit variable name. - Removed: Drop the `exporter` keyword; it is better to explicitly create a class extending Exporter::TypeTiny or Exporter. - The `method` keyword is only available in classes and roles; not plain namespaces. 0.003 2013-08-13 [ Packaging ] - use Dist::Inkt. [ Other ] - Added: New keyword `namespace`. - Don't export Try::Tiny to the outer scope, as it's not lexical. - Misc internal refactoring. - Re-implement relative package names, in a new, saner way. - Updated: use Function::Parameters 1.0201, because it has configurable type constraint reification. 0.002 2013-07-17 - Added: use MooX::late 0.014. - Misc internal refactoring. - Updated: use Moo 1.003000. 0.001 2013-07-01 Initial release