On Thu Jun 18 21:41:48 2015, PERLANCAR wrote:
Show quoted text> On Thu Jun 18 16:28:57 2015, haarg wrote:
> > This seems to have more in common with Carp::Always, the only
> > difference being that it doesn't load Carp.
>
> 1. In what ways do you think the name misleading? Because the module's
> interface is different? (e.g. DC:Tiny doesn't accept import
> arguments)? Because the module lacks some tricks (like unimport,
> handling objects)?
>
> The goal is the same ("Include stack traces on all warnings & errors")
> and the basic technique is also the same ($SIG{__WARN__} &
> $SIG{__DIE__} + caller()).
It implies that Devel::Confess is "large" in some way, which is only true if your definition of large is badly distorted. It also provides none features that motivated the creation or naming of Devel::Confess. It doesn't support one of the primary interfaces of Devel::Confess (-d:Confess) which is the main reason it has a Devel:: name. Confess implies that it uses Carp, even if it doesn't include Carp in the name itself. It also suffers from bugs that Devel::Confess includes workarounds for.
Show quoted text>
> 2. Any suggestion for a better name? I don't want Carp::* because it
> specifically avoids loading Carp.
Your Getopt::Long::Less and Getopt::Long::EvenLess modules don't load Getopt::Long, so this doesn't seem a particularly strong argument. This module is pretty much is an exact copy of Carp::Always, except with the stack tracing code inlined. I'd recommend using a name based on that. It shared very little with Devel::Confess.
Avoiding using Carp causes its own problems, although that doesn't have much to do with this discussion.
Show quoted text>
> Regards,
> perlancar