libbacktrace is a library for using native stack traces with Nim - much faster than the ones that ship with nim (ie no runtime overhead outside of the moment of stack collection).
We just tagged 0.1.0 which allows you to demangle function names based on the itanium mangling scheme that was merged earlier - this is great because the stack traces now look the same across exceptions and native tooling like gdb, vtune etc.
While the library was fairly stable over the years, the additional requirement on make made it unnecessarily cumbersome to use.
There's a new version in the works that removes the usage of make entirely in favor of {.compile.} - while this is great for all platforms that are tested in CI, it's less great for platforms that are not - getting the C flags right is messy business (which is why initially, make was used).
If you're using libbacktrace on a strange platform, head over to the PR and give it a whirl in case something stopped working so that there are fewer surprises on the next release day ;)
The new build system is interesting that it generates an amalgamation file on the fly customized for the system that we're building on. This is not strictly necessary - ie we could ship a C file with a bunch of #ifdef guards (which indeed might be the better option), but for now it serves as a fun experiment.
Oh, and the PR also enables testing with ORC - while it seems to work mostly fine, crashes on 32-bit window prevent tests from running - ymmv since the crashes seem to happen in the stdlib rather than in libbacktrace itself.
At some point, it would probably be nice to get the stack trace override feature done properly but this requires upstream Nim compiler work, also to get more convenient integration - the current method of adding --import:libbacktrace -d:nimStackTraceOverride --debugger:native --stacktrace:off is pretty ugly - but not only that, it's pretty slow as well due to how stack traces are stored before they are displayed as well as the override mechanism itself (it uses globals and function pointers initialized at runtime - not pretty). If you have ideas, there's an old issue about this: https://github.com/status-im/nim-libbacktrace/issues/12