Using the mold linker for fun and 3x-8x link time speedups

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • blender

    Official mirror of Blender

  • It looks like you can already use mold to build blender.

    https://github.com/blender/blender/commit/8b3d798374a2c6b502...

  • mold

    Mold: A Modern Linker 🦠

  • mold seems very cool! The design notes [1] are fabulous, exactly the kind of documentation I look for for stuff like this. This part, in particular, is genius:

    > As we aim to the 1-second goal for Chromium, every millisecond counts. We can't ignore the latency of process exit. If we mmap a lot of files, _exit(2) is not instantaneous but takes a few hundred milliseconds because the kernel has to clean up a lot of resources. As a workaround, we should organize the linker command as two processes; the first process forks the second process, and the second process does the actual work. As soon as the second process writes a result file to a filesystem, it notifies the first process, and the first process exits. The second process can take time to exit, because it is not an interactive process.

    Never heard about this trick before, but it seems so obvious in retrospect! That's not a slight: all the smartest ideas seems obvious in retrospect.

    [1]: https://github.com/rui314/mold/blob/main/docs/design.md

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • rust

    Empowering everyone to build reliable and efficient software.

  • For more on switching Rust to mold, see https://github.com/rust-lang/rust/issues/94347

  • clojure

    The Clojure programming language

  • Generating class files is an optional compilation mode in Clojure, you can also load bytecode and define classes without involving files on the JVM.

    https://clojure.org/reference/compilation

    (also see the eval definition at https://github.com/clojure/clojure/blob/master/src/clj/cloju... - it calls into the compiler).

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts