Our great sponsors
-
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.
It looks like you can already use mold to build blender.
https://github.com/blender/blender/commit/8b3d798374a2c6b502...
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
For more on switching Rust to mold, see https://github.com/rust-lang/rust/issues/94347
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).