
What good does scons do us? It has given me much grief. Surely cabal can build yhc proper. As for the interpreter: stefan@stefans:/usr/local/src/yhc$ time sh build.yhi.log In file included from src/runtime/BCKernel/mutator.c:108: src/runtime/BCKernel/mutins.h: In function 'run': src/runtime/BCKernel/mutins.h:662: warning: assignment from incompatible pointer type src/runtime/BCKernel/builtin/IORef.c:36:2: warning: no newline at end of file depends/ctypes/libffi/src/x86/ffi.c: In function 'ffi_prep_args': depends/ctypes/libffi/src/x86/ffi.c:108: warning: incompatible implicit declaration of built-in function 'bcopy' depends/ctypes/libffi/src/x86/ffi.c: In function 'ffi_prep_args_raw': depends/ctypes/libffi/src/x86/ffi.c:395: warning: incompatible implicit declaration of built-in function 'bcopy' real 0m10.481s user 0m9.505s sys 0m0.976s stefan@stefans:/usr/local/src/yhc$ cat build.yhi.log #! /bin/sh exec gcc -o yhi -O2 -funit-at-a-time src/runtime/BCKernel/sanity.c src/runtime/BCKernel/basepath.c src/runtime/BCKernel/jonkers.c src/runtime/BCKernel/module.c src/runtime/BCKernel/stopcopy.c src/runtime/BCKernel/mutator.c src/runtime/BCKernel/primitive.c src/runtime/BCKernel/foreign.c src/runtime/BCKernel/hashtable.c src/runtime/BCKernel/heap.c src/runtime/BCKernel/info.c src/runtime/BCKernel/main.c src/runtime/BCKernel/make.c src/runtime/BCKernel/mark.c src/runtime/BCKernel/iofuncs.c src/runtime/BCKernel/pretty.c src/runtime/BCKernel/stable.c src/runtime/BCKernel/process.c src/runtime/BCKernel/profile.c src/runtime/BCKernel/thread.c src/runtime/BCKernel/external.c src/runtime/BCKernel/hsffi.c src/runtime/BCKernel/integer.c src/runtime/BCKernel/builtin/Prelude.c src/runtime/BCKernel/builtin/IO.c src/runtime/BCKernel/builtin/FFI.c src/runtime/BCKernel/builtin/Array.c src/runtime/BCKernel/builtin/System.c src/runtime/BCKernel/builtin/PackedString.c src/runtime/BCKernel/builtin/IORef.c src/runtime/BCKernel/builtin/RuntimeAPI.c src/runtime/BCKernel/builtin/Concurrent.c depends/ctypes/libffi/src/prep_cif.c depends/ctypes/libffi/src/cfield.c depends/ctypes/libffi/src/x86/ffi.c depends/ctypes/libffi/src/x86/sysv.S -lm -lpthread -ldl -lgmp -I. -Idepends/ctypes/libffi/include -Idepends/ctypes/libffi/src/x86 -Idepends/ctypes/libffi -DVERSION=\"0.7.0-20070224144350-custom\" -DX86 stefan@stefans:/usr/local/src/yhc$ IE, less than 6x the time needed to compile a Haskell "hello world" with comparable optimization settings. (For those less familiar with ghc options, -funit-at-a-time means whole program optimization in this context.) We probably don't need separate compilation, let alone dependency generation.