{ stdenv , writeText , qbe }: # The hello world program available at https://c9x.me/compile/ let helloWorld = writeText "hello-world.ssa" '' function w $add(w %a, w %b) { # Define a function add @start %c =w add %a, %b # Adds the 2 arguments ret %c # Return the result } export function w $main() { # Main function @start %r =w call $add(w 1, w 1) # Call add(1, 1) call $printf(l $fmt, w %r, ...) # Show the result ret 0 } data $fmt = { b "One and one make %d!\n", b 0 } ''; in stdenv.mkDerivation { name = "qbe-test-can-run-hello-world"; meta.timeout = 10; buildCommand = '' ${qbe}/bin/qbe -o asm.s ${helloWorld} cc -o out asm.s ./out | grep 'One and one make 2!' touch $out ''; }