OSS contributions
Machine Learning & GPGPU Compute§
ROCm upstream§
Merged:
- ROCm/rocm-systems#2850 — rocr-runtime: fix segfault when queue allocation fails
- ROCm/rccl#1470 — net_ib: fix out of bounds read in ncclIbGdrSupport on non-RDMA kernel
- ROCm/rocMLIR#1708 — GridwiseGemmParams: fix compile error with LLVM libc++ due to missing const
- ROCm/AMDMIGraphX#4300 — support msgpack 6.x as msgpack-cxx
- ROCm/aotriton#116 — AOTRITON_INHERIT_SYSTEM_SITE_TRITON flag
- ROCm/hipfort#260 — unify cmake_minimum_required versions and allow 4.0
Merged manually / attribution lost:
- ROCm/llvm-project#183 — [hipcc] Remove extra definition of hipBinUtilPtr_ in derived platforms. Closed with "cloned to our internal repo", attribution lost.
- ROCm/ROCR-Runtime#273 — Fix multiple places with undefined behavior due to signed 1 << 31. Imported to rocm-systems#253.
- ROCm/ROCR-Runtime#274 — set underlying type of hsa_region_info_t to int. AMD dev opened their own PR #289 based on it.
Open:
- ROCm/rocm-libraries#2073 — [hipblaslt] Refactor Parallel.py to drop joblib, decimate resource usage
- ROCm/rocm-systems#2423 — fix(rdc): Fix CXXFLAGS clobbering and incompatibility with non-x64 architecture
- ROCm/rocm-systems#2424 — fix(rdc): use pkg-config to find libcap
Other ML & GPGPU Compute upstream§
- triton-lang/triton#7959 — [AMD] Search HIP_PATH, hipconfig, and ROCM_PATH for libamdhip64 (merged)
- GPUOpen-LibrariesAndSDKs/HIPRT#48 — Remove encryption support and bundled easy-encrypt source/binaries (merged)
- amd/blis#44 — configure: follow reproducible-builds spec for SOURCE_DATE_EPOCH (open)
- sofa-framework/sofa#5698 — [SofaMatrix] Allow newer metis versions. Closed, #5732 merged based on it.
Own projects§
- github:LunNova/InvokeAI-nyoom — Forked InvokeAI with hardware agnostic training, EMA-on-CPU optimization, and various training improvements for stable diffusion. Documented in Stable Diffusion Training Notes and EMA weights on CPU.
- github:LunNova/tiny-llama-cpp-container — Minimal ROCm container for llama-cpp, shrunk from 18GB to ~1GB. TODO: May be documented in upcoming article.
NixOS / Nixpkgs§
- Nixpkgs Committer. Commit nomination/grant discussion
I’ve worked with @LunNova on finally enabling PIE by default, CMake 4 fixes, and LLVM packaging changes relating to ROCm. I’ve found her to be highly skilled, easy to collaborate with, good at diving into unfamiliar issues across diverse areas quickly, and to have good taste for maintainable solutions. I strongly endorse her for commit access. ~ emilazy, nixpkgs core team member I nominate @LunNova for commit access. Luna is currently the most active maintainer on the ROCm (compute on AMD GPUs) package set which, since earlier this month, gets redistributed via cache.nixos.org! I have found her to be very capable when dealing with the enormous size of these packages and in her communication with upstream. Other notable contributions are the PIE enablement on packages built with GCC and the Go compiler. Luna has 94 merged PRs and close to 300 reviewed PRs. She started contributing in 2022, but really ramped up her contributions in 2025. I am confident that nixpkgs will benefit from granting LunNova commit privileges. I enjoy interacting with her! ~ mweinelt, nixos infra
- De facto ROCm team lead. Driven all major version bumps after 6.0.2.
ROCm packaging§
Co-maintainer of the ROCm package set in nixpkgs (rocm team).
Major version bumps:
- #367695 — rocmPackages: 6.0.2 -> 6.3.3
- #427944 — rocmPackages: 6.3.3 -> 6.4.3
- #469378 — rocmPackages: 6.4.3 -> 7.0.2
- #481349 — rocmPackages: 7.0.2 -> 7.1.1
- #484792 — rocmPackages: 7.1.1 -> 7.2.0 (open)
Selected fixes:
- #451188 — rocmPackages.hipblaslt: massively reduce peak disk space usage
- #449985 — rocmPackages.hipblaslt: stop inlining war and peace in asm comments
- #444860 — rocmPackages: clean up, reduce closure sizes
- #458711 — rocmPackages.rocblas: remove reference to tensile in librocblas, split outputs
- #489098 — rocmPackages.rocm-runtime: backport CWSR/stack kernel discovery patch
- #493411 — rocmPackages.clr: add $out/lib to libamdhip64.so's rpath
- #446976 — pkgs/top-level/release.nix: add jobs for packages rebuilt by enableRocm
- #447016 — linux/common-config: enable DMABUF_MOVE_NOTIFY and HSA_AMD_P2P
ML frameworks§
- #457612 — python3Packages.torch: fix ROCm build
- #436500 — python3Packages.triton: always support ROCm
- #454399 — onnxruntime: add ROCm support
- #459965 — onnxruntime: use --compile-no-warning-as-error for clang&ROCm
- #443311 — llama-cpp: 6442 -> 6479
- #405457 — ollama-rocm: fix evaluation error when rocmPackages are built for a specific arch
- #495680 — python3Packages.vllm: fix rocm build (open)
- #444054 — metis: 5.1.0 -> 5.2.1 + cmake4 patch; gklib: init
- #468810 — amd-blis: backport fix for GCC 15 build error
- #448964 — oneDNN_2: reintroduce and unbreak, rocmPackages.migraphx: use oneDNN_2
- #436656 — python3Packages.llama-index*: unbreak
- #457885 — whisper: set knownVulnerabilities due to dated vendored libraries
Security hardening: PIE by default§
Led the initiative to enable Position Independent Executables by default for GCC in nixpkgs, improving ASLR coverage across the distribution. Attempted and reverted similar effort for Go due to time constraints near release window and subsequent lack of time.
- #439314 — gcc: build with --enable-default-pie
- #442510 — {cc-wrapper,bintools-wrapper}: drop pie hardening flag
- #442965 — go: build PIE by default
- #449771 — treewide: remove usages of obsolete pie hardening flag
- #449551 — ltrace: fix test failure with PIE
- #449995 — go: restrict default pie patch to known good GOARCH
- #452791 — gcc: disable enableDefaultPie when !hasSharedLibraries
- #458867 — go: only apply PIE by default when CGO is enabled
- #461615 — go: revert default PIE changes
LLVM & compiler infrastructure§
- #445668 — pkgs/development/compilers/llvm: use makeScopeWithSplicing
- #446207 — llvmPackages.libclang: add enableClangToolsExtra flag
- #447071 — llvmPackages: clean up rebuild avoidance
- #444806 — llvmPackages.libllvm: fix enablePolly = false
- #445370 — [staging-next] electron: fix LLVM 21+ build by backporting patch
CMake 4 transition§
Compat fixes across many packages for the CMake 4 transition in nixpkgs staging.
- #445015 — yajl, libuvc: CMake 4 compat
- #445579 — docker-tini, openhmd: CMake 4 fixes
- #447855 — playwright-webkit: apply CMake 4 compat patch to overridden libjxl
- #448902 — clblast: fix build with CMake 4
- #444478 — magma: apply patch for CMake 4
- #444483 — python3Packages.triton: relax build-system CMake 4 dep
- #443947 — rocmPackages.rocm-device-libs: cmake 4 compat
VR / XR§
- #173907 — monado: 21.0.0 -> unstable-2022-05-28
- #173839 — libsurvive: 0.4 -> 1.0
- #173947 — vkdisplayinfo: init at 0.1
- #448501 — basalt-monado: update
Other notable packages§
- #155290 — input-remapper: init at unstable-2022-02-09 (and add NixOS module)
- #160777 — nixos/input-remapper: fix, add more options, add test
- #170834 — input-remapper: unstable-2022-02-09 -> 1.4.2
- #249777 — input-remapper: 1.5.0 -> 2.0.1
- #176049 — memtest86+: 5.01-coreboot-002 -> 6.00-beta2
- #465509 — nixos: use new combined memtest86plus binary
- #176312 — edk2-uefi-shell: init at 202202
- #458517 — opencl-cts: init
- #263201 — build-fhsenv-bubblewrap: remove /usr/lib and /usr/lib32 from LD_LIBRARY_PATH
- #243834 — nixos/i3: add updateSessionEnvironment option
- #218229 — lua5_3_compat, lua5_4_compat: set LUA_COMPAT_5_x
Misc Upstream contributions§
Python§
- python/typeshed#7165 — Add locale.gettext and related stubs (merged)
Rust crates§
- GuillaumeGomez/sysinfo#1014 — Fix more UB in windows/system refresh_processes_specifics (merged)
- GuillaumeGomez/sysinfo#1192 — Fix misaligned read (merged)
- Hpmason/retour-rs#41 — Replace udis with iced-x86 (merged)
- benfred/remoteprocess#87 — Don't assume_init on uninitialized memory (merged)
- benfred/remoteprocess#85 — Swap unmaintained memmap for memmap2 (merged)
input-remapper§
- sezanzeb/input-remapper#264 — Use tempfiles instead of hardcoded /tmp (merged)
- sezanzeb/input-remapper#265 — Use non-zero exit code if tests fail (merged)
- sezanzeb/input-remapper#267 — Add github actions workflows (merged)
Java ecosystem§
- javaparser/javaparser#272 — Add TypedNode interface (merged)
- projectlombok/lombok#1008 — Fix canEqual documentation (merged)
Minecraft modding§
Core developer of the Feed the Beast Launcher (2012-2013), the dominant Minecraft modpack platform of its era. FTB's platform was later folded into CurseForge, which was acquired by Twitch/Amazon (2016) and then Overwolf (2020). ~20 merged PRs including the auto self-updating system, logging framework rewrite, window management, and performance improvements. Managed via custom IRC chatops system, source lost to the sands of time.
Selected:
- Slowpoke101/FTBLaunch#217 — Implement automatic self-updating
- Slowpoke101/FTBLaunch#402 — New logging implementation
- Slowpoke101/FTBLaunch#486 — Auto-restore window size and position
- Slowpoke101/FTBLaunch#505 — Settings cleanup, allow re-opening launcher after closing Minecraft
- Slowpoke101/FTBLaunch#559 — Set JVM options to increase permgen and enable CMS class unloading
Own projects:
- github:MinimallyCorrect/TickThreading — Multi-threaded Minecraft server mod. Used bytecode transformation at load time to parallelise world ticking across dimensions and within dimensions. ~2500 commits, ~3K LoC Java. Performance over correctness — what could go wrong? Way too much.
- github:MinimallyCorrect/TickProfiler — Minecraft server profiler for finding which entities and tile entities are causing lag. ~200 commits, ~2.5K LoC Java.
Modding toolchain:
- MinecraftForge/MinecraftForge#2468 — Workaround JDK-8087309: constant folding "static final boolean" is incomplete (merged)
- MinecraftForge/ForgeGradle#453 — Throw exception if using Java 9 (merged)
- MinecraftForge/ForgeGradle#449 — Close jar files after use (merged)
- md-5/SpecialSource#44, #46, #49 — Implement Closeable in Jar, fix resource leaks (all merged)
Other§
- kasecato/vscode-intellij-idea-keybindings#317 — copyFilePath: add !terminalFocus to condition (merged)
- Sonic0/cron-converter#33 — Fix DST boundary test failure (merged)
- fufexan/nix-gaming#86 — dxvk, vkd3d-proton: fix build, update, swap to dxvk-gplasync (merged)