-
Notifications
You must be signed in to change notification settings - Fork 149
Add SmallTag
type for more compact Dual
types
#748
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
SmallTag
type for more compute Dual
typesSmallTag
type for more compact Dual
types
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #748 +/- ##
==========================================
- Coverage 89.57% 86.92% -2.66%
==========================================
Files 11 10 -1
Lines 969 1025 +56
==========================================
+ Hits 868 891 +23
- Misses 101 134 +33 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
We could also revive #572, closed it was thought that SciML printing problems were solved in Base. Can you comment on the comparison? |
Base has type-folding now that helps many stack traces, but you still sometimes need a
The main difference is that debugging perturbation issues without the actual function / array types can be very confusing, so it seems useful to keep the original functionality around. Other than that, the implementation should be mostly equivalent (the hash is based in many cases on the Also it's worth mentioning that |
This is an alternative to `Tag` that provides largely the same functionality, but carries around only the hash of the function / array types instead of the full types themselves. This can make these types much less bulky to print and easier to visually scan for.
This provides a convenient interface to ask for a SmallTag.
Latest patch release seems to have tightened this up.
This old version of Julia doesn't have call-site `@inline` / `@noinline` so version-guard against this trick for now.
98b57bb
to
d88bf58
Compare
This is largely to improve printing and reduce visual noise for packages with large function types (e.g. SciML)
Compare
tag = :small
:to
tag = :default
: