Skip to content

slim Try::Tiny down as far as reasonably possible

Notifications You must be signed in to change notification settings

ap/Try-Tiny-Tiny

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

Try::Tiny::Tiny - slim Try::Tiny down as far as reasonably possible

SYNOPSIS

export PERL5OPT=-MTry::Tiny::Tiny

DESCRIPTION

This module slims down Try::Tiny as much as possible, currently by preventing Try::Tiny from giving somewhat more human-friendly names to the code references it is passed.

This is done by blocking Try::Tiny from finding any of the utility modules it needs for this feature. As a result, you must use this module before using any other module that loads Try::Tiny. In practice that means you probably want to load it as early as possible, such as through PERL5OPT.

RATIONALE

Overall

Try::Tiny is very heavy compared to raw eval. It is also used all across the CPAN. You yourself could avoid using it in your own code (and if you write CPAN modules, please do), but your applications will almost invariably wind up loading it anyway due to its pervasive use. It is not likely to be feasible to completely avoid depending on it, nor to send patches to remove it from every one of your dependencies (and then get all of the patches accepted).

With this module, you can at least sanitise your dependency chain a little, without patching anything.

Current effect

There are several reasons to not want Try::Tiny to name the coderefs it is passed: it takes meaningful time on every invocation, and it requires modules that may otherwise not have been loaded, yet it is useful only in stack traces, and then only to a human looking at the stack trace directly, whereas other code may be impeded in examining the stack (e.g. to print more helpful error messages in certain scenarios).

DIAGNOSTICS

This module will fail to load if you load it too late to take effect.

SEE ALSO

Try::Catch – a stripped-down clone of Try::Tiny

About

slim Try::Tiny down as far as reasonably possible

Topics

Resources

Stars

Watchers

Forks

Languages