libfault
ZQuestClassic
libfault | ZQuestClassic | |
---|---|---|
1 | 11 | |
20 | 453 | |
- | 0.7% | |
10.0 | 9.9 | |
about 6 years ago | 8 days ago | |
C | C++ | |
BSD 3-clause "New" or "Revised" License | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
libfault
-
Show HN: Using C++23 <stacktrace> to get proper crash logs in C++ programs
Neat, I didn't know Sentry also had a good fork, I haven't tried it! But in contrast, here's an in-process fault library that I whipped up (from forking Phusion Passenger) about 10 years ago that I still reach for sometimes, which is surprisingly robust to most of the original complaints about async safety, but still not perfect: https://github.com/thoughtpolice/libfault
You add one C file and 6 lines of code in `main()`, and you can do this in pretty much any programming language with a tiny extra bit of glue. It takes 3 minutes to do this in any C/C++ codebase of mine. It is build system agnostic and works immediately, with zero outside deps. It's something, and that's better than nothing, in practice. So people reach for that. I reach for it. And not just because I wrote it.
I want to be clear: Crashpad is 10000x better than mine in every way, except this one way. And I really wish it wasn't. To add onto this, I really don't like CMake for example, so this problem isn't just a "well I like my thing." I want something that will also work in my Java programs, or Rust programs, for instance! Sometimes they crash too. I don't need to add any dependencies except like 2 or 3 C function calls, which almost every langauge supports with a native FFI out of the box.
I'm reminded of something Yann Collet once said about the design of zstd, and getting people to adopt new compression technology. If you make a compressor and it's better than an alternative in one or more dimensions, but worse in another (size, decompressor speed), then friction is actually significantly increased by that one failure. But if you make it better in every dimension -- so it gives an equal ratio and compression and decompression are always better than alternatives -- the friction is eliminated and people will just reach for it. Even though you only did worse in one spot, people find ways to make it matter.
So that's what I really wish we had here. There needs to be a version of Crashpad, or any robust out of process crash collector, that you can just drop into any language and any build system with a little C glue (or Rust! Sure! Whatever!) in 5 minutes and it should have a crash database server and crash handler process which should instantly work for most uses.
ZQuestClassic
-
Ask HN: What rabbit hole(s) did you dive into recently?
I've been doing some modernization on an old scripting language used by the game engine I work on [1]. Added a garbage collector, simplified how internal symbols are defined, added a VS code extension with some niceties like syntax highlighting, "Go to Definition", and doc tooltips. Also recently added support for websockets and plan to tackle JSON soon.
https://github.com/ZQuestClassic/ZQuestClassic
-
Lessons from Open-Source Game Projects
ZQuest Classic - Engine to play and create games like the original Zelda. C++, OpenGL
-
Ask HN: Show me your half baked project
Developing a new website for the open source game engine I work on. Nearly finished with it.
https://zquestclassic.com
It's a Zelda-like game engine with some 1000ish games made in it over 20 years. Used to be called Zelda Classic, but we renamed it this year.
-
A forum engine written in Assembly
Thanks, that was a silly oversight. Your comment is appreciated, as it saved an instruction in my game engine's JIT compilation :)
https://github.com/ArmageddonGames/ZQuestClassic/commit/0a78...
-
Show HN: Using C++23 <stacktrace> to get proper crash logs in C++ programs
I found Sentry's crash reporting (which uses crashpad) simple enough to configure into an existing CMake build within an afternoon.
Building Sentry/crashpad from source in a few lines of CMake: https://github.com/ArmageddonGames/ZQuestClassic/commit/3471...
And a few lines in the main function: https://github.com/ArmageddonGames/ZQuestClassic/commit/3471...
-
Ask HN: Examples of desktop software with 20+ years of longevity?
My hobby is working on a 20+ year game engine. Still occasionally delete DOS-only code in it. https://github.com/ArmageddonGames/ZQuestClassic
-
MSVC: The Devourer of Const
```
The `Hero.{x,y}` properties here are a custom fixed precision number class with some implicit conversions to int, which I suspect being relevant to the crash.
[1] https://github.com/ArmageddonGames/ZQuestClassic/blob/e678e9...
-
Ccache – a fast C/C++ compiler cache
https://github.com/ArmageddonGames/ZQuestClassic/commit/641d...
Using it locally too, works great on Mac, but on Windows ccache has some problems caching debug builds. IIRC the embedded debug symbols use absolute paths, so the presence of this particular flag (/Z something...) disables cache eligibility.
-
An evolution of handhelds. 1989-2022
i love zelda. if interested in custom quests on pc, go to zeldaclassic.com 100s of custom quests
-
Nintendo games I have played in my life. Rate my taste.
If you'd like to try custom quests on computer, go to http://zeldaclassic.com
What are some alternatives?
Crashlogs - A simple way to output stack traces when a program crashes in C++, using the new C++23 <stacktrace> header
shellrunner - Write safe shell scripts in Python.
libunwind - Mirror of official LLVM libunwind git repository located at http://llvm.org/git/libunwind. Updated every five minutes. http://llvm.org
nature - 🍀 The Nature Programming Language, may you be able to experience the joy of programming.
ardour - Mirror of Ardour Source Code
react-gamin - A rockin' React library for makin' games!
esther - Dear Esther, you're about to become an idea for a diary app that embeds an LLM.
icecream - Distributed compiler with a central scheduler to share build load
seleneCMSBundle - Add CMS functionality to your Symfony Apps
rascal - RAnsac Assisted Spectral CALibration
stronglytyped - Keyboard layout analyzer and generator
ail-framework - AIL framework - Analysis Information Leak framework