kcov
styx
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.
kcov
- kcov: NEW Data - star count:590.0
-
The first 6 months of a self-hosted compiler
Logically after the 24 of January the rate felt very low, but not to zero. Styx backend supports emiting of DWARF debug informations and they can be used by tools to produce coverage reports. In particular I used kcov, which produces nice html output but also cobertura-style reports that are compatible with CodeCov.
-
neotest: A modern, powerful testing plugin
Did you look into kcov yet? https://github.com/SimonKagstrom/kcov
- kcov: NEW Data - star count:579.0
styx
-
The Performance Impact of C++'s `final` Keyword
> I'd love to see the codegen differences between the applications
There are two applications, dynamic calls and dynamic casts.
Dynamic casts to final classes dont require to check the whole inheritance chain. Recently done this in styx [0]. The gain may appear marginal, e.g 3 or 4 dereferences saved but in programs based on OOP you can easily have *Billions* of dynamic casts saved.
[0]: https://gitlab.com/styx-lang/styx/-/commit/62c48e004d5485d4f....
- The Styx Programming Language
-
What was the dumbest thing you implemented/prototyped?
The @SOA attribute.
-
You dont need the Comma expression. All you need is the Tuple expression
I've experienced that today, in my compiler. The language has tuples but also an internal comma expression (i.e not part of the grammar, just of the compiler API). As expected it was 100% possible to remove it and refact using tuples.
-
`this` is not static
The problem described in this article is solved in Styx. During a pre-semantic pass the this parameter is added to member functions that are not static hence member functions are type- correct. Then, from a binary point of view, this is passed in a register.
-
The story of an absurd optimization
Once upon a time I've profiled my software. It's a compiler for a hobby language called Styx.
-
switch over strings : the gperf way vs more standard methods ?
Is there a reason why your table define the index at the tail of the dedicated row ? (my generator)
-
The first 6 months of a self-hosted compiler
Since several years I work on a hobby programming language called Styx. The compiler was initially written in D. D sources were translated at the end of 2021 and finally Styx sources replaced the D ones on the 24 of January 2022, when Styx became "self-hosted".
- generics declaration in styx
What are some alternatives?
neotest - An extensible framework for interacting with tests within NeoVim.
dmd - dmd D Programming Language compiler
cpp-project - Boiler plate template for C++ projects, with CMake, Doctest, Travis CI, Appveyor, Github Actions and coverage reports.
coreutils - upstream mirror
neotest-rspec - ๐งช Neotest adapter for RSpec. Works in Docker containers too
soa-derive - Array of Struct to Struct of Array helpers in Rust
nvim-dap - Debug Adapter Protocol client implementation for Neovim
coverde - A set of commands for coverage trace files manipulation.
ModernCppStarter - ๐ Kick-start your C++! A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more.
refactoring.nvim - The Refactoring library based off the Refactoring book by Martin Fowler
nvim - My custom NeoVim setup