Marlin
======
Created: 2025-12-11
Home page: <https://metacpan.org/release/Marlin>
Bug tracker: <https://github.com/tobyink/p5-marlin/issues>
Maintainer: Toby Inkster (TOBYINK) <tobyink@cpan.org>
0.011002 2026-01-09
[ Bug Fixes ]
- Certain setup steps were not running correctly for roles.
- The before/after/around keywords exported to roles were ones only
suitable for classes; they have been replaced with ones which work for
roles.
[ Documentation ]
- Update benchmark script; compare some more simple classes too.
[ Packaging ]
- Require Sub::Accessor::Small 1.000003.
0.011001 2026-01-08
[ Bug Fixes ]
- Marlin::XAttribute::Alias pod syntax fix.
[ Documentation ]
- Marlin::X::Clone documentation improvements.
[ Packaging ]
- Require Class::XSAccessor 0.016002.
[ Other ]
- Check that code is actually compiling before using B::Hooks::AtRuntime,
otherwise just run stuff immediately.
- Marlin::X::Clone is now aware of Marlin::XAttribute::Alias.
- Marlin::X::Clone now supports more on_clone options.
- Marlin::X::Clone performance improvements.
0.011000 2026-01-07
[ Packaging ]
- Require Class::XSAccessor 0.016001.
- Require Type::Tiny 2.010000.
[ Other ]
- Added: Provide MooseX::Marlin and MooX::Marlin to allow Moose and Moo to
inherit from Marlin classes and compose Marlin roles.
- Marlin::Struct's magical coercion from arrayrefs is now aware of
':Alias'.
- Marlin::XAttribute::Alias no longer forces PP constructors to be
generated.
- Move some attribute logic from Marlin to Marlin::Attribute making it
easier for attribute extensions to override.
- Support inheritance from Class::Tiny classes.
- Support inheritance from Mite classes and composing Mite roles.
- Support inheritance from Mouse classes and composing Mouse roles.
- Updated: Changes to work with newest Class::XSAccessor.
0.010000 2025-12-29
[ Documentation ]
- Show how easy it is to switch from Class::Tiny to Marlin.
[ Other ]
- Added: Marlin::XAttribute::Alias is bundled as a demonstration of the
extension API (and because it can be useful).
- Added: Marlin::XAttribute::LocalWriter is bundled as a demonstration of
the extension API (and because it can be useful).
- Added: Marlin::XAttribute::Lvalue is bundled as a demonstration of the
extension API (and because it can be useful).
- Marlin now provides a rudimentary API for attribute extension modules.
0.009000 2025-12-28
- Added: Marlin::X::Clone is bundled as a demonstration of the extension
API (and because it can be useful).
- Marlin now provides a rudimentary API for extension modules.
- Stop using `mkopt` to parse parameters; do it more manually to allow
some options to take a simple string as their value instead of requiring
a reference.
0.008000 2025-12-23
[ Documentation ]
- Better documentation of Marlin::Struct.
- Document API.
- Omit -strict from examples as that is now the default.
[ Other ]
- Classes built with Marlin::Struct now provide a default stringification
and arrayrefification.
- Internally use Clone::clone() instead of Storage::dclone() as it can
cope with coderefs.
- Marlin can now inherit from Moose and Moo classes and compose Moose and
Moo roles.
- Provide some useful utility API methods.
- Various small improvements to Marlin::Struct.
0.007001 2025-12-22
[ Bug Fixes ]
- Get Marlin::Struct working on Perl older than 5.12.0.
0.007000 2025-12-21
- Added: Marlin::Struct.
- Make strict constructors the default.
0.006001 2025-12-19
[ Test Suite ]
- Restore test case which was marked TODO.
[ Other ]
- Use a newer version of Class::XSConstructor which fixes broken test
case.
0.006000 2025-12-19
[ Test Suite ]
- Changes upstream in Class::XSConstructor have broken one test in the
test suite, so this has been marked TODO for now.
[ Other ]
- Use a newer version of Class::XSConstructor with support for trigger,
weak_ref, and init_arg.
0.005000 2025-12-18
- Use a newer version of Class::XSConstructor with support for
destructors.
- Use a newer version of Sub::Accessor::Small with improvements for
triggers.
0.004000 2025-12-17
- Added: Allow attribute declarations to tweak how the attribute will be
stored, including allowing inside-out attributes.
- Added: Implement constant attributes.
0.003001 2025-12-16
- Use a newer version of Class::XSConstructor with fixes for BUILD
methods.
- Use a newer version of Sub::Accessor::Small with fixes for builder
methods.
0.003000 2025-12-15
- Use a newer version of Class::XSConstructor which allows for type
coercion and defaults/builders to run in the constructor.
0.002005 2025-12-15
[ Bug Fixes ]
- Remove usage of // operator from test case too.
0.002004 2025-12-15
[ Bug Fixes ]
- Remove usage of // operator.
0.002003 2025-12-15
[ Bug Fixes ]
- Fix case of MRO::Compat dependency on Perl older than v5.10.0.
0.002002 2025-12-13
[ Documentation ]
- Minor pod fix.
0.002001 2025-12-13
[ Documentation ]
- Minor pod fix.
0.002000 2025-12-13
- Added: Marlin::Role.
0.001001 2025-12-13
[ Documentation ]
- Include Class::Tiny in examples/benchmark.
0.001000 2025-12-12 Initial release