lion
prometheus-cpp
Our great sponsors
lion | prometheus-cpp | |
---|---|---|
10 | 4 | |
242 | 870 | |
0.8% | - | |
4.3 | 8.0 | |
about 2 months ago | 29 days ago | |
Haskell | C++ | |
BSD 3-clause "New" or "Revised" License | GNU General Public License v3.0 or later |
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.
lion
-
A year of RISC-V adventures: embracing chaos in your software journey [video]
I've been starting to dabble with digital logic design via Clash (https://clash-lang.org/), and there is a very cool-looking RISC-V SoC project done in that tool that looks fairly serious: https://github.com/standardsemiconductor/lion.
-
C++ Concurrency Model on x86 for Dummies
That’s fascinating about the M1. In retrospect it seems like kind of a no-brainer but I doubt I would have thought of it.
SPARC had different memory models at different ISA revs IIRC: it’s been like 20 years since I was dealing with SPARC so I might be misremembering the details. Alpha would have been a better example.
RISC-V is really interesting. I’ve been slowly working through this: https://github.com/standardsemiconductor/lion, highly recommend!
-
Why More Networks Should Imitate Cardano When It Comes To Writing And Shipping Code | Bitcoinist.com
Interesting. Actually, you may be just the person to answer my question: Is it possible/plausible to run a Cardano node on Lion OS on a RISC-V machine? IMO, it would be great for the community if we could run all Cardano stake pools on end to end formally verified machines using open source core and hardware.
- Lion is a formally verified, 5-stage pipeline RISC-V core
- Lion: A formally verified, 5-stage pipeline RISC-V core
-
Hacker News top posts: Mar 4, 2021
Lion: A formally verified, 5-stage pipeline RISC-V core\ (30 comments)
-
Where Lions Roam: RISC-V on the VELDT
In addition, you can actually set the riscv-formal suite to verify correctness by k-induction: https://github.com/SymbioticEDA/riscv-formal/pull/28 https://symbiyosys.readthedocs.io/en/latest/quickstart.html#beyond-bounded-model-checks although I concur that by looking at https://github.com/standardsemiconductor/lion/blob/main/lion-formal/app/Main.hs the lion core is only verified with BMC.
prometheus-cpp
-
C++ Concurrency Model on x86 for Dummies
Rust does have some very cool mechanisms for safety, including in the presence of concurrency.
But this thread is generating blowback from someone saying: “slow down there with the hand-rolled atomic operations, you can hand-roll your multi-threaded locking strategy and it’ll be way safer at a modest cost!”
So, probably not the target audience for Rust ;)
I use a lot of C++ still because there are libraries I want and I have a significant investment in existing code, but I’d love to get to something more modern.
Hand-rolled atomics and load/store relaxation in application code make even seasoned C++ hackers a bit nervous: we saw this shit from business logic hackers at FB all the time and my colleague coined the term “aggressively intermediate” for the style.
I don’t mean to pick on the author of a quite good library (and it is quite good), but I ran across this the other day:
https://github.com/jupp0r/prometheus-cpp/blob/master/core/sr...
It’s correct (I think, very easy to be wrong about this sort of thing), but what are we measuring here where we can’t delegate that CAS into pthread? Branch mispredictions?
Either threads are fighting over whatever cache line that’s on (exclusive -> invalid -> exclusive -> invalid), or not. If they are, I’ve just deprived the scheduler of the opportunity to wake me up when the other 59 threads are done. If they’re not, I’ve maybe saved like one line in my L1.
And in something like a metrics library, you could be wrong for a very long time before someone pinned it down.
-
Debugging/optimizing/diagnostic tools for C++
Some metric collecting tool, for example, Prometheus and its client library for C++
-
Data Telemetry for Application Monitoring
You can use https://github.com/jupp0r/prometheus-cpp (your custom data) in combination with https://grafana.com/ that has plugins for things like cpu usage.
-
Dashboard for my C++ application
Grafana and Prometheus is what I’d use if you’re deploying this in Kubernetes. I haven’t used the C++ library, but generally you can just add a Prometheus client library (e.g. https://github.com/jupp0r/prometheus-cpp ) which makes it quite easy to instrument your application and expose metrics via HTTP. Then you need to configure Prometheus to scrape metrics from your application.
What are some alternatives?
riscv-formal - RISC-V Formal Verification Framework
icinga2 - The core of our monitoring platform with a powerful configuration language and REST API.
cocotb - cocotb, a coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python
skywalking - APM, Application Performance Monitoring System
atomic-story - Understanding how atomics and memory ordering work
Grafana - The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
VexRiscv - A FPGA friendly 32 bit RISC-V CPU implementation
mtail - extract internal monitoring data from application logs for collection in a timeseries database
libcxx - Project moved to: https://github.com/llvm/llvm-project
prometheus - The Prometheus monitoring system and time series database.
wit - WIT (Wikipedia-based Image Text) Dataset is a large multimodal multilingual dataset comprising 37M+ image-text sets with 11M+ unique images across 100+ languages.
bloaty - Bloaty: a size profiler for binaries