hana
serenity
Our great sponsors
hana | serenity | |
---|---|---|
4 | 240 | |
1,635 | 28,555 | |
1.7% | 2.9% | |
5.1 | 10.0 | |
13 days ago | 2 days ago | |
C++ | C++ | |
Boost Software License 1.0 | BSD 2-clause "Simplified" License |
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.
hana
-
What are some C++ projects with high quality code that I can read through?
I like boost::hana. Wish I had more chances to use it at work.
-
Simple `struct` static reflection system I use that tracks names, attributes (in my own code I also keep `constexpr` hashes of names) -- example gets fully inlined into `main()`
And then there's also the longstanding issue with default member initializers -- https://github.com/boostorg/hana/issues/409 -- which was a deal-breaker.The PROP system avoids this issue precisely by having the macro be as local as possible: the default member initializer is outside the macro. It does this while still letting you attach additional PropAttribs metadata (I'm not sure what additional metadata attachment looks like in Hana? haven't really tried). Default values and additional attributes are by and large quite more important to me in my use cases for reflection (component types in game ECS) than range syntax (everything I've needed and can think of needing is covered by for-each loop).
-
cppa2z - Document modern C++ using unit tests
oh yes definitely, but I meant more the particular way I've done it so far - which has been to implement something similar to boost::hana::is_valid(), to make it take the least amount of boilerplate code per-use-case as possible: zero additional lines of code.
-
C Implementation Challenge Replacing Stdmove And
Boost.Hana developers measured a very noticeable 15% decrease in compile time switching from a function call (admittedly -- with an additional layer of wrapper) to a raw static_cast. foonathan himself saw a little over a 5% decrease in his actual code. miki151 saw about a 3% improvement from replacing move with MOV only, ignoring forward. In a completely synthetic benchmark where I just generate a ton of move calls in a row, I get a little over 40% decrease in compile time.
serenity
-
Why does part of the Windows 98 Setup program look older than the rest?
SerenityOS replicates that look and feel. It is also implemented in a dialect of C++ that adheres to some of the good parts of C++98: https://serenityos.org
- SerenityOS
-
XZ: A Microcosm of the interactions in Open Source projects
One example of a useful technique
https://serenityos.org/ apparently only makes source code available. There are no binary images of the OS to install
I think Andreas said this functions like a little test -- if you're not willing to build it from source, then you probably wouldn't be a good contributor anyway.
---
Likewise, my shell project provides source tarballs only, right now - https://www.oilshell.org/release/0.21.0/
It is packaged in a number of places, which I appreciate. That means some other people are willing to do some work.
And they provide good feedback.
I would like it to be more widely available, but yeah I definitely see that you need to "gate" peanut gallery feedback a bit, because it takes up a lot of time.
Of course, it's a tricky balance, because you also want feedback from casual users, to make the project better.
-
Fuzzing Ladybird with tools from Google Project Zero
Indeed, given the existence of `JS::NonnullGCPtr`, `JS::GcPtr` intentionally corresponds to a nullable pointer, so it seems dangerous to convert one to a reference without a null-check.
That said, a naive code search finds what *may* be more cases of this pattern:
https://github.com/search?q=repo%3ASerenityOS%2Fserenity+%2F...
Eg: https://github.com/SerenityOS/serenity/blob/a68b134e6dea5065... -> https://github.com/SerenityOS/serenity/blob/a68b134e6dea5065...
In some of those search results, it is fine because there is a preceding null-check, and obviously I know nothing about this code other than this naive search result, but perhaps it would be prudent to vet all of them.
-
The Ladybird Browser Project
It is a SerenityOS project. You can find the answer to that question in their primary project's FAQ[1].
1. https://github.com/SerenityOS/serenity/blob/master/Documenta...
-
Sane C++ Libraries
https://github.com/SerenityOS/serenity
The best way to write proper exception free C++ is not to use the C++ Standard Library.
-
Serenum: OS from scratch to save computers [video]
I initially confused it with Serenity OS prior to watching the video: https://github.com/SerenityOS/serenity
-
Ask HN: What side projects landed you a job?
My contributions to SerenityOS[0] helped me get my current job. My team lead (who was also my interviewer) was interested in what I did since I listed some of it in my CV, and I showed him some PRs I made and explained what went into each of them. It was really exciting because I didn't have professional experience with low-level development, and basically got the job due to hobby programming.
[0]: https://github.com/SerenityOS/serenity/pulls?q=is%3Apr+autho...
- SerenityOS – a love letter to '90s user interfaces with a custom Unix-like core
-
Bring garbage collected programming languages efficiently to WebAssembly
Definitely not "literally impossible", just a great deal of work. https://github.com/SerenityOS/serenity/tree/master/Ladybird
What are some alternatives?
mio - Cross-platform C++11 header-only library for memory mapped file IO
Chicago95 - A rendition of everyone's favorite 1995 Microsoft operating system for Linux.
sml - C++14 State Machine library
rust-raspberrypi-OS-tutorials - :books: Learn to write an embedded OS in Rust :crab:
dyno - Runtime polymorphism done right
haiku - The Haiku operating system. (Pull requests will be ignored; patches may be sent to https://review.haiku-os.org).
filesystem - An implementation of C++17 std::filesystem for C++11 /C++14/C++17/C++20 on Windows, macOS, Linux and FreeBSD.
linux - Linux kernel source tree
doctest - The fastest feature-rich C++11/14/17/20/23 single-header testing framework
reactos - A free Windows-compatible Operating System
robin-hood-hashing - Fast & memory efficient hashtable based on robin hood hashing for C++11/14/17/20
redox - Mirror of https://gitlab.redox-os.org/redox-os/redox