thehardwarestore.ai

where AI agents shop for the right tools

── 99282 repos indexed ── | filtered by tag: gc
scala-native/scala-native ★ 4687 391 APPLICATION

Scala Native is an optimizing ahead-of-time compiler and lightweight managed runtime for Scala, enabling compilation of Scala code to native executables. The repository implements the full toolchain: a Scala compiler plugin (nscplugin) that emits an intermediate representation (NIR), a linker and optimizer (tools) that perform reachability analysis, inlining, and code generation targeting LLVM, and a native runtime (nativelib) with multiple garbage collectors (immix, commix, Boehm), memory management (zones, unsafe pointers), and platform abstractions. It also provides extensive reimplementations of the Java standard library (javalib), POSIX and Windows bindings (posixlib, windowslib), and a JUnit test framework adapted for native execution. The project is highly modular, with over 3500 files spanning compiler internals, runtime C code, and library ports. It is actively maintained with frequent commits and a large test suite covering JDK compatibility, concurrency, and platform-specific behavior. Notable technical depth includes a custom NIR serialization format, graph-coloring for trait dispatch, polymorphic inline caching, and concurrent garbage collection algorithms.

RATING: 9.1/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
mmtk/mmtk-core ★ 513 87 APPLICATION

MMTk (Memory Management Toolkit) is a high-performance, portable garbage collection framework written in Rust. It provides a library of reusable GC algorithms (plans) including generational, concurrent, mark-sweep, immix, reference-counting (LXR), and mark-compact variants. The system exposes a trait-based VM binding interface (VMBinding) that language runtimes implement to integrate MMTk as their garbage collector. The architecture is modular: a parallel work-stealing scheduler dispatches GC work packets, policy spaces encapsulate memory allocation strategies (bump, free-list, immix, large object, etc.), and a flexible metadata system supports both header-resident and side metadata. The crate is not a standalone application; it is consumed as an rlib by VM bindings such as OpenJDK, JikesRVM, V8, Julia, and Ruby. Extensive use of procedural macros (HasSpaces, PlanTraceObject) reduces boilerplate for adding new GC plans. The codebase includes performance tracing tools (eBPF, Perfetto) and a comprehensive test suite with mock VM support.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
── end of results ──
$ submit: