# \[ANN\] RelevanceStacktrace.jl: For fastest error locating

**URL:** <https://discourse.julialang.org/t/ann-relevancestacktrace-jl-for-fastest-error-locating/86097>\
**Category:** Package Announcements\
**Tags:** stacktrace, error-message\
**Created:** [August 21, 2022, 6:00pm UTC](https://discourse.julialang.org/t/ann-relevancestacktrace-jl-for-fastest-error-locating/86097 "2022-08-21T18:00:51Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Marcell\_Havlik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marcell_havlik/32/37424_2.png) [@Marcell\_Havlik](https://discourse.julialang.org/u/Marcell_Havlik)\
**Post date:** [August 21, 2022, 6:00pm UTC](https://discourse.julialang.org/t/ann-relevancestacktrace-jl-for-fastest-error-locating/86097/1 "2022-08-21T18:00:51Z")

</div>

Hey Julianners!

Errors are part of our life, but locating them isn’t!

The package locate the files that are yours and highlights them. Also, it will **BOLD** the first file you are actually looking for 99% of the time. So you don’t have to go through the stacktrace ANYMORE.

[Cvikli/RelevanceStacktrace.jl (github.com)](https://github.com/Cvikli/RelevanceStacktrace.jl)

Visual example:

```julia
using Pkg; Pkg.add(url="https://github.com/Cvikli/RelevanceStacktrace.jl.git")
using RelevanceStacktrace
func4(x) = begin
	x+=x
	x=sum(x) .* [5, 3]
	x=sum(x[3])
	return x/3
end
func3(x) = x+5 + func4(x)
func2(x) = x+3 + func3(x)
func1(x) = begin
	func2(x)
end
func1(3)

```

[![artificial error example](https://global.discourse-cdn.com/julialang/original/3X/6/7/672130d6dbb98f320a59a2e81fabb72a772aa767.png)](https://github.com/Cvikli/RelevanceStacktrace.jl/blob/main/assets/artificial_error.png)  
In real life development, it is even more powerful.

I am using it for more than one and a half years and seriously this is SO GREAT, everyone has to know about it. So I wanted to share it with the community!

Some fun fact, the package tries to change the mentality over the errors, so finding an error is a good thing and shows it in GREEN! 😉

---

<div class="post-metadata">

**Author:** ![Roger-luo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/roger-luo/32/3399_2.png) [@Roger-luo](https://discourse.julialang.org/u/Roger-luo)\
**Post date:** [August 22, 2022, 9:40am UTC](https://discourse.julialang.org/t/ann-relevancestacktrace-jl-for-fastest-error-locating/86097/2 "2022-08-22T09:40:11Z")

</div>

Great package Is there an issue to have something like this in Base?

---

<div class="post-metadata">

**Author:** ![Marcell\_Havlik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marcell_havlik/32/37424_2.png) [@Marcell\_Havlik](https://discourse.julialang.org/u/Marcell_Havlik)\
**Post date:** [August 22, 2022, 10:03am UTC](https://discourse.julialang.org/t/ann-relevancestacktrace-jl-for-fastest-error-locating/86097/3 "2022-08-22T10:03:33Z")

</div>

Hi,  
I guess the tradeoff is to have some method invalidations, but when I checked it doesn’t really do a big invalidation. So I didn’t experience any issue with it in the last years. 🙂  
Also it is compiled into my sysimage… so if I am right that could also reduce it to 0? Probably. 😃

I have a script that just prepare a great sys image, so everything is much faster. But with 1.8… I think it is already can be dropped basically as everything loads extremly fast…

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [August 24, 2022, 5:02am UTC](https://discourse.julialang.org/t/ann-relevancestacktrace-jl-for-fastest-error-locating/86097/4 "2022-08-24T05:02:14Z")

</div>

Is there a reason you did not register the package?

> **[GitHub - JuliaRegistries/Registrator.jl: Julia package registration bot](https://github.com/JuliaRegistries/Registrator.jl)**
>
> Julia package registration bot. Contribute to JuliaRegistries/Registrator.jl development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![antoine-levitt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/antoine-levitt/32/4008_2.png) [@antoine-levitt](https://discourse.julialang.org/u/antoine-levitt)\
**Post date:** [August 24, 2022, 7:13am UTC](https://discourse.julialang.org/t/ann-relevancestacktrace-jl-for-fastest-error-locating/86097/5 "2022-08-24T07:13:46Z")

</div>

Looks great! Can it be merged into [GitHub - BioTurboNick/AbbreviatedStackTraces.jl](https://github.com/BioTurboNick/AbbreviatedStackTraces.jl)? Presumably it shares some of the logic.

---

<div class="post-metadata">

**Author:** ![Marcell\_Havlik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marcell_havlik/32/37424_2.png) [@Marcell\_Havlik](https://discourse.julialang.org/u/Marcell_Havlik)\
**Post date:** [August 24, 2022, 8:34pm UTC](https://discourse.julialang.org/t/ann-relevancestacktrace-jl-for-fastest-error-locating/86097/6 "2022-08-24T20:34:04Z")

</div>

I didn’t know it is open for publishing. Thank you for pointing out.

@ufechner7 pointed it out too and he help me to get it there. 🙂

@antonie-levitt for me I like the “ordered” error messages and had some bad experiences with dinamic “UI” in the past during my work at my company, so I think I won’t make that for a while. Maybe later on, or someone if preferred can do it.  
By the way I didn’t check the AbbreviatedStackTraces, but it should be easy to merge for sure!

---

<div class="post-metadata">

**Author:** ![Marcell\_Havlik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marcell_havlik/32/37424_2.png) [@Marcell\_Havlik](https://discourse.julialang.org/u/Marcell_Havlik)\
**Post date:** [August 29, 2022, 2:22pm UTC](https://discourse.julialang.org/t/ann-relevancestacktrace-jl-for-fastest-error-locating/86097/7 "2022-08-29T14:22:38Z")

</div>

And it is there!  
`] add RelevanceStacktrace`  
Juhhu! 🥳 🥳 🥳

Thank you all!  
(Also looking forward to julia 2.0 when it hets merged into the official julia branch XD 😃 🤞)

---

<div class="post-metadata">

**Author:** ![nrontsis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nrontsis/32/38535_2.png) [@nrontsis](https://discourse.julialang.org/u/nrontsis)\
**Post date:** [February 15, 2023, 1:09pm UTC](https://discourse.julialang.org/t/ann-relevancestacktrace-jl-for-fastest-error-locating/86097/8 "2023-02-15T13:09:48Z")

</div>

Thanks a lot for the package, it looks very useful and simple 🎉

> [@Marcell\_Havlik](#):
>
> Also looking forward to julia 2.0 when it hets merged into the official julia branch XD

Is there a PR for this in `Julia`’s base?

---

<div class="post-metadata">

**Author:** ![Marcell\_Havlik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marcell_havlik/32/37424_2.png) [@Marcell\_Havlik](https://discourse.julialang.org/u/Marcell_Havlik)\
**Post date:** [February 16, 2023, 2:02pm UTC](https://discourse.julialang.org/t/ann-relevancestacktrace-jl-for-fastest-error-locating/86097/9 "2023-02-16T14:02:46Z")

</div>

Thank you! I hope it helps the community a lot! There will be a lot more package that will be crazy helpful, you will see, I already have those too, as it mature enough I will publish them too! 😃 Julia is just mindblowing!

On the other hand, I think it is nice to have this as an importable module for now. But of course it would be really innovative to have anything like this standardised in a language, maybe even too innovative, that is why I just joked with the 2.0 (also I know there is no plan for 2.0 atm) 😃
