Comments (3)
Wouldn't it make more sense to use $SIG{__DIE__}
to log any exceptions? This would catch not only exceptions thrown by Type::Params, but also other exceptions that might come up like file errors, network errors, etc.
from p5-type-tiny.
The $SIG{__DIE__}
approach is in many cases suitable, but there are two catches (well, they might be considered as two aspects of one and the same problem):
- This is too global relating to the application.
If$SIG{__DIE__}
is reset by some other module afterwards, the application behavior will no longer fit the expectations.
Worse still, it is unclear at which time point this will happen and which behavior is currently active.
And even the localization would not help because a foreign module called in the same scope can still change this signal handle if it does not localize$SIG{__DIE__}
. - This is too global relating to threads.
Signals are in general not thread-safe and even though threads are officially discouraged in the recent Perl versions, we run some crucial multi-threading daemons developed in Perl and would like to improve them in a manner considering costs i.e. without being forced to provide a really radical step replacing threads with processes.
from p5-type-tiny.
from p5-type-tiny.
Related Issues (20)
- Bitfield types should be able to return a list of constants that they export
- Using `declare` with a parent->plus_coercions seems to fail HOT 1
- Add a **BoolLike** type to Types::TypeTiny HOT 7
- Use of uninitialized value $i in pattern match (m//) HOT 7
- slurpy parameter cannot be optional HOT 3
- RFE: Type::Params: coerce undef to default value HOT 2
- Call to `tie` does not initialize variable as documented
- BoolLike in Types::TypeTiny should check `!` overloading to support boolean.pm HOT 2
- doc improvement: use strict
- Status of parameterized coercion API?
- Incorrect API docs for Type::Tiny::coercion_generator HOT 1
- cannot pass type parameter to is_InstanceOf()
- how to avoid loading class you want to coerce to?
- error in Type::Tiny::validate_explain for parameterized types without parents
- empty string expected when tying an undefined variable to a Str type constraint
- Document that Type::Tiny "coercion" attribute accepts arrayref to be passed to add_type_coercions
- Type::Params: unexpected error when die'ing in goto_next in a multiple signature HOT 1
- Optional accepts multiple parameters, only uses the first, but refers to all of them in error messages
- Tests failing for perls built with quadmath and having Type-Tiny-XS installed
- "Use of uninitialized value in pattern match" warning when calling Type::Params wrapped func from minimum call stack
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from p5-type-tiny.