build-filc.nix
Build the complete Fil-C compiler with all dependencies
λpkgs, filc0, sources?
| pkgs | |
| filc0 | |
| sources | default import./lib/sources.nix inherit pkgs; |
let
Build yolo-glibc (no compiler needed)
import./runtime/yolo-glibc.nix inherit pkgs sources;
Build compiler-rt (CRT files and builtins, uses host compiler)
import./runtime/compiler-rt.nix inherit pkgs sources;.compiler-rt
Build yolounwind (stub unwind library, uses host compiler)
import./runtime/yolounwind.nix inherit pkgs sources;.yolounwind
Base filc compiler (overridable)
pkgs.lib.makeOverridableimport./compiler/filc.nix inherit pkgs sources filc0 yolo compiler-rt yolounwind;
used by filc-complete filc-glibc filc-libcxx
LLVM JIT shim, for pins that have the JIT
Build libpizlo
import./runtime/libpizlo.nix inherit pkgs sources filc compiler-rt llvmjit;.libpizlo
Build filc-glibc
import./runtime/filc-glibc.nix inherit pkgs sources libpizlo; filc = filc.overrideinherit libpizlo;;.filc-glibc
uses filc used by filc-complete filc-libcxx
Build libcxx
import./compiler/libcxx.nix inherit pkgs sources filc-glibc; filc = filc.overrideinherit libpizlo; filc-libc = filc-glibc;;.filc-libcxx
uses filc filc-glibc
Final compiler with everything
uses filc filc-glibc
in
filc-complete.overrideAttrs
Use passthru to expose metadata without making them build dependencies